@stoplight/elements-core 9.0.16-beta-0.1 → 9.0.16-beta-0.2

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/package.json +14 -74
  2. package/.storybook/main.js +0 -6
  3. package/.storybook/manager.js +0 -1
  4. package/.storybook/preview.jsx +0 -50
  5. package/dist/LICENSE +0 -190
  6. package/dist/README.md +0 -1
  7. package/dist/package.json +0 -64
  8. package/jest.config.js +0 -10
  9. package/src/__fixtures__/articles/basic.md +0 -10
  10. package/src/__fixtures__/articles/kitchen-sink.md +0 -318
  11. package/src/__fixtures__/articles/long-page-heading.md +0 -955
  12. package/src/__fixtures__/articles/multiple-try-its.md +0 -54
  13. package/src/__fixtures__/articles/schema-with-refs.ts +0 -82
  14. package/src/__fixtures__/http-request.json +0 -11
  15. package/src/__fixtures__/models/model-with-no-examples.json +0 -15
  16. package/src/__fixtures__/models/model-with-one-example.json +0 -23
  17. package/src/__fixtures__/models/model-with-three-examples.json +0 -35
  18. package/src/__fixtures__/operations/application-octet-stream-post.ts +0 -39
  19. package/src/__fixtures__/operations/base64-file-upload.ts +0 -43
  20. package/src/__fixtures__/operations/big-response.ts +0 -4690
  21. package/src/__fixtures__/operations/bundled-parameter.ts +0 -128
  22. package/src/__fixtures__/operations/empty-response.ts +0 -15
  23. package/src/__fixtures__/operations/examples-request-body.ts +0 -135
  24. package/src/__fixtures__/operations/head-todos.ts +0 -49
  25. package/src/__fixtures__/operations/invalid-response-example.ts +0 -45
  26. package/src/__fixtures__/operations/multipart-formdata-post.ts +0 -61
  27. package/src/__fixtures__/operations/operation-minimal.ts +0 -11
  28. package/src/__fixtures__/operations/operation-parameters.ts +0 -337
  29. package/src/__fixtures__/operations/operation-with-examples.ts +0 -113
  30. package/src/__fixtures__/operations/operation-without-servers.ts +0 -16
  31. package/src/__fixtures__/operations/patch-todos.ts +0 -49
  32. package/src/__fixtures__/operations/put-todos.ts +0 -862
  33. package/src/__fixtures__/operations/referenced-body.ts +0 -62
  34. package/src/__fixtures__/operations/request-body-empty-schema.ts +0 -35
  35. package/src/__fixtures__/operations/request-body.ts +0 -62
  36. package/src/__fixtures__/operations/securedOperation.ts +0 -118
  37. package/src/__fixtures__/operations/security-basic.ts +0 -24
  38. package/src/__fixtures__/operations/security-bearer.ts +0 -25
  39. package/src/__fixtures__/operations/simple-get.ts +0 -17
  40. package/src/__fixtures__/operations/simple.ts +0 -103
  41. package/src/__fixtures__/operations/string-numeric-enums.ts +0 -32
  42. package/src/__fixtures__/operations/urlencoded-post-oneof.ts +0 -81
  43. package/src/__fixtures__/operations/urlencoded-post.ts +0 -54
  44. package/src/__fixtures__/operations/vendor-extensions.ts +0 -337
  45. package/src/__fixtures__/operations/with-url-variables.ts +0 -47
  46. package/src/__fixtures__/operations/x-code-samples.ts +0 -348
  47. package/src/__fixtures__/schemas/circular.ts +0 -1906
  48. package/src/__fixtures__/schemas/contact.json +0 -293
  49. package/src/__fixtures__/schemas/media-entry.json +0 -69
  50. package/src/__fixtures__/schemas/simple.json +0 -27
  51. package/src/__fixtures__/schemas/todo-full.v1.json +0 -35
  52. package/src/__fixtures__/schemas/todo-partial.v1.json +0 -14
  53. package/src/__fixtures__/schemas/user.v1.json +0 -17
  54. package/src/__fixtures__/security-schemes/index.ts +0 -38
  55. package/src/__fixtures__/services/petstore.ts +0 -167
  56. package/src/__fixtures__/services/with-unnamed-servers.ts +0 -38
  57. package/src/__fixtures__/services/with-url-variables.ts +0 -83
  58. package/src/__fixtures__/services/without-origin.ts +0 -20
  59. package/src/__fixtures__/table-of-contents/nested.ts +0 -44
  60. package/src/__fixtures__/table-of-contents/studio-template.ts +0 -100
  61. package/src/__fixtures__/table-of-contents/studio.ts +0 -559
  62. package/src/components/Docs/Article/Article.spec.tsx +0 -38
  63. package/src/components/Docs/Article/Article.stories.tsx +0 -17
  64. package/src/components/Docs/Article/index.tsx +0 -38
  65. package/src/components/Docs/Docs.stories.tsx +0 -33
  66. package/src/components/Docs/Docs.tsx +0 -233
  67. package/src/components/Docs/HttpOperation/Badges.tsx +0 -49
  68. package/src/components/Docs/HttpOperation/Body.tsx +0 -79
  69. package/src/components/Docs/HttpOperation/Callbacks.tsx +0 -89
  70. package/src/components/Docs/HttpOperation/HttpOperation.spec.tsx +0 -787
  71. package/src/components/Docs/HttpOperation/HttpOperation.stories.ts +0 -14
  72. package/src/components/Docs/HttpOperation/HttpOperation.tsx +0 -255
  73. package/src/components/Docs/HttpOperation/Parameters.spec.tsx +0 -101
  74. package/src/components/Docs/HttpOperation/Parameters.tsx +0 -118
  75. package/src/components/Docs/HttpOperation/Request.tsx +0 -140
  76. package/src/components/Docs/HttpOperation/Responses.tsx +0 -247
  77. package/src/components/Docs/HttpOperation/index.ts +0 -1
  78. package/src/components/Docs/HttpService/AdditionalInfo.stories.ts +0 -48
  79. package/src/components/Docs/HttpService/AdditionalInfo.tsx +0 -61
  80. package/src/components/Docs/HttpService/ExportButton.tsx +0 -35
  81. package/src/components/Docs/HttpService/HttpService.spec.tsx +0 -429
  82. package/src/components/Docs/HttpService/HttpService.stories.ts +0 -14
  83. package/src/components/Docs/HttpService/HttpService.tsx +0 -99
  84. package/src/components/Docs/HttpService/SecuritySchemes.tsx +0 -82
  85. package/src/components/Docs/HttpService/ServerInfo.tsx +0 -196
  86. package/src/components/Docs/HttpService/index.ts +0 -1
  87. package/src/components/Docs/Model/Model.spec.tsx +0 -241
  88. package/src/components/Docs/Model/Model.stories.tsx +0 -16
  89. package/src/components/Docs/Model/Model.tsx +0 -160
  90. package/src/components/Docs/Model/index.ts +0 -1
  91. package/src/components/Docs/NodeVendorExtensions.tsx +0 -55
  92. package/src/components/Docs/Sections.tsx +0 -54
  93. package/src/components/Docs/Security/PanelContent.tsx +0 -38
  94. package/src/components/Docs/Security/index.ts +0 -1
  95. package/src/components/Docs/Skeleton.tsx +0 -12
  96. package/src/components/Docs/TwoColumnLayout.tsx +0 -28
  97. package/src/components/Docs/index.ts +0 -1
  98. package/src/components/Docs/story-helper.ts +0 -46
  99. package/src/components/Docs/story-renderer-helper.tsx +0 -56
  100. package/src/components/Layout/MobileTopNav.tsx +0 -78
  101. package/src/components/Layout/ResponsiveSidebarLayout.tsx +0 -175
  102. package/src/components/Layout/SidebarLayout.tsx +0 -107
  103. package/src/components/LinkHeading.tsx +0 -21
  104. package/src/components/LoadMore.tsx +0 -20
  105. package/src/components/Loading/Loading.tsx +0 -9
  106. package/src/components/Logo.tsx +0 -25
  107. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.spec.ts +0 -90
  108. package/src/components/MarkdownViewer/CustomComponents/CodeComponent.tsx +0 -164
  109. package/src/components/MarkdownViewer/CustomComponents/Provider.tsx +0 -20
  110. package/src/components/MarkdownViewer/CustomComponents/ReactRouterLink.tsx +0 -27
  111. package/src/components/MarkdownViewer/CustomComponents/ResolvedImage.tsx +0 -86
  112. package/src/components/MarkdownViewer/CustomComponents/ScrollToHashElement.tsx +0 -96
  113. package/src/components/MarkdownViewer/MarkdownViewer.spec.tsx +0 -170
  114. package/src/components/MarkdownViewer/index.tsx +0 -10
  115. package/src/components/NonIdealState.tsx +0 -20
  116. package/src/components/PoweredByLink.tsx +0 -30
  117. package/src/components/RequestSamples/RequestSamples.stories.tsx +0 -67
  118. package/src/components/RequestSamples/RequestSamples.tsx +0 -246
  119. package/src/components/RequestSamples/__tests__/RequestSamples.test.tsx +0 -131
  120. package/src/components/RequestSamples/__tests__/__snapshots__/convertRequestToSample.spec.ts.snap +0 -746
  121. package/src/components/RequestSamples/__tests__/convertRequestToSample.spec.ts +0 -118
  122. package/src/components/RequestSamples/convertRequestToSample.ts +0 -56
  123. package/src/components/RequestSamples/extractCodeSamples.ts +0 -50
  124. package/src/components/RequestSamples/index.ts +0 -2
  125. package/src/components/RequestSamples/requestSampleConfigs.ts +0 -182
  126. package/src/components/ResponseExamples/ResponseExamples.spec.tsx +0 -121
  127. package/src/components/ResponseExamples/ResponseExamples.stories.tsx +0 -21
  128. package/src/components/ResponseExamples/ResponseExamples.tsx +0 -79
  129. package/src/components/TableOfContents/TableOfContents.spec.tsx +0 -316
  130. package/src/components/TableOfContents/TableOfContents.stories.tsx +0 -136
  131. package/src/components/TableOfContents/TableOfContents.tsx +0 -530
  132. package/src/components/TableOfContents/constants.ts +0 -45
  133. package/src/components/TableOfContents/index.ts +0 -2
  134. package/src/components/TableOfContents/types.ts +0 -59
  135. package/src/components/TableOfContents/utils.ts +0 -84
  136. package/src/components/TryIt/Auth/APIKeyAuth.tsx +0 -19
  137. package/src/components/TryIt/Auth/Auth.tsx +0 -169
  138. package/src/components/TryIt/Auth/AuthTokenInput.tsx +0 -37
  139. package/src/components/TryIt/Auth/BasicAuth.tsx +0 -62
  140. package/src/components/TryIt/Auth/BearerAuth.tsx +0 -19
  141. package/src/components/TryIt/Auth/DigestAuth.tsx +0 -35
  142. package/src/components/TryIt/Auth/OAuth2Auth.tsx +0 -19
  143. package/src/components/TryIt/Auth/authentication-utils.ts +0 -113
  144. package/src/components/TryIt/Body/BinaryBody.tsx +0 -52
  145. package/src/components/TryIt/Body/FormDataBody.tsx +0 -145
  146. package/src/components/TryIt/Body/RequestBody.tsx +0 -71
  147. package/src/components/TryIt/Body/__tests__/BinaryBody.test.tsx +0 -29
  148. package/src/components/TryIt/Body/__tests__/FormDataBody.test.tsx +0 -94
  149. package/src/components/TryIt/Body/request-body-utils.ts +0 -127
  150. package/src/components/TryIt/Body/useTextRequestBodyState.ts +0 -27
  151. package/src/components/TryIt/Mocking/MockingButton.tsx +0 -98
  152. package/src/components/TryIt/Mocking/mocking-utils.ts +0 -56
  153. package/src/components/TryIt/Mocking/useMockingOptions.ts +0 -6
  154. package/src/components/TryIt/Parameters/FileUploadParameterEditors.tsx +0 -62
  155. package/src/components/TryIt/Parameters/OperationParameters.tsx +0 -39
  156. package/src/components/TryIt/Parameters/ParameterEditor.tsx +0 -135
  157. package/src/components/TryIt/Parameters/__tests__/parameter-utils.spec.ts +0 -60
  158. package/src/components/TryIt/Parameters/parameter-utils.spec.ts +0 -118
  159. package/src/components/TryIt/Parameters/parameter-utils.ts +0 -245
  160. package/src/components/TryIt/Parameters/useOperationParameters.ts +0 -60
  161. package/src/components/TryIt/Response/ReponseCodeViewer.tsx +0 -28
  162. package/src/components/TryIt/Response/Response.spec.tsx +0 -174
  163. package/src/components/TryIt/Response/Response.tsx +0 -172
  164. package/src/components/TryIt/Response/hooks/useLineCount.ts +0 -7
  165. package/src/components/TryIt/Servers/ServerVariables.tsx +0 -33
  166. package/src/components/TryIt/Servers/ServersDropdown.tsx +0 -53
  167. package/src/components/TryIt/Servers/VariableEditor.tsx +0 -64
  168. package/src/components/TryIt/Servers/useServerVariables.ts +0 -19
  169. package/src/components/TryIt/TryIt.spec.tsx +0 -1511
  170. package/src/components/TryIt/TryIt.stories.tsx +0 -77
  171. package/src/components/TryIt/TryIt.tsx +0 -384
  172. package/src/components/TryIt/TryItWithRequestSamples.spec.tsx +0 -143
  173. package/src/components/TryIt/TryItWithRequestSamples.stories.tsx +0 -32
  174. package/src/components/TryIt/TryItWithRequestSamples.tsx +0 -42
  175. package/src/components/TryIt/build-request.spec.ts +0 -261
  176. package/src/components/TryIt/build-request.ts +0 -357
  177. package/src/components/TryIt/chosenServer.ts +0 -5
  178. package/src/components/TryIt/index.ts +0 -3
  179. package/src/components/__tests__/LinkHeading.spec.tsx +0 -125
  180. package/src/constants.ts +0 -176
  181. package/src/containers/MockingProvider.tsx +0 -23
  182. package/src/context/InlineRefResolver.spec.tsx +0 -183
  183. package/src/context/InlineRefResolver.tsx +0 -94
  184. package/src/context/Options.tsx +0 -27
  185. package/src/context/Persistence.tsx +0 -24
  186. package/src/context/RouterType.tsx +0 -9
  187. package/src/core.css +0 -97
  188. package/src/hoc/utils.ts +0 -5
  189. package/src/hoc/withMosaicProvider.spec.tsx +0 -48
  190. package/src/hoc/withMosaicProvider.tsx +0 -28
  191. package/src/hoc/withQueryClientProvider.spec.tsx +0 -38
  192. package/src/hoc/withQueryClientProvider.tsx +0 -35
  193. package/src/hoc/withRouter.tsx +0 -71
  194. package/src/hooks/useBundleRefsIntoDocument.ts +0 -60
  195. package/src/hooks/useFirstRender.ts +0 -8
  196. package/src/hooks/useIsCompact.ts +0 -26
  197. package/src/hooks/useParsedData.ts +0 -99
  198. package/src/hooks/useParsedValue.ts +0 -19
  199. package/src/hooks/useResponsiveLayout.tsx +0 -51
  200. package/src/hooks/useRouter.tsx +0 -31
  201. package/src/hooks/useUniqueId.ts +0 -4
  202. package/src/index.ts +0 -48
  203. package/src/styled.tsx +0 -22
  204. package/src/styles.css +0 -4
  205. package/src/types.ts +0 -170
  206. package/src/utils/__tests__/securitySchemes.spec.ts +0 -137
  207. package/src/utils/exampleGeneration/exampleGeneration.spec.tsx +0 -18
  208. package/src/utils/exampleGeneration/exampleGeneration.ts +0 -110
  209. package/src/utils/fileToBase64.ts +0 -11
  210. package/src/utils/guards.ts +0 -48
  211. package/src/utils/headers.ts +0 -316
  212. package/src/utils/http-spec/IServer.ts +0 -100
  213. package/src/utils/http-spec/__tests__/IServer.spec.ts +0 -51
  214. package/src/utils/http-spec/examples.ts +0 -5
  215. package/src/utils/http.ts +0 -9
  216. package/src/utils/jotai/persistAtom.ts +0 -31
  217. package/src/utils/node.ts +0 -19
  218. package/src/utils/oas/__tests__/security.spec.ts +0 -18
  219. package/src/utils/oas/security.ts +0 -76
  220. package/src/utils/ref-resolving/ReferenceResolver.ts +0 -29
  221. package/src/utils/ref-resolving/resolvedObject.test.ts +0 -415
  222. package/src/utils/ref-resolving/resolvedObject.ts +0 -107
  223. package/src/utils/securitySchemes.ts +0 -117
  224. package/src/utils/string.ts +0 -15
  225. package/src/utils/tests/chooseOption.ts +0 -7
  226. package/src/web-components/createElementClass.ts +0 -154
  227. package/tsconfig.build.json +0 -14
  228. package/tsconfig.json +0 -7
  229. /package/{dist/__fixtures__ → __fixtures__}/articles/schema-with-refs.d.ts +0 -0
  230. /package/{dist/__fixtures__ → __fixtures__}/operations/application-octet-stream-post.d.ts +0 -0
  231. /package/{dist/__fixtures__ → __fixtures__}/operations/base64-file-upload.d.ts +0 -0
  232. /package/{dist/__fixtures__ → __fixtures__}/operations/big-response.d.ts +0 -0
  233. /package/{dist/__fixtures__ → __fixtures__}/operations/examples-request-body.d.ts +0 -0
  234. /package/{dist/__fixtures__ → __fixtures__}/operations/head-todos.d.ts +0 -0
  235. /package/{dist/__fixtures__ → __fixtures__}/operations/multipart-formdata-post.d.ts +0 -0
  236. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-minimal.d.ts +0 -0
  237. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-parameters.d.ts +0 -0
  238. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-with-examples.d.ts +0 -0
  239. /package/{dist/__fixtures__ → __fixtures__}/operations/operation-without-servers.d.ts +0 -0
  240. /package/{dist/__fixtures__ → __fixtures__}/operations/patch-todos.d.ts +0 -0
  241. /package/{dist/__fixtures__ → __fixtures__}/operations/put-todos.d.ts +0 -0
  242. /package/{dist/__fixtures__ → __fixtures__}/operations/referenced-body.d.ts +0 -0
  243. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body-empty-schema.d.ts +0 -0
  244. /package/{dist/__fixtures__ → __fixtures__}/operations/request-body.d.ts +0 -0
  245. /package/{dist/__fixtures__ → __fixtures__}/operations/securedOperation.d.ts +0 -0
  246. /package/{dist/__fixtures__ → __fixtures__}/operations/security-basic.d.ts +0 -0
  247. /package/{dist/__fixtures__ → __fixtures__}/operations/security-bearer.d.ts +0 -0
  248. /package/{dist/__fixtures__ → __fixtures__}/operations/simple-get.d.ts +0 -0
  249. /package/{dist/__fixtures__ → __fixtures__}/operations/string-numeric-enums.d.ts +0 -0
  250. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post-oneof.d.ts +0 -0
  251. /package/{dist/__fixtures__ → __fixtures__}/operations/urlencoded-post.d.ts +0 -0
  252. /package/{dist/__fixtures__ → __fixtures__}/operations/with-url-variables.d.ts +0 -0
  253. /package/{dist/__fixtures__ → __fixtures__}/security-schemes/index.d.ts +0 -0
  254. /package/{dist/__fixtures__ → __fixtures__}/services/petstore.d.ts +0 -0
  255. /package/{dist/__fixtures__ → __fixtures__}/services/with-unnamed-servers.d.ts +0 -0
  256. /package/{dist/__fixtures__ → __fixtures__}/services/with-url-variables.d.ts +0 -0
  257. /package/{dist/__fixtures__ → __fixtures__}/services/without-origin.d.ts +0 -0
  258. /package/{dist/components → components}/Docs/Article/Article.spec.d.ts +0 -0
  259. /package/{dist/components → components}/Docs/Article/Article.stories.d.ts +0 -0
  260. /package/{dist/components → components}/Docs/Article/index.d.ts +0 -0
  261. /package/{dist/components → components}/Docs/Docs.d.ts +0 -0
  262. /package/{dist/components → components}/Docs/Docs.stories.d.ts +0 -0
  263. /package/{dist/components → components}/Docs/HttpOperation/Badges.d.ts +0 -0
  264. /package/{dist/components → components}/Docs/HttpOperation/Body.d.ts +0 -0
  265. /package/{dist/components → components}/Docs/HttpOperation/Callbacks.d.ts +0 -0
  266. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.d.ts +0 -0
  267. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.spec.d.ts +0 -0
  268. /package/{dist/components → components}/Docs/HttpOperation/HttpOperation.stories.d.ts +0 -0
  269. /package/{dist/components → components}/Docs/HttpOperation/Parameters.d.ts +0 -0
  270. /package/{dist/components → components}/Docs/HttpOperation/Parameters.spec.d.ts +0 -0
  271. /package/{dist/components → components}/Docs/HttpOperation/Request.d.ts +0 -0
  272. /package/{dist/components → components}/Docs/HttpOperation/Responses.d.ts +0 -0
  273. /package/{dist/components → components}/Docs/HttpOperation/index.d.ts +0 -0
  274. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.d.ts +0 -0
  275. /package/{dist/components → components}/Docs/HttpService/AdditionalInfo.stories.d.ts +0 -0
  276. /package/{dist/components → components}/Docs/HttpService/ExportButton.d.ts +0 -0
  277. /package/{dist/components → components}/Docs/HttpService/HttpService.d.ts +0 -0
  278. /package/{dist/components → components}/Docs/HttpService/HttpService.spec.d.ts +0 -0
  279. /package/{dist/components → components}/Docs/HttpService/HttpService.stories.d.ts +0 -0
  280. /package/{dist/components → components}/Docs/HttpService/SecuritySchemes.d.ts +0 -0
  281. /package/{dist/components → components}/Docs/HttpService/ServerInfo.d.ts +0 -0
  282. /package/{dist/components → components}/Docs/HttpService/index.d.ts +0 -0
  283. /package/{dist/components → components}/Docs/Model/Model.d.ts +0 -0
  284. /package/{dist/components → components}/Docs/Model/Model.spec.d.ts +0 -0
  285. /package/{dist/components → components}/Docs/Model/Model.stories.d.ts +0 -0
  286. /package/{dist/components → components}/Docs/Model/index.d.ts +0 -0
  287. /package/{dist/components → components}/Docs/NodeVendorExtensions.d.ts +0 -0
  288. /package/{dist/components → components}/Docs/Sections.d.ts +0 -0
  289. /package/{dist/components → components}/Docs/Security/PanelContent.d.ts +0 -0
  290. /package/{dist/components → components}/Docs/Security/index.d.ts +0 -0
  291. /package/{dist/components → components}/Docs/Skeleton.d.ts +0 -0
  292. /package/{dist/components → components}/Docs/TwoColumnLayout.d.ts +0 -0
  293. /package/{dist/components → components}/Docs/index.d.ts +0 -0
  294. /package/{dist/components → components}/Docs/story-helper.d.ts +0 -0
  295. /package/{dist/components → components}/Docs/story-renderer-helper.d.ts +0 -0
  296. /package/{dist/components → components}/Layout/MobileTopNav.d.ts +0 -0
  297. /package/{dist/components → components}/Layout/ResponsiveSidebarLayout.d.ts +0 -0
  298. /package/{dist/components → components}/Layout/SidebarLayout.d.ts +0 -0
  299. /package/{dist/components → components}/LinkHeading.d.ts +0 -0
  300. /package/{dist/components → components}/LoadMore.d.ts +0 -0
  301. /package/{dist/components → components}/Loading/Loading.d.ts +0 -0
  302. /package/{dist/components → components}/Logo.d.ts +0 -0
  303. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.d.ts +0 -0
  304. /package/{dist/components → components}/MarkdownViewer/CustomComponents/CodeComponent.spec.d.ts +0 -0
  305. /package/{dist/components → components}/MarkdownViewer/CustomComponents/Provider.d.ts +0 -0
  306. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ReactRouterLink.d.ts +0 -0
  307. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ResolvedImage.d.ts +0 -0
  308. /package/{dist/components → components}/MarkdownViewer/CustomComponents/ScrollToHashElement.d.ts +0 -0
  309. /package/{dist/components → components}/MarkdownViewer/MarkdownViewer.spec.d.ts +0 -0
  310. /package/{dist/components → components}/MarkdownViewer/index.d.ts +0 -0
  311. /package/{dist/components → components}/NonIdealState.d.ts +0 -0
  312. /package/{dist/components → components}/PoweredByLink.d.ts +0 -0
  313. /package/{dist/components → components}/RequestSamples/RequestSamples.d.ts +0 -0
  314. /package/{dist/components → components}/RequestSamples/RequestSamples.stories.d.ts +0 -0
  315. /package/{dist/components → components}/RequestSamples/convertRequestToSample.d.ts +0 -0
  316. /package/{dist/components → components}/RequestSamples/extractCodeSamples.d.ts +0 -0
  317. /package/{dist/components → components}/RequestSamples/index.d.ts +0 -0
  318. /package/{dist/components → components}/RequestSamples/requestSampleConfigs.d.ts +0 -0
  319. /package/{dist/components → components}/ResponseExamples/ResponseExamples.d.ts +0 -0
  320. /package/{dist/components → components}/ResponseExamples/ResponseExamples.spec.d.ts +0 -0
  321. /package/{dist/components → components}/ResponseExamples/ResponseExamples.stories.d.ts +0 -0
  322. /package/{dist/components → components}/TableOfContents/TableOfContents.d.ts +0 -0
  323. /package/{dist/components → components}/TableOfContents/TableOfContents.spec.d.ts +0 -0
  324. /package/{dist/components → components}/TableOfContents/TableOfContents.stories.d.ts +0 -0
  325. /package/{dist/components → components}/TableOfContents/constants.d.ts +0 -0
  326. /package/{dist/components → components}/TableOfContents/index.d.ts +0 -0
  327. /package/{dist/components → components}/TableOfContents/types.d.ts +0 -0
  328. /package/{dist/components → components}/TableOfContents/utils.d.ts +0 -0
  329. /package/{dist/components → components}/TryIt/Auth/APIKeyAuth.d.ts +0 -0
  330. /package/{dist/components → components}/TryIt/Auth/Auth.d.ts +0 -0
  331. /package/{dist/components → components}/TryIt/Auth/AuthTokenInput.d.ts +0 -0
  332. /package/{dist/components → components}/TryIt/Auth/BasicAuth.d.ts +0 -0
  333. /package/{dist/components → components}/TryIt/Auth/BearerAuth.d.ts +0 -0
  334. /package/{dist/components → components}/TryIt/Auth/DigestAuth.d.ts +0 -0
  335. /package/{dist/components → components}/TryIt/Auth/OAuth2Auth.d.ts +0 -0
  336. /package/{dist/components → components}/TryIt/Auth/authentication-utils.d.ts +0 -0
  337. /package/{dist/components → components}/TryIt/Body/BinaryBody.d.ts +0 -0
  338. /package/{dist/components → components}/TryIt/Body/FormDataBody.d.ts +0 -0
  339. /package/{dist/components → components}/TryIt/Body/RequestBody.d.ts +0 -0
  340. /package/{dist/components → components}/TryIt/Body/request-body-utils.d.ts +0 -0
  341. /package/{dist/components → components}/TryIt/Body/useTextRequestBodyState.d.ts +0 -0
  342. /package/{dist/components → components}/TryIt/Mocking/MockingButton.d.ts +0 -0
  343. /package/{dist/components → components}/TryIt/Mocking/mocking-utils.d.ts +0 -0
  344. /package/{dist/components → components}/TryIt/Mocking/useMockingOptions.d.ts +0 -0
  345. /package/{dist/components → components}/TryIt/Parameters/FileUploadParameterEditors.d.ts +0 -0
  346. /package/{dist/components → components}/TryIt/Parameters/OperationParameters.d.ts +0 -0
  347. /package/{dist/components → components}/TryIt/Parameters/ParameterEditor.d.ts +0 -0
  348. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.d.ts +0 -0
  349. /package/{dist/components → components}/TryIt/Parameters/parameter-utils.spec.d.ts +0 -0
  350. /package/{dist/components → components}/TryIt/Parameters/useOperationParameters.d.ts +0 -0
  351. /package/{dist/components → components}/TryIt/Response/ReponseCodeViewer.d.ts +0 -0
  352. /package/{dist/components → components}/TryIt/Response/Response.d.ts +0 -0
  353. /package/{dist/components → components}/TryIt/Response/Response.spec.d.ts +0 -0
  354. /package/{dist/components → components}/TryIt/Response/hooks/useLineCount.d.ts +0 -0
  355. /package/{dist/components → components}/TryIt/Servers/ServerVariables.d.ts +0 -0
  356. /package/{dist/components → components}/TryIt/Servers/ServersDropdown.d.ts +0 -0
  357. /package/{dist/components → components}/TryIt/Servers/VariableEditor.d.ts +0 -0
  358. /package/{dist/components → components}/TryIt/Servers/useServerVariables.d.ts +0 -0
  359. /package/{dist/components → components}/TryIt/TryIt.d.ts +0 -0
  360. /package/{dist/components → components}/TryIt/TryIt.spec.d.ts +0 -0
  361. /package/{dist/components → components}/TryIt/TryIt.stories.d.ts +0 -0
  362. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.d.ts +0 -0
  363. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.spec.d.ts +0 -0
  364. /package/{dist/components → components}/TryIt/TryItWithRequestSamples.stories.d.ts +0 -0
  365. /package/{dist/components → components}/TryIt/build-request.d.ts +0 -0
  366. /package/{dist/components → components}/TryIt/build-request.spec.d.ts +0 -0
  367. /package/{dist/components → components}/TryIt/chosenServer.d.ts +0 -0
  368. /package/{dist/components → components}/TryIt/index.d.ts +0 -0
  369. /package/{dist/constants.d.ts → constants.d.ts} +0 -0
  370. /package/{dist/containers → containers}/MockingProvider.d.ts +0 -0
  371. /package/{dist/context → context}/InlineRefResolver.d.ts +0 -0
  372. /package/{dist/context → context}/InlineRefResolver.spec.d.ts +0 -0
  373. /package/{dist/context → context}/Options.d.ts +0 -0
  374. /package/{dist/context → context}/Persistence.d.ts +0 -0
  375. /package/{dist/context → context}/RouterType.d.ts +0 -0
  376. /package/{dist/core.css → core.css} +0 -0
  377. /package/{dist/hoc → hoc}/utils.d.ts +0 -0
  378. /package/{dist/hoc → hoc}/withMosaicProvider.d.ts +0 -0
  379. /package/{dist/hoc → hoc}/withMosaicProvider.spec.d.ts +0 -0
  380. /package/{dist/hoc → hoc}/withQueryClientProvider.d.ts +0 -0
  381. /package/{dist/hoc → hoc}/withQueryClientProvider.spec.d.ts +0 -0
  382. /package/{dist/hoc → hoc}/withRouter.d.ts +0 -0
  383. /package/{dist/hooks → hooks}/useBundleRefsIntoDocument.d.ts +0 -0
  384. /package/{dist/hooks → hooks}/useFirstRender.d.ts +0 -0
  385. /package/{dist/hooks → hooks}/useIsCompact.d.ts +0 -0
  386. /package/{dist/hooks → hooks}/useParsedData.d.ts +0 -0
  387. /package/{dist/hooks → hooks}/useParsedValue.d.ts +0 -0
  388. /package/{dist/hooks → hooks}/useResponsiveLayout.d.ts +0 -0
  389. /package/{dist/hooks → hooks}/useRouter.d.ts +0 -0
  390. /package/{dist/hooks → hooks}/useUniqueId.d.ts +0 -0
  391. /package/{dist/index.d.ts → index.d.ts} +0 -0
  392. /package/{dist/index.esm.js → index.esm.js} +0 -0
  393. /package/{dist/index.js → index.js} +0 -0
  394. /package/{dist/index.mjs → index.mjs} +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
- };