@stoplight/elements-core 9.0.12-beta-0.3 → 9.0.12-beta-0.4

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