@stoplight/elements-core 9.0.12-beta-0.1 → 9.0.13

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