@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,82 +0,0 @@
1
- import { Box, NodeAnnotation, Panel, PanelProps, Text } from '@stoplight/mosaic';
2
- import { HttpSecurityScheme } from '@stoplight/types';
3
- import React from 'react';
4
-
5
- import { OptionalSecurityMessage } from '../../../constants';
6
- import { useOptionsCtx } from '../../../context/Options';
7
- import { getReadableSecurityNames, getSecurityGroupId, shouldAddKey } from '../../../utils/oas/security';
8
- import { PanelContent } from '../Security/PanelContent';
9
-
10
- interface SecuritySchemesProps {
11
- secSchemes: HttpSecurityScheme[][];
12
- defaultScheme?: string;
13
- defaultCollapsed?: boolean;
14
- parentId: string;
15
- }
16
-
17
- export const SecuritySchemes: React.FC<SecuritySchemesProps> = ({
18
- secSchemes,
19
- defaultScheme,
20
- defaultCollapsed = false,
21
- parentId,
22
- }) => {
23
- const includeOptional = secSchemes.length > 1 && secSchemes.some(schemes => schemes.length === 0);
24
- const { nodeHasChanged } = useOptionsCtx();
25
-
26
- return (
27
- <Panel rounded isCollapsible={defaultCollapsed} data-test="security-row">
28
- <Panel.Titlebar bg="canvas-300">
29
- <Box as="span" role="heading">
30
- Security
31
- </Box>
32
- </Panel.Titlebar>
33
- <Panel.Content p={0}>
34
- {includeOptional && <OptionalMessage />}
35
- {secSchemes
36
- .filter(scheme => scheme.length > 0) // Remove the None scheme from listed display
37
- .map((schemes, i) => {
38
- const secGroupId = getSecurityGroupId(parentId, i);
39
- return (
40
- <Box key={secGroupId} data-test="http-service-security-row">
41
- <NodeAnnotation change={nodeHasChanged?.({ nodeId: secGroupId })} />
42
- <SecurityScheme
43
- schemes={schemes}
44
- defaultIsOpen={defaultScheme ? schemes.length === 1 && schemes[0].key === defaultScheme : i === 0}
45
- isCollapsible={secSchemes.length > 1}
46
- showSchemeKey={shouldAddKey(schemes, secSchemes)}
47
- />
48
- </Box>
49
- );
50
- })}
51
- </Panel.Content>
52
- </Panel>
53
- );
54
- };
55
-
56
- const SecurityScheme: React.FC<
57
- {
58
- schemes: HttpSecurityScheme[];
59
- showSchemeKey?: boolean;
60
- } & Pick<PanelProps, 'defaultIsOpen' | 'isCollapsible'>
61
- > = ({ schemes, defaultIsOpen, isCollapsible, showSchemeKey }) => {
62
- return (
63
- <Panel defaultIsOpen={defaultIsOpen} isCollapsible={isCollapsible} pos="relative">
64
- <Panel.Titlebar>
65
- <Box as="span" role="heading">
66
- {getReadableSecurityNames(schemes, showSchemeKey)}
67
- </Box>
68
- </Panel.Titlebar>
69
- <Panel.Content>
70
- <PanelContent schemes={schemes} />
71
- </Panel.Content>
72
- </Panel>
73
- );
74
- };
75
-
76
- const OptionalMessage: React.FC = () => {
77
- return (
78
- <Box p={2} pl={6} border>
79
- <Text fontSize="base">{OptionalSecurityMessage}</Text>
80
- </Box>
81
- );
82
- };
@@ -1,196 +0,0 @@
1
- import { JsonSchemaViewer } from '@stoplight/json-schema-viewer';
2
- import { Box, Icon, InvertTheme, NodeAnnotation, Panel, Text, Tooltip, useClipboard, VStack } from '@stoplight/mosaic';
3
- import type { INodeVariable, IServer } from '@stoplight/types';
4
- import { JSONSchema7 } from 'json-schema';
5
- import { isEmpty, isNil, omitBy } from 'lodash';
6
- import * as React from 'react';
7
-
8
- import { MockingContext } from '../../../containers/MockingProvider';
9
- import { useOptionsCtx } from '../../../context/Options';
10
- import { isProperUrl } from '../../../utils/guards';
11
- import { getServersToDisplay } from '../../../utils/http-spec/IServer';
12
-
13
- interface ServerInfoProps {
14
- servers: IServer[];
15
- mockUrl?: string;
16
- }
17
-
18
- export const ServerInfo: React.FC<ServerInfoProps> = ({ servers, mockUrl }) => {
19
- const mocking = React.useContext(MockingContext);
20
- const showMocking = !mocking.hideMocking && mockUrl && isProperUrl(mockUrl);
21
- const $mockUrl = showMocking ? mockUrl || mocking.mockUrl : undefined;
22
-
23
- const serversToDisplay = React.useMemo(() => getServersToDisplay(servers, $mockUrl, false), [servers, $mockUrl]);
24
-
25
- const firstServerVariableIndex = React.useMemo(
26
- () => serversToDisplay.findIndex(server => !isEmpty(server.variables)),
27
- [serversToDisplay],
28
- );
29
-
30
- if (!showMocking && serversToDisplay.length === 0) {
31
- return null;
32
- }
33
-
34
- return (
35
- <InvertTheme>
36
- <Panel rounded isCollapsible={false} className="BaseURLContent" w="full" data-test="servers">
37
- <Panel.Titlebar whitespace="nowrap">API Base URL</Panel.Titlebar>
38
- <Panel.Content w="full" className="sl-flex sl-flex-col">
39
- <VStack spacing={1} divider>
40
- {serversToDisplay.map((server, index) => (
41
- <ServerUrl
42
- {...server}
43
- defaultIsOpen={index === firstServerVariableIndex}
44
- hasAnyServerVariables={firstServerVariableIndex !== -1}
45
- key={server.id}
46
- />
47
- ))}
48
- </VStack>
49
- </Panel.Content>
50
- </Panel>
51
- </InvertTheme>
52
- );
53
- };
54
-
55
- const ServerUrl: React.FC<IServer & { hasAnyServerVariables: boolean; defaultIsOpen: boolean }> = ({
56
- id,
57
- description,
58
- url,
59
- variables,
60
- hasAnyServerVariables,
61
- defaultIsOpen,
62
- }) => {
63
- const { nodeHasChanged } = useOptionsCtx();
64
- const { onCopy, hasCopied } = useClipboard(url);
65
- const urlFragments = useSplitUrl(url);
66
- const hasChanged = nodeHasChanged?.({ nodeId: id });
67
- const variablesSchema = useVariablesJSONSchema(variables);
68
- const titlePaddingLeft = hasAnyServerVariables && !variablesSchema ? 4 : 0;
69
-
70
- const handleCopyClick = React.useCallback<React.MouseEventHandler>(
71
- e => {
72
- e.stopPropagation();
73
- onCopy();
74
- },
75
- [onCopy],
76
- );
77
-
78
- return (
79
- <Panel
80
- isCollapsible={!!variablesSchema}
81
- defaultIsOpen={defaultIsOpen}
82
- w="full"
83
- className="ServerInfo"
84
- data-test="server-row"
85
- >
86
- <Panel.Titlebar whitespace="nowrap">
87
- <Text pl={titlePaddingLeft} pr={2} fontWeight="bold">
88
- {description}:
89
- </Text>
90
-
91
- <Tooltip
92
- placement="right"
93
- renderTrigger={() => (
94
- <Text aria-label={description} whitespace="normal" py={2} style={{ wordBreak: 'break-word' }}>
95
- {urlFragments.map(({ kind, value }, i) => (
96
- <Text key={i} fontWeight={kind === 'variable' ? 'semibold' : 'normal'}>
97
- {value}
98
- </Text>
99
- ))}
100
- </Text>
101
- )}
102
- >
103
- {!hasCopied && (
104
- <Box p={1} onClick={handleCopyClick} cursor="pointer">
105
- Copy Server URL <Icon className="sl-ml-1" icon={['fas', 'copy']} />
106
- </Box>
107
- )}
108
- {hasCopied && (
109
- <Box p={1}>
110
- Copied Server URL <Icon className="sl-ml-1" icon={['fas', 'check']} />
111
- </Box>
112
- )}
113
- </Tooltip>
114
-
115
- <NodeAnnotation change={hasChanged} additionalLeftOffset={16} />
116
- </Panel.Titlebar>
117
- {variablesSchema && (
118
- <Panel.Content w="full">
119
- <Box pl={4}>
120
- <JsonSchemaViewer schema={variablesSchema} />
121
- </Box>
122
- </Panel.Content>
123
- )}
124
- </Panel>
125
- );
126
- };
127
-
128
- function useVariablesJSONSchema(variables: Record<string, INodeVariable> | undefined): JSONSchema7 | undefined {
129
- return React.useMemo(() => {
130
- if (isEmpty(variables)) return;
131
-
132
- const propertiesPairs = Object.entries(variables).map(([name, variable]) => [
133
- name,
134
- {
135
- type: 'string',
136
- ...omitBy(
137
- // this is to ensure the consistent order in case http-spec changes it etc.
138
- {
139
- description: variable.description,
140
- enum: variable.enum,
141
- default: variable.default,
142
- },
143
- isNil,
144
- ),
145
- },
146
- ]);
147
-
148
- return {
149
- type: 'object',
150
- properties: Object.fromEntries(propertiesPairs),
151
- };
152
- }, [variables]);
153
- }
154
-
155
- export function useSplitUrl(url: string) {
156
- return React.useMemo(() => {
157
- const curly = /[{}]/g;
158
- const fragments: { kind: 'variable' | 'static'; value: string }[] = [];
159
-
160
- let startOffset = 0;
161
- let curPos = 0;
162
- let match;
163
-
164
- while ((match = curly.exec(url))) {
165
- if (match[0] === '{' || startOffset + 1 === match.index) {
166
- startOffset = match.index;
167
- continue;
168
- }
169
-
170
- if (startOffset !== curPos) {
171
- fragments.push({
172
- kind: 'static',
173
- value: url.slice(curPos, startOffset),
174
- });
175
- }
176
-
177
- const variable = url.slice(startOffset, match.index + 1);
178
-
179
- fragments.push({
180
- kind: 'variable',
181
- value: variable,
182
- });
183
-
184
- curPos = startOffset + variable.length;
185
- }
186
-
187
- if (curPos < url.length) {
188
- fragments.push({
189
- kind: 'static',
190
- value: url.slice(curPos),
191
- });
192
- }
193
-
194
- return fragments;
195
- }, [url]);
196
- }
@@ -1 +0,0 @@
1
- export * from './HttpService';
@@ -1,241 +0,0 @@
1
- import { Provider as MosaicProvider } from '@stoplight/mosaic';
2
- import { render, screen } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import { JSONSchema7 } from 'json-schema';
5
- import * as React from 'react';
6
-
7
- import { ElementsOptionsProvider } from '../../../context/Options';
8
- import * as exampleGenerationUtils from '../../../utils/exampleGeneration/exampleGeneration';
9
- import { chooseOption } from '../../../utils/tests/chooseOption';
10
- import { renderExtensionRenderer } from '../story-renderer-helper';
11
- import { Model } from './Model';
12
-
13
- const generatedExample = '{\n"iamtoobig": "string",\n"name": "string",\n"id": "number",\n"email": "string", \n}';
14
- const exampleSchema: JSONSchema7 = {
15
- type: 'object',
16
- description: 'example schema description',
17
- properties: {
18
- propA: {
19
- type: 'string',
20
- enum: ['valueA'],
21
- // @ts-ignore
22
- 'x-enum-descriptions': {
23
- valueA: 'description of valueA',
24
- },
25
- },
26
- },
27
- };
28
-
29
- const exampleStringSchema: JSONSchema7 = {
30
- type: 'string',
31
- description: 'example schema description that should only show once :)',
32
- };
33
-
34
- describe('Model', () => {
35
- it('displays examples', async () => {
36
- const { container } = render(<Model data={exampleSchema} />);
37
-
38
- expect(screen.getByRole('heading', { name: /example/i })).toBeInTheDocument();
39
- expect(container).toHaveTextContent('"propA": "valueA"');
40
- });
41
-
42
- it('does not show examples with more lines than supported, by default', async () => {
43
- jest.spyOn(exampleGenerationUtils, 'exceedsSize').mockImplementation((example: string, size: number = 2) => {
44
- return example.split(/\r\n|\r|\n/).length > size;
45
- });
46
- jest
47
- .spyOn(exampleGenerationUtils, 'generateExamplesFromJsonSchema')
48
- .mockReturnValue([{ label: '', data: generatedExample }]);
49
-
50
- render(<Model data={exampleSchema} />);
51
-
52
- await screen.findByText('Large examples are not rendered by default.');
53
- jest.restoreAllMocks();
54
- });
55
-
56
- it('shows examples bigger than supported after clicking "Load Examples" button', async () => {
57
- jest.spyOn(exampleGenerationUtils, 'exceedsSize').mockImplementation((example: string, size: number = 2) => {
58
- return example.split(/\r\n|\r|\n/).length > size;
59
- });
60
- jest
61
- .spyOn(exampleGenerationUtils, 'generateExamplesFromJsonSchema')
62
- .mockReturnValue([{ label: '', data: generatedExample }]);
63
-
64
- render(<Model data={exampleSchema} />);
65
-
66
- const button = screen.getByRole('button', { name: 'load-example' });
67
- userEvent.click(button);
68
-
69
- expect(await screen.findByText('"iamtoobig"')).toBeInTheDocument();
70
- jest.restoreAllMocks();
71
- });
72
-
73
- it('uses examples defined in the schema', async () => {
74
- const examples = {
75
- ...exampleSchema,
76
- examples: [
77
- {
78
- propA: 'first',
79
- },
80
- {
81
- propA: 'second',
82
- },
83
- ],
84
- };
85
- const { container } = render(
86
- <MosaicProvider>
87
- <Model data={examples} />
88
- </MosaicProvider>,
89
- );
90
-
91
- const menuTrigger = screen.getByLabelText('Example');
92
- expect(menuTrigger).toHaveTextContent('Example: default');
93
- expect(container).toHaveTextContent('"propA": "first"');
94
-
95
- chooseOption(menuTrigger, 'example-1');
96
- expect(container).toHaveTextContent('"propA": "second"');
97
- });
98
-
99
- it('uses x-examples defined in the schema', async () => {
100
- const examples = {
101
- ...exampleSchema,
102
- 'x-examples': {
103
- firstTitle: {
104
- value: {
105
- propA: 'first',
106
- },
107
- },
108
- secondTitle: {
109
- value: {
110
- propA: 'second',
111
- },
112
- },
113
- },
114
- };
115
- const { container } = render(
116
- <MosaicProvider>
117
- <Model data={examples} />
118
- </MosaicProvider>,
119
- );
120
-
121
- const menuTrigger = screen.getByLabelText('Example');
122
- expect(menuTrigger).toHaveTextContent('Example: firstTitle');
123
- expect(container).toHaveTextContent('"propA": "first"');
124
-
125
- chooseOption(menuTrigger, 'secondTitle');
126
- expect(container).toHaveTextContent('"propA": "second"');
127
- });
128
-
129
- it('displays description at top of doc for objects', async () => {
130
- render(<Model data={exampleSchema} />);
131
- const description = screen.queryAllByText('example schema description');
132
- const textboxDescription = screen.getByRole('textbox');
133
-
134
- expect(description).toHaveLength(1);
135
- expect(textboxDescription).toHaveTextContent('example schema description');
136
- });
137
-
138
- it('does not display description at top of doc for non-objects', async () => {
139
- render(<Model data={exampleStringSchema} />);
140
- const description = screen.queryByRole('textbox');
141
-
142
- expect(description).not.toBeInTheDocument();
143
- });
144
-
145
- describe('export button', () => {
146
- it('should render correctly', () => {
147
- const wrapper = render(
148
- <MosaicProvider>
149
- <Model
150
- data={exampleSchema}
151
- exportProps={{ original: { onPress: jest.fn() }, bundled: { onPress: jest.fn() } }}
152
- />
153
- ,
154
- </MosaicProvider>,
155
- );
156
-
157
- const exportButton = wrapper.getByRole('button', { name: 'Export' });
158
- expect(exportButton).toBeInTheDocument();
159
-
160
- userEvent.click(exportButton);
161
- expect(wrapper.getByRole('menuitem', { name: 'Original' })).toBeInTheDocument();
162
- expect(wrapper.getByRole('menuitem', { name: 'Bundled References' })).toBeInTheDocument();
163
- });
164
-
165
- it('should not render if hideExport is true', () => {
166
- const wrapper = render(
167
- <MosaicProvider>
168
- <Model
169
- data={exampleSchema}
170
- exportProps={{ original: { onPress: jest.fn() }, bundled: { onPress: jest.fn() } }}
171
- layoutOptions={{ hideExport: true }}
172
- />
173
- </MosaicProvider>,
174
- );
175
-
176
- const exportButton = wrapper.queryByRole('button', { name: 'Export' });
177
- expect(exportButton).not.toBeInTheDocument();
178
- });
179
-
180
- it('should not render if no exportProps are present', () => {
181
- const wrapper = render(
182
- <MosaicProvider>
183
- <Model data={exampleSchema} />
184
- </MosaicProvider>,
185
- );
186
-
187
- const exportButton = wrapper.queryByRole('button', { name: 'Export' });
188
- expect(exportButton).not.toBeInTheDocument();
189
- });
190
- });
191
-
192
- describe('Vendor Extensions', () => {
193
- it('should call rendorExtensionAddon', async () => {
194
- const vendorExtensionRenderer = jest.fn();
195
- const { unmount } = render(
196
- <ElementsOptionsProvider renderExtensionAddon={vendorExtensionRenderer}>
197
- <Model data={exampleSchema} />
198
- </ElementsOptionsProvider>,
199
- );
200
-
201
- expect(vendorExtensionRenderer).toHaveBeenLastCalledWith(
202
- expect.objectContaining({
203
- nestingLevel: 1,
204
- vendorExtensions: {
205
- 'x-enum-descriptions': expect.objectContaining({ valueA: 'description of valueA' }),
206
- },
207
- }),
208
- );
209
-
210
- unmount();
211
- });
212
-
213
- it('should display vendor extensions', async () => {
214
- const vendorExtensionRenderer = jest.fn().mockImplementation(props => {
215
- return renderExtensionRenderer(props);
216
- });
217
-
218
- const { unmount } = render(
219
- <ElementsOptionsProvider renderExtensionAddon={vendorExtensionRenderer}>
220
- <Model
221
- data={exampleSchema}
222
- layoutOptions={{
223
- hideTryItPanel: true,
224
- hideSecurityInfo: true,
225
- hideServerInfo: true,
226
- hideExport: true,
227
- hideTryIt: true,
228
- }}
229
- />
230
- </ElementsOptionsProvider>,
231
- );
232
-
233
- expect(screen.queryByRole('columnheader', { name: /Enum value/i })).toBeInTheDocument();
234
- expect(screen.queryByRole('columnheader', { name: /Description/i })).toBeInTheDocument();
235
-
236
- expect(screen.queryByText('description of valueA')).toBeInTheDocument();
237
-
238
- unmount();
239
- });
240
- });
241
- });
@@ -1,16 +0,0 @@
1
- import { JSONSchema7 } from 'json-schema';
2
-
3
- import model from '../../../__fixtures__/schemas/contact.json';
4
- import { createStoriesForDocsComponent } from '../story-helper';
5
- import { renderExtensionRenderer } from '../story-renderer-helper';
6
- import { Model } from './Model';
7
-
8
- const { meta, createHoistedStory } = createStoriesForDocsComponent(Model);
9
-
10
- export default meta;
11
-
12
- export const Story = createHoistedStory({
13
- data: model as JSONSchema7,
14
- renderExtensionAddon: renderExtensionRenderer,
15
- layoutOptions: { compact: 600 },
16
- });