@stoplight/elements-core 9.0.16-beta-0.3 → 9.0.17

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 (415) hide show
  1. package/{dist/index.esm.js → index.esm.js} +34 -46
  2. package/{dist/index.js → index.js} +33 -45
  3. package/{dist/index.mjs → index.mjs} +34 -46
  4. package/package.json +14 -74
  5. package/.storybook/main.js +0 -6
  6. package/.storybook/manager.js +0 -1
  7. package/.storybook/preview.jsx +0 -50
  8. package/dist/LICENSE +0 -190
  9. package/dist/README.md +0 -1
  10. package/dist/package.json +0 -64
  11. package/jest.config.js +0 -10
  12. package/src/__fixtures__/articles/basic.md +0 -10
  13. package/src/__fixtures__/articles/kitchen-sink.md +0 -318
  14. package/src/__fixtures__/articles/long-page-heading.md +0 -955
  15. package/src/__fixtures__/articles/multiple-try-its.md +0 -54
  16. package/src/__fixtures__/articles/schema-with-refs.ts +0 -82
  17. package/src/__fixtures__/http-request.json +0 -11
  18. package/src/__fixtures__/models/model-with-no-examples.json +0 -15
  19. package/src/__fixtures__/models/model-with-one-example.json +0 -23
  20. package/src/__fixtures__/models/model-with-three-examples.json +0 -35
  21. package/src/__fixtures__/operations/application-octet-stream-post.ts +0 -39
  22. package/src/__fixtures__/operations/base64-file-upload.ts +0 -43
  23. package/src/__fixtures__/operations/big-response.ts +0 -4690
  24. package/src/__fixtures__/operations/bundled-parameter.ts +0 -128
  25. package/src/__fixtures__/operations/empty-response.ts +0 -15
  26. package/src/__fixtures__/operations/examples-request-body.ts +0 -135
  27. package/src/__fixtures__/operations/head-todos.ts +0 -49
  28. package/src/__fixtures__/operations/invalid-response-example.ts +0 -45
  29. package/src/__fixtures__/operations/multipart-formdata-post.ts +0 -61
  30. package/src/__fixtures__/operations/operation-minimal.ts +0 -11
  31. package/src/__fixtures__/operations/operation-parameters.ts +0 -337
  32. package/src/__fixtures__/operations/operation-with-examples.ts +0 -113
  33. package/src/__fixtures__/operations/operation-without-servers.ts +0 -16
  34. package/src/__fixtures__/operations/patch-todos.ts +0 -49
  35. package/src/__fixtures__/operations/put-todos.ts +0 -862
  36. package/src/__fixtures__/operations/referenced-body.ts +0 -62
  37. package/src/__fixtures__/operations/request-body-empty-schema.ts +0 -35
  38. package/src/__fixtures__/operations/request-body.ts +0 -62
  39. package/src/__fixtures__/operations/securedOperation.ts +0 -118
  40. package/src/__fixtures__/operations/security-basic.ts +0 -24
  41. package/src/__fixtures__/operations/security-bearer.ts +0 -25
  42. package/src/__fixtures__/operations/simple-get.ts +0 -17
  43. package/src/__fixtures__/operations/simple.ts +0 -103
  44. package/src/__fixtures__/operations/string-numeric-enums.ts +0 -32
  45. package/src/__fixtures__/operations/urlencoded-post-oneof.ts +0 -81
  46. package/src/__fixtures__/operations/urlencoded-post.ts +0 -54
  47. package/src/__fixtures__/operations/vendor-extensions.ts +0 -337
  48. package/src/__fixtures__/operations/with-url-variables.ts +0 -47
  49. package/src/__fixtures__/operations/x-code-samples.ts +0 -348
  50. package/src/__fixtures__/schemas/circular.ts +0 -1906
  51. package/src/__fixtures__/schemas/contact.json +0 -293
  52. package/src/__fixtures__/schemas/media-entry.json +0 -69
  53. package/src/__fixtures__/schemas/simple.json +0 -27
  54. package/src/__fixtures__/schemas/todo-full.v1.json +0 -35
  55. package/src/__fixtures__/schemas/todo-partial.v1.json +0 -14
  56. package/src/__fixtures__/schemas/user.v1.json +0 -17
  57. package/src/__fixtures__/security-schemes/index.ts +0 -38
  58. package/src/__fixtures__/services/petstore.ts +0 -167
  59. package/src/__fixtures__/services/with-unnamed-servers.ts +0 -38
  60. package/src/__fixtures__/services/with-url-variables.ts +0 -83
  61. package/src/__fixtures__/services/without-origin.ts +0 -20
  62. package/src/__fixtures__/table-of-contents/nested.ts +0 -44
  63. package/src/__fixtures__/table-of-contents/studio-template.ts +0 -100
  64. package/src/__fixtures__/table-of-contents/studio.ts +0 -559
  65. package/src/components/Docs/Article/Article.spec.tsx +0 -38
  66. package/src/components/Docs/Article/Article.stories.tsx +0 -17
  67. package/src/components/Docs/Article/index.tsx +0 -38
  68. package/src/components/Docs/Docs.stories.tsx +0 -33
  69. package/src/components/Docs/Docs.tsx +0 -233
  70. package/src/components/Docs/HttpOperation/Badges.tsx +0 -49
  71. package/src/components/Docs/HttpOperation/Body.tsx +0 -79
  72. package/src/components/Docs/HttpOperation/Callbacks.tsx +0 -89
  73. package/src/components/Docs/HttpOperation/HttpOperation.spec.tsx +0 -787
  74. package/src/components/Docs/HttpOperation/HttpOperation.stories.ts +0 -14
  75. package/src/components/Docs/HttpOperation/HttpOperation.tsx +0 -255
  76. package/src/components/Docs/HttpOperation/Parameters.spec.tsx +0 -101
  77. package/src/components/Docs/HttpOperation/Parameters.tsx +0 -118
  78. package/src/components/Docs/HttpOperation/Request.tsx +0 -140
  79. package/src/components/Docs/HttpOperation/Responses.tsx +0 -247
  80. package/src/components/Docs/HttpOperation/index.ts +0 -1
  81. package/src/components/Docs/HttpService/AdditionalInfo.stories.ts +0 -48
  82. package/src/components/Docs/HttpService/AdditionalInfo.tsx +0 -61
  83. package/src/components/Docs/HttpService/ExportButton.tsx +0 -35
  84. package/src/components/Docs/HttpService/HttpService.spec.tsx +0 -429
  85. package/src/components/Docs/HttpService/HttpService.stories.ts +0 -14
  86. package/src/components/Docs/HttpService/HttpService.tsx +0 -99
  87. package/src/components/Docs/HttpService/SecuritySchemes.tsx +0 -82
  88. package/src/components/Docs/HttpService/ServerInfo.tsx +0 -196
  89. package/src/components/Docs/HttpService/index.ts +0 -1
  90. package/src/components/Docs/Model/Model.spec.tsx +0 -241
  91. package/src/components/Docs/Model/Model.stories.tsx +0 -16
  92. package/src/components/Docs/Model/Model.tsx +0 -160
  93. package/src/components/Docs/Model/index.ts +0 -1
  94. package/src/components/Docs/NodeVendorExtensions.tsx +0 -55
  95. package/src/components/Docs/Sections.tsx +0 -54
  96. package/src/components/Docs/Security/PanelContent.tsx +0 -38
  97. package/src/components/Docs/Security/index.ts +0 -1
  98. package/src/components/Docs/Skeleton.tsx +0 -12
  99. package/src/components/Docs/TwoColumnLayout.tsx +0 -28
  100. package/src/components/Docs/index.ts +0 -1
  101. package/src/components/Docs/story-helper.ts +0 -46
  102. package/src/components/Docs/story-renderer-helper.tsx +0 -56
  103. package/src/components/Layout/MobileTopNav.tsx +0 -78
  104. package/src/components/Layout/ResponsiveSidebarLayout.tsx +0 -175
  105. package/src/components/Layout/SidebarLayout.tsx +0 -107
  106. package/src/components/LinkHeading.tsx +0 -21
  107. package/src/components/LoadMore.tsx +0 -20
  108. package/src/components/Loading/Loading.tsx +0 -9
  109. package/src/components/Logo.tsx +0 -25
  110. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.spec.ts +0 -90
  111. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.tsx +0 -164
  112. package/src/components/MarkdownViewer/CustomComponents/Provider.tsx +0 -20
  113. package/src/components/MarkdownViewer/CustomComponents/ReactRouterLink.tsx +0 -27
  114. package/src/components/MarkdownViewer/CustomComponents/ResolvedImage.tsx +0 -86
  115. package/src/components/MarkdownViewer/CustomComponents/ScrollToHashElement.tsx +0 -96
  116. package/src/components/MarkdownViewer/MarkdownViewer.spec.tsx +0 -170
  117. package/src/components/MarkdownViewer/index.tsx +0 -10
  118. package/src/components/NonIdealState.tsx +0 -20
  119. package/src/components/PoweredByLink.tsx +0 -30
  120. package/src/components/RequestSamples/RequestSamples.stories.tsx +0 -67
  121. package/src/components/RequestSamples/RequestSamples.tsx +0 -246
  122. package/src/components/RequestSamples/__tests__/RequestSamples.test.tsx +0 -131
  123. package/src/components/RequestSamples/__tests__/__snapshots__/convertRequestToSample.spec.ts.snap +0 -746
  124. package/src/components/RequestSamples/__tests__/convertRequestToSample.spec.ts +0 -118
  125. package/src/components/RequestSamples/convertRequestToSample.ts +0 -56
  126. package/src/components/RequestSamples/extractCodeSamples.ts +0 -50
  127. package/src/components/RequestSamples/index.ts +0 -2
  128. package/src/components/RequestSamples/requestSampleConfigs.ts +0 -182
  129. package/src/components/ResponseExamples/ResponseExamples.spec.tsx +0 -121
  130. package/src/components/ResponseExamples/ResponseExamples.stories.tsx +0 -21
  131. package/src/components/ResponseExamples/ResponseExamples.tsx +0 -79
  132. package/src/components/TableOfContents/TableOfContents.spec.tsx +0 -316
  133. package/src/components/TableOfContents/TableOfContents.stories.tsx +0 -136
  134. package/src/components/TableOfContents/TableOfContents.tsx +0 -530
  135. package/src/components/TableOfContents/constants.ts +0 -45
  136. package/src/components/TableOfContents/index.ts +0 -2
  137. package/src/components/TableOfContents/types.ts +0 -59
  138. package/src/components/TableOfContents/utils.ts +0 -84
  139. package/src/components/TryIt/Auth/APIKeyAuth.tsx +0 -19
  140. package/src/components/TryIt/Auth/Auth.tsx +0 -169
  141. package/src/components/TryIt/Auth/AuthTokenInput.tsx +0 -37
  142. package/src/components/TryIt/Auth/BasicAuth.tsx +0 -62
  143. package/src/components/TryIt/Auth/BearerAuth.tsx +0 -19
  144. package/src/components/TryIt/Auth/DigestAuth.tsx +0 -35
  145. package/src/components/TryIt/Auth/OAuth2Auth.tsx +0 -19
  146. package/src/components/TryIt/Auth/authentication-utils.ts +0 -113
  147. package/src/components/TryIt/Body/BinaryBody.tsx +0 -52
  148. package/src/components/TryIt/Body/FormDataBody.tsx +0 -145
  149. package/src/components/TryIt/Body/RequestBody.tsx +0 -71
  150. package/src/components/TryIt/Body/__tests__/BinaryBody.test.tsx +0 -29
  151. package/src/components/TryIt/Body/__tests__/FormDataBody.test.tsx +0 -94
  152. package/src/components/TryIt/Body/request-body-utils.ts +0 -127
  153. package/src/components/TryIt/Body/useTextRequestBodyState.ts +0 -27
  154. package/src/components/TryIt/Mocking/MockingButton.tsx +0 -98
  155. package/src/components/TryIt/Mocking/mocking-utils.ts +0 -56
  156. package/src/components/TryIt/Mocking/useMockingOptions.ts +0 -6
  157. package/src/components/TryIt/Parameters/FileUploadParameterEditors.tsx +0 -62
  158. package/src/components/TryIt/Parameters/OperationParameters.tsx +0 -39
  159. package/src/components/TryIt/Parameters/ParameterEditor.tsx +0 -135
  160. package/src/components/TryIt/Parameters/__tests__/parameter-utils.spec.ts +0 -60
  161. package/src/components/TryIt/Parameters/parameter-utils.spec.ts +0 -118
  162. package/src/components/TryIt/Parameters/parameter-utils.ts +0 -245
  163. package/src/components/TryIt/Parameters/useOperationParameters.ts +0 -60
  164. package/src/components/TryIt/Response/ReponseCodeViewer.tsx +0 -28
  165. package/src/components/TryIt/Response/Response.spec.tsx +0 -174
  166. package/src/components/TryIt/Response/Response.tsx +0 -172
  167. package/src/components/TryIt/Response/hooks/useLineCount.ts +0 -7
  168. package/src/components/TryIt/Servers/ServerVariables.tsx +0 -33
  169. package/src/components/TryIt/Servers/ServersDropdown.tsx +0 -53
  170. package/src/components/TryIt/Servers/VariableEditor.tsx +0 -64
  171. package/src/components/TryIt/Servers/useServerVariables.ts +0 -19
  172. package/src/components/TryIt/TryIt.spec.tsx +0 -1511
  173. package/src/components/TryIt/TryIt.stories.tsx +0 -77
  174. package/src/components/TryIt/TryIt.tsx +0 -384
  175. package/src/components/TryIt/TryItWithRequestSamples.spec.tsx +0 -143
  176. package/src/components/TryIt/TryItWithRequestSamples.stories.tsx +0 -32
  177. package/src/components/TryIt/TryItWithRequestSamples.tsx +0 -42
  178. package/src/components/TryIt/build-request.spec.ts +0 -261
  179. package/src/components/TryIt/build-request.ts +0 -358
  180. package/src/components/TryIt/chosenServer.ts +0 -5
  181. package/src/components/TryIt/index.ts +0 -3
  182. package/src/components/__tests__/LinkHeading.spec.tsx +0 -125
  183. package/src/constants.ts +0 -176
  184. package/src/containers/MockingProvider.tsx +0 -23
  185. package/src/context/InlineRefResolver.spec.tsx +0 -183
  186. package/src/context/InlineRefResolver.tsx +0 -94
  187. package/src/context/Options.tsx +0 -27
  188. package/src/context/Persistence.tsx +0 -24
  189. package/src/context/RouterType.tsx +0 -9
  190. package/src/core.css +0 -97
  191. package/src/hoc/utils.ts +0 -5
  192. package/src/hoc/withMosaicProvider.spec.tsx +0 -48
  193. package/src/hoc/withMosaicProvider.tsx +0 -28
  194. package/src/hoc/withQueryClientProvider.spec.tsx +0 -38
  195. package/src/hoc/withQueryClientProvider.tsx +0 -35
  196. package/src/hoc/withRouter.tsx +0 -71
  197. package/src/hooks/useBundleRefsIntoDocument.ts +0 -60
  198. package/src/hooks/useFirstRender.ts +0 -8
  199. package/src/hooks/useIsCompact.ts +0 -26
  200. package/src/hooks/useParsedData.ts +0 -99
  201. package/src/hooks/useParsedValue.ts +0 -19
  202. package/src/hooks/useResponsiveLayout.tsx +0 -51
  203. package/src/hooks/useRouter.tsx +0 -31
  204. package/src/hooks/useUniqueId.ts +0 -4
  205. package/src/index.ts +0 -48
  206. package/src/styled.tsx +0 -22
  207. package/src/styles.css +0 -4
  208. package/src/types.ts +0 -170
  209. package/src/utils/__tests__/securitySchemes.spec.ts +0 -137
  210. package/src/utils/exampleGeneration/exampleGeneration.spec.tsx +0 -18
  211. package/src/utils/exampleGeneration/exampleGeneration.ts +0 -110
  212. package/src/utils/fileToBase64.ts +0 -11
  213. package/src/utils/guards.ts +0 -48
  214. package/src/utils/headers.ts +0 -316
  215. package/src/utils/http-spec/IServer.ts +0 -100
  216. package/src/utils/http-spec/__tests__/IServer.spec.ts +0 -51
  217. package/src/utils/http-spec/examples.ts +0 -5
  218. package/src/utils/http.ts +0 -9
  219. package/src/utils/jotai/persistAtom.ts +0 -31
  220. package/src/utils/node.ts +0 -19
  221. package/src/utils/oas/__tests__/security.spec.ts +0 -18
  222. package/src/utils/oas/security.ts +0 -76
  223. package/src/utils/ref-resolving/ReferenceResolver.ts +0 -29
  224. package/src/utils/ref-resolving/resolvedObject.test.ts +0 -415
  225. package/src/utils/ref-resolving/resolvedObject.ts +0 -107
  226. package/src/utils/securitySchemes.ts +0 -117
  227. package/src/utils/string.ts +0 -15
  228. package/src/utils/tests/chooseOption.ts +0 -7
  229. package/src/web-components/createElementClass.ts +0 -154
  230. package/tsconfig.build.json +0 -14
  231. package/tsconfig.json +0 -7
  232. /package/{dist/__fixtures__ → __fixtures__}/articles/schema-with-refs.d.ts +0 -0
  233. /package/{dist/__fixtures__ → __fixtures__}/operations/application-octet-stream-post.d.ts +0 -0
  234. /package/{dist/__fixtures__ → __fixtures__}/operations/base64-file-upload.d.ts +0 -0
  235. /package/{dist/__fixtures__ → __fixtures__}/operations/big-response.d.ts +0 -0
  236. /package/{dist/__fixtures__ → __fixtures__}/operations/examples-request-body.d.ts +0 -0
  237. /package/{dist/__fixtures__ → __fixtures__}/operations/head-todos.d.ts +0 -0
  238. /package/{dist/__fixtures__ → __fixtures__}/operations/multipart-formdata-post.d.ts +0 -0
  239. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-minimal.d.ts +0 -0
  240. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-parameters.d.ts +0 -0
  241. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-with-examples.d.ts +0 -0
  242. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-without-servers.d.ts +0 -0
  243. /package/{dist/__fixtures__ → __fixtures__}/operations/patch-todos.d.ts +0 -0
  244. /package/{dist/__fixtures__ → __fixtures__}/operations/put-todos.d.ts +0 -0
  245. /package/{dist/__fixtures__ → __fixtures__}/operations/referenced-body.d.ts +0 -0
  246. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body-empty-schema.d.ts +0 -0
  247. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body.d.ts +0 -0
  248. /package/{dist/__fixtures__ → __fixtures__}/operations/securedOperation.d.ts +0 -0
  249. /package/{dist/__fixtures__ → __fixtures__}/operations/security-basic.d.ts +0 -0
  250. /package/{dist/__fixtures__ → __fixtures__}/operations/security-bearer.d.ts +0 -0
  251. /package/{dist/__fixtures__ → __fixtures__}/operations/simple-get.d.ts +0 -0
  252. /package/{dist/__fixtures__ → __fixtures__}/operations/string-numeric-enums.d.ts +0 -0
  253. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post-oneof.d.ts +0 -0
  254. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post.d.ts +0 -0
  255. /package/{dist/__fixtures__ → __fixtures__}/operations/with-url-variables.d.ts +0 -0
  256. /package/{dist/__fixtures__ → __fixtures__}/security-schemes/index.d.ts +0 -0
  257. /package/{dist/__fixtures__ → __fixtures__}/services/petstore.d.ts +0 -0
  258. /package/{dist/__fixtures__ → __fixtures__}/services/with-unnamed-servers.d.ts +0 -0
  259. /package/{dist/__fixtures__ → __fixtures__}/services/with-url-variables.d.ts +0 -0
  260. /package/{dist/__fixtures__ → __fixtures__}/services/without-origin.d.ts +0 -0
  261. /package/{dist/components → components}/Docs/Article/Article.spec.d.ts +0 -0
  262. /package/{dist/components → components}/Docs/Article/Article.stories.d.ts +0 -0
  263. /package/{dist/components → components}/Docs/Article/index.d.ts +0 -0
  264. /package/{dist/components → components}/Docs/Docs.d.ts +0 -0
  265. /package/{dist/components → components}/Docs/Docs.stories.d.ts +0 -0
  266. /package/{dist/components → components}/Docs/HttpOperation/Badges.d.ts +0 -0
  267. /package/{dist/components → components}/Docs/HttpOperation/Body.d.ts +0 -0
  268. /package/{dist/components → components}/Docs/HttpOperation/Callbacks.d.ts +0 -0
  269. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.d.ts +0 -0
  270. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.spec.d.ts +0 -0
  271. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.stories.d.ts +0 -0
  272. /package/{dist/components → components}/Docs/HttpOperation/Parameters.d.ts +0 -0
  273. /package/{dist/components → components}/Docs/HttpOperation/Parameters.spec.d.ts +0 -0
  274. /package/{dist/components → components}/Docs/HttpOperation/Request.d.ts +0 -0
  275. /package/{dist/components → components}/Docs/HttpOperation/Responses.d.ts +0 -0
  276. /package/{dist/components → components}/Docs/HttpOperation/index.d.ts +0 -0
  277. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.d.ts +0 -0
  278. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.stories.d.ts +0 -0
  279. /package/{dist/components → components}/Docs/HttpService/ExportButton.d.ts +0 -0
  280. /package/{dist/components → components}/Docs/HttpService/HttpService.d.ts +0 -0
  281. /package/{dist/components → components}/Docs/HttpService/HttpService.spec.d.ts +0 -0
  282. /package/{dist/components → components}/Docs/HttpService/HttpService.stories.d.ts +0 -0
  283. /package/{dist/components → components}/Docs/HttpService/SecuritySchemes.d.ts +0 -0
  284. /package/{dist/components → components}/Docs/HttpService/ServerInfo.d.ts +0 -0
  285. /package/{dist/components → components}/Docs/HttpService/index.d.ts +0 -0
  286. /package/{dist/components → components}/Docs/Model/Model.d.ts +0 -0
  287. /package/{dist/components → components}/Docs/Model/Model.spec.d.ts +0 -0
  288. /package/{dist/components → components}/Docs/Model/Model.stories.d.ts +0 -0
  289. /package/{dist/components → components}/Docs/Model/index.d.ts +0 -0
  290. /package/{dist/components → components}/Docs/NodeVendorExtensions.d.ts +0 -0
  291. /package/{dist/components → components}/Docs/Sections.d.ts +0 -0
  292. /package/{dist/components → components}/Docs/Security/PanelContent.d.ts +0 -0
  293. /package/{dist/components → components}/Docs/Security/index.d.ts +0 -0
  294. /package/{dist/components → components}/Docs/Skeleton.d.ts +0 -0
  295. /package/{dist/components → components}/Docs/TwoColumnLayout.d.ts +0 -0
  296. /package/{dist/components → components}/Docs/index.d.ts +0 -0
  297. /package/{dist/components → components}/Docs/story-helper.d.ts +0 -0
  298. /package/{dist/components → components}/Docs/story-renderer-helper.d.ts +0 -0
  299. /package/{dist/components → components}/Layout/MobileTopNav.d.ts +0 -0
  300. /package/{dist/components → components}/Layout/ResponsiveSidebarLayout.d.ts +0 -0
  301. /package/{dist/components → components}/Layout/SidebarLayout.d.ts +0 -0
  302. /package/{dist/components → components}/LinkHeading.d.ts +0 -0
  303. /package/{dist/components → components}/LoadMore.d.ts +0 -0
  304. /package/{dist/components → components}/Loading/Loading.d.ts +0 -0
  305. /package/{dist/components → components}/Logo.d.ts +0 -0
  306. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.d.ts +0 -0
  307. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.spec.d.ts +0 -0
  308. /package/{dist/components → components}/MarkdownViewer/CustomComponents/Provider.d.ts +0 -0
  309. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ReactRouterLink.d.ts +0 -0
  310. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ResolvedImage.d.ts +0 -0
  311. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ScrollToHashElement.d.ts +0 -0
  312. /package/{dist/components → components}/MarkdownViewer/MarkdownViewer.spec.d.ts +0 -0
  313. /package/{dist/components → components}/MarkdownViewer/index.d.ts +0 -0
  314. /package/{dist/components → components}/NonIdealState.d.ts +0 -0
  315. /package/{dist/components → components}/PoweredByLink.d.ts +0 -0
  316. /package/{dist/components → components}/RequestSamples/RequestSamples.d.ts +0 -0
  317. /package/{dist/components → components}/RequestSamples/RequestSamples.stories.d.ts +0 -0
  318. /package/{dist/components → components}/RequestSamples/convertRequestToSample.d.ts +0 -0
  319. /package/{dist/components → components}/RequestSamples/extractCodeSamples.d.ts +0 -0
  320. /package/{dist/components → components}/RequestSamples/index.d.ts +0 -0
  321. /package/{dist/components → components}/RequestSamples/requestSampleConfigs.d.ts +0 -0
  322. /package/{dist/components → components}/ResponseExamples/ResponseExamples.d.ts +0 -0
  323. /package/{dist/components → components}/ResponseExamples/ResponseExamples.spec.d.ts +0 -0
  324. /package/{dist/components → components}/ResponseExamples/ResponseExamples.stories.d.ts +0 -0
  325. /package/{dist/components → components}/TableOfContents/TableOfContents.d.ts +0 -0
  326. /package/{dist/components → components}/TableOfContents/TableOfContents.spec.d.ts +0 -0
  327. /package/{dist/components → components}/TableOfContents/TableOfContents.stories.d.ts +0 -0
  328. /package/{dist/components → components}/TableOfContents/constants.d.ts +0 -0
  329. /package/{dist/components → components}/TableOfContents/index.d.ts +0 -0
  330. /package/{dist/components → components}/TableOfContents/types.d.ts +0 -0
  331. /package/{dist/components → components}/TableOfContents/utils.d.ts +0 -0
  332. /package/{dist/components → components}/TryIt/Auth/APIKeyAuth.d.ts +0 -0
  333. /package/{dist/components → components}/TryIt/Auth/Auth.d.ts +0 -0
  334. /package/{dist/components → components}/TryIt/Auth/AuthTokenInput.d.ts +0 -0
  335. /package/{dist/components → components}/TryIt/Auth/BasicAuth.d.ts +0 -0
  336. /package/{dist/components → components}/TryIt/Auth/BearerAuth.d.ts +0 -0
  337. /package/{dist/components → components}/TryIt/Auth/DigestAuth.d.ts +0 -0
  338. /package/{dist/components → components}/TryIt/Auth/OAuth2Auth.d.ts +0 -0
  339. /package/{dist/components → components}/TryIt/Auth/authentication-utils.d.ts +0 -0
  340. /package/{dist/components → components}/TryIt/Body/BinaryBody.d.ts +0 -0
  341. /package/{dist/components → components}/TryIt/Body/FormDataBody.d.ts +0 -0
  342. /package/{dist/components → components}/TryIt/Body/RequestBody.d.ts +0 -0
  343. /package/{dist/components → components}/TryIt/Body/request-body-utils.d.ts +0 -0
  344. /package/{dist/components → components}/TryIt/Body/useTextRequestBodyState.d.ts +0 -0
  345. /package/{dist/components → components}/TryIt/Mocking/MockingButton.d.ts +0 -0
  346. /package/{dist/components → components}/TryIt/Mocking/mocking-utils.d.ts +0 -0
  347. /package/{dist/components → components}/TryIt/Mocking/useMockingOptions.d.ts +0 -0
  348. /package/{dist/components → components}/TryIt/Parameters/FileUploadParameterEditors.d.ts +0 -0
  349. /package/{dist/components → components}/TryIt/Parameters/OperationParameters.d.ts +0 -0
  350. /package/{dist/components → components}/TryIt/Parameters/ParameterEditor.d.ts +0 -0
  351. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.d.ts +0 -0
  352. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.spec.d.ts +0 -0
  353. /package/{dist/components → components}/TryIt/Parameters/useOperationParameters.d.ts +0 -0
  354. /package/{dist/components → components}/TryIt/Response/ReponseCodeViewer.d.ts +0 -0
  355. /package/{dist/components → components}/TryIt/Response/Response.d.ts +0 -0
  356. /package/{dist/components → components}/TryIt/Response/Response.spec.d.ts +0 -0
  357. /package/{dist/components → components}/TryIt/Response/hooks/useLineCount.d.ts +0 -0
  358. /package/{dist/components → components}/TryIt/Servers/ServerVariables.d.ts +0 -0
  359. /package/{dist/components → components}/TryIt/Servers/ServersDropdown.d.ts +0 -0
  360. /package/{dist/components → components}/TryIt/Servers/VariableEditor.d.ts +0 -0
  361. /package/{dist/components → components}/TryIt/Servers/useServerVariables.d.ts +0 -0
  362. /package/{dist/components → components}/TryIt/TryIt.d.ts +0 -0
  363. /package/{dist/components → components}/TryIt/TryIt.spec.d.ts +0 -0
  364. /package/{dist/components → components}/TryIt/TryIt.stories.d.ts +0 -0
  365. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.d.ts +0 -0
  366. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.spec.d.ts +0 -0
  367. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.stories.d.ts +0 -0
  368. /package/{dist/components → components}/TryIt/build-request.d.ts +0 -0
  369. /package/{dist/components → components}/TryIt/build-request.spec.d.ts +0 -0
  370. /package/{dist/components → components}/TryIt/chosenServer.d.ts +0 -0
  371. /package/{dist/components → components}/TryIt/index.d.ts +0 -0
  372. /package/{dist/constants.d.ts → constants.d.ts} +0 -0
  373. /package/{dist/containers → containers}/MockingProvider.d.ts +0 -0
  374. /package/{dist/context → context}/InlineRefResolver.d.ts +0 -0
  375. /package/{dist/context → context}/InlineRefResolver.spec.d.ts +0 -0
  376. /package/{dist/context → context}/Options.d.ts +0 -0
  377. /package/{dist/context → context}/Persistence.d.ts +0 -0
  378. /package/{dist/context → context}/RouterType.d.ts +0 -0
  379. /package/{dist/core.css → core.css} +0 -0
  380. /package/{dist/hoc → hoc}/utils.d.ts +0 -0
  381. /package/{dist/hoc → hoc}/withMosaicProvider.d.ts +0 -0
  382. /package/{dist/hoc → hoc}/withMosaicProvider.spec.d.ts +0 -0
  383. /package/{dist/hoc → hoc}/withQueryClientProvider.d.ts +0 -0
  384. /package/{dist/hoc → hoc}/withQueryClientProvider.spec.d.ts +0 -0
  385. /package/{dist/hoc → hoc}/withRouter.d.ts +0 -0
  386. /package/{dist/hooks → hooks}/useBundleRefsIntoDocument.d.ts +0 -0
  387. /package/{dist/hooks → hooks}/useFirstRender.d.ts +0 -0
  388. /package/{dist/hooks → hooks}/useIsCompact.d.ts +0 -0
  389. /package/{dist/hooks → hooks}/useParsedData.d.ts +0 -0
  390. /package/{dist/hooks → hooks}/useParsedValue.d.ts +0 -0
  391. /package/{dist/hooks → hooks}/useResponsiveLayout.d.ts +0 -0
  392. /package/{dist/hooks → hooks}/useRouter.d.ts +0 -0
  393. /package/{dist/hooks → hooks}/useUniqueId.d.ts +0 -0
  394. /package/{dist/index.d.ts → index.d.ts} +0 -0
  395. /package/{dist/styled.d.ts → styled.d.ts} +0 -0
  396. /package/{dist/styles.min.css → styles.min.css} +0 -0
  397. /package/{dist/types.d.ts → types.d.ts} +0 -0
  398. /package/{dist/utils → utils}/exampleGeneration/exampleGeneration.d.ts +0 -0
  399. /package/{dist/utils → utils}/exampleGeneration/exampleGeneration.spec.d.ts +0 -0
  400. /package/{dist/utils → utils}/fileToBase64.d.ts +0 -0
  401. /package/{dist/utils → utils}/guards.d.ts +0 -0
  402. /package/{dist/utils → utils}/headers.d.ts +0 -0
  403. /package/{dist/utils → utils}/http-spec/IServer.d.ts +0 -0
  404. /package/{dist/utils → utils}/http-spec/examples.d.ts +0 -0
  405. /package/{dist/utils → utils}/http.d.ts +0 -0
  406. /package/{dist/utils → utils}/jotai/persistAtom.d.ts +0 -0
  407. /package/{dist/utils → utils}/node.d.ts +0 -0
  408. /package/{dist/utils → utils}/oas/security.d.ts +0 -0
  409. /package/{dist/utils → utils}/ref-resolving/ReferenceResolver.d.ts +0 -0
  410. /package/{dist/utils → utils}/ref-resolving/resolvedObject.d.ts +0 -0
  411. /package/{dist/utils → utils}/ref-resolving/resolvedObject.test.d.ts +0 -0
  412. /package/{dist/utils → utils}/securitySchemes.d.ts +0 -0
  413. /package/{dist/utils → utils}/string.d.ts +0 -0
  414. /package/{dist/utils → utils}/tests/chooseOption.d.ts +0 -0
  415. /package/{dist/web-components → web-components}/createElementClass.d.ts +0 -0
@@ -1,77 +0,0 @@
1
- import { Meta, Story } from '@storybook/react';
2
- import * as React from 'react';
3
-
4
- import { examplesRequestBody } from '../../__fixtures__/operations/examples-request-body';
5
- import { httpOperation as multipartOperation } from '../../__fixtures__/operations/multipart-formdata-post';
6
- import { httpOperation as putTodosOperation } from '../../__fixtures__/operations/put-todos';
7
- import { requestBody } from '../../__fixtures__/operations/request-body';
8
- import { duplicatedSecurityScheme } from '../../__fixtures__/operations/securedOperation';
9
- import { operation as simpleGetOperation } from '../../__fixtures__/operations/simple-get';
10
- import { httpOperation as urlEncodedOperation } from '../../__fixtures__/operations/urlencoded-post';
11
- import { httpOperation as urlEncodedOneOfOperation } from '../../__fixtures__/operations/urlencoded-post-oneof';
12
- import { operationWithUrlVariables } from '../../__fixtures__/operations/with-url-variables';
13
- import { TryIt, TryItProps } from './TryIt';
14
-
15
- export default {
16
- title: 'Internal/TryIt Component',
17
- component: TryIt,
18
- } as Meta<TryItProps>;
19
-
20
- const Template: Story<TryItProps> = args => <TryIt {...args} />;
21
-
22
- export const SimpleGET = Template.bind({});
23
- SimpleGET.args = {
24
- httpOperation: simpleGetOperation,
25
- };
26
-
27
- export const WithParameters = Template.bind({});
28
- WithParameters.args = {
29
- httpOperation: putTodosOperation,
30
- };
31
-
32
- export const WithVariables = Template.bind({});
33
- WithVariables.args = {
34
- httpOperation: operationWithUrlVariables,
35
- };
36
-
37
- export const UrlEncoded = Template.bind({});
38
- UrlEncoded.args = {
39
- httpOperation: urlEncodedOperation,
40
- };
41
- UrlEncoded.storyName = 'application/x-www-form-urlencoded';
42
-
43
- export const UrlEncodedOneOf = Template.bind({});
44
- UrlEncodedOneOf.args = {
45
- httpOperation: urlEncodedOneOfOperation,
46
- };
47
- UrlEncodedOneOf.storyName = 'application/x-www-form-urlencoded with oneOf';
48
-
49
- export const Multipart = Template.bind({});
50
- Multipart.args = {
51
- httpOperation: multipartOperation,
52
- };
53
- Multipart.storyName = 'multipart/form-data (with file upload)';
54
-
55
- export const RequestBodySchema = Template.bind({});
56
- RequestBodySchema.args = {
57
- httpOperation: requestBody,
58
- };
59
- RequestBodySchema.storyName = 'Request Body From Schema';
60
-
61
- export const RequestBodyExamples = Template.bind({});
62
- RequestBodyExamples.args = {
63
- httpOperation: examplesRequestBody,
64
- };
65
- RequestBodyExamples.storyName = 'Request Body from Examples';
66
-
67
- export const TryItAuth = Template.bind({});
68
- TryItAuth.args = {
69
- httpOperation: putTodosOperation,
70
- };
71
- TryItAuth.storyName = 'TryIt Auth';
72
-
73
- export const TryItAuthDuplicated = Template.bind({});
74
- TryItAuthDuplicated.args = {
75
- httpOperation: duplicatedSecurityScheme,
76
- };
77
- TryItAuthDuplicated.storyName = 'TryIt Auth (Duplicated Parameters)';
@@ -1,384 +0,0 @@
1
- import { Box, Button, HStack, Icon, ITextColorProps, Panel, useThemeIsDark } from '@stoplight/mosaic';
2
- import type { HttpMethod, IHttpEndpointOperation, IServer } from '@stoplight/types';
3
- import { Request as HarRequest } from 'har-format';
4
- import { useAtom } from 'jotai';
5
- import * as React from 'react';
6
-
7
- import { HttpMethodColors } from '../../constants';
8
- import { isHttpOperation, isHttpWebhookOperation } from '../../utils/guards';
9
- import { getServersToDisplay, getServerVariables } from '../../utils/http-spec/IServer';
10
- import { extractCodeSamples, RequestSamples } from '../RequestSamples';
11
- import { TryItAuth } from './Auth/Auth';
12
- import { usePersistedSecuritySchemeWithValues } from './Auth/authentication-utils';
13
- import { BinaryBody } from './Body/BinaryBody';
14
- import { FormDataBody } from './Body/FormDataBody';
15
- import { BodyParameterValues, useBodyParameterState } from './Body/request-body-utils';
16
- import { RequestBody } from './Body/RequestBody';
17
- import { useTextRequestBodyState } from './Body/useTextRequestBodyState';
18
- import { buildFetchRequest, buildHarRequest } from './build-request';
19
- import { chosenServerAtom } from './chosenServer';
20
- import { getMockData } from './Mocking/mocking-utils';
21
- import { MockingButton } from './Mocking/MockingButton';
22
- import { useMockingOptions } from './Mocking/useMockingOptions';
23
- import { OperationParameters } from './Parameters/OperationParameters';
24
- import { useRequestParameters } from './Parameters/useOperationParameters';
25
- import {
26
- ErrorState,
27
- getResponseType,
28
- NetworkError,
29
- ResponseError,
30
- ResponseState,
31
- TryItResponse,
32
- } from './Response/Response';
33
- import { ServersDropdown } from './Servers/ServersDropdown';
34
- import { ServerVariables } from './Servers/ServerVariables';
35
- import { useServerVariables } from './Servers/useServerVariables';
36
-
37
- export interface TryItProps {
38
- httpOperation: IHttpEndpointOperation;
39
-
40
- /**
41
- * The base URL of the prism mock server to redirect traffic to.
42
- *
43
- * While non-prism based mocks may work to some limited extent, they might not understand the Prefer header as prism does.
44
- *
45
- * When a mockUrl is provided, a button to enable mocking via TryIt will be shown
46
- */
47
- mockUrl?: string;
48
-
49
- /**
50
- * Callback to retrieve the current request in a HAR format.
51
- * Called whenever the request was changed in any way. Changing `httpOperation`, user entering parameter values, etc.
52
- */
53
- onRequestChange?: (currentRequest: HarRequest) => void;
54
- requestBodyIndex?: number;
55
- /**
56
- * True when TryIt is embedded in Markdown doc
57
- */
58
- embeddedInMd?: boolean;
59
-
60
- /**
61
- * True when TryIt Panel should be hidden
62
- */
63
- hideTryItPanel?: boolean;
64
-
65
- /**
66
- * Fetch credentials policy for TryIt component
67
- * For more information: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
68
- * @default "omit"
69
- */
70
- tryItCredentialsPolicy?: 'omit' | 'include' | 'same-origin';
71
- corsProxy?: string;
72
- }
73
-
74
- /**
75
- * Displays the TryIt component for a given IHttpOperation.
76
- * Relies on jotai, needs to be wrapped in a PersistenceContextProvider
77
- */
78
-
79
- const defaultServers: IServer[] = [];
80
-
81
- export const TryIt: React.FC<TryItProps> = ({
82
- httpOperation,
83
- mockUrl,
84
- onRequestChange,
85
- requestBodyIndex,
86
- embeddedInMd = false,
87
- hideTryItPanel = false,
88
- tryItCredentialsPolicy,
89
- corsProxy,
90
- }) => {
91
- TryIt.displayName = 'TryIt';
92
- const isDark = useThemeIsDark();
93
-
94
- const [response, setResponse] = React.useState<ResponseState | ErrorState | undefined>();
95
- const [requestData, setRequestData] = React.useState<HarRequest | undefined>();
96
-
97
- const [loading, setLoading] = React.useState<boolean>(false);
98
- const [validateParameters, setValidateParameters] = React.useState<boolean>(false);
99
-
100
- const mediaTypeContent = httpOperation.request?.body?.contents?.[requestBodyIndex ?? 0];
101
-
102
- const { allParameters, updateParameterValue, parameterValuesWithDefaults } = useRequestParameters(httpOperation);
103
- const [mockingOptions, setMockingOptions] = useMockingOptions();
104
-
105
- const [bodyParameterValues, setBodyParameterValues, isAllowedEmptyValues, setAllowedEmptyValues, formDataState] =
106
- useBodyParameterState(mediaTypeContent);
107
-
108
- const [textRequestBody, setTextRequestBody] = useTextRequestBodyState(
109
- mediaTypeContent,
110
- !isHttpWebhookOperation(httpOperation),
111
- );
112
-
113
- const [operationAuthValue, setOperationAuthValue, setCurrentScheme] = usePersistedSecuritySchemeWithValues();
114
-
115
- const servers = React.useMemo(() => {
116
- return getServersToDisplay(httpOperation.servers || defaultServers, mockUrl, false);
117
- }, [httpOperation.servers, mockUrl]);
118
- const firstServer = servers[0] || null;
119
- const [chosenServer, setChosenServer] = useAtom(chosenServerAtom);
120
- const serverVariables = getServerVariables(chosenServer);
121
- const { serverVariables: serverVariableValues, updateServerVariableValue } = useServerVariables();
122
- const isMockingEnabled = mockUrl && chosenServer?.url === mockUrl;
123
-
124
- const hasRequiredButEmptyParameters = allParameters.some(
125
- parameter => parameter.required && !parameterValuesWithDefaults[parameter.name],
126
- );
127
-
128
- const customCodeSamples = extractCodeSamples(httpOperation);
129
-
130
- const getValues = () =>
131
- Object.keys(bodyParameterValues)
132
- .filter(param => !isAllowedEmptyValues[param] ?? true)
133
- .reduce<BodyParameterValues>((previousValue, currentValue) => {
134
- previousValue[currentValue] = bodyParameterValues[currentValue];
135
- return previousValue;
136
- }, {});
137
-
138
- const getBinaryValue = () => bodyParameterValues.file;
139
-
140
- React.useEffect(() => {
141
- const currentUrl = chosenServer?.url;
142
-
143
- // simple attempt to preserve / sync up active server if the URLs are the same between re-renders / navigation
144
- const exists = currentUrl && servers.find(s => s.url === currentUrl);
145
- if (!exists) {
146
- setChosenServer(firstServer);
147
- } else if (exists.id !== chosenServer.id) {
148
- setChosenServer(exists);
149
- }
150
- }, [servers, firstServer, chosenServer, setChosenServer]);
151
-
152
- React.useEffect(() => {
153
- let isMounted = true;
154
- if (isHttpOperation(httpOperation) && (onRequestChange || embeddedInMd)) {
155
- buildHarRequest({
156
- mediaTypeContent,
157
- parameterValues: parameterValuesWithDefaults,
158
- serverVariableValues,
159
- httpOperation,
160
- bodyInput: formDataState.isFormDataBody
161
- ? getValues()
162
- : formDataState.isBinaryBody
163
- ? getBinaryValue()
164
- : textRequestBody,
165
- auth: operationAuthValue,
166
- ...(isMockingEnabled && { mockData: getMockData(mockUrl, httpOperation, mockingOptions) }),
167
- chosenServer,
168
- corsProxy,
169
- }).then(request => {
170
- if (isMounted) {
171
- if (onRequestChange) {
172
- onRequestChange(request);
173
- }
174
- if (embeddedInMd) {
175
- setRequestData(request);
176
- }
177
- }
178
- });
179
- }
180
- return () => {
181
- isMounted = false;
182
- };
183
- // disabling because we don't want to react on `onRequestChange` change
184
- // eslint-disable-next-line react-hooks/exhaustive-deps
185
- }, [
186
- httpOperation,
187
- parameterValuesWithDefaults,
188
- formDataState.isFormDataBody,
189
- bodyParameterValues,
190
- serverVariableValues,
191
- isAllowedEmptyValues,
192
- textRequestBody,
193
- operationAuthValue,
194
- mockingOptions,
195
- chosenServer,
196
- corsProxy,
197
- embeddedInMd,
198
- ]);
199
-
200
- const handleSendRequest = async () => {
201
- setValidateParameters(true);
202
-
203
- if (hasRequiredButEmptyParameters || !isHttpOperation(httpOperation)) return;
204
-
205
- try {
206
- setLoading(true);
207
- const mockData = isMockingEnabled ? getMockData(mockUrl, httpOperation, mockingOptions) : undefined;
208
-
209
- const request = await buildFetchRequest({
210
- parameterValues: parameterValuesWithDefaults,
211
- serverVariableValues,
212
- httpOperation,
213
- mediaTypeContent,
214
- bodyInput: formDataState.isFormDataBody
215
- ? getValues()
216
- : formDataState.isBinaryBody
217
- ? getBinaryValue()
218
- : textRequestBody,
219
- mockData,
220
- auth: operationAuthValue,
221
- chosenServer,
222
- credentials: tryItCredentialsPolicy,
223
- corsProxy,
224
- });
225
- let response: Response | undefined;
226
- try {
227
- response = await fetch(...request);
228
- } catch (e: any) {
229
- setResponse({ error: new NetworkError(e.message) });
230
- }
231
- if (response) {
232
- const contentType = response.headers.get('Content-Type');
233
- const type = contentType ? getResponseType(contentType) : undefined;
234
-
235
- const bodyText = type !== 'image' ? await response.text() : undefined;
236
- const blob = type === 'image' ? await response.blob() : undefined;
237
-
238
- setResponse(undefined); // setting undefined to handle rendering large responses
239
- setResponse({
240
- status: response.status,
241
- bodyText,
242
- blob,
243
- contentType,
244
- });
245
- }
246
- } catch (e: any) {
247
- setResponse({ error: e });
248
- } finally {
249
- setLoading(false);
250
- }
251
- };
252
-
253
- const isOnlySendButton =
254
- !httpOperation.security?.length && !allParameters.length && !formDataState.isFormDataBody && !mediaTypeContent;
255
-
256
- const tryItPanelContents = (
257
- <>
258
- {httpOperation.security?.length ? (
259
- <TryItAuth
260
- operationSecuritySchemes={httpOperation.security}
261
- operationAuthValue={operationAuthValue}
262
- setOperationAuthValue={setOperationAuthValue}
263
- setCurrentScheme={setCurrentScheme}
264
- />
265
- ) : null}
266
-
267
- {isHttpOperation(httpOperation) && serverVariables.length > 0 && (
268
- <ServerVariables
269
- variables={serverVariables}
270
- values={serverVariableValues}
271
- onChangeValue={updateServerVariableValue}
272
- />
273
- )}
274
-
275
- {allParameters.length > 0 && (
276
- <OperationParameters
277
- parameters={allParameters}
278
- values={parameterValuesWithDefaults}
279
- onChangeValue={updateParameterValue}
280
- validate={validateParameters}
281
- />
282
- )}
283
-
284
- <Box pb={1}>
285
- {formDataState.isFormDataBody ? (
286
- <FormDataBody
287
- specification={formDataState.bodySpecification}
288
- values={bodyParameterValues}
289
- onChangeValues={setBodyParameterValues}
290
- onChangeParameterAllow={setAllowedEmptyValues}
291
- isAllowedEmptyValues={isAllowedEmptyValues}
292
- />
293
- ) : formDataState.isBinaryBody ? (
294
- <BinaryBody
295
- specification={formDataState.bodySpecification}
296
- values={bodyParameterValues}
297
- onChangeValues={setBodyParameterValues}
298
- />
299
- ) : mediaTypeContent ? (
300
- <RequestBody
301
- examples={mediaTypeContent.examples ?? []}
302
- requestBody={textRequestBody}
303
- onChange={setTextRequestBody}
304
- />
305
- ) : null}
306
- </Box>
307
-
308
- {isHttpOperation(httpOperation) ? (
309
- <Panel.Content className="SendButtonHolder" pt={!isOnlySendButton && !embeddedInMd ? 0 : undefined}>
310
- <HStack alignItems="center" spacing={2}>
311
- <Button appearance="primary" loading={loading} disabled={loading} onPress={handleSendRequest} size="sm">
312
- Send API Request
313
- </Button>
314
-
315
- {servers.length > 1 && <ServersDropdown servers={servers} />}
316
-
317
- {isMockingEnabled && (
318
- <MockingButton options={mockingOptions} onOptionsChange={setMockingOptions} operation={httpOperation} />
319
- )}
320
- </HStack>
321
-
322
- {validateParameters && hasRequiredButEmptyParameters && (
323
- <Box mt={4} color="danger-light" fontSize="sm">
324
- <Icon icon={['fas', 'exclamation-triangle']} className="sl-mr-1" />
325
- You didn't provide all of the required parameters!
326
- </Box>
327
- )}
328
- </Panel.Content>
329
- ) : null}
330
- </>
331
- );
332
-
333
- let tryItPanelElem;
334
-
335
- // when TryIt is embedded, we need to show extra context at the top about the method + path
336
- if (embeddedInMd) {
337
- let path: string;
338
-
339
- if (isHttpOperation(httpOperation)) {
340
- path = httpOperation.path;
341
- } else if (isHttpWebhookOperation(httpOperation)) {
342
- path = httpOperation.name;
343
- } else {
344
- throw new RangeError('unsupported type');
345
- }
346
-
347
- tryItPanelElem = (
348
- <Panel isCollapsible={false} p={0} className="TryItPanel">
349
- <Panel.Titlebar bg="canvas-300">
350
- <Box
351
- fontWeight="bold"
352
- color={
353
- !isDark ? (HttpMethodColors[httpOperation.method as HttpMethod] as ITextColorProps['color']) : undefined
354
- }
355
- >
356
- {httpOperation.method.toUpperCase()}
357
- </Box>
358
- <Box fontWeight="medium" ml={2} textOverflow="truncate" overflowX="hidden">
359
- {`${chosenServer?.url || ''}${path}`}
360
- </Box>
361
- </Panel.Titlebar>
362
-
363
- {tryItPanelContents}
364
- </Panel>
365
- );
366
- } else {
367
- tryItPanelElem = (
368
- <Box className="TryItPanel" bg="canvas-100">
369
- {tryItPanelContents}
370
- </Box>
371
- );
372
- }
373
-
374
- return (
375
- <Box rounded="lg" overflowY="hidden">
376
- {hideTryItPanel ? null : tryItPanelElem}
377
- {requestData && embeddedInMd && (
378
- <RequestSamples request={requestData} customCodeSamples={customCodeSamples} embeddedInMd />
379
- )}
380
- {response && !('error' in response) && <TryItResponse response={response} />}
381
- {response && 'error' in response && <ResponseError state={response} />}
382
- </Box>
383
- );
384
- };
@@ -1,143 +0,0 @@
1
- import { act, render, screen, waitFor } from '@testing-library/react';
2
- import userEvent from '@testing-library/user-event';
3
- import * as React from 'react';
4
-
5
- import { httpOperation as putTodosOperation } from '../../__fixtures__/operations/put-todos';
6
- import { operationWithUrlVariables } from '../../__fixtures__/operations/with-url-variables';
7
- import { withPersistenceBoundary } from '../../context/Persistence';
8
- import { withMosaicProvider } from '../../hoc/withMosaicProvider';
9
- import { chooseOption } from '../../utils/tests/chooseOption';
10
- import { TryItWithRequestSamples as RawComponent } from './TryItWithRequestSamples';
11
-
12
- const TryItWithRequestSamples = withMosaicProvider(withPersistenceBoundary(RawComponent));
13
-
14
- describe('TryItWithRequestSamples', () => {
15
- it('displays RequestSamples and TryIt', async () => {
16
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
17
-
18
- expect(await screen.findByText('Request Sample: Shell / cURL')).toBeVisible();
19
- expect(await screen.findByRole('button', { name: /Send API Request/i })).toBeVisible();
20
-
21
- const codeViewer = await screen.findByLabelText(/curl/);
22
- expect(codeViewer).toHaveTextContent(/PUT/i);
23
- });
24
-
25
- it('RequestSamples hidden', async () => {
26
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} hideSamples={true} />);
27
-
28
- await waitFor(() => expect(screen.queryByText('Request Sample: Shell / cURL')).not.toBeInTheDocument());
29
- });
30
-
31
- it('TryIt hidden', async () => {
32
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} hideTryIt={true} />);
33
-
34
- await waitFor(() => expect(screen.queryByRole('button', { name: /Send API Request/i })).not.toBeInTheDocument());
35
- });
36
-
37
- it('reacts to parameter input', async () => {
38
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
39
-
40
- const todoIdField = await screen.findByLabelText('todoId');
41
- userEvent.type(todoIdField, '123456789');
42
-
43
- const codeViewer = await screen.findByLabelText(/curl/);
44
- await waitFor(() => expect(codeViewer).toHaveTextContent(/todos\/123456789/));
45
- });
46
-
47
- it('reacts to mocking', async () => {
48
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} mockUrl="https://mock-todos.stoplight.io" />);
49
-
50
- const serversButton = screen.getByRole('button', { name: /server/i });
51
- act(() => userEvent.click(serversButton));
52
-
53
- // enable mocking
54
- let enableItem = screen.getByRole('menuitemradio', { name: /mock server/i });
55
- act(() => userEvent.click(enableItem));
56
-
57
- // open mock dropdown
58
- const mockButton = screen.getByRole('button', { name: /mock settings/i });
59
- act(() => userEvent.click(mockButton));
60
-
61
- // set response code
62
- const responseCodeItem = screen.getByRole('menuitemcheckbox', { name: '200' });
63
- act(() => userEvent.click(responseCodeItem));
64
-
65
- const codeViewer = await screen.findByLabelText(/curl/);
66
- expect(codeViewer).toHaveTextContent(/https:\/\/mock-todos\.stoplight\.io/);
67
- expect(codeViewer).toHaveTextContent(/Prefer: code=200/);
68
- });
69
-
70
- it('includes renders authentication data with suggested value initially', async () => {
71
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
72
-
73
- const codeViewer = await screen.findByLabelText(/curl/);
74
- await waitFor(() => expect(codeViewer).toHaveTextContent(/&API\+Key=123'/));
75
-
76
- const apiKeyField = await screen.findByLabelText('API Key');
77
- userEvent.type(apiKeyField, '123456789');
78
-
79
- await waitFor(() => expect(codeViewer).toHaveTextContent(/&API\+Key=123456789'/));
80
-
81
- userEvent.clear(apiKeyField);
82
- userEvent.type(apiKeyField, '23456789');
83
-
84
- await waitFor(() => expect(codeViewer).toHaveTextContent(/&API\+Key=23456789'/));
85
-
86
- userEvent.clear(apiKeyField);
87
-
88
- await waitFor(() => expect(codeViewer).toHaveTextContent(/&API\+Key=123'/));
89
- });
90
-
91
- it('displays parameter name for empty path parameter', async () => {
92
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
93
-
94
- const codeViewer = await screen.findByLabelText(/curl/);
95
- await waitFor(() => expect(codeViewer).toHaveTextContent(/todos\/{todoId}/));
96
- });
97
-
98
- it('displays base url correctly', async () => {
99
- render(<TryItWithRequestSamples httpOperation={operationWithUrlVariables} />);
100
-
101
- const codeViewer = await screen.findByLabelText(/curl/);
102
- expect(codeViewer).toHaveTextContent('ftp://default-namespace.stoplight.io/api/eu/todos');
103
- });
104
-
105
- it('by default displays 1st server url in request samples', async () => {
106
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
107
-
108
- const codeViewer = await screen.findByLabelText(/curl/);
109
- expect(codeViewer).toHaveTextContent('https://todos.stoplight.io');
110
- });
111
-
112
- it('changes request sample when changing server', async () => {
113
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
114
-
115
- const serversButton = screen.getByRole('button', { name: /server/i });
116
- act(() => userEvent.click(serversButton));
117
-
118
- let enableItem = screen.getByRole('menuitemradio', { name: /development/i });
119
- act(() => userEvent.click(enableItem));
120
-
121
- const codeViewer = await screen.findByLabelText(/curl/);
122
- expect(codeViewer).toHaveTextContent('https://todos-dev.stoplight.io');
123
- });
124
-
125
- it('changes request sample when changing server variables', async () => {
126
- render(<TryItWithRequestSamples httpOperation={putTodosOperation} />);
127
-
128
- const serversButton = screen.getByRole('button', { name: /server/i });
129
- userEvent.click(serversButton);
130
-
131
- let enableItem = screen.getByRole('menuitemradio', { name: /pr/i });
132
- userEvent.click(enableItem);
133
-
134
- const protoField = screen.getByLabelText('proto');
135
- chooseOption(protoField, 'https');
136
-
137
- const prField = screen.getByLabelText('pr');
138
- userEvent.type(prField, '123');
139
-
140
- const codeViewer = await screen.findByLabelText(/curl/);
141
- expect(codeViewer).toHaveTextContent('https://x-123.todos-pr.stoplight.io');
142
- });
143
- });
@@ -1,32 +0,0 @@
1
- import { Meta, Story } from '@storybook/react';
2
- import * as React from 'react';
3
-
4
- import { httpOperation as putTodosOperation } from '../../__fixtures__/operations/put-todos';
5
- import { operationWithUrlVariables } from '../../__fixtures__/operations/with-url-variables';
6
- import { TryItWithRequestSamples, TryItWithRequestSamplesProps } from './TryItWithRequestSamples';
7
-
8
- export default {
9
- title: 'Internal/TryItWithRequestSamples',
10
- component: TryItWithRequestSamples,
11
- } as Meta<TryItWithRequestSamplesProps>;
12
-
13
- const Template: Story<TryItWithRequestSamplesProps> = args => <TryItWithRequestSamples {...args} />;
14
-
15
- export const WithParameters = Template.bind({});
16
- WithParameters.args = {
17
- httpOperation: putTodosOperation,
18
- };
19
- WithParameters.storyName = 'With Parameters';
20
-
21
- export const WithVariables = Template.bind({});
22
- WithVariables.args = {
23
- httpOperation: operationWithUrlVariables,
24
- };
25
- WithVariables.storyName = 'With Server Variables';
26
-
27
- export const WithoutTryItPanel = Template.bind({});
28
- WithoutTryItPanel.args = {
29
- hideTryIt: true,
30
- httpOperation: operationWithUrlVariables,
31
- };
32
- WithoutTryItPanel.storyName = 'Without Try It Panel';
@@ -1,42 +0,0 @@
1
- import { Box, InvertTheme, VStack } from '@stoplight/mosaic';
2
- import { Request as HarRequest } from 'har-format';
3
- import * as React from 'react';
4
-
5
- import { extractCodeSamples, RequestSamples } from '../RequestSamples';
6
- import { ResponseExamples, ResponseExamplesProps } from '../ResponseExamples/ResponseExamples';
7
- import { TryIt, TryItProps } from './TryIt';
8
-
9
- export type TryItWithRequestSamplesProps = Omit<TryItProps, 'onRequestChange'> &
10
- ResponseExamplesProps & { hideTryIt?: boolean; hideTryItPanel?: boolean; hideSamples?: boolean };
11
-
12
- export const TryItWithRequestSamples: React.FC<TryItWithRequestSamplesProps> = ({
13
- hideTryIt,
14
- hideTryItPanel,
15
- hideSamples,
16
- ...props
17
- }) => {
18
- const [requestData, setRequestData] = React.useState<HarRequest | undefined>();
19
-
20
- const customCodeSamples = extractCodeSamples(props.httpOperation);
21
-
22
- return (
23
- <VStack spacing={6}>
24
- {!hideTryIt ? (
25
- <InvertTheme>
26
- <Box>
27
- <TryIt {...props} hideTryItPanel={hideTryItPanel} onRequestChange={setRequestData} />
28
- </Box>
29
- </InvertTheme>
30
- ) : (
31
- // The TryIt is responsible for generating the Request Data so it should always be rendered
32
- <>
33
- <TryIt {...props} hideTryItPanel={hideTryIt} onRequestChange={setRequestData} />
34
- </>
35
- )}
36
-
37
- {requestData && !hideSamples && <RequestSamples request={requestData} customCodeSamples={customCodeSamples} />}
38
-
39
- <ResponseExamples {...props} />
40
- </VStack>
41
- );
42
- };