@mintlify/msft-sdk 1.1.23 → 1.1.25

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 (356) hide show
  1. package/dist/api-playground/ApiPlayground/Request/BodySection.js +65 -0
  2. package/dist/api-playground/ApiPlayground/Request/BodySection.js.map +1 -0
  3. package/dist/api-playground/ApiPlayground/Request/ParameterSection.js +33 -0
  4. package/dist/api-playground/ApiPlayground/Request/ParameterSection.js.map +1 -0
  5. package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js +202 -0
  6. package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js.map +1 -0
  7. package/dist/api-playground/ApiPlayground/Request/SecuritySection.js +147 -0
  8. package/dist/api-playground/ApiPlayground/Request/SecuritySection.js.map +1 -0
  9. package/dist/api-playground/ApiPlayground/Request/ServerSection.js +31 -0
  10. package/dist/api-playground/ApiPlayground/Request/ServerSection.js.map +1 -0
  11. package/dist/api-playground/ApiPlayground/Request/index.js +44 -0
  12. package/dist/api-playground/ApiPlayground/Request/index.js.map +1 -0
  13. package/dist/api-playground/ApiPlayground/Request/inputs/ArrayInput.js +94 -0
  14. package/dist/api-playground/ApiPlayground/Request/inputs/ArrayInput.js.map +1 -0
  15. package/dist/api-playground/ApiPlayground/Request/inputs/DifferentiatedInput.js +91 -0
  16. package/dist/api-playground/ApiPlayground/Request/inputs/DifferentiatedInput.js.map +1 -0
  17. package/dist/api-playground/ApiPlayground/Request/inputs/FileInput.js +63 -0
  18. package/dist/api-playground/ApiPlayground/Request/inputs/FileInput.js.map +1 -0
  19. package/dist/api-playground/ApiPlayground/Request/inputs/NullInput.js +34 -0
  20. package/dist/api-playground/ApiPlayground/Request/inputs/NullInput.js.map +1 -0
  21. package/dist/api-playground/ApiPlayground/Request/inputs/NumberInput.js +62 -0
  22. package/dist/api-playground/ApiPlayground/Request/inputs/NumberInput.js.map +1 -0
  23. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectChildren.js +110 -0
  24. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectChildren.js.map +1 -0
  25. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectInput.js +88 -0
  26. package/dist/api-playground/ApiPlayground/Request/inputs/ObjectInput.js.map +1 -0
  27. package/dist/api-playground/ApiPlayground/Request/inputs/RecursiveInput.js +62 -0
  28. package/dist/api-playground/ApiPlayground/Request/inputs/RecursiveInput.js.map +1 -0
  29. package/dist/api-playground/ApiPlayground/Request/inputs/SelectInput.js +55 -0
  30. package/dist/api-playground/ApiPlayground/Request/inputs/SelectInput.js.map +1 -0
  31. package/dist/api-playground/ApiPlayground/Request/inputs/StringInput.js +68 -0
  32. package/dist/api-playground/ApiPlayground/Request/inputs/StringInput.js.map +1 -0
  33. package/dist/api-playground/ApiPlayground/Request/inputs/TextInput.js +45 -0
  34. package/dist/api-playground/ApiPlayground/Request/inputs/TextInput.js.map +1 -0
  35. package/dist/api-playground/ApiPlayground/Response/CopyFileToClipboardButton.js +7 -0
  36. package/dist/api-playground/ApiPlayground/Response/CopyFileToClipboardButton.js.map +1 -0
  37. package/dist/api-playground/ApiPlayground/Response/DownloadFileButton.js +45 -0
  38. package/dist/api-playground/ApiPlayground/Response/DownloadFileButton.js.map +1 -0
  39. package/dist/api-playground/ApiPlayground/Response/ResponseBody/CodeResponseContent.js +54 -0
  40. package/dist/api-playground/ApiPlayground/Response/ResponseBody/CodeResponseContent.js.map +1 -0
  41. package/dist/api-playground/ApiPlayground/Response/ResponseBody/index.js +15 -0
  42. package/dist/api-playground/ApiPlayground/Response/ResponseBody/index.js.map +1 -0
  43. package/dist/api-playground/ApiPlayground/Response/ResponseError.js +14 -0
  44. package/dist/api-playground/ApiPlayground/Response/ResponseError.js.map +1 -0
  45. package/dist/api-playground/ApiPlayground/Response/ResponseHeaders.js +12 -0
  46. package/dist/api-playground/ApiPlayground/Response/ResponseHeaders.js.map +1 -0
  47. package/dist/api-playground/ApiPlayground/Response/ResponsePlaceholder.js +20 -0
  48. package/dist/api-playground/ApiPlayground/Response/ResponsePlaceholder.js.map +1 -0
  49. package/dist/api-playground/ApiPlayground/Response/ResponseTable.js +21 -0
  50. package/dist/api-playground/ApiPlayground/Response/ResponseTable.js.map +1 -0
  51. package/dist/api-playground/ApiPlayground/Response/ResponseTopbar.js +93 -0
  52. package/dist/api-playground/ApiPlayground/Response/ResponseTopbar.js.map +1 -0
  53. package/dist/api-playground/ApiPlayground/Response/index.js +80 -0
  54. package/dist/api-playground/ApiPlayground/Response/index.js.map +1 -0
  55. package/dist/api-playground/ApiPlayground/components/AdditionalItemButton.js +24 -0
  56. package/dist/api-playground/ApiPlayground/components/AdditionalItemButton.js.map +1 -0
  57. package/dist/api-playground/ApiPlayground/components/AdditionalPropertyButton.js +45 -0
  58. package/dist/api-playground/ApiPlayground/components/AdditionalPropertyButton.js.map +1 -0
  59. package/dist/api-playground/ApiPlayground/components/ArrayCount.js +18 -0
  60. package/dist/api-playground/ApiPlayground/components/ArrayCount.js.map +1 -0
  61. package/dist/api-playground/ApiPlayground/components/BasePathSelector.js +40 -0
  62. package/dist/api-playground/ApiPlayground/components/BasePathSelector.js.map +1 -0
  63. package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js +43 -0
  64. package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js.map +1 -0
  65. package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js +44 -0
  66. package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js.map +1 -0
  67. package/dist/api-playground/ApiPlayground/components/EndpointsMenuSearch.js +39 -0
  68. package/dist/api-playground/ApiPlayground/components/EndpointsMenuSearch.js.map +1 -0
  69. package/dist/api-playground/ApiPlayground/components/InputContainer.js +129 -0
  70. package/dist/api-playground/ApiPlayground/components/InputContainer.js.map +1 -0
  71. package/dist/api-playground/ApiPlayground/components/InputSectionContainer.js +60 -0
  72. package/dist/api-playground/ApiPlayground/components/InputSectionContainer.js.map +1 -0
  73. package/dist/api-playground/ApiPlayground/components/ModalHeader.js +16 -0
  74. package/dist/api-playground/ApiPlayground/components/ModalHeader.js.map +1 -0
  75. package/dist/api-playground/ApiPlayground/components/ObjectExpandButton.js +29 -0
  76. package/dist/api-playground/ApiPlayground/components/ObjectExpandButton.js.map +1 -0
  77. package/dist/api-playground/ApiPlayground/components/ParamFieldWrapper.js +20 -0
  78. package/dist/api-playground/ApiPlayground/components/ParamFieldWrapper.js.map +1 -0
  79. package/dist/api-playground/ApiPlayground/components/PathHeader.js +163 -0
  80. package/dist/api-playground/ApiPlayground/components/PathHeader.js.map +1 -0
  81. package/dist/api-playground/ApiPlayground/components/PlaygroundModalWrapper.js +59 -0
  82. package/dist/api-playground/ApiPlayground/components/PlaygroundModalWrapper.js.map +1 -0
  83. package/dist/api-playground/ApiPlayground/components/PrettyPath.js +50 -0
  84. package/dist/api-playground/ApiPlayground/components/PrettyPath.js.map +1 -0
  85. package/dist/api-playground/ApiPlayground/components/SendPill.js +40 -0
  86. package/dist/api-playground/ApiPlayground/components/SendPill.js.map +1 -0
  87. package/dist/api-playground/ApiPlayground/components/TrashButton.js +27 -0
  88. package/dist/api-playground/ApiPlayground/components/TrashButton.js.map +1 -0
  89. package/dist/api-playground/ApiPlayground/components/TypeDropdown.js +53 -0
  90. package/dist/api-playground/ApiPlayground/components/TypeDropdown.js.map +1 -0
  91. package/dist/api-playground/ApiPlayground/index.js +68 -0
  92. package/dist/api-playground/ApiPlayground/index.js.map +1 -0
  93. package/dist/api-playground/EndpointFields/ParamFields/ExampleDescription.js +51 -0
  94. package/dist/api-playground/EndpointFields/ParamFields/ExampleDescription.js.map +1 -0
  95. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/Enum.js +20 -0
  96. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/Enum.js.map +1 -0
  97. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/NumberMetadata.js +19 -0
  98. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/NumberMetadata.js.map +1 -0
  99. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/StringMetadata.js +29 -0
  100. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/StringMetadata.js.map +1 -0
  101. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/index.js +6 -0
  102. package/dist/api-playground/EndpointFields/ParamFields/PrimitiveParamField/index.js.map +1 -0
  103. package/dist/api-playground/EndpointFields/ParamFields/RecursiveParamField.js +13 -0
  104. package/dist/api-playground/EndpointFields/ParamFields/RecursiveParamField.js.map +1 -0
  105. package/dist/api-playground/EndpointFields/components/Description.js +13 -0
  106. package/dist/api-playground/EndpointFields/components/Description.js.map +1 -0
  107. package/dist/api-playground/EndpointFields/components/OneOfDropdown.js +20 -0
  108. package/dist/api-playground/EndpointFields/components/OneOfDropdown.js.map +1 -0
  109. package/dist/api-playground/EndpointFields/components/OptionDropdown.js +36 -0
  110. package/dist/api-playground/EndpointFields/components/OptionDropdown.js.map +1 -0
  111. package/dist/api-playground/EndpointFields/components/SectionHeading.js +44 -0
  112. package/dist/api-playground/EndpointFields/components/SectionHeading.js.map +1 -0
  113. package/dist/api-playground/EndpointFields/index.js +7 -0
  114. package/dist/api-playground/EndpointFields/index.js.map +1 -0
  115. package/dist/api-playground-2/Api.js +13 -0
  116. package/dist/api-playground-2/Api.js.map +1 -0
  117. package/dist/api-playground-2/ApiExamples.js +19 -18
  118. package/dist/api-playground-2/ApiExamples.js.map +1 -1
  119. package/dist/api-playground-2/ApiFields.js +253 -0
  120. package/dist/api-playground-2/ApiFields.js.map +1 -0
  121. package/dist/api-playground-2/EndpointHeader.js +52 -0
  122. package/dist/api-playground-2/EndpointHeader.js.map +1 -0
  123. package/dist/api-playground-2/OperationPage.js +101 -0
  124. package/dist/api-playground-2/OperationPage.js.map +1 -0
  125. package/dist/api-playground-2/Playground.js +136 -0
  126. package/dist/api-playground-2/Playground.js.map +1 -0
  127. package/dist/api-playground-2/SchemaPage.js +14 -0
  128. package/dist/api-playground-2/SchemaPage.js.map +1 -0
  129. package/dist/api-playground-2/components/EndpointFields/EndpointSecurity.js +88 -0
  130. package/dist/api-playground-2/components/EndpointFields/EndpointSecurity.js.map +1 -0
  131. package/dist/api-playground-2/components/EndpointFields/fields/Enum.js +16 -0
  132. package/dist/api-playground-2/components/EndpointFields/fields/Enum.js.map +1 -0
  133. package/dist/api-playground-2/components/EndpointFields/fields/NumberMetadata.js +21 -0
  134. package/dist/api-playground-2/components/EndpointFields/fields/NumberMetadata.js.map +1 -0
  135. package/dist/api-playground-2/components/EndpointFields/fields/PrimitiveParamField.js +57 -0
  136. package/dist/api-playground-2/components/EndpointFields/fields/PrimitiveParamField.js.map +1 -0
  137. package/dist/api-playground-2/components/EndpointFields/fields/SimpleArrayParamField.js +90 -0
  138. package/dist/api-playground-2/components/EndpointFields/fields/SimpleArrayParamField.js.map +1 -0
  139. package/dist/api-playground-2/components/EndpointFields/fields/SimpleObjectParamField.js +122 -0
  140. package/dist/api-playground-2/components/EndpointFields/fields/SimpleObjectParamField.js.map +1 -0
  141. package/dist/api-playground-2/components/EndpointFields/fields/SimplePrimitiveParamField.js +75 -0
  142. package/dist/api-playground-2/components/EndpointFields/fields/SimplePrimitiveParamField.js.map +1 -0
  143. package/dist/api-playground-2/components/EndpointFields/fields/SimpleSchemaField.js +253 -0
  144. package/dist/api-playground-2/components/EndpointFields/fields/SimpleSchemaField.js.map +1 -0
  145. package/dist/api-playground-2/components/EndpointFields/fields/StringMetadata.js +28 -0
  146. package/dist/api-playground-2/components/EndpointFields/fields/StringMetadata.js.map +1 -0
  147. package/dist/api-playground-2/components/Example/GeneratedRequestExample.js +101 -114
  148. package/dist/api-playground-2/components/Example/GeneratedRequestExample.js.map +1 -1
  149. package/dist/api-playground-2/components/Request/BodySection.js +41 -0
  150. package/dist/api-playground-2/components/Request/BodySection.js.map +1 -0
  151. package/dist/api-playground-2/components/Request/InputSectionContainer.js +66 -0
  152. package/dist/api-playground-2/components/Request/InputSectionContainer.js.map +1 -0
  153. package/dist/api-playground-2/components/Request/ParameterSection.js +36 -0
  154. package/dist/api-playground-2/components/Request/ParameterSection.js.map +1 -0
  155. package/dist/api-playground-2/components/Request/SecuritySection.js +55 -0
  156. package/dist/api-playground-2/components/Request/SecuritySection.js.map +1 -0
  157. package/dist/api-playground-2/components/Request/ServerSection.js +33 -0
  158. package/dist/api-playground-2/components/Request/ServerSection.js.map +1 -0
  159. package/dist/api-playground-2/components/Request/inputs/ArrayInput.js +55 -0
  160. package/dist/api-playground-2/components/Request/inputs/ArrayInput.js.map +1 -0
  161. package/dist/api-playground-2/components/Request/inputs/DifferentiatedInput.js +48 -0
  162. package/dist/api-playground-2/components/Request/inputs/DifferentiatedInput.js.map +1 -0
  163. package/dist/api-playground-2/components/Request/inputs/FileInput.js +43 -0
  164. package/dist/api-playground-2/components/Request/inputs/FileInput.js.map +1 -0
  165. package/dist/api-playground-2/components/Request/inputs/InputContainer.js +127 -0
  166. package/dist/api-playground-2/components/Request/inputs/InputContainer.js.map +1 -0
  167. package/dist/api-playground-2/components/Request/inputs/NullInput.js +15 -0
  168. package/dist/api-playground-2/components/Request/inputs/NullInput.js.map +1 -0
  169. package/dist/api-playground-2/components/Request/inputs/NumberInput.js +46 -0
  170. package/dist/api-playground-2/components/Request/inputs/NumberInput.js.map +1 -0
  171. package/dist/api-playground-2/components/Request/inputs/ObjectInput.js +104 -0
  172. package/dist/api-playground-2/components/Request/inputs/ObjectInput.js.map +1 -0
  173. package/dist/api-playground-2/components/Request/inputs/OneOfInput.js +77 -0
  174. package/dist/api-playground-2/components/Request/inputs/OneOfInput.js.map +1 -0
  175. package/dist/api-playground-2/components/Request/inputs/SelectInput.js +54 -0
  176. package/dist/api-playground-2/components/Request/inputs/SelectInput.js.map +1 -0
  177. package/dist/api-playground-2/components/Request/inputs/StringInput.js +44 -0
  178. package/dist/api-playground-2/components/Request/inputs/StringInput.js.map +1 -0
  179. package/dist/api-playground-2/components/Request/inputs/TextInput.js +29 -0
  180. package/dist/api-playground-2/components/Request/inputs/TextInput.js.map +1 -0
  181. package/dist/api-playground-2/components/TypeDropdown.js +48 -0
  182. package/dist/api-playground-2/components/TypeDropdown.js.map +1 -0
  183. package/dist/api-playground-2/constants/index.js +15 -4
  184. package/dist/api-playground-2/constants/index.js.map +1 -1
  185. package/dist/api-playground-2/contexts/ApiPlaygroundContext.js +11 -0
  186. package/dist/api-playground-2/contexts/ApiPlaygroundContext.js.map +1 -0
  187. package/dist/api-playground-2/generators/generateInteractiveCodeSample.js +6 -6
  188. package/dist/api-playground-2/generators/generateInteractiveCodeSample.js.map +1 -1
  189. package/dist/api-playground-2/generators/generateSnippet.js +187 -36
  190. package/dist/api-playground-2/generators/generateSnippet.js.map +1 -1
  191. package/dist/api-playground-2/hooks/useCopyPathWithInputs.js +14 -0
  192. package/dist/api-playground-2/hooks/useCopyPathWithInputs.js.map +1 -0
  193. package/dist/api-playground-2/hooks/useInitializeInputs.js +101 -0
  194. package/dist/api-playground-2/hooks/useInitializeInputs.js.map +1 -0
  195. package/dist/api-playground-2/hooks/useSendPlaygroundRequest.js +156 -0
  196. package/dist/api-playground-2/hooks/useSendPlaygroundRequest.js.map +1 -0
  197. package/dist/api-playground-2/schemaGraph/addApiReferenceDataFromMdxAndDocsConfig.js +57 -0
  198. package/dist/api-playground-2/schemaGraph/addApiReferenceDataFromMdxAndDocsConfig.js.map +1 -0
  199. package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js +41 -0
  200. package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js.map +1 -0
  201. package/dist/api-playground-2/schemaGraph/errors.js +19 -0
  202. package/dist/api-playground-2/schemaGraph/errors.js.map +1 -0
  203. package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js +26 -0
  204. package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js.map +1 -0
  205. package/dist/api-playground-2/schemaGraph/getDocumentProperties.js +58 -0
  206. package/dist/api-playground-2/schemaGraph/getDocumentProperties.js.map +1 -0
  207. package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js +77 -0
  208. package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js.map +1 -0
  209. package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js +16 -0
  210. package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js.map +1 -0
  211. package/dist/api-playground-2/schemaGraph/processExamples.js +118 -8
  212. package/dist/api-playground-2/schemaGraph/processExamples.js.map +1 -1
  213. package/dist/api-playground-2/schemaGraph/processSecurityOptions.js +107 -0
  214. package/dist/api-playground-2/schemaGraph/processSecurityOptions.js.map +1 -0
  215. package/dist/api-playground-2/schemaGraph/reduceCompositions.js +283 -0
  216. package/dist/api-playground-2/schemaGraph/reduceCompositions.js.map +1 -0
  217. package/dist/api-playground-2/schemaGraph/resolveGraphNode.js +61 -0
  218. package/dist/api-playground-2/schemaGraph/resolveGraphNode.js.map +1 -0
  219. package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js +149 -0
  220. package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js.map +1 -0
  221. package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js +33 -0
  222. package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js.map +1 -0
  223. package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js +35 -0
  224. package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js.map +1 -0
  225. package/dist/api-playground-2/schemaGraph/utils.js +243 -45
  226. package/dist/api-playground-2/schemaGraph/utils.js.map +1 -1
  227. package/dist/api-playground-2/types/index.js +118 -0
  228. package/dist/api-playground-2/types/index.js.map +1 -0
  229. package/dist/common/guards.js +32 -6
  230. package/dist/common/guards.js.map +1 -1
  231. package/dist/common/parseApiTargetFromMetadata.js +24 -0
  232. package/dist/common/parseApiTargetFromMetadata.js.map +1 -0
  233. package/dist/common/parseOpenApiString.js +42 -0
  234. package/dist/common/parseOpenApiString.js.map +1 -0
  235. package/dist/common/potentiallyParseOpenApiString.js +25 -0
  236. package/dist/common/potentiallyParseOpenApiString.js.map +1 -0
  237. package/dist/common/replaceSlashIndex.js +7 -0
  238. package/dist/common/replaceSlashIndex.js.map +1 -0
  239. package/dist/common/slugToTitle.js +11 -0
  240. package/dist/common/slugToTitle.js.map +1 -0
  241. package/dist/components/Api/ApiReferenceProvider.js +6 -15
  242. package/dist/components/Api/ApiReferenceProvider.js.map +1 -1
  243. package/dist/components/Api/Expandable.js +119 -0
  244. package/dist/components/Api/Expandable.js.map +1 -0
  245. package/dist/components/Api/Markdown.js +66 -0
  246. package/dist/components/Api/Markdown.js.map +1 -0
  247. package/dist/components/Api/Param.js +191 -0
  248. package/dist/components/Api/Param.js.map +1 -0
  249. package/dist/components/content-components/code-block.js +68 -61
  250. package/dist/components/content-components/code-block.js.map +1 -1
  251. package/dist/components/content-components/code-group.js +36 -25
  252. package/dist/components/content-components/code-group.js.map +1 -1
  253. package/dist/components/content-components/getNodeText.js +5 -0
  254. package/dist/components/content-components/getNodeText.js.map +1 -0
  255. package/dist/components/nav-tree/index.js +135 -109
  256. package/dist/components/nav-tree/index.js.map +1 -1
  257. package/dist/constants/index.js +5 -0
  258. package/dist/constants/index.js.map +1 -0
  259. package/dist/constants/zIndex.js +7 -0
  260. package/dist/constants/zIndex.js.map +1 -0
  261. package/dist/contexts/ApiPlaygroundInputsContext.js +18 -0
  262. package/dist/contexts/ApiPlaygroundInputsContext.js.map +1 -0
  263. package/dist/contexts/ConfigContext.js +60 -12
  264. package/dist/contexts/ConfigContext.js.map +1 -1
  265. package/dist/contexts/EndpointLocationContext.js +18 -0
  266. package/dist/contexts/EndpointLocationContext.js.map +1 -0
  267. package/dist/contexts/MDXContentContext.js +18 -0
  268. package/dist/contexts/MDXContentContext.js.map +1 -0
  269. package/dist/env.js +6 -1
  270. package/dist/env.js.map +1 -1
  271. package/dist/hooks/useApiPlaygroundInputs.js +7 -0
  272. package/dist/hooks/useApiPlaygroundInputs.js.map +1 -0
  273. package/dist/hooks/useApiPlaygroundPrefillExamples.js +40 -0
  274. package/dist/hooks/useApiPlaygroundPrefillExamples.js.map +1 -0
  275. package/dist/hooks/useBaseUrlOptions.js +19 -0
  276. package/dist/hooks/useBaseUrlOptions.js.map +1 -0
  277. package/dist/hooks/useCheckHash.js +18 -0
  278. package/dist/hooks/useCheckHash.js.map +1 -0
  279. package/dist/hooks/useComponentSchemas.js +10 -0
  280. package/dist/hooks/useComponentSchemas.js.map +1 -0
  281. package/dist/hooks/useEndpoint.js +3 -3
  282. package/dist/hooks/useExpandableMemory.js +46 -0
  283. package/dist/hooks/useExpandableMemory.js.map +1 -0
  284. package/dist/hooks/useGenerateNextAdditionalProperties.js +12 -0
  285. package/dist/hooks/useGenerateNextAdditionalProperties.js.map +1 -0
  286. package/dist/hooks/useGenerateNextItems.js +12 -0
  287. package/dist/hooks/useGenerateNextItems.js.map +1 -0
  288. package/dist/hooks/useGenerateNextProperties.js +12 -0
  289. package/dist/hooks/useGenerateNextProperties.js.map +1 -0
  290. package/dist/hooks/useKeyboardShortcut.js +26 -0
  291. package/dist/hooks/useKeyboardShortcut.js.map +1 -0
  292. package/dist/hooks/useMDXContent.js +7 -0
  293. package/dist/hooks/useMDXContent.js.map +1 -0
  294. package/dist/hooks/useMDXContentController/useApiPlaygroundInputs.js +10 -0
  295. package/dist/hooks/useMDXContentController/useApiPlaygroundInputs.js.map +1 -0
  296. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiBaseIndexCallback.js +16 -0
  297. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiBaseIndexCallback.js.map +1 -0
  298. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiPlaygroundInputsCallback.js +16 -0
  299. package/dist/hooks/useMDXContentController/useMDXContentCallbacks/useSetApiPlaygroundInputsCallback.js.map +1 -0
  300. package/dist/hooks/usePlaygroundSchemaOptions.js +43 -0
  301. package/dist/hooks/usePlaygroundSchemaOptions.js.map +1 -0
  302. package/dist/hooks/usePrefilledInputs/index.js +66 -0
  303. package/dist/hooks/usePrefilledInputs/index.js.map +1 -0
  304. package/dist/hooks/usePrefilledInputs/storedServerVariables.js +30 -0
  305. package/dist/hooks/usePrefilledInputs/storedServerVariables.js.map +1 -0
  306. package/dist/hooks/useSecurityOption.js +11 -0
  307. package/dist/hooks/useSecurityOption.js.map +1 -0
  308. package/dist/hooks/useSendPlaygroundRequest.js +146 -15
  309. package/dist/hooks/useSendPlaygroundRequest.js.map +1 -1
  310. package/dist/hooks/useSetDefaultValue.js +64 -0
  311. package/dist/hooks/useSetDefaultValue.js.map +1 -0
  312. package/dist/index.d.ts +404 -7
  313. package/dist/index.js +159 -112
  314. package/dist/index.js.map +1 -1
  315. package/dist/openapi/filterEnums.js +21 -0
  316. package/dist/openapi/filterEnums.js.map +1 -0
  317. package/dist/openapi/generateNextAdditionalProperties.js +8 -0
  318. package/dist/openapi/generateNextAdditionalProperties.js.map +1 -0
  319. package/dist/openapi/generateNextItems.js +8 -0
  320. package/dist/openapi/generateNextItems.js.map +1 -0
  321. package/dist/openapi/generateNextProperties.js +24 -0
  322. package/dist/openapi/generateNextProperties.js.map +1 -0
  323. package/dist/openapi/generateOptionLabels.js +21 -0
  324. package/dist/openapi/generateOptionLabels.js.map +1 -0
  325. package/dist/openapi/generateSimpleLabels.js +5 -0
  326. package/dist/openapi/generateSimpleLabels.js.map +1 -0
  327. package/dist/openapi/generateTypeStringFromSchema.js +34 -0
  328. package/dist/openapi/generateTypeStringFromSchema.js.map +1 -0
  329. package/dist/openapi/getAuthFilteredSchemaArray.js +19 -0
  330. package/dist/openapi/getAuthFilteredSchemaArray.js.map +1 -0
  331. package/dist/paths/isEqualIgnoringLeadingSlash.js +22 -0
  332. package/dist/paths/isEqualIgnoringLeadingSlash.js.map +1 -0
  333. package/dist/paths/optionallyRemoveLeadingSlash.js +7 -0
  334. package/dist/paths/optionallyRemoveLeadingSlash.js.map +1 -0
  335. package/dist/paths/optionallyRemoveTrailingSlash.js +7 -0
  336. package/dist/paths/optionallyRemoveTrailingSlash.js.map +1 -0
  337. package/dist/styles.css +1 -1
  338. package/dist/utils/api-playground/defaults.js +16 -0
  339. package/dist/utils/api-playground/defaults.js.map +1 -0
  340. package/dist/utils/api-playground/paramFieldDefaults.js +11 -0
  341. package/dist/utils/api-playground/paramFieldDefaults.js.map +1 -0
  342. package/dist/utils/api-reference/getFilteredSecurityOptions.js +5 -0
  343. package/dist/utils/api-reference/getFilteredSecurityOptions.js.map +1 -0
  344. package/dist/utils/api-reference/getNextPropertiesByType.js +6 -0
  345. package/dist/utils/api-reference/getNextPropertiesByType.js.map +1 -0
  346. package/dist/utils/containsMarkdownTable.js +5 -0
  347. package/dist/utils/containsMarkdownTable.js.map +1 -0
  348. package/dist/utils/copyToClipboard.js +12 -0
  349. package/dist/utils/copyToClipboard.js.map +1 -0
  350. package/dist/utils/flattenObject.js +11 -0
  351. package/dist/utils/flattenObject.js.map +1 -0
  352. package/dist/utils/formatJSON.js +39 -0
  353. package/dist/utils/formatJSON.js.map +1 -0
  354. package/dist/utils/scrollElementIntoView.js +21 -0
  355. package/dist/utils/scrollElementIntoView.js.map +1 -0
  356. package/package.json +10 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponseTopbar.js","sources":["../../../../src/api-playground/ApiPlayground/Response/ResponseTopbar.tsx"],"sourcesContent":["'use client';\n\nimport { ApiPlaygroundResultType } from '@mintlify/models';\n\nimport { useSelectedLocale } from '@/utils/locales';\nimport { CheckmarkCircleRegular, ErrorCircleRegular, DismissCircleRegular, WarningRegular } from '@fluentui/react-icons';\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\nimport { ChevronDownFilled } from '@fluentui/react-icons';\nimport { ResponseBodyData, ResponseSection, responseSections } from '.';\nimport { CopyFileToClipboardButton } from './CopyFileToClipboardButton';\nimport { DownloadButton } from './DownloadFileButton';\n\ntype ResponseHeaderParams = {\n result: ApiPlaygroundResultType;\n selectedSection: ResponseSection;\n setSelectedSection: (value: ResponseSection) => void;\n data: ResponseBodyData | undefined;\n};\n\nexport const ResponseTopbar = ({\n result,\n selectedSection,\n setSelectedSection,\n data,\n}: ResponseHeaderParams) => {\n return (\n <div className=\"mint:flex mint:w-full mint:px-2 mint:py-1 mint:space-x-3 mint:items-center mint:rounded-t-2xl\">\n <div className=\"mint:flex mint:flex-1 mint:space-x-4 mint:items-center\">\n <StatusInfo\n status={!result.error ? result.response.status : undefined}\n statusText={!result.error ? result.response.statusText : undefined}\n />\n </div>\n {data ? (\n <>\n <ResponseSectionDropdown\n selectedSection={selectedSection}\n setSelectedSection={setSelectedSection}\n />\n <DownloadButton data={data} />\n <CopyFileToClipboardButton data={data} />\n </>\n ) : null}\n </div>\n );\n};\n\nconst StatusInfo = ({ status, statusText }: { status?: number; statusText?: string }) => {\n\n return (\n <div className=\"mint:flex mint:space-x-2 mint:items-center\">\n <StatusIcon status={status} />\n <div\n className={cn(\n 'mint:text-xs',\n 'mint:text-gray-800 mint:dark:text-gray-200 mint:font-medium'\n )}\n >\n {status ? `${status} - ${statusText}` : '--'}\n </div>\n </div>\n );\n};\n\nconst StatusIcon = ({ status }: { status: number | undefined }) => {\n const commonClassName = 'w-3.5 h-3.5';\n\n if (status === undefined) {\n // response not completed\n return (\n <WarningRegular\n className={cn(commonClassName, 'mint:bg-red-600 mint:dark:bg-red-500')}\n />\n );\n } else if (status >= 400) {\n // error\n return <ErrorCircleRegular className={cn(commonClassName, 'mint:bg-red-600 mint:dark:bg-red-500')} />;\n } else if (status >= 200 && status < 300) {\n // success\n return (\n <CheckmarkCircleRegular className={cn(commonClassName, 'mint:bg-green-600 mint:dark:bg-green-500')} />\n );\n } else {\n // weird status code\n return (\n <ErrorCircleRegular\n className={cn(commonClassName, 'mint:bg-orange-600 mint:dark:bg-orange-500')}\n />\n );\n }\n};\n\ntype ResponseSectionDropdownParams = {\n selectedSection: ResponseSection;\n setSelectedSection: (value: ResponseSection) => void;\n};\n\nconst ResponseSectionDropdown = ({\n selectedSection,\n setSelectedSection,\n}: ResponseSectionDropdownParams) => {\n const locale = useSelectedLocale();\n\n return (\n <div className=\"mint:relative\">\n <select\n aria-label={locale['aria.selectResponseSection']}\n className={cn(\n 'mint:pl-2.5 mint:pr-6 mint:py-1 mint:rounded-lg mint:text-xs mint:font-medium mint:border mint:cursor-pointer mint:focus:outline-0',\n 'mint:text-gray-600 mint:dark:text-gray-400 mint:border-standard mint:hover:bg-gray-50 mint:dark:hover:bg-white/[0.03]'\n )}\n value={selectedSection}\n \n onChange={(event) => setSelectedSection(event.target.value as ResponseSection)}\n >\n {responseSections.map((option) => (\n <option value={option} key={option}>\n {(option[0]?.toUpperCase() ?? '') + option.slice(1)}\n </option>\n ))}\n </select>\n <div className=\"mint:pointer-events-none mint:absolute mint:inset-0 mint:flex mint:items-center mint:justify-end mint:pr-2.5\">\n <ChevronDownFilled\n className={cn(\n 'mint:h-2.5 mint:w-2.5 mint:text-gray-500 mint:dark:text-gray-400 mint:shrink-0'\n )}\n />\n </div>\n </div>\n );\n};\n"],"names":["ResponseTopbar","result","selectedSection","setSelectedSection","data","jsxs","jsx","StatusInfo","Fragment","ResponseSectionDropdown","DownloadButton","CopyFileToClipboardButton","status","statusText","StatusIcon","cn","commonClassName","WarningRegular","ErrorCircleRegular","CheckmarkCircleRegular","locale","useSelectedLocale","event","option","_a","ChevronDownFilled"],"mappings":";;;;;;;;AAmBO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,MAAAC;AACF,MAEI,gBAAAC,EAAC,OAAA,EAAI,WAAU,iGACb,UAAA;AAAA,EAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0DACb,UAAA,gBAAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAASN,EAAO,QAAiC,SAAzBA,EAAO,SAAS;AAAA,MACxC,YAAaA,EAAO,QAAqC,SAA7BA,EAAO,SAAS;AAAA,IAAa;AAAA,EAAA,GAE7D;AAAA,EACCG,IACC,gBAAAC,EAAAG,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,iBAAAP;AAAA,QACA,oBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF,gBAAAG,EAACI,KAAe,MAAAN,GAAY;AAAA,IAC5B,gBAAAE,EAACK,KAA0B,MAAAP,EAAA,CAAY;AAAA,EAAA,EAAA,CACzC,IACE;AAAA,GACN,GAIEG,IAAa,CAAC,EAAE,QAAAK,GAAQ,YAAAC,QAG1B,gBAAAR,EAAC,OAAA,EAAI,WAAU,8CACb,UAAA;AAAA,EAAA,gBAAAC,EAACQ,KAAW,QAAAF,GAAgB;AAAA,EAC5B,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWS;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAGD,UAAAH,IAAS,GAAGA,CAAM,MAAMC,CAAU,KAAK;AAAA,IAAA;AAAA,EAAA;AAC1C,GACF,GAIEC,IAAa,CAAC,EAAE,QAAAF,QAA6C;AACjE,QAAMI,IAAkB;AAExB,SAAIJ,MAAW,SAGX,gBAAAN;AAAA,IAACW;AAAA,IAAA;AAAA,MACC,WAAWF,EAAGC,GAAiB,sCAAsC;AAAA,IAAA;AAAA,EAAA,IAGhEJ,KAAU,wBAEXM,GAAA,EAAmB,WAAWH,EAAGC,GAAiB,sCAAsC,GAAG,IAC1FJ,KAAU,OAAOA,IAAS,wBAGhCO,GAAA,EAAuB,WAAWJ,EAAGC,GAAiB,0CAA0C,GAAG,IAKpG,gBAAAV;AAAA,IAACY;AAAA,IAAA;AAAA,MACC,WAAWH,EAAGC,GAAiB,4CAA4C;AAAA,IAAA;AAAA,EAAA;AAInF,GAOMP,IAA0B,CAAC;AAAA,EAC/B,iBAAAP;AAAA,EACA,oBAAAC;AACF,MAAqC;AACnC,QAAMiB,IAASC,EAAA;AAEf,SACE,gBAAAhB,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAYc,EAAO,4BAA4B;AAAA,QAC/C,WAAWL;AAAA,UACT;AAAA,UACA;AAAA,QAAA;AAAA,QAEF,OAAOb;AAAA,QAEP,UAAU,CAACoB,MAAUnB,EAAmBmB,EAAM,OAAO,KAAwB;AAAA,QAE5E,YAAiB,IAAI,CAACC;;AACrB,iCAAAjB,EAAC,UAAA,EAAO,OAAOiB,GACX,aAAAC,IAAAD,EAAO,CAAC,MAAR,gBAAAC,EAAW,kBAAiB,MAAMD,EAAO,MAAM,CAAC,EAAA,GADxBA,CAE5B;AAAA,SACD;AAAA,MAAA;AAAA,IAAA;AAAA,IAEH,gBAAAjB,EAAC,OAAA,EAAI,WAAU,gHACb,UAAA,gBAAAA;AAAA,MAACmB;AAAA,MAAA;AAAA,QACC,WAAWV;AAAA,UACT;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,EACF,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,80 @@
1
+ import { jsx as n, jsxs as m } from "react/jsx-runtime";
2
+ import { extension as p } from "mime-types";
3
+ import { useState as c, useMemo as f } from "react";
4
+ import y from "../../../components/Api/ErrorBoundary.js";
5
+ import "@mintlify/validation";
6
+ import { cn as d } from "../../../utils/cn.js";
7
+ import { ResponseBody as b } from "./ResponseBody/index.js";
8
+ import { ResponseError as g } from "./ResponseError.js";
9
+ import { ResponseHeaders as u } from "./ResponseHeaders.js";
10
+ import { ResponseTopbar as h } from "./ResponseTopbar.js";
11
+ const D = ["body", "headers"], E = ({
12
+ result: e,
13
+ className: t
14
+ }) => {
15
+ const [o, r] = c("body"), s = x(e), i = () => /* @__PURE__ */ n(
16
+ "div",
17
+ {
18
+ className: d(
19
+ "mint:rounded-xt mint:dark:bg-zinc-950 mint:bg-white"
20
+ ),
21
+ children: e.error ? /* @__PURE__ */ n(g, { message: e.errorMessage }) : o === "body" ? /* @__PURE__ */ n(b, { data: s }) : /* @__PURE__ */ n(u, { response: e.response })
22
+ }
23
+ );
24
+ return /* @__PURE__ */ n(y, { children: /* @__PURE__ */ m(
25
+ "div",
26
+ {
27
+ className: d(
28
+ "mint:w-full mint:rounded-2xl mint:border mint:p-0.5",
29
+ "mint:bg-gray-50 mint:dark:bg-white/5 mint:border-gray-950/10 mint:dark:border-white/10",
30
+ t
31
+ ),
32
+ children: [
33
+ /* @__PURE__ */ n(
34
+ h,
35
+ {
36
+ selectedSection: o,
37
+ setSelectedSection: r,
38
+ result: e,
39
+ data: s
40
+ }
41
+ ),
42
+ /* @__PURE__ */ n(i, {})
43
+ ]
44
+ }
45
+ ) });
46
+ }, x = (e) => f(() => {
47
+ if (e.error || e.response.data == null)
48
+ return;
49
+ const t = Buffer.from(e.response.data, "base64"), o = R(e.response.headers), r = S(o), s = new Blob([t], { type: o }), i = URL.createObjectURL(s), a = o && p(o) || void 0;
50
+ return o && r !== "other" ? {
51
+ type: r,
52
+ contentType: o,
53
+ blob: s,
54
+ url: i,
55
+ extension: a
56
+ } : {
57
+ type: "other",
58
+ contentType: o,
59
+ content: t.toString("utf-8"),
60
+ blob: s,
61
+ url: i,
62
+ extension: a
63
+ };
64
+ }, [e]), R = (e) => {
65
+ var t;
66
+ for (const o in e)
67
+ if (o.toLowerCase() === "content-type") {
68
+ const r = e[o];
69
+ if (typeof r == "string")
70
+ return (t = r.split(";")[0]) == null ? void 0 : t.toLowerCase();
71
+ }
72
+ }, S = (e) => {
73
+ const [t] = (e == null ? void 0 : e.split("/")) ?? [];
74
+ return t === "image" || t === "audio" || t === "video" ? t : "other";
75
+ };
76
+ export {
77
+ E as Response,
78
+ D as responseSections
79
+ };
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/api-playground/ApiPlayground/Response/index.tsx"],"sourcesContent":["'use client';\n\nimport { ApiPlaygroundResultType } from '@mintlify/models';\nimport { extension as extensionLookup } from 'mime-types';\nimport { useMemo, useState } from 'react';\n\nimport ErrorBoundary from '@/components/Api/ErrorBoundary';\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\n\nimport { ResponseBody } from './ResponseBody';\nimport { ResponseError } from './ResponseError';\nimport { ResponseHeaders } from './ResponseHeaders';\nimport { ResponseTopbar } from './ResponseTopbar';\n\nexport const responseSections = ['body', 'headers'] as const;\nexport type ResponseSection = (typeof responseSections)[number];\n\nexport const Response = ({\n result,\n className,\n}: {\n result: ApiPlaygroundResultType;\n className: string;\n}) => {\n const [responseSection, setResponseSection] = useState<ResponseSection>('body');\n\n // TODO: perform this parsing upon request completion\n const responseBodyData = useResponseBodyData(result);\n\n const Content = () => (\n <div\n className={cn(\n 'mint:rounded-xt mint:dark:bg-zinc-950 mint:bg-white',\n )}\n >\n {result.error ? (\n <ResponseError message={result.errorMessage} />\n ) : responseSection === 'body' ? (\n <ResponseBody data={responseBodyData} />\n ) : (\n <ResponseHeaders response={result.response} />\n )}\n </div>\n );\n\n return (\n <ErrorBoundary>\n <div\n className={cn(\n 'mint:w-full mint:rounded-2xl mint:border mint:p-0.5',\n 'mint:bg-gray-50 mint:dark:bg-white/5 mint:border-gray-950/10 mint:dark:border-white/10',\n className\n )}\n >\n <ResponseTopbar\n selectedSection={responseSection}\n setSelectedSection={setResponseSection}\n result={result}\n data={responseBodyData}\n />\n <Content />\n </div>\n </ErrorBoundary>\n );\n};\n\nconst useResponseBodyData = (result: ApiPlaygroundResultType): ResponseBodyData | undefined => {\n return useMemo(() => {\n if (result.error || result.response.data == undefined) {\n return undefined;\n }\n\n const buffer = Buffer.from(result.response.data, 'base64');\n const contentType = parseContentTypeFromHeaders(result.response.headers);\n const mediaCategory = contentTypeToMediaCategory(contentType);\n const blob = new Blob([buffer], { type: contentType });\n const url = URL.createObjectURL(blob);\n const extension = contentType ? extensionLookup(contentType) || undefined : undefined;\n\n if (contentType && mediaCategory !== 'other') {\n return {\n type: mediaCategory,\n contentType,\n blob,\n url,\n extension,\n };\n }\n\n return {\n type: 'other',\n contentType,\n content: buffer.toString('utf-8'),\n blob,\n url,\n extension,\n };\n }, [result]);\n};\n\nexport type ResponseBodyData =\n | ImageResponseData\n | AudioResponseData\n | VideoResponseData\n | OtherResponseData;\n\ntype BaseResponseData = {\n blob: Blob;\n url: string;\n extension?: string;\n};\n\nexport type ImageResponseData = BaseResponseData & {\n type: 'image';\n contentType: string;\n};\n\nexport type AudioResponseData = BaseResponseData & {\n type: 'audio';\n contentType: string;\n};\n\nexport type VideoResponseData = BaseResponseData & {\n type: 'video';\n contentType: string;\n};\n\nexport type OtherResponseData = BaseResponseData & {\n type: 'other';\n contentType?: string;\n content: string;\n};\n\ntype MediaCategory = ResponseBodyData['type'];\n\nconst parseContentTypeFromHeaders = (headers: Record<string, unknown>) => {\n for (const headerName in headers) {\n if (headerName.toLowerCase() === 'content-type') {\n const contentType = headers[headerName];\n if (typeof contentType === 'string') {\n return contentType.split(';')[0]?.toLowerCase();\n }\n }\n }\n};\n\nconst contentTypeToMediaCategory = (contentType: string | undefined): MediaCategory => {\n const [typeCategory] = contentType?.split('/') ?? [];\n if (typeCategory === 'image' || typeCategory === 'audio' || typeCategory === 'video') {\n return typeCategory;\n }\n\n return 'other';\n};\n"],"names":["responseSections","Response","result","className","responseSection","setResponseSection","useState","responseBodyData","useResponseBodyData","Content","jsx","cn","ResponseError","ResponseBody","ResponseHeaders","ErrorBoundary","jsxs","ResponseTopbar","useMemo","buffer","contentType","parseContentTypeFromHeaders","mediaCategory","contentTypeToMediaCategory","blob","url","extension","extensionLookup","headers","headerName","_a","typeCategory"],"mappings":";;;;;;;;;;AAcO,MAAMA,IAAmB,CAAC,QAAQ,SAAS,GAGrCC,IAAW,CAAC;AAAA,EACvB,QAAAC;AAAA,EACA,WAAAC;AACF,MAGM;AACJ,QAAM,CAACC,GAAiBC,CAAkB,IAAIC,EAA0B,MAAM,GAGxEC,IAAmBC,EAAoBN,CAAM,GAE7CO,IAAU,MACd,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,MAAA;AAAA,MAGD,YAAO,QACN,gBAAAD,EAACE,KAAc,SAASV,EAAO,cAAc,IAC3CE,MAAoB,SACtB,gBAAAM,EAACG,GAAA,EAAa,MAAMN,GAAkB,sBAErCO,GAAA,EAAgB,UAAUZ,EAAO,SAAA,CAAU;AAAA,IAAA;AAAA,EAAA;AAKlD,2BACGa,GAAA,EACC,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWL;AAAA,QACT;AAAA,QACA;AAAA,QACAR;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAO;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,iBAAiBb;AAAA,YACjB,oBAAoBC;AAAA,YACpB,QAAAH;AAAA,YACA,MAAMK;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEPE,GAAA,CAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEb;AAEJ,GAEMD,IAAsB,CAACN,MACpBgB,EAAQ,MAAM;AACnB,MAAIhB,EAAO,SAASA,EAAO,SAAS,QAAQ;AAC1C;AAGF,QAAMiB,IAAS,OAAO,KAAKjB,EAAO,SAAS,MAAM,QAAQ,GACnDkB,IAAcC,EAA4BnB,EAAO,SAAS,OAAO,GACjEoB,IAAgBC,EAA2BH,CAAW,GACtDI,IAAO,IAAI,KAAK,CAACL,CAAM,GAAG,EAAE,MAAMC,GAAa,GAC/CK,IAAM,IAAI,gBAAgBD,CAAI,GAC9BE,IAAYN,KAAcO,EAAgBP,CAAW,KAAK;AAEhE,SAAIA,KAAeE,MAAkB,UAC5B;AAAA,IACL,MAAMA;AAAA,IACN,aAAAF;AAAA,IACA,MAAAI;AAAA,IACA,KAAAC;AAAA,IAAA,WACAC;AAAAA,EAAA,IAIG;AAAA,IACL,MAAM;AAAA,IACN,aAAAN;AAAA,IACA,SAASD,EAAO,SAAS,OAAO;AAAA,IAChC,MAAAK;AAAA,IACA,KAAAC;AAAA,IAAA,WACAC;AAAAA,EAAA;AAEJ,GAAG,CAACxB,CAAM,CAAC,GAsCPmB,IAA8B,CAACO,MAAqC;;AACxE,aAAWC,KAAcD;AACvB,QAAIC,EAAW,YAAA,MAAkB,gBAAgB;AAC/C,YAAMT,IAAcQ,EAAQC,CAAU;AACtC,UAAI,OAAOT,KAAgB;AACzB,gBAAOU,IAAAV,EAAY,MAAM,GAAG,EAAE,CAAC,MAAxB,gBAAAU,EAA2B;AAAA,IAEtC;AAEJ,GAEMP,IAA6B,CAACH,MAAmD;AACrF,QAAM,CAACW,CAAY,KAAIX,KAAA,gBAAAA,EAAa,MAAM,SAAQ,CAAA;AAClD,SAAIW,MAAiB,WAAWA,MAAiB,WAAWA,MAAiB,UACpEA,IAGF;AACT;"}
@@ -0,0 +1,24 @@
1
+ import { jsx as t, jsxs as e } from "react/jsx-runtime";
2
+ import { AddRegular as a } from "@fluentui/react-icons";
3
+ const d = ({
4
+ className: n,
5
+ onClick: r,
6
+ label: i,
7
+ dataTestId: m
8
+ }) => /* @__PURE__ */ t("div", { className: n, children: /* @__PURE__ */ e(
9
+ "button",
10
+ {
11
+ "aria-label": i,
12
+ className: "mint:flex mint:text-playground-input mint:w-fit mint:items-center mint:gap-x-1.5 mint:py-1! mint:px-2! mint:hover:bg-gray-50 mint:dark:hover:bg-white/[0.03] mint:cursor-pointer",
13
+ onClick: r,
14
+ "data-testid": m,
15
+ children: [
16
+ /* @__PURE__ */ t(a, { className: "mint:h-3 mint:w-3" }),
17
+ /* @__PURE__ */ t("span", { className: "mint:text-gray-600 mint:dark:text-gray-200", children: i })
18
+ ]
19
+ }
20
+ ) });
21
+ export {
22
+ d as AdditionalItemButton
23
+ };
24
+ //# sourceMappingURL=AdditionalItemButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdditionalItemButton.js","sources":["../../../../src/api-playground/ApiPlayground/components/AdditionalItemButton.tsx"],"sourcesContent":["import {AddRegular} from '@fluentui/react-icons'\nimport { cn } from \"../../../utils/cn\";\n\nexport const AdditionalItemButton = ({\n className,\n onClick,\n label,\n dataTestId,\n}: {\n className?: string;\n onClick: () => void;\n label: string;\n dataTestId?: string;\n}) => {\n return (\n <div className={className}>\n <button\n aria-label={label}\n className=\"mint:flex mint:text-playground-input mint:w-fit mint:items-center mint:gap-x-1.5 mint:py-1! mint:px-2! mint:hover:bg-gray-50 mint:dark:hover:bg-white/[0.03] mint:cursor-pointer\"\n onClick={onClick}\n data-testid={dataTestId}\n >\n <AddRegular className=\"mint:h-3 mint:w-3\" />\n <span className=\"mint:text-gray-600 mint:dark:text-gray-200\">{label}</span>\n </button>\n </div>\n );\n};\n"],"names":["AdditionalItemButton","className","onClick","label","dataTestId","jsx","jsxs","AddRegular"],"mappings":";;AAGO,MAAMA,IAAuB,CAAC;AAAA,EACnC,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AACF,MAOI,gBAAAC,EAAC,SAAI,WAAAJ,GACH,UAAA,gBAAAK;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,cAAYH;AAAA,IACZ,WAAU;AAAA,IACV,SAAAD;AAAA,IACA,eAAaE;AAAA,IAEb,UAAA;AAAA,MAAA,gBAAAC,EAACE,GAAA,EAAW,WAAU,oBAAA,CAAoB;AAAA,MAC1C,gBAAAF,EAAC,QAAA,EAAK,WAAU,8CAA8C,UAAAF,EAAA,CAAM;AAAA,IAAA;AAAA,EAAA;AAAA,GAExE;"}
@@ -0,0 +1,45 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { useState as a } from "react";
3
+ import "@mintlify/validation";
4
+ import { cn as d } from "../../../utils/cn.js";
5
+ import { AddAdditionalItemButton as u } from "../Request/inputs/ArrayInput.js";
6
+ const x = ({
7
+ onAddKey: m,
8
+ existingKeys: l,
9
+ dataTestId: s
10
+ }) => {
11
+ const [c, n] = a(!1), [e, i] = a(""), o = l.includes(e), p = e.length > 0 && !o;
12
+ return c ? /* @__PURE__ */ r(
13
+ "input",
14
+ {
15
+ className: d(
16
+ "mint:py-6 mint:flex-1 mint:bg-transparent mint:outline-0 mint:text-sm mint:text-gray-900 mint:dark:text-gray-100 mint:placeholder-gray-300 mint:dark:placeholder-white/30 mint:font-mono mint:font-medium",
17
+ o ? "mint:underline mint:decoration-wavy mint:decoration-red-400" : ""
18
+ ),
19
+ placeholder: "Enter key of new property",
20
+ type: "text",
21
+ autoFocus: !0,
22
+ value: e,
23
+ onBlur: () => {
24
+ i(""), n(!1);
25
+ },
26
+ onChange: (t) => i(t.target.value),
27
+ onKeyDown: (t) => {
28
+ (t.key === "Enter" || t.key === "Tab") && p && m(t.currentTarget.value);
29
+ },
30
+ spellCheck: !1
31
+ }
32
+ ) : /* @__PURE__ */ r(
33
+ u,
34
+ {
35
+ className: "mint:py-5",
36
+ onClick: () => n((t) => !t),
37
+ label: "Add new property",
38
+ dataTestId: s
39
+ }
40
+ );
41
+ };
42
+ export {
43
+ x as AdditionalPropertyButton
44
+ };
45
+ //# sourceMappingURL=AdditionalPropertyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdditionalPropertyButton.js","sources":["../../../../src/api-playground/ApiPlayground/components/AdditionalPropertyButton.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { cn } from '@/api-playground-2/schemaGraph/utils';\n\nimport { AddAdditionalItemButton } from '../Request/inputs/ArrayInput';\n\ntype AdditionalPropertyButtonParams = {\n onAddKey: (name: string) => void;\n existingKeys: string[];\n dataTestId?: string;\n};\n\nexport const AdditionalPropertyButton = ({\n onAddKey,\n existingKeys,\n dataTestId,\n}: AdditionalPropertyButtonParams) => {\n const [isActive, setIsActive] = useState(false);\n const [key, setKey] = useState('');\n\n const isDuplicate = existingKeys.includes(key);\n const isValid = key.length > 0 && !isDuplicate;\n\n if (!isActive) {\n return (\n <AddAdditionalItemButton\n className=\"mint:py-5\"\n onClick={() => setIsActive((prev) => !prev)}\n label=\"Add new property\"\n dataTestId={dataTestId}\n />\n );\n }\n\n return (\n <input\n className={cn(\n 'mint:py-6 mint:flex-1 mint:bg-transparent mint:outline-0 mint:text-sm mint:text-gray-900 mint:dark:text-gray-100 mint:placeholder-gray-300 mint:dark:placeholder-white/30 mint:font-mono mint:font-medium',\n isDuplicate ? 'mint:underline mint:decoration-wavy mint:decoration-red-400' : ''\n )}\n placeholder=\"Enter key of new property\"\n type=\"text\"\n autoFocus\n value={key}\n onBlur={() => {\n setKey('');\n setIsActive(false);\n }}\n onChange={(event) => setKey(event.target.value)}\n onKeyDown={(event) => {\n if ((event.key === 'Enter' || event.key === 'Tab') && isValid) {\n onAddKey(event.currentTarget.value);\n }\n }}\n spellCheck={false}\n />\n );\n};\n"],"names":["AdditionalPropertyButton","onAddKey","existingKeys","dataTestId","isActive","setIsActive","useState","key","setKey","isDuplicate","isValid","jsx","cn","event","AddAdditionalItemButton","prev"],"mappings":";;;;;AAcO,MAAMA,IAA2B,CAAC;AAAA,EACvC,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AACF,MAAsC;AACpC,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxC,CAACC,GAAKC,CAAM,IAAIF,EAAS,EAAE,GAE3BG,IAAcP,EAAa,SAASK,CAAG,GACvCG,IAAUH,EAAI,SAAS,KAAK,CAACE;AAEnC,SAAKL,IAYH,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAH,IAAc,gEAAgE;AAAA,MAAA;AAAA,MAEhF,aAAY;AAAA,MACZ,MAAK;AAAA,MACL,WAAS;AAAA,MACT,OAAOF;AAAA,MACP,QAAQ,MAAM;AACZ,QAAAC,EAAO,EAAE,GACTH,EAAY,EAAK;AAAA,MACnB;AAAA,MACA,UAAU,CAACQ,MAAUL,EAAOK,EAAM,OAAO,KAAK;AAAA,MAC9C,WAAW,CAACA,MAAU;AACpB,SAAKA,EAAM,QAAQ,WAAWA,EAAM,QAAQ,UAAUH,KACpDT,EAASY,EAAM,cAAc,KAAK;AAAA,MAEtC;AAAA,MACA,YAAY;AAAA,IAAA;AAAA,EAAA,IA7BZ,gBAAAF;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS,MAAMT,EAAY,CAACU,MAAS,CAACA,CAAI;AAAA,MAC1C,OAAM;AAAA,MACN,YAAAZ;AAAA,IAAA;AAAA,EAAA;AA4BR;"}
@@ -0,0 +1,18 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { cn as m } from "../../../utils/cn.js";
3
+ function o({ children: t, className: n }) {
4
+ return /* @__PURE__ */ i(
5
+ "div",
6
+ {
7
+ className: m(
8
+ "mint:rounded-full mint:h-5 mint:w-5 mint:flex mint:items-center mint:justify-center mint:bg-gray-50 mint:dark:bg-white/10 mint:text-xs mint:font-sans mint:font-medium mint:text-gray-600 mint:dark:text-gray-300",
9
+ n
10
+ ),
11
+ children: t
12
+ }
13
+ );
14
+ }
15
+ export {
16
+ o as ArrayCount
17
+ };
18
+ //# sourceMappingURL=ArrayCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayCount.js","sources":["../../../../src/api-playground/ApiPlayground/components/ArrayCount.tsx"],"sourcesContent":["'use client';\n\nimport { ReactNode } from 'react';\n\nimport { cn } from '@/utils/cn';\n\nexport function ArrayCount({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n className={cn(\n 'mint:rounded-full mint:h-5 mint:w-5 mint:flex mint:items-center mint:justify-center mint:bg-gray-50 mint:dark:bg-white/10 mint:text-xs mint:font-sans mint:font-medium mint:text-gray-600 mint:dark:text-gray-300',\n className\n )}\n >\n {children}\n </div>\n );\n}\n"],"names":["ArrayCount","children","className","jsx","cn"],"mappings":";;AAMO,SAASA,EAAW,EAAE,UAAAC,GAAU,WAAAC,KAA0D;AAC/F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAF;AAAA,MAAA;AAAA,MAGD,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,40 @@
1
+ import { jsx as e, jsxs as h } from "react/jsx-runtime";
2
+ import { ChevronUpDownFilled as l } from "@fluentui/react-icons";
3
+ import { useState as u, useEffect as x } from "react";
4
+ const v = ({
5
+ baseUrlOptions: n,
6
+ selectedBaseUrlIndex: m = 0,
7
+ setSelectedBaseUrlIndex: r,
8
+ onBaseUrlChange: i
9
+ }) => {
10
+ const [c, d] = u(0), o = n == null ? void 0 : n[m];
11
+ return x(() => {
12
+ const t = document.createElement("span");
13
+ t.className = "mint:text-sm mint:absolute mint:font-mono mint:invisible", t.textContent = o ?? "", document.body.appendChild(t), d(t.offsetWidth + 16), document.body.removeChild(t);
14
+ }, [o]), !n || n.length === 0 || !r ? null : n.length === 1 ? /* @__PURE__ */ e("div", { className: "mint:min-w-max mint:bg-transparent mint:text-sm mint:text-gray-600 mint:dark:text-gray-400 mint:outline-0 mint:font-mono mint:cursor-pointer mint:hover:text-gray-900 mint:dark:hover:text-gray-300", children: n[0] }) : /* @__PURE__ */ h("div", { className: "mint:flex mint:items-center mint:gap-1 mint:relative mint:-mr-1", children: [
15
+ /* @__PURE__ */ e(
16
+ "select",
17
+ {
18
+ "aria-label": "Select base URL",
19
+ className: "mint:bg-transparent mint:text-sm mint:text-gray-600 mint:dark:text-gray-400 mint:outline-0 mint:font-mono mint:cursor-pointer mint:hover:text-gray-900 mint:dark:hover:text-gray-300",
20
+ value: m,
21
+ onClick: (t) => t.stopPropagation(),
22
+ onChange: (t) => {
23
+ r(Number(t.target.value)), i == null || i();
24
+ },
25
+ style: { width: `${c}px` },
26
+ children: n.map((t, a) => /* @__PURE__ */ e("option", { value: a, children: t }, t))
27
+ }
28
+ ),
29
+ /* @__PURE__ */ e(
30
+ l,
31
+ {
32
+ className: "mint:absolute mint:right-0 mint:w-3 mint:h-3 mint:text-gray-400 mint:dark:text-white/30 mint:pointer-events-none"
33
+ }
34
+ )
35
+ ] });
36
+ };
37
+ export {
38
+ v as BasePathSelector
39
+ };
40
+ //# sourceMappingURL=BasePathSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasePathSelector.js","sources":["../../../../src/api-playground/ApiPlayground/components/BasePathSelector.tsx"],"sourcesContent":["import { ChevronUpDownFilled } from '@fluentui/react-icons';\nimport { useState, useEffect } from 'react';\n\n\ntype BasePathSelectorProps = {\n baseUrlOptions?: string[];\n selectedBaseUrlIndex?: number;\n setSelectedBaseUrlIndex?: (index: number) => void;\n onBaseUrlChange?: () => void;\n};\n\nexport const BasePathSelector = ({\n baseUrlOptions,\n selectedBaseUrlIndex = 0,\n setSelectedBaseUrlIndex,\n onBaseUrlChange,\n}: BasePathSelectorProps) => {\n const [selectWidth, setSelectWidth] = useState(0);\n\n const selectedOption = baseUrlOptions?.[selectedBaseUrlIndex];\n\n useEffect(() => {\n // Create a temporary span to measure the text width to dynamically set the width of the select\n const span = document.createElement('span');\n span.className = 'mint:text-sm mint:absolute mint:font-mono mint:invisible';\n span.textContent = selectedOption ?? '';\n document.body.appendChild(span);\n\n const paddingWidth = 16;\n\n setSelectWidth(span.offsetWidth + paddingWidth);\n document.body.removeChild(span);\n }, [selectedOption]);\n\n if (!baseUrlOptions || baseUrlOptions.length === 0 || !setSelectedBaseUrlIndex) return null;\n\n if (baseUrlOptions.length === 1) {\n return (\n <div className=\"mint:min-w-max mint:bg-transparent mint:text-sm mint:text-gray-600 mint:dark:text-gray-400 mint:outline-0 mint:font-mono mint:cursor-pointer mint:hover:text-gray-900 mint:dark:hover:text-gray-300\">\n {baseUrlOptions[0]}\n </div>\n );\n }\n\n return (\n <div className=\"mint:flex mint:items-center mint:gap-1 mint:relative mint:-mr-1\">\n <select\n aria-label=\"Select base URL\"\n className=\"mint:bg-transparent mint:text-sm mint:text-gray-600 mint:dark:text-gray-400 mint:outline-0 mint:font-mono mint:cursor-pointer mint:hover:text-gray-900 mint:dark:hover:text-gray-300\"\n value={selectedBaseUrlIndex}\n onClick={(e) => e.stopPropagation()}\n onChange={(e) => {\n setSelectedBaseUrlIndex(Number(e.target.value));\n onBaseUrlChange?.();\n }}\n style={{ width: `${selectWidth}px` }}\n >\n {baseUrlOptions.map((url, i) => (\n <option key={url} value={i}>\n {url}\n </option>\n ))}\n </select>\n <ChevronUpDownFilled\n className=\"mint:absolute mint:right-0 mint:w-3 mint:h-3 mint:text-gray-400 mint:dark:text-white/30 mint:pointer-events-none\"\n />\n </div>\n );\n};\n"],"names":["BasePathSelector","baseUrlOptions","selectedBaseUrlIndex","setSelectedBaseUrlIndex","onBaseUrlChange","selectWidth","setSelectWidth","useState","selectedOption","useEffect","span","jsxs","jsx","e","url","i","ChevronUpDownFilled"],"mappings":";;;AAWO,MAAMA,IAAmB,CAAC;AAAA,EAC/B,gBAAAC;AAAA,EACA,sBAAAC,IAAuB;AAAA,EACvB,yBAAAC;AAAA,EACA,iBAAAC;AACF,MAA6B;AAC3B,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAS,CAAC,GAE1CC,IAAiBP,KAAA,gBAAAA,EAAiBC;AAexC,SAbAO,EAAU,MAAM;AAEd,UAAMC,IAAO,SAAS,cAAc,MAAM;AAC1C,IAAAA,EAAK,YAAY,4DACjBA,EAAK,cAAcF,KAAkB,IACrC,SAAS,KAAK,YAAYE,CAAI,GAI9BJ,EAAeI,EAAK,cAFC,EAEyB,GAC9C,SAAS,KAAK,YAAYA,CAAI;AAAA,EAChC,GAAG,CAACF,CAAc,CAAC,GAEf,CAACP,KAAkBA,EAAe,WAAW,KAAK,CAACE,IAAgC,OAEnFF,EAAe,WAAW,sBAEzB,OAAA,EAAI,WAAU,uMACZ,UAAAA,EAAe,CAAC,GACnB,IAKF,gBAAAU,EAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,WAAU;AAAA,QACV,OAAOV;AAAA,QACP,SAAS,CAACW,MAAMA,EAAE,gBAAA;AAAA,QAClB,UAAU,CAACA,MAAM;AACf,UAAAV,EAAwB,OAAOU,EAAE,OAAO,KAAK,CAAC,GAC9CT,KAAA,QAAAA;AAAA,QACF;AAAA,QACA,OAAO,EAAE,OAAO,GAAGC,CAAW,KAAA;AAAA,QAE7B,UAAAJ,EAAe,IAAI,CAACa,GAAKC,MACxB,gBAAAH,EAAC,UAAA,EAAiB,OAAOG,GACtB,UAAAD,EAAA,GADUA,CAEb,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,IAEH,gBAAAF;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,GACF;AAEJ;"}
@@ -0,0 +1,43 @@
1
+ import { jsxs as l, jsx as i } from "react/jsx-runtime";
2
+ import { potentiallyParseOpenApiString as M } from "../../../common/potentiallyParseOpenApiString.js";
3
+ import { slugToTitle as f } from "../../../common/slugToTitle.js";
4
+ import { ChevronDownFilled as k } from "@fluentui/react-icons";
5
+ import { useState as P, useMemo as h } from "react";
6
+ import { MethodPill as A } from "../../../components/Api/MethodPill.js";
7
+ import { DropdownMenu as y, DropdownMenuTrigger as D, DropdownMenuContent as N } from "../../../components/Api/dropdown-menu.js";
8
+ import { useMDXContent as S } from "../../../hooks/useMDXContent.js";
9
+ import { EndpointsMenuLink as C } from "./EndpointsMenuLink.js";
10
+ import { EndpointsMenuSearch as T } from "./EndpointsMenuSearch.js";
11
+ const g = (r) => r.reduce((t, e) => "pages" in e ? [...t, ...g(e.pages)] : "openapi" in e || "api" in e || "asyncapi" in e ? [...t, e] : t, []), E = (r) => r.map((t) => {
12
+ {
13
+ const e = t.openapi || t.api;
14
+ if (e == null)
15
+ return;
16
+ const n = M(e);
17
+ return n == null ? void 0 : {
18
+ method: n.method,
19
+ title: t.title || f(t.href),
20
+ href: t.href,
21
+ type: "openapi",
22
+ playground: t.playground
23
+ };
24
+ }
25
+ }).filter((t) => t != null), G = ({ endpoint: r, channel: t, operation: e, pathname: n }) => {
26
+ var u;
27
+ const [{ pageMetadata: a }] = S(), s = a.title || f(n), [m, x] = P(""), p = g(((u = a.navigation) == null ? void 0 : u.groupsOrPages) ?? []), d = h(() => E(p), [p]), v = e ? e.title || s : r ? r.title || s : (t == null ? void 0 : t.title) || s, c = e ? e.method : r ? r.method : "websocket", w = c === "websocket", b = h(() => m ? d.filter((o) => o.title.toLowerCase().includes(m.toLowerCase())) : d, [m, d]);
28
+ return /* @__PURE__ */ l(y, { children: [
29
+ /* @__PURE__ */ i(D, { className: "mint:hidden mint:lg:block", children: /* @__PURE__ */ l("div", { className: "mint:flex mint:items-center mint:gap-x-2 mint:border-standard mint:rounded-xl mint:p-1.5 mint:pr-3 mint:min-w-80 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5", children: [
30
+ /* @__PURE__ */ i(A, { method: c, shortMethod: w, isActive: !0 }),
31
+ /* @__PURE__ */ i("div", { className: "mint:flex-1 mint:text-left mint:text-sm mint:font-medium mint:text-gray-900 mint:dark:text-white mint:truncate", children: v }),
32
+ /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(k, { className: "mint:w-4 mint:h-4 mint:text-gray-500 mint:dark:text-gray-400" }) })
33
+ ] }) }),
34
+ /* @__PURE__ */ i(N, { className: "mint:hidden mint:lg:block mint:w-80 mint:border mint:border-gray-100 mint:dark:border-white/10 mint:rounded-xl mint:px-2 mint:pb-2 mint:pt-0", children: /* @__PURE__ */ l("div", { className: "mint:flex mint:flex-col", children: [
35
+ /* @__PURE__ */ i(T, { search: m, setSearch: x }),
36
+ b.map((o) => /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(C, { page: o, pathname: n }) }, `search-${o.title}-${o.href}`))
37
+ ] }) })
38
+ ] });
39
+ };
40
+ export {
41
+ G as EndpointsMenu
42
+ };
43
+ //# sourceMappingURL=EndpointsMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EndpointsMenu.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenu.tsx"],"sourcesContent":["import { potentiallyParseOpenApiString} from '../../../common/potentiallyParseOpenApiString';\nimport { slugToTitle } from '../../../common/slugToTitle';\nimport type { ChannelData } from '@mintlify/common';\nimport { DecoratedNavigationPage } from '@mintlify/models';\nimport { DecoratedPageOrGroupConfig, Endpoint } from '@mintlify/validation';\nimport { ChevronDownFilled } from '@fluentui/react-icons';\nimport { useState, useMemo } from 'react';\n\nimport { MethodPill } from '../../../components/Api/MethodPill';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from '../../../components/Api/dropdown-menu';\nimport { useMDXContent } from '@/hooks/useMDXContent';\nimport { ApiPageData } from '../../../api-playground-2/types/api';\n\nimport { EndpointsMenuLink } from './EndpointsMenuLink';\nimport { EndpointsMenuSearch } from './EndpointsMenuSearch';\n\ntype EndpointsMenuProps = {\n endpoint?: Endpoint;\n channel?: ChannelData;\n operation?: { title: string; method: string };\n pathname: string;\n};\n\nconst getAllApiPages = (navigation: DecoratedPageOrGroupConfig[]): DecoratedNavigationPage[] => {\n return navigation.reduce<DecoratedNavigationPage[]>((acc, entry) => {\n if ('pages' in entry) {\n \n return [...acc, ...getAllApiPages(entry.pages as DecoratedPageOrGroupConfig[])];\n } else if ('openapi' in entry || 'api' in entry || 'asyncapi' in entry) {\n return [...acc, entry];\n }\n return acc;\n }, []);\n};\n\nconst mapApiPageData = (pages: DecoratedNavigationPage[]): ApiPageData[] => {\n return pages\n .map((page: DecoratedNavigationPage): ApiPageData | undefined => {\n {\n const endpointStr = page.openapi || page.api;\n if (endpointStr == undefined) {\n return undefined;\n }\n const potentiallyParsedOpenApiString = potentiallyParseOpenApiString(endpointStr);\n if (potentiallyParsedOpenApiString == undefined) {\n return undefined;\n }\n return {\n method: potentiallyParsedOpenApiString.method,\n title: page.title || slugToTitle(page.href),\n href: page.href,\n type: 'openapi',\n playground: page.playground,\n };\n }\n })\n .filter((pageData) => pageData != undefined);\n};\n\nexport const EndpointsMenu = ({ endpoint, channel, operation, pathname }: EndpointsMenuProps) => {\n const [{ pageMetadata }] = useMDXContent() as unknown as [{ pageMetadata: { title?: string; navigation?: { groupsOrPages?: DecoratedPageOrGroupConfig[] } } }];\n const pageTitle = pageMetadata.title || slugToTitle(pathname);\n const [search, setSearch] = useState('');\n\n const allApiPages = getAllApiPages(pageMetadata.navigation?.groupsOrPages ?? []);\n const apiPages = useMemo(() => mapApiPageData(allApiPages), [allApiPages]);\n\n const title = operation\n ? operation.title || pageTitle\n : endpoint\n ? endpoint.title || pageTitle\n : channel?.title || pageTitle;\n const method = operation ? operation.method : endpoint ? endpoint.method : 'websocket';\n const shortMethod = method === 'websocket';\n\n const searchResults = useMemo(() => {\n if (!search) return apiPages;\n return apiPages.filter((page) => {\n return page.title.toLowerCase().includes(search.toLowerCase());\n });\n }, [search, apiPages]);\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger className=\"mint:hidden mint:lg:block\">\n <div className=\"mint:flex mint:items-center mint:gap-x-2 mint:border-standard mint:rounded-xl mint:p-1.5 mint:pr-3 mint:min-w-80 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5\">\n <MethodPill method={method} shortMethod={shortMethod} isActive={true} />\n <div className=\"mint:flex-1 mint:text-left mint:text-sm mint:font-medium mint:text-gray-900 mint:dark:text-white mint:truncate\">\n {title}\n </div>\n <div>\n <ChevronDownFilled className=\"mint:w-4 mint:h-4 mint:text-gray-500 mint:dark:text-gray-400\" />\n </div>\n </div>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"mint:hidden mint:lg:block mint:w-80 mint:border mint:border-gray-100 mint:dark:border-white/10 mint:rounded-xl mint:px-2 mint:pb-2 mint:pt-0\">\n <div className=\"mint:flex mint:flex-col\">\n <EndpointsMenuSearch search={search} setSearch={setSearch} />\n {searchResults.map((page) => (\n <div key={`search-${page.title}-${page.href}`}>\n <EndpointsMenuLink page={page} pathname={pathname} />\n </div>\n ))}\n </div>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n"],"names":["getAllApiPages","navigation","acc","entry","mapApiPageData","pages","page","endpointStr","potentiallyParsedOpenApiString","potentiallyParseOpenApiString","slugToTitle","pageData","EndpointsMenu","endpoint","channel","operation","pathname","pageMetadata","useMDXContent","pageTitle","search","setSearch","useState","allApiPages","_a","apiPages","useMemo","title","method","shortMethod","searchResults","DropdownMenu","jsx","DropdownMenuTrigger","jsxs","MethodPill","ChevronDownFilled","DropdownMenuContent","EndpointsMenuSearch","EndpointsMenuLink"],"mappings":";;;;;;;;;;AAuBA,MAAMA,IAAiB,CAACC,MACfA,EAAW,OAAkC,CAACC,GAAKC,MACpD,WAAWA,IAEN,CAAC,GAAGD,GAAK,GAAGF,EAAeG,EAAM,KAAqC,CAAC,IACrE,aAAaA,KAAS,SAASA,KAAS,cAAcA,IACxD,CAAC,GAAGD,GAAKC,CAAK,IAEhBD,GACN,CAAA,CAAE,GAGDE,IAAiB,CAACC,MACfA,EACJ,IAAI,CAACC,MAA2D;AAC9D;AACC,UAAMC,IAAcD,EAAK,WAAWA,EAAK;AACzC,QAAIC,KAAe;AACjB;AAEF,UAAMC,IAAiCC,EAA8BF,CAAW;AAChF,WAAIC,KAAkC,OACpC,SAEK;AAAA,MACL,QAAQA,EAA+B;AAAA,MACvC,OAAOF,EAAK,SAASI,EAAYJ,EAAK,IAAI;AAAA,MAC1C,MAAMA,EAAK;AAAA,MACX,MAAM;AAAA,MACN,YAAYA,EAAK;AAAA,IAAA;AAAA,EAErB;AACF,CAAC,EACA,OAAO,CAACK,MAAaA,KAAY,IAAS,GAGlCC,IAAgB,CAAC,EAAE,UAAAC,GAAU,SAAAC,GAAS,WAAAC,GAAW,UAAAC,QAAmC;;AAC/F,QAAM,CAAC,EAAE,cAAAC,GAAc,IAAIC,EAAA,GACrBC,IAAYF,EAAa,SAASP,EAAYM,CAAQ,GACtD,CAACI,GAAQC,CAAS,IAAIC,EAAS,EAAE,GAEjCC,IAAcvB,IAAewB,IAAAP,EAAa,eAAb,gBAAAO,EAAyB,kBAAiB,CAAA,CAAE,GACzEC,IAAWC,EAAQ,MAAMtB,EAAemB,CAAW,GAAG,CAACA,CAAW,CAAC,GAEnEI,IAAQZ,IACVA,EAAU,SAASI,IACnBN,IACEA,EAAS,SAASM,KAClBL,KAAA,gBAAAA,EAAS,UAASK,GAClBS,IAASb,IAAYA,EAAU,SAASF,IAAWA,EAAS,SAAS,aACrEgB,IAAcD,MAAW,aAEzBE,IAAgBJ,EAAQ,MACvBN,IACEK,EAAS,OAAO,CAACnB,MACfA,EAAK,MAAM,YAAA,EAAc,SAASc,EAAO,aAAa,CAC9D,IAHmBK,GAInB,CAACL,GAAQK,CAAQ,CAAC;AAErB,2BACGM,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,KAAoB,WAAU,6BAC7B,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,qKACb,UAAA;AAAA,MAAA,gBAAAF,EAACG,GAAA,EAAW,QAAAP,GAAgB,aAAAC,GAA0B,UAAU,IAAM;AAAA,MACtE,gBAAAG,EAAC,OAAA,EAAI,WAAU,kHACZ,UAAAL,GACH;AAAA,wBACC,OAAA,EACC,UAAA,gBAAAK,EAACI,GAAA,EAAkB,WAAU,gEAA+D,EAAA,CAC9F;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,sBACCC,GAAA,EAAoB,WAAU,gJAC7B,UAAA,gBAAAH,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,gBAAAF,EAACM,GAAA,EAAoB,QAAAlB,GAAgB,WAAAC,EAAA,CAAsB;AAAA,MAC1DS,EAAc,IAAI,CAACxB,MAClB,gBAAA0B,EAAC,OAAA,EACC,4BAACO,GAAA,EAAkB,MAAAjC,GAAY,UAAAU,GAAoB,EAAA,GAD3C,UAAUV,EAAK,KAAK,IAAIA,EAAK,IAAI,EAE3C,CACD;AAAA,IAAA,EAAA,CACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,44 @@
1
+ import { jsx as n, jsxs as l } from "react/jsx-runtime";
2
+ import { MethodPill as a } from "../../../components/Api/MethodPill.js";
3
+ import { isEqualIgnoringLeadingSlash as c } from "../../../paths/isEqualIgnoringLeadingSlash.js";
4
+ import { cn as u } from "../../../utils/cn.js";
5
+ const w = ({ page: t, pathname: o }) => {
6
+ const i = c(t.href, o), m = t.type === "openapi", d = t.playground === "none" || t.playground === "simple" || t.method === "webhook", s = (h) => {
7
+ h.preventDefault();
8
+ const e = d ? t.href : `${t.href}?playground=open`;
9
+ if (typeof window < "u" && window.next) {
10
+ const r = window.next.router;
11
+ if (r) {
12
+ r.push(e);
13
+ return;
14
+ }
15
+ }
16
+ window.location.href = e;
17
+ };
18
+ return /* @__PURE__ */ n("a", { href: t.href, title: t.title, children: /* @__PURE__ */ l(
19
+ "div",
20
+ {
21
+ onClick: s,
22
+ className: u(
23
+ "mint:flex mint:items-center mint:gap-x-2 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5 mint:rounded-xl mint:p-1.5 mint:group mint:cursor-pointer",
24
+ i ? "mint:bg-gray-50 mint:dark:bg-white/5 mint:text-[#643FB2] mint:dark:text-[#C9AAF9] mint:font-medium" : "mint:text-gray-700 mint:hover:text-gray-900 mint:dark:text-gray-400 mint:dark:hover:text-gray-300"
25
+ ),
26
+ children: [
27
+ /* @__PURE__ */ n(
28
+ a,
29
+ {
30
+ method: t.method,
31
+ shortMethod: m,
32
+ className: "mint:font-medium mint:px-1 mint:py-px mint:text-xs mint:rounded-md",
33
+ isActive: i
34
+ }
35
+ ),
36
+ /* @__PURE__ */ n("div", { className: "mint:text-sm mint:truncate", children: t.title })
37
+ ]
38
+ }
39
+ ) });
40
+ };
41
+ export {
42
+ w as EndpointsMenuLink
43
+ };
44
+ //# sourceMappingURL=EndpointsMenuLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EndpointsMenuLink.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenuLink.tsx"],"sourcesContent":["'use client';\n\nimport { MethodPill } from '../../../components/Api/MethodPill';\nimport { ApiPageData } from '../../../api-playground-2/types/api';\nimport { isEqualIgnoringLeadingSlash } from '../../../../src/paths/isEqualIgnoringLeadingSlash';\nimport { cn } from '@/utils/cn';\n\nexport const EndpointsMenuLink = ({ page, pathname }: { page: ApiPageData; pathname: string }) => {\n const isActive = isEqualIgnoringLeadingSlash(page.href, pathname);\n const shortMethod = page.type === 'openapi';\n const noPlayground =\n page.playground === 'none' || page.playground === 'simple' || page.method === 'webhook';\n\n const handleClick = (e: React.MouseEvent) => {\n e.preventDefault();\n const targetHref = noPlayground ? page.href : `${page.href}?playground=open`;\n\n // Check if we're in a Next.js environment\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof window !== 'undefined' && (window as any).next) {\n // Use Next.js router if available\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const router = (window as any).next.router;\n if (router) {\n router.push(targetHref);\n return;\n }\n }\n\n // Fallback to standard navigation\n window.location.href = targetHref;\n };\n\n return (\n <a href={page.href} title={page.title}>\n <div\n onClick={handleClick}\n className={cn(\n 'mint:flex mint:items-center mint:gap-x-2 mint:hover:bg-gray-50 mint:dark:hover:bg-white/5 mint:rounded-xl mint:p-1.5 mint:group mint:cursor-pointer',\n isActive\n ? 'mint:bg-gray-50 mint:dark:bg-white/5 mint:text-[#643FB2] mint:dark:text-[#C9AAF9] mint:font-medium'\n : 'mint:text-gray-700 mint:hover:text-gray-900 mint:dark:text-gray-400 mint:dark:hover:text-gray-300'\n )}\n >\n <MethodPill\n method={page.method}\n shortMethod={shortMethod}\n className=\"mint:font-medium mint:px-1 mint:py-px mint:text-xs mint:rounded-md\"\n isActive={isActive}\n />\n <div className=\"mint:text-sm mint:truncate\">{page.title}</div>\n </div>\n </a>\n );\n};\n"],"names":["EndpointsMenuLink","page","pathname","isActive","isEqualIgnoringLeadingSlash","shortMethod","noPlayground","handleClick","e","targetHref","router","jsxs","cn","jsx","MethodPill"],"mappings":";;;;AAOO,MAAMA,IAAoB,CAAC,EAAE,MAAAC,GAAM,UAAAC,QAAwD;AAChG,QAAMC,IAAWC,EAA4BH,EAAK,MAAMC,CAAQ,GAC1DG,IAAcJ,EAAK,SAAS,WAC5BK,IACJL,EAAK,eAAe,UAAUA,EAAK,eAAe,YAAYA,EAAK,WAAW,WAE1EM,IAAc,CAACC,MAAwB;AAC3C,IAAAA,EAAE,eAAA;AACF,UAAMC,IAAaH,IAAeL,EAAK,OAAO,GAAGA,EAAK,IAAI;AAI1D,QAAI,OAAO,SAAW,OAAgB,OAAe,MAAM;AAGzD,YAAMS,IAAU,OAAe,KAAK;AACpC,UAAIA,GAAQ;AACV,QAAAA,EAAO,KAAKD,CAAU;AACtB;AAAA,MACF;AAAA,IACF;AAGA,WAAO,SAAS,OAAOA;AAAA,EACzB;AAEA,2BACG,KAAA,EAAE,MAAMR,EAAK,MAAM,OAAOA,EAAK,OAC9B,UAAA,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAASJ;AAAA,MACT,WAAWK;AAAA,QACT;AAAA,QACAT,IACI,uGACA;AAAA,MAAA;AAAA,MAGN,UAAA;AAAA,QAAA,gBAAAU;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,QAAQb,EAAK;AAAA,YACb,aAAAI;AAAA,YACA,WAAU;AAAA,YACV,UAAAF;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,gBAAAU,EAAC,OAAA,EAAI,WAAU,8BAA8B,YAAK,MAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAE5D;AAEJ;"}
@@ -0,0 +1,39 @@
1
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
2
+ import a from "lodash/debounce";
3
+ import { SearchIcon as o } from "lucide-react";
4
+ import { cn as d } from "../../../utils/cn.js";
5
+ const g = ({
6
+ search: e,
7
+ setSearch: i
8
+ }) => {
9
+ const m = a(async (t) => {
10
+ i(t);
11
+ }, 20);
12
+ return /* @__PURE__ */ n(
13
+ "div",
14
+ {
15
+ className: d(
16
+ "mint:h-[52px] mint:sticky mint:z-[2] mint:-mb-1 mint:-mx-2 mint:pb-0 mint:p-2 mint:left-0 mint:top-0"
17
+ ),
18
+ children: /* @__PURE__ */ r("div", { className: "mint:p-1.5 mint:border mint:border-gray-200/70 mint:dark:border-white/10 mint:rounded-[0.6rem] mint:bg-white mint:dark:bg-gray-950 mint:border-solid mint:flex mint:items-center mint:gap-x-2 mint:mb-2", children: [
19
+ /* @__PURE__ */ n(o, { size: 16, className: "mint:min-w-4 mint:flex-none mint:text-gray-400 mint:dark:text-gray-600" }),
20
+ /* @__PURE__ */ n(
21
+ "input",
22
+ {
23
+ type: "text",
24
+ value: e,
25
+ onChange: (t) => m(t.target.value),
26
+ autoFocus: !0,
27
+ placeholder: "Search for endpoint...",
28
+ "aria-label": "Search for an endpoint",
29
+ className: "mint:w-full mint:text-sm mint:text-gray-900 mint:dark:text-gray-100 mint:placeholder-gray-400 mint:dark:placeholder-gray-600 mint:font-light mint:focus:outline-0 mint:dark:bg-gray-950"
30
+ }
31
+ )
32
+ ] })
33
+ }
34
+ );
35
+ };
36
+ export {
37
+ g as EndpointsMenuSearch
38
+ };
39
+ //# sourceMappingURL=EndpointsMenuSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EndpointsMenuSearch.js","sources":["../../../../src/api-playground/ApiPlayground/components/EndpointsMenuSearch.tsx"],"sourcesContent":["import debounce from 'lodash/debounce';\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from '@/utils/cn';\n\nexport const EndpointsMenuSearch = ({\n search,\n setSearch,\n}: {\n search: string;\n setSearch: (search: string) => void;\n}) => {\n const handleSearchChange = debounce(async (search: string) => {\n setSearch(search);\n }, 20);\n\n return (\n <div\n className={cn(\n 'mint:h-[52px] mint:sticky mint:z-[2] mint:-mb-1 mint:-mx-2 mint:pb-0 mint:p-2 mint:left-0 mint:top-0',\n )}\n >\n <div className=\"mint:p-1.5 mint:border mint:border-gray-200/70 mint:dark:border-white/10 mint:rounded-[0.6rem] mint:bg-white mint:dark:bg-gray-950 mint:border-solid mint:flex mint:items-center mint:gap-x-2 mint:mb-2\">\n <SearchIcon size={16} className=\"mint:min-w-4 mint:flex-none mint:text-gray-400 mint:dark:text-gray-600\" />\n <input\n type=\"text\"\n value={search}\n onChange={(e) => handleSearchChange(e.target.value)}\n autoFocus\n placeholder=\"Search for endpoint...\"\n aria-label=\"Search for an endpoint\"\n className=\"mint:w-full mint:text-sm mint:text-gray-900 mint:dark:text-gray-100 mint:placeholder-gray-400 mint:dark:placeholder-gray-600 mint:font-light mint:focus:outline-0 mint:dark:bg-gray-950\"\n />\n </div>\n </div>\n );\n};\n"],"names":["EndpointsMenuSearch","search","setSearch","handleSearchChange","debounce","jsx","cn","jsxs","SearchIcon","e"],"mappings":";;;;AAKO,MAAMA,IAAsB,CAAC;AAAA,EAClC,QAAAC;AAAA,EACA,WAAAC;AACF,MAGM;AACJ,QAAMC,IAAqBC,EAAS,OAAOH,MAAmB;AAC5D,IAAAC,EAAUD,CAAM;AAAA,EAClB,GAAG,EAAE;AAEL,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,2MACb,UAAA;AAAA,QAAA,gBAAAF,EAACG,GAAA,EAAW,MAAM,IAAI,WAAU,0EAAyE;AAAA,QACzG,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAOJ;AAAA,YACP,UAAU,CAACQ,MAAMN,EAAmBM,EAAE,OAAO,KAAK;AAAA,YAClD,WAAS;AAAA,YACT,aAAY;AAAA,YACZ,cAAW;AAAA,YACX,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,129 @@
1
+ import { jsxs as m, jsx as i, Fragment as s } from "react/jsx-runtime";
2
+ import { useState as C } from "react";
3
+ import { isEnum as $ } from "../../EndpointFields/ParamFields/PrimitiveParamField/index.js";
4
+ import { Description as g } from "../../EndpointFields/components/Description.js";
5
+ import { InfoPill as j, RequiredPill as B, DeprecatedPill as P } from "../../../components/Api/Param.js";
6
+ import T from "../../../components/Api/ErrorBoundary.js";
7
+ import { containsMarkdownTable as q } from "../../../utils/containsMarkdownTable.js";
8
+ import { cn as e } from "../../../utils/cn.js";
9
+ import { ArrayCount as E } from "./ArrayCount.js";
10
+ import { ObjectExpandButton as S } from "./ObjectExpandButton.js";
11
+ import { TrashButton as D } from "./TrashButton.js";
12
+ const U = ({
13
+ name: d,
14
+ children: y,
15
+ schema: t,
16
+ onClear: a,
17
+ isObject: r,
18
+ isArray: c,
19
+ parentNames: n,
20
+ arrayIndex: o,
21
+ typeDropdown: p,
22
+ defaultExpanded: f = !0,
23
+ style: u,
24
+ explode: v
25
+ }) => {
26
+ const [l, k] = C(f), b = t.type === "object" ? Object.keys(t.properties).length : 0, h = "format" in t && typeof t.format == "string" ? `${t.type}<${t.format}>` : t.type, x = $(t) && t.description && q(t.description);
27
+ return /* @__PURE__ */ m(T, { children: [
28
+ /* @__PURE__ */ m(
29
+ "div",
30
+ {
31
+ className: e(
32
+ "mint:flex mint:space-x-3 mint:items-start",
33
+ o != null && !r && "mint:flex mint:items-center"
34
+ ),
35
+ children: [
36
+ o != null && /* @__PURE__ */ i(E, { className: e(r && "mint:mt-8"), children: o + 1 }),
37
+ /* @__PURE__ */ m(
38
+ "div",
39
+ {
40
+ className: e(
41
+ "mint:flex-1 mint:grid mint:lg:grid-cols-2 mint:gap-x-12 mint:gap-y-4 mint:py-5 mint:max-w-full",
42
+ c && "mint:flex mint:flex-col",
43
+ r && "mint:gap-y-0 mint:flex mint:flex-col mint:border mint:border-gray-50 mint:dark:border-white/5 mint:rounded-xl mint:px-4 mint:py-0 mint:my-5",
44
+ o !== void 0 && "mint:py-1 mint:my-2"
45
+ ),
46
+ children: [
47
+ /* @__PURE__ */ m(
48
+ "div",
49
+ {
50
+ className: e(
51
+ "mint:space-y-2",
52
+ r && "mint:pt-8 mint:py-5 mint:border-b mint:border-gray-50 mint:dark:border-white/5",
53
+ !l && "mint:border-none",
54
+ o != null && !r && "mint:flex mint:items-center"
55
+ ),
56
+ children: [
57
+ /* @__PURE__ */ m("div", { className: "mint:flex mint:items-center mint:justify-between mint:font-mono mint:font-bold", children: [
58
+ /* @__PURE__ */ m(
59
+ "div",
60
+ {
61
+ className: "mint:flex mint:flex-wrap mint:items-center mint:gap-2 mint:text-xs mint:truncate",
62
+ title: n ? `${n.join(".")}.${d}` : d,
63
+ children: [
64
+ /* @__PURE__ */ i("div", { className: e("mint:text-sm mint:truncate", d == null && "mint:hidden"), children: n && n.length > 0 && u === "deepObject" && v ? /* @__PURE__ */ m(s, { children: [
65
+ /* @__PURE__ */ i("span", { className: "mint:text-gray-500 mint:dark:text-gray-400", children: n.map((w, N) => /* @__PURE__ */ m(s, { children: [
66
+ w,
67
+ N === 0 ? "[" : "]["
68
+ ] })) }),
69
+ /* @__PURE__ */ i("span", { className: "mint:font-semibold mint:text-gray-900 mint:dark:text-gray-100", children: d }),
70
+ /* @__PURE__ */ i("span", { className: "mint:text-gray-500 mint:dark:text-gray-400", children: "]" })
71
+ ] }) : /* @__PURE__ */ m(s, { children: [
72
+ /* @__PURE__ */ i("span", { className: "mint:text-gray-500 mint:dark:text-gray-400", children: n ? `${n.join(".")}.` : "" }),
73
+ /* @__PURE__ */ i("span", { className: "mint:font-semibold mint:text-gray-900 mint:dark:text-gray-100", children: d })
74
+ ] }) }),
75
+ p ?? /* @__PURE__ */ i(j, { children: h }),
76
+ t.required && /* @__PURE__ */ i(B, {}),
77
+ t.deprecated && /* @__PURE__ */ i(P, {})
78
+ ]
79
+ }
80
+ ),
81
+ r && /* @__PURE__ */ i(
82
+ S,
83
+ {
84
+ onClick: () => k(!l),
85
+ count: b,
86
+ labeled: f == !1
87
+ }
88
+ )
89
+ ] }),
90
+ t.description && !x && /* @__PURE__ */ i(
91
+ g,
92
+ {
93
+ markdown: t.description,
94
+ className: "mint:text-gray-500 mint:dark:text-gray-400"
95
+ }
96
+ )
97
+ ]
98
+ }
99
+ ),
100
+ l && /* @__PURE__ */ i(
101
+ "div",
102
+ {
103
+ className: e(
104
+ "mint:grid mint:grid-cols-1 mint:w-full mint:items-start mint:divide-y mint:divide-gray-50 mint:dark:divide-white/5",
105
+ c && "mint:divide-y-0"
106
+ ),
107
+ children: y
108
+ }
109
+ )
110
+ ]
111
+ }
112
+ ),
113
+ (o != null || n) && a && /* @__PURE__ */ i(
114
+ D,
115
+ {
116
+ className: e(r && "mint:mt-8", n && "mint:mt-7"),
117
+ onClick: () => a()
118
+ }
119
+ )
120
+ ]
121
+ }
122
+ ),
123
+ t.description && x && /* @__PURE__ */ i(g, { markdown: t.description, className: "mint:text-gray-500 mint:dark:text-gray-400" })
124
+ ] });
125
+ };
126
+ export {
127
+ U as InputContainer
128
+ };
129
+ //# sourceMappingURL=InputContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputContainer.js","sources":["../../../../src/api-playground/ApiPlayground/components/InputContainer.tsx"],"sourcesContent":["'use client';\n\nimport { DataSchema, IncrementalDataSchema } from '@mintlify/validation';\nimport { ReactNode, useState } from 'react';\n\nimport { isEnum } from '@/api-playground/EndpointFields/ParamFields/PrimitiveParamField';\nimport { Description } from '@/api-playground/EndpointFields/components/Description';\nimport { DeprecatedPill, InfoPill, RequiredPill } from '../../../components/Api/Param';\nimport ErrorBoundary from '../../../components/Api/ErrorBoundary';\nimport { containsMarkdownTable } from '@/utils/containsMarkdownTable';\nimport { cn } from '@/utils/cn';\n\nimport { ArrayCount } from './ArrayCount';\nimport { ObjectExpandButton } from './ObjectExpandButton';\nimport { TrashButton } from './TrashButton';\n\ntype InputContainerParams = {\n name?: string;\n typeDropdown: ReactNode;\n schema: DataSchema | IncrementalDataSchema;\n children?: ReactNode;\n onClear: (() => void) | undefined;\n isObject?: boolean;\n isArray?: boolean;\n parentNames?: string[];\n arrayIndex?: number;\n defaultExpanded?: boolean;\n style?: string;\n explode?: boolean;\n};\n\nexport const InputContainer = ({\n name,\n children,\n schema,\n onClear,\n isObject,\n isArray,\n parentNames,\n arrayIndex,\n typeDropdown,\n defaultExpanded = true,\n style,\n explode,\n}: InputContainerParams) => {\n const [showChildren, setShowChildren] = useState(defaultExpanded);\n const propertiesCount = schema.type === 'object' ? Object.keys(schema.properties).length : 0;\n\n const typeLabel =\n 'format' in schema && typeof schema.format === 'string'\n ? `${schema.type}<${schema.format}>`\n : schema.type;\n\n const descriptionContainsTable =\n isEnum(schema) && schema.description && containsMarkdownTable(schema.description);\n\n return (\n <ErrorBoundary>\n <div\n className={cn(\n 'mint:flex mint:space-x-3 mint:items-start',\n arrayIndex != undefined && !isObject && 'mint:flex mint:items-center'\n )}\n >\n {arrayIndex != undefined && (\n <ArrayCount className={cn(isObject && 'mint:mt-8')}>{arrayIndex + 1}</ArrayCount>\n )}\n <div\n className={cn(\n 'mint:flex-1 mint:grid mint:lg:grid-cols-2 mint:gap-x-12 mint:gap-y-4 mint:py-5 mint:max-w-full',\n isArray && 'mint:flex mint:flex-col',\n isObject &&\n 'mint:gap-y-0 mint:flex mint:flex-col mint:border mint:border-gray-50 mint:dark:border-white/5 mint:rounded-xl mint:px-4 mint:py-0 mint:my-5',\n arrayIndex !== undefined && 'mint:py-1 mint:my-2'\n )}\n >\n <div\n className={cn(\n 'mint:space-y-2',\n isObject && 'mint:pt-8 mint:py-5 mint:border-b mint:border-gray-50 mint:dark:border-white/5',\n !showChildren && 'mint:border-none',\n arrayIndex != undefined && !isObject && 'mint:flex mint:items-center'\n )}\n >\n <div className=\"mint:flex mint:items-center mint:justify-between mint:font-mono mint:font-bold\">\n <div\n className=\"mint:flex mint:flex-wrap mint:items-center mint:gap-2 mint:text-xs mint:truncate\"\n title={parentNames ? `${parentNames.join('.')}.${name}` : name}\n >\n <div className={cn('mint:text-sm mint:truncate', name == undefined && 'mint:hidden')}>\n {parentNames && parentNames.length > 0 && style === 'deepObject' && explode ? (\n <>\n <span className=\"mint:text-gray-500 mint:dark:text-gray-400\">\n {parentNames.map((parentName, index) => (\n <>\n {parentName}\n {index === 0 ? '[' : ']['}\n </>\n ))}\n </span>\n <span className=\"mint:font-semibold mint:text-gray-900 mint:dark:text-gray-100\">{name}</span>\n <span className=\"mint:text-gray-500 mint:dark:text-gray-400\">{']'}</span>\n </>\n ) : (\n <>\n <span className=\"mint:text-gray-500 mint:dark:text-gray-400\">\n {parentNames ? `${parentNames.join('.')}.` : ''}\n </span>\n <span className=\"mint:font-semibold mint:text-gray-900 mint:dark:text-gray-100\">{name}</span>\n </>\n )}\n </div>\n {typeDropdown != undefined ? typeDropdown : <InfoPill>{typeLabel}</InfoPill>}\n {schema.required && <RequiredPill />}\n {schema.deprecated && <DeprecatedPill />}\n </div>\n {isObject && (\n <ObjectExpandButton\n onClick={() => setShowChildren(!showChildren)}\n count={propertiesCount}\n labeled={defaultExpanded == false}\n />\n )}\n </div>\n {schema.description && !descriptionContainsTable && (\n <Description\n markdown={schema.description}\n className=\"mint:text-gray-500 mint:dark:text-gray-400\"\n />\n )}\n </div>\n {showChildren && (\n <div\n className={cn(\n 'mint:grid mint:grid-cols-1 mint:w-full mint:items-start mint:divide-y mint:divide-gray-50 mint:dark:divide-white/5',\n isArray && 'mint:divide-y-0'\n )}\n >\n {children}\n </div>\n )}\n </div>\n {(arrayIndex != undefined || parentNames) && onClear && (\n <TrashButton\n className={cn(isObject && 'mint:mt-8', parentNames && 'mint:mt-7')}\n onClick={() => onClear()}\n />\n )}\n </div>\n {schema.description && descriptionContainsTable && (\n <Description markdown={schema.description} className=\"mint:text-gray-500 mint:dark:text-gray-400\" />\n )}\n </ErrorBoundary>\n );\n};\n"],"names":["InputContainer","name","children","schema","onClear","isObject","isArray","parentNames","arrayIndex","typeDropdown","defaultExpanded","style","explode","showChildren","setShowChildren","useState","propertiesCount","typeLabel","descriptionContainsTable","isEnum","containsMarkdownTable","ErrorBoundary","jsxs","cn","ArrayCount","jsx","Fragment","parentName","index","InfoPill","RequiredPill","DeprecatedPill","ObjectExpandButton","Description","TrashButton"],"mappings":";;;;;;;;;;;AA+BO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,OAAAC;AAAA,EACA,SAAAC;AACF,MAA4B;AAC1B,QAAM,CAACC,GAAcC,CAAe,IAAIC,EAASL,CAAe,GAC1DM,IAAkBb,EAAO,SAAS,WAAW,OAAO,KAAKA,EAAO,UAAU,EAAE,SAAS,GAErFc,IACJ,YAAYd,KAAU,OAAOA,EAAO,UAAW,WAC3C,GAAGA,EAAO,IAAI,IAAIA,EAAO,MAAM,MAC/BA,EAAO,MAEPe,IACJC,EAAOhB,CAAM,KAAKA,EAAO,eAAeiB,EAAsBjB,EAAO,WAAW;AAElF,2BACGkB,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC;AAAA,UACT;AAAA,UACAf,KAAc,QAAa,CAACH,KAAY;AAAA,QAAA;AAAA,QAGzC,UAAA;AAAA,UAAAG,KAAc,0BACZgB,GAAA,EAAW,WAAWD,EAAGlB,KAAY,WAAW,GAAI,UAAAG,IAAa,EAAA,CAAE;AAAA,UAEtE,gBAAAc;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWC;AAAA,gBACT;AAAA,gBACAjB,KAAW;AAAA,gBACXD,KACE;AAAA,gBACFG,MAAe,UAAa;AAAA,cAAA;AAAA,cAG9B,UAAA;AAAA,gBAAA,gBAAAc;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAWC;AAAA,sBACT;AAAA,sBACAlB,KAAY;AAAA,sBACZ,CAACQ,KAAgB;AAAA,sBACjBL,KAAc,QAAa,CAACH,KAAY;AAAA,oBAAA;AAAA,oBAG1C,UAAA;AAAA,sBAAA,gBAAAiB,EAAC,OAAA,EAAI,WAAU,kFACb,UAAA;AAAA,wBAAA,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,OAAOf,IAAc,GAAGA,EAAY,KAAK,GAAG,CAAC,IAAIN,CAAI,KAAKA;AAAA,4BAE1D,UAAA;AAAA,8BAAA,gBAAAwB,EAAC,OAAA,EAAI,WAAWF,EAAG,8BAA8BtB,KAAQ,QAAa,aAAa,GAChF,UAAAM,KAAeA,EAAY,SAAS,KAAKI,MAAU,gBAAgBC,IAClE,gBAAAU,EAAAI,GAAA,EACE,UAAA;AAAA,gCAAA,gBAAAD,EAAC,QAAA,EAAK,WAAU,8CACb,UAAAlB,EAAY,IAAI,CAACoB,GAAYC,MAC5B,gBAAAN,EAAAI,GAAA,EACG,UAAA;AAAA,kCAAAC;AAAA,kCACAC,MAAU,IAAI,MAAM;AAAA,gCAAA,EAAA,CACvB,CACD,EAAA,CACH;AAAA,gCACA,gBAAAH,EAAC,QAAA,EAAK,WAAU,iEAAiE,UAAAxB,GAAK;AAAA,gCACtF,gBAAAwB,EAAC,QAAA,EAAK,WAAU,8CAA8C,UAAA,IAAA,CAAI;AAAA,8BAAA,EAAA,CACpE,IAEA,gBAAAH,EAAAI,GAAA,EACE,UAAA;AAAA,gCAAA,gBAAAD,EAAC,QAAA,EAAK,WAAU,8CACb,UAAAlB,IAAc,GAAGA,EAAY,KAAK,GAAG,CAAC,MAAM,GAAA,CAC/C;AAAA,gCACA,gBAAAkB,EAAC,QAAA,EAAK,WAAU,iEAAiE,UAAAxB,EAAA,CAAK;AAAA,8BAAA,EAAA,CACxF,EAAA,CAEJ;AAAA,8BACCQ,KAA2C,gBAAAgB,EAACI,KAAU,UAAAZ,GAAU;AAAA,8BAChEd,EAAO,YAAY,gBAAAsB,EAACK,GAAA,CAAA,CAAa;AAAA,8BACjC3B,EAAO,cAAc,gBAAAsB,EAACM,GAAA,CAAA,CAAe;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAEvC1B,KACC,gBAAAoB;AAAA,0BAACO;AAAA,0BAAA;AAAA,4BACC,SAAS,MAAMlB,EAAgB,CAACD,CAAY;AAAA,4BAC5C,OAAOG;AAAA,4BACP,SAASN,KAAmB;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAC9B,GAEJ;AAAA,sBACCP,EAAO,eAAe,CAACe,KACtB,gBAAAO;AAAA,wBAACQ;AAAA,wBAAA;AAAA,0BACC,UAAU9B,EAAO;AAAA,0BACjB,WAAU;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACZ;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGHU,KACC,gBAAAY;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAWF;AAAA,sBACT;AAAA,sBACAjB,KAAW;AAAA,oBAAA;AAAA,oBAGZ,UAAAJ;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH;AAAA,YAAA;AAAA,UAAA;AAAA,WAGFM,KAAc,QAAaD,MAAgBH,KAC3C,gBAAAqB;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,WAAWX,EAAGlB,KAAY,aAAaE,KAAe,WAAW;AAAA,cACjE,SAAS,MAAMH,EAAA;AAAA,YAAQ;AAAA,UAAA;AAAA,QACzB;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHD,EAAO,eAAee,KACrB,gBAAAO,EAACQ,KAAY,UAAU9B,EAAO,aAAa,WAAU,6CAAA,CAA6C;AAAA,EAAA,GAEtG;AAEJ;"}