@scalar/api-reference 1.48.8 → 1.49.1

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 (381) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/AgentScalarChatInterface-MUbtSqMw.js +41 -0
  3. package/dist/AgentScalarChatInterface-MUbtSqMw.js.map +1 -0
  4. package/dist/ExternalDocs-phu7GxpZ.js +272 -0
  5. package/dist/ExternalDocs-phu7GxpZ.js.map +1 -0
  6. package/dist/MobileHeader-B71jYJdT.js +1373 -0
  7. package/dist/MobileHeader-B71jYJdT.js.map +1 -0
  8. package/dist/Operation-CixLVfKd.js +3827 -0
  9. package/dist/Operation-CixLVfKd.js.map +1 -0
  10. package/dist/SearchButton-xzhIpMCZ.js +621 -0
  11. package/dist/SearchButton-xzhIpMCZ.js.map +1 -0
  12. package/dist/ServerSelector-5y29y2BJ.js +852 -0
  13. package/dist/ServerSelector-5y29y2BJ.js.map +1 -0
  14. package/dist/blocks/index.js +3 -10
  15. package/dist/blocks/scalar-client-selector-block/index.d.ts +1 -1
  16. package/dist/blocks/scalar-info-block/index.d.ts +2 -2
  17. package/dist/blocks/scalar-server-selector-block/index.d.ts +1 -1
  18. package/dist/browser/standalone.js +40748 -34662
  19. package/dist/browser/webpack-stats.json +1 -1
  20. package/dist/components/AgentScalar/index.d.ts +3 -3
  21. package/dist/components/Anchor/index.d.ts +2 -2
  22. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  23. package/dist/components/Badge/index.d.ts +1 -1
  24. package/dist/components/Content/Auth/index.d.ts +1 -1
  25. package/dist/components/Content/Content.vue.d.ts +2 -4
  26. package/dist/components/Content/Content.vue.d.ts.map +1 -1
  27. package/dist/components/Content/Models/ModelTag.vue.d.ts +3 -3
  28. package/dist/components/Content/Models/ModelTag.vue.d.ts.map +1 -1
  29. package/dist/components/Content/Models/index.d.ts +2 -2
  30. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  31. package/dist/components/Content/Schema/Schema.vue.d.ts +1 -1
  32. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts +2 -2
  33. package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts +1 -1
  34. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +1 -1
  35. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  36. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.d.ts.map +1 -1
  37. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  38. package/dist/components/Content/Schema/helpers/get-compositions-to-render.d.ts +1 -1
  39. package/dist/components/Content/Schema/index.d.ts +4 -4
  40. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts +2 -2
  41. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  42. package/dist/components/Content/Tags/index.d.ts +1 -1
  43. package/dist/components/Content/index.d.ts +2 -2
  44. package/dist/components/HttpMethod/index.d.ts +1 -1
  45. package/dist/components/Lazy/Lazy.vue.d.ts +3 -0
  46. package/dist/components/Lazy/Lazy.vue.d.ts.map +1 -1
  47. package/dist/components/LinkList/index.d.ts +1 -1
  48. package/dist/components/OperationsList/index.d.ts +1 -1
  49. package/dist/components/RenderPlugins/index.d.ts +1 -1
  50. package/dist/components/Section/index.d.ts +10 -10
  51. package/dist/components/SectionFlare/index.d.ts +1 -1
  52. package/dist/components/index.d.ts +5 -5
  53. package/dist/components/index.js +102 -42
  54. package/dist/components/index.js.map +1 -0
  55. package/dist/features/Operation/components/OperationParameters.vue.d.ts +1 -1
  56. package/dist/features/Operation/components/OperationResponses.vue.d.ts +1 -1
  57. package/dist/features/Operation/components/ParameterList.vue.d.ts +1 -1
  58. package/dist/features/Operation/components/ParameterListItem.vue.d.ts +1 -1
  59. package/dist/features/Operation/components/callbacks/Callback.vue.d.ts +1 -1
  60. package/dist/features/Operation/components/callbacks/Callbacks.vue.d.ts +1 -1
  61. package/dist/features/Operation/index.d.ts +1 -1
  62. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts +1 -1
  63. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts +1 -1
  64. package/dist/features/Search/components/SearchResult.vue.d.ts +1 -1
  65. package/dist/features/Search/helpers/create-fuse-instance.d.ts +1 -1
  66. package/dist/features/Search/helpers/create-search-index.d.ts +1 -1
  67. package/dist/features/Search/index.d.ts +2 -2
  68. package/dist/features/Search/types.d.ts +1 -1
  69. package/dist/features/ask-agent-button/AskAgentButton.vue.d.ts.map +1 -1
  70. package/dist/features/developer-tools/index.d.ts +1 -1
  71. package/dist/features/example-responses/index.d.ts +1 -1
  72. package/dist/features/external-docs/index.d.ts +1 -1
  73. package/dist/features/index.d.ts +2 -2
  74. package/dist/features/index.js +4 -10
  75. package/dist/features/info-object/index.d.ts +3 -3
  76. package/dist/features/specification-extension/index.d.ts +2 -2
  77. package/dist/features/test-request-button/index.d.ts +1 -1
  78. package/dist/features/x-badges/index.d.ts +1 -1
  79. package/dist/helpers/download.d.ts +1 -1
  80. package/dist/helpers/download.d.ts.map +1 -1
  81. package/dist/helpers/id-routing.d.ts +4 -0
  82. package/dist/helpers/id-routing.d.ts.map +1 -1
  83. package/dist/helpers/index.d.ts +8 -8
  84. package/dist/helpers/index.js +3 -24
  85. package/dist/helpers/lazy-bus.d.ts +19 -19
  86. package/dist/helpers/lazy-bus.d.ts.map +1 -1
  87. package/dist/hooks/index.d.ts +2 -2
  88. package/dist/hooks/index.js +3 -8
  89. package/dist/index.d.ts +5 -5
  90. package/dist/index.js +7 -14
  91. package/dist/lazy-bus-CV8Ox5hD.js +333 -0
  92. package/dist/lazy-bus-CV8Ox5hD.js.map +1 -0
  93. package/dist/normalize-configurations-DcVpOEjD.js +232 -0
  94. package/dist/normalize-configurations-DcVpOEjD.js.map +1 -0
  95. package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
  96. package/dist/plugins/index.d.ts +3 -3
  97. package/dist/plugins/index.js +2 -9
  98. package/dist/plugins-4EyiUD_A.js +80 -0
  99. package/dist/plugins-4EyiUD_A.js.map +1 -0
  100. package/dist/src-DqcYVBWI.js +1686 -0
  101. package/dist/src-DqcYVBWI.js.map +1 -0
  102. package/dist/ssr.d.ts +2 -2
  103. package/dist/ssr.js +7 -14
  104. package/dist/storage--3JuzjCI.js +42 -0
  105. package/dist/storage--3JuzjCI.js.map +1 -0
  106. package/dist/style.css +6840 -7397
  107. package/dist/urls-gPTXGgbj.js +17 -0
  108. package/dist/urls-gPTXGgbj.js.map +1 -0
  109. package/dist/use-agent-Bnm1de0n.js +60 -0
  110. package/dist/use-agent-Bnm1de0n.js.map +1 -0
  111. package/dist/use-intersection-8QqPi2O-.js +24 -0
  112. package/dist/use-intersection-8QqPi2O-.js.map +1 -0
  113. package/package.json +25 -27
  114. package/dist/_virtual/_plugin-vue_export-helper.js +0 -10
  115. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js +0 -7
  116. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue2.js +0 -123
  117. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js +0 -7
  118. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue2.js +0 -142
  119. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.js +0 -24
  120. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js +0 -7
  121. package/dist/blocks/scalar-info-block/components/DownloadLink.vue2.js +0 -63
  122. package/dist/blocks/scalar-info-block/components/InfoBlock.vue.js +0 -59
  123. package/dist/blocks/scalar-info-block/components/InfoBlock.vue2.js +0 -4
  124. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.js +0 -7
  125. package/dist/blocks/scalar-info-block/components/InfoDescription.vue2.js +0 -70
  126. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.js +0 -38
  127. package/dist/blocks/scalar-info-block/components/InfoLinks.vue2.js +0 -4
  128. package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue.js +0 -38
  129. package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue2.js +0 -4
  130. package/dist/blocks/scalar-info-block/components/InfoVersion.vue.js +0 -28
  131. package/dist/blocks/scalar-info-block/components/InfoVersion.vue2.js +0 -4
  132. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js +0 -7
  133. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue2.js +0 -19
  134. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js +0 -14
  135. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +0 -7
  136. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue2.js +0 -112
  137. package/dist/blocks/scalar-info-block/components/OpenApiVersion.vue.js +0 -21
  138. package/dist/blocks/scalar-info-block/components/OpenApiVersion.vue2.js +0 -4
  139. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.js +0 -76
  140. package/dist/blocks/scalar-server-selector-block/components/Selector.vue2.js +0 -4
  141. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.js +0 -72
  142. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue2.js +0 -4
  143. package/dist/components/AgentScalar/AgentScalarButton.vue.js +0 -22
  144. package/dist/components/AgentScalar/AgentScalarButton.vue2.js +0 -4
  145. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.js +0 -4
  146. package/dist/components/AgentScalar/AgentScalarChatInterface.vue2.js +0 -29
  147. package/dist/components/AgentScalar/AgentScalarDrawer.vue.js +0 -7
  148. package/dist/components/AgentScalar/AgentScalarDrawer.vue2.js +0 -78
  149. package/dist/components/AgentScalar/OpenMCPButton.vue.js +0 -7
  150. package/dist/components/AgentScalar/OpenMCPButton.vue2.js +0 -191
  151. package/dist/components/Anchor/Anchor.vue.js +0 -51
  152. package/dist/components/Anchor/Anchor.vue2.js +0 -4
  153. package/dist/components/Anchor/WithBreadcrumb.vue.js +0 -41
  154. package/dist/components/Anchor/WithBreadcrumb.vue2.js +0 -4
  155. package/dist/components/ApiReference.vue.js +0 -10
  156. package/dist/components/ApiReference.vue2.js +0 -744
  157. package/dist/components/Badge/Badge.vue.js +0 -7
  158. package/dist/components/Badge/Badge.vue2.js +0 -26
  159. package/dist/components/ClassicHeader.vue.js +0 -21
  160. package/dist/components/Content/Auth/Auth.vue.js +0 -77
  161. package/dist/components/Content/Auth/Auth.vue2.js +0 -4
  162. package/dist/components/Content/Auth/helpers/get-default-security.js +0 -55
  163. package/dist/components/Content/Content.vue.js +0 -177
  164. package/dist/components/Content/Content.vue3.js +0 -5
  165. package/dist/components/Content/Models/Model.vue.js +0 -47
  166. package/dist/components/Content/Models/Model.vue2.js +0 -4
  167. package/dist/components/Content/Models/ModelTag.vue.js +0 -82
  168. package/dist/components/Content/Models/ModelTag.vue2.js +0 -4
  169. package/dist/components/Content/Models/components/ClassicLayout.vue.js +0 -7
  170. package/dist/components/Content/Models/components/ClassicLayout.vue2.js +0 -78
  171. package/dist/components/Content/Models/components/ModernLayout.vue.js +0 -61
  172. package/dist/components/Content/Models/components/ModernLayout.vue2.js +0 -4
  173. package/dist/components/Content/Operations/TraversedEntry.vue.js +0 -145
  174. package/dist/components/Content/Operations/TraversedEntry.vue2.js +0 -4
  175. package/dist/components/Content/Schema/RenderString.vue.js +0 -27
  176. package/dist/components/Content/Schema/RenderString.vue2.js +0 -4
  177. package/dist/components/Content/Schema/Schema.vue.js +0 -7
  178. package/dist/components/Content/Schema/Schema.vue2.js +0 -193
  179. package/dist/components/Content/Schema/SchemaComposition.vue.js +0 -120
  180. package/dist/components/Content/Schema/SchemaComposition.vue2.js +0 -4
  181. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.js +0 -7
  182. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue2.js +0 -36
  183. package/dist/components/Content/Schema/SchemaEnums.vue.js +0 -7
  184. package/dist/components/Content/Schema/SchemaEnums.vue2.js +0 -112
  185. package/dist/components/Content/Schema/SchemaHeading.vue.js +0 -7
  186. package/dist/components/Content/Schema/SchemaHeading.vue2.js +0 -61
  187. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.js +0 -66
  188. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue2.js +0 -4
  189. package/dist/components/Content/Schema/SchemaObjectProperties.vue.js +0 -120
  190. package/dist/components/Content/Schema/SchemaObjectProperties.vue2.js +0 -4
  191. package/dist/components/Content/Schema/SchemaProperty.vue.js +0 -7
  192. package/dist/components/Content/Schema/SchemaProperty.vue2.js +0 -228
  193. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js +0 -7
  194. package/dist/components/Content/Schema/SchemaPropertyDefault.vue2.js +0 -45
  195. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.js +0 -7
  196. package/dist/components/Content/Schema/SchemaPropertyDetail.vue2.js +0 -40
  197. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js +0 -7
  198. package/dist/components/Content/Schema/SchemaPropertyExamples.vue2.js +0 -80
  199. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +0 -7
  200. package/dist/components/Content/Schema/SchemaPropertyHeading.vue2.js +0 -318
  201. package/dist/components/Content/Schema/helpers/format-example.js +0 -41
  202. package/dist/components/Content/Schema/helpers/format-value.js +0 -35
  203. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js +0 -31
  204. package/dist/components/Content/Schema/helpers/get-enum-values.js +0 -20
  205. package/dist/components/Content/Schema/helpers/get-property-description.js +0 -34
  206. package/dist/components/Content/Schema/helpers/get-ref-name.js +0 -14
  207. package/dist/components/Content/Schema/helpers/get-schema-type.js +0 -47
  208. package/dist/components/Content/Schema/helpers/has-complex-array-items.js +0 -48
  209. package/dist/components/Content/Schema/helpers/is-empty-schema-object.js +0 -13
  210. package/dist/components/Content/Schema/helpers/is-type-object.js +0 -27
  211. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +0 -215
  212. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js +0 -64
  213. package/dist/components/Content/Schema/helpers/schema-composition.js +0 -4
  214. package/dist/components/Content/Schema/helpers/schema-name.js +0 -24
  215. package/dist/components/Content/Schema/helpers/should-display-description.js +0 -12
  216. package/dist/components/Content/Schema/helpers/should-display-heading.js +0 -12
  217. package/dist/components/Content/Schema/helpers/should-render-array-item-composition.js +0 -15
  218. package/dist/components/Content/Schema/helpers/sort-property-names.js +0 -71
  219. package/dist/components/Content/Tags/Tag.vue.js +0 -46
  220. package/dist/components/Content/Tags/Tag.vue2.js +0 -4
  221. package/dist/components/Content/Tags/components/ClassicLayout.vue.js +0 -7
  222. package/dist/components/Content/Tags/components/ClassicLayout.vue2.js +0 -57
  223. package/dist/components/Content/Tags/components/ModernLayout.vue.js +0 -7
  224. package/dist/components/Content/Tags/components/ModernLayout.vue2.js +0 -64
  225. package/dist/components/Content/Tags/components/TagSection.vue.js +0 -100
  226. package/dist/components/Content/Tags/components/TagSection.vue2.js +0 -4
  227. package/dist/components/GettingStarted.vue.js +0 -7
  228. package/dist/components/GettingStarted.vue2.js +0 -82
  229. package/dist/components/HttpMethod/HttpMethod.vue.js +0 -34
  230. package/dist/components/HttpMethod/HttpMethod.vue2.js +0 -4
  231. package/dist/components/IntersectionObserver.vue.js +0 -55
  232. package/dist/components/IntersectionObserver.vue2.js +0 -4
  233. package/dist/components/Lazy/Lazy.vue.js +0 -17
  234. package/dist/components/Lazy/Lazy.vue2.js +0 -4
  235. package/dist/components/LinkList/LinkList.vue.js +0 -7
  236. package/dist/components/LinkList/LinkList.vue2.js +0 -48
  237. package/dist/components/LoadingSkeleton.vue.js +0 -7
  238. package/dist/components/LoadingSkeleton.vue2.js +0 -20
  239. package/dist/components/MobileHeader.vue.js +0 -62
  240. package/dist/components/MobileHeader.vue2.js +0 -4
  241. package/dist/components/OperationPath.vue.js +0 -7
  242. package/dist/components/OperationPath.vue2.js +0 -30
  243. package/dist/components/OperationsList/OperationsList.vue.js +0 -7
  244. package/dist/components/OperationsList/OperationsList.vue2.js +0 -61
  245. package/dist/components/OperationsList/OperationsListItem.vue.js +0 -7
  246. package/dist/components/OperationsList/OperationsListItem.vue2.js +0 -68
  247. package/dist/components/RenderPlugins/RenderPlugins.vue.js +0 -43
  248. package/dist/components/RenderPlugins/RenderPlugins.vue2.js +0 -4
  249. package/dist/components/ScreenReader.vue.js +0 -7
  250. package/dist/components/ScreenReader.vue2.js +0 -21
  251. package/dist/components/Section/CompactSection.vue.js +0 -7
  252. package/dist/components/Section/CompactSection.vue2.js +0 -60
  253. package/dist/components/Section/Section.vue.js +0 -7
  254. package/dist/components/Section/Section.vue2.js +0 -23
  255. package/dist/components/Section/SectionAccordion.vue.js +0 -7
  256. package/dist/components/Section/SectionAccordion.vue2.js +0 -76
  257. package/dist/components/Section/SectionColumn.vue.js +0 -14
  258. package/dist/components/Section/SectionColumns.vue.js +0 -14
  259. package/dist/components/Section/SectionContainer.vue.js +0 -7
  260. package/dist/components/Section/SectionContainer.vue2.js +0 -21
  261. package/dist/components/Section/SectionContainerAccordion.vue.js +0 -7
  262. package/dist/components/Section/SectionContainerAccordion.vue2.js +0 -54
  263. package/dist/components/Section/SectionContent.vue.js +0 -7
  264. package/dist/components/Section/SectionContent.vue2.js +0 -22
  265. package/dist/components/Section/SectionHeader.vue.js +0 -7
  266. package/dist/components/Section/SectionHeader.vue2.js +0 -26
  267. package/dist/components/Section/SectionHeaderTag.vue.js +0 -7
  268. package/dist/components/Section/SectionHeaderTag.vue2.js +0 -20
  269. package/dist/components/SectionFlare/SectionFlare.vue.js +0 -14
  270. package/dist/components/ShowMoreButton.vue.js +0 -7
  271. package/dist/components/ShowMoreButton.vue2.js +0 -23
  272. package/dist/consts/urls.js +0 -16
  273. package/dist/features/Operation/Operation.vue.js +0 -100
  274. package/dist/features/Operation/Operation.vue2.js +0 -4
  275. package/dist/features/Operation/components/ContentTypeSelect.vue.js +0 -88
  276. package/dist/features/Operation/components/ContentTypeSelect.vue2.js +0 -4
  277. package/dist/features/Operation/components/Header.vue.js +0 -33
  278. package/dist/features/Operation/components/Header.vue2.js +0 -4
  279. package/dist/features/Operation/components/Headers.vue.js +0 -7
  280. package/dist/features/Operation/components/Headers.vue2.js +0 -71
  281. package/dist/features/Operation/components/OperationParameters.vue.js +0 -92
  282. package/dist/features/Operation/components/OperationParameters.vue2.js +0 -4
  283. package/dist/features/Operation/components/OperationResponses.vue.js +0 -44
  284. package/dist/features/Operation/components/OperationResponses.vue2.js +0 -4
  285. package/dist/features/Operation/components/ParameterList.vue.js +0 -50
  286. package/dist/features/Operation/components/ParameterList.vue2.js +0 -4
  287. package/dist/features/Operation/components/ParameterListItem.vue.js +0 -7
  288. package/dist/features/Operation/components/ParameterListItem.vue2.js +0 -163
  289. package/dist/features/Operation/components/RequestBody.vue.js +0 -7
  290. package/dist/features/Operation/components/RequestBody.vue2.js +0 -164
  291. package/dist/features/Operation/components/callbacks/Callback.vue.js +0 -7
  292. package/dist/features/Operation/components/callbacks/Callback.vue2.js +0 -60
  293. package/dist/features/Operation/components/callbacks/Callbacks.vue.js +0 -63
  294. package/dist/features/Operation/components/callbacks/Callbacks.vue2.js +0 -4
  295. package/dist/features/Operation/helpers/filter-selected-security.js +0 -28
  296. package/dist/features/Operation/helpers/get-first-server.js +0 -25
  297. package/dist/features/Operation/layouts/ClassicLayout.vue.js +0 -7
  298. package/dist/features/Operation/layouts/ClassicLayout.vue2.js +0 -243
  299. package/dist/features/Operation/layouts/ModernLayout.vue.js +0 -7
  300. package/dist/features/Operation/layouts/ModernLayout.vue2.js +0 -256
  301. package/dist/features/Search/components/SearchButton.vue.js +0 -88
  302. package/dist/features/Search/components/SearchButton.vue2.js +0 -4
  303. package/dist/features/Search/components/SearchModal.vue.js +0 -7
  304. package/dist/features/Search/components/SearchModal.vue2.js +0 -120
  305. package/dist/features/Search/components/SearchResult.vue.js +0 -84
  306. package/dist/features/Search/components/SearchResult.vue2.js +0 -4
  307. package/dist/features/Search/helpers/create-fuse-instance.js +0 -43
  308. package/dist/features/Search/helpers/create-search-index.js +0 -119
  309. package/dist/features/Search/hooks/useSearchIndex.js +0 -33
  310. package/dist/features/ask-agent-button/AskAgentButton.vue.js +0 -7
  311. package/dist/features/ask-agent-button/AskAgentButton.vue2.js +0 -47
  312. package/dist/features/developer-tools/DeveloperTools.vue.js +0 -60
  313. package/dist/features/developer-tools/DeveloperTools.vue2.js +0 -4
  314. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js +0 -13
  315. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.js +0 -33
  316. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue2.js +0 -4
  317. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js +0 -138
  318. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue2.js +0 -4
  319. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.js +0 -66
  320. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue2.js +0 -4
  321. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.js +0 -54
  322. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue2.js +0 -4
  323. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.js +0 -71
  324. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue2.js +0 -4
  325. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js +0 -63
  326. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue2.js +0 -4
  327. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.js +0 -73
  328. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue2.js +0 -4
  329. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.js +0 -57
  330. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue2.js +0 -4
  331. package/dist/features/developer-tools/components/DeployApiReference.vue.js +0 -35
  332. package/dist/features/developer-tools/components/DeployApiReference.vue2.js +0 -4
  333. package/dist/features/developer-tools/components/ModifyConfiguration.vue.js +0 -103
  334. package/dist/features/developer-tools/components/ModifyConfiguration.vue2.js +0 -4
  335. package/dist/features/developer-tools/components/ShareApiReference.vue.js +0 -35
  336. package/dist/features/developer-tools/components/ShareApiReference.vue2.js +0 -4
  337. package/dist/features/example-responses/ExampleResponse.vue.js +0 -7
  338. package/dist/features/example-responses/ExampleResponse.vue2.js +0 -61
  339. package/dist/features/example-responses/ExampleResponseTab.vue.js +0 -7
  340. package/dist/features/example-responses/ExampleResponseTab.vue2.js +0 -25
  341. package/dist/features/example-responses/ExampleResponseTabList.vue.js +0 -7
  342. package/dist/features/example-responses/ExampleResponseTabList.vue2.js +0 -37
  343. package/dist/features/example-responses/ExampleResponses.vue.js +0 -7
  344. package/dist/features/example-responses/ExampleResponses.vue2.js +0 -181
  345. package/dist/features/example-responses/ExampleSchema.vue.js +0 -42
  346. package/dist/features/example-responses/ExampleSchema.vue2.js +0 -4
  347. package/dist/features/example-responses/has-response-content.js +0 -28
  348. package/dist/features/external-docs/ExternalDocs.vue.js +0 -42
  349. package/dist/features/external-docs/ExternalDocs.vue2.js +0 -4
  350. package/dist/features/info-object/Contact.vue.js +0 -46
  351. package/dist/features/info-object/Contact.vue2.js +0 -4
  352. package/dist/features/info-object/License.vue.js +0 -40
  353. package/dist/features/info-object/License.vue2.js +0 -4
  354. package/dist/features/info-object/TermsOfService.vue.js +0 -34
  355. package/dist/features/info-object/TermsOfService.vue2.js +0 -4
  356. package/dist/features/multiple-documents/DocumentSelector.vue.js +0 -54
  357. package/dist/features/multiple-documents/DocumentSelector.vue2.js +0 -4
  358. package/dist/features/specification-extension/SpecificationExtension.vue.js +0 -4
  359. package/dist/features/specification-extension/SpecificationExtension.vue2.js +0 -52
  360. package/dist/features/specification-extension/helpers.js +0 -9
  361. package/dist/features/test-request-button/TestRequestButton.vue.js +0 -7
  362. package/dist/features/test-request-button/TestRequestButton.vue2.js +0 -46
  363. package/dist/features/x-badges/XBadges.vue.js +0 -35
  364. package/dist/features/x-badges/XBadges.vue2.js +0 -4
  365. package/dist/helpers/color-mode.js +0 -9
  366. package/dist/helpers/download.js +0 -45
  367. package/dist/helpers/id-routing.js +0 -63
  368. package/dist/helpers/lazy-bus.js +0 -160
  369. package/dist/helpers/load-from-perssistance.js +0 -17
  370. package/dist/helpers/map-config-plugins.js +0 -27
  371. package/dist/helpers/map-config-to-workspace-store.js +0 -45
  372. package/dist/helpers/normalize-configurations.js +0 -69
  373. package/dist/helpers/openapi.js +0 -135
  374. package/dist/helpers/storage.js +0 -47
  375. package/dist/helpers/upload-temp-document.js +0 -24
  376. package/dist/hooks/use-agent.js +0 -42
  377. package/dist/hooks/use-intersection.js +0 -32
  378. package/dist/plugins/hooks/usePluginManager.js +0 -14
  379. package/dist/plugins/persistance-plugin.js +0 -48
  380. package/dist/plugins/plugin-manager.js +0 -39
  381. package/dist/standalone/lib/html-api.js +0 -81
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @scalar/api-reference
2
2
 
3
+ ## 1.49.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#8466](https://github.com/scalar/scalar/pull/8466): chore: new build pipeline
8
+ - [#8479](https://github.com/scalar/scalar/pull/8479): fix: render schema property examples when values are falsy
9
+
10
+ ## 1.49.0
11
+
12
+ ### Minor Changes
13
+
14
+ - [#8409](https://github.com/scalar/scalar/pull/8409): feat: lazy rendering
15
+
16
+ ### Patch Changes
17
+
18
+ - [#8443](https://github.com/scalar/scalar/pull/8443): fix hash-prefixed basePath routing
19
+ - [#8467](https://github.com/scalar/scalar/pull/8467): feat(api-reference): improve Ask AI button consistency and a11y
20
+ - [#8442](https://github.com/scalar/scalar/pull/8442): fix object schema descriptions in parameter rendering
21
+
22
+ #### Updated Dependencies
23
+
24
+ - **@scalar/workspace-store@0.40.2**
25
+ - [#8468](https://github.com/scalar/scalar/pull/8468): fix: ignore response examples when generating navigation
26
+
27
+ - **@scalar/api-client@2.38.1**
28
+ - [#8468](https://github.com/scalar/scalar/pull/8468): fix: example extraction, environment navigation and general UI fixes
29
+ - [#8451](https://github.com/scalar/scalar/pull/8451): fix(api-client): default-close auth when not required
30
+
31
+ - **@scalar/openapi-parser@0.25.4**
32
+ - [#8448](https://github.com/scalar/scalar/pull/8448): fix parser validation for unused path parameters
33
+
34
+ - **@scalar/components@0.20.9**
35
+ - [#8453](https://github.com/scalar/scalar/pull/8453): refactor: remove @ts-expect-error from ScalarTextArea
36
+
37
+ - **@scalar/agent-chat@0.9.9**
38
+
39
+ - **@scalar/oas-utils@0.10.8**
40
+
41
+ - **@scalar/sidebar@0.8.9**
42
+
3
43
  ## 1.48.8
4
44
 
5
45
  ### Patch Changes
@@ -0,0 +1,41 @@
1
+ import { o as REGISTRY_URL, r as DASHBOARD_URL, t as API_BASE_URL } from "./urls-gPTXGgbj.js";
2
+ import { createBlock, defineComponent, openBlock, unref } from "vue";
3
+ import { Chat } from "@scalar/agent-chat";
4
+ //#endregion
5
+ //#region src/components/AgentScalar/AgentScalarChatInterface.vue
6
+ var AgentScalarChatInterface_default = /* @__PURE__ */ defineComponent({
7
+ __name: "AgentScalarChatInterface",
8
+ props: {
9
+ agentScalarConfiguration: {},
10
+ workspaceStore: {},
11
+ prefilledMessage: {}
12
+ },
13
+ setup(__props) {
14
+ return (_ctx, _cache) => {
15
+ return openBlock(), createBlock(unref(Chat), {
16
+ baseUrl: unref(API_BASE_URL),
17
+ dashboardUrl: unref(DASHBOARD_URL),
18
+ getActiveDocumentJson: () => __props.workspaceStore.exportActiveDocument("json"),
19
+ getAgentKey: __props.agentScalarConfiguration?.key ? () => __props.agentScalarConfiguration?.key ?? "" : void 0,
20
+ hideAddApi: __props.agentScalarConfiguration?.hideAddApi,
21
+ mode: __props.agentScalarConfiguration?.key ? "full" : "preview",
22
+ prefilledMessage: __props.prefilledMessage,
23
+ registryDocuments: [],
24
+ registryUrl: unref(REGISTRY_URL)
25
+ }, null, 8, [
26
+ "baseUrl",
27
+ "dashboardUrl",
28
+ "getActiveDocumentJson",
29
+ "getAgentKey",
30
+ "hideAddApi",
31
+ "mode",
32
+ "prefilledMessage",
33
+ "registryUrl"
34
+ ]);
35
+ };
36
+ }
37
+ });
38
+ //#endregion
39
+ export { AgentScalarChatInterface_default as default };
40
+
41
+ //# sourceMappingURL=AgentScalarChatInterface-MUbtSqMw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentScalarChatInterface-MUbtSqMw.js","names":[],"sources":["../src/components/AgentScalar/AgentScalarChatInterface.vue","../src/components/AgentScalar/AgentScalarChatInterface.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Chat } from '@scalar/agent-chat'\nimport { type ApiReferenceConfigurationWithSource } from '@scalar/types/api-reference'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport type { Ref } from 'vue'\n\nimport { API_BASE_URL, DASHBOARD_URL, REGISTRY_URL } from '@/consts/urls'\n\nconst { agentScalarConfiguration, workspaceStore, prefilledMessage } =\n defineProps<{\n agentScalarConfiguration: ApiReferenceConfigurationWithSource['agent']\n workspaceStore: WorkspaceStore\n prefilledMessage?: Ref<string>\n }>()\n</script>\n\n<template>\n <Chat\n :baseUrl=\"API_BASE_URL\"\n :dashboardUrl=\"DASHBOARD_URL\"\n :getActiveDocumentJson=\"() => workspaceStore.exportActiveDocument('json')!\"\n :getAgentKey=\"\n agentScalarConfiguration?.key\n ? () => agentScalarConfiguration?.key ?? ''\n : undefined\n \"\n :hideAddApi=\"agentScalarConfiguration?.hideAddApi\"\n :mode=\"agentScalarConfiguration?.key ? 'full' : 'preview'\"\n :prefilledMessage=\"prefilledMessage\"\n :registryDocuments=\"[]\"\n :registryUrl=\"REGISTRY_URL\" />\n</template>\n","<script setup lang=\"ts\">\nimport { Chat } from '@scalar/agent-chat'\nimport { type ApiReferenceConfigurationWithSource } from '@scalar/types/api-reference'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport type { Ref } from 'vue'\n\nimport { API_BASE_URL, DASHBOARD_URL, REGISTRY_URL } from '@/consts/urls'\n\nconst { agentScalarConfiguration, workspaceStore, prefilledMessage } =\n defineProps<{\n agentScalarConfiguration: ApiReferenceConfigurationWithSource['agent']\n workspaceStore: WorkspaceStore\n prefilledMessage?: Ref<string>\n }>()\n</script>\n\n<template>\n <Chat\n :baseUrl=\"API_BASE_URL\"\n :dashboardUrl=\"DASHBOARD_URL\"\n :getActiveDocumentJson=\"() => workspaceStore.exportActiveDocument('json')!\"\n :getAgentKey=\"\n agentScalarConfiguration?.key\n ? () => agentScalarConfiguration?.key ?? ''\n : undefined\n \"\n :hideAddApi=\"agentScalarConfiguration?.hideAddApi\"\n :mode=\"agentScalarConfiguration?.key ? 'full' : 'preview'\"\n :prefilledMessage=\"prefilledMessage\"\n :registryDocuments=\"[]\"\n :registryUrl=\"REGISTRY_URL\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;uBCiBE,YAagC,MAAA,KAAA,EAAA;IAZ7B,SAAS,MAAA,aAAY;IACrB,cAAc,MAAA,cAAa;IAC3B,6BAA6B,QAAA,eAAe,qBAAoB,OAAA;IAChE,aAAoB,QAAA,0BAA0B,YAAoB,QAAA,0BAA0B,OAAG,KAAiB,KAAA;IAKhH,YAAY,QAAA,0BAA0B;IACtC,MAAM,QAAA,0BAA0B,MAAG,SAAA;IACnC,kBAAkB,QAAA;IAClB,mBAAmB,EAAE;IACrB,aAAa,MAAA,aAAY"}
@@ -0,0 +1,272 @@
1
+ import { t as useIntersection } from "./use-intersection-8QqPi2O-.js";
2
+ import { r as usePluginManager } from "./plugins-4EyiUD_A.js";
3
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useTemplateRef, withCtx } from "vue";
4
+ import { ScalarErrorBoundary } from "@scalar/components";
5
+ import { ScalarIconBook } from "@scalar/icons";
6
+ //#region \0plugin-vue:export-helper
7
+ var _plugin_vue_export_helper_default = (sfc, props) => {
8
+ const target = sfc.__vccOpts || sfc;
9
+ for (const [key, val] of props) target[key] = val;
10
+ return target;
11
+ };
12
+ //#endregion
13
+ //#region src/components/Badge/Badge.vue
14
+ var Badge_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
15
+ __name: "Badge",
16
+ props: { color: {} },
17
+ setup(__props) {
18
+ const badgeStyle = computed(() => __props.color ? {
19
+ "--badge-background-color": __props.color,
20
+ "--badge-text-color": `color-mix(in srgb, ${__props.color}, black 40%)`
21
+ } : {});
22
+ return (_ctx, _cache) => {
23
+ return openBlock(), createElementBlock("div", {
24
+ class: "badge",
25
+ style: normalizeStyle(badgeStyle.value)
26
+ }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 4);
27
+ };
28
+ }
29
+ }), [["__scopeId", "data-v-3dedb7e4"]]);
30
+ //#endregion
31
+ //#region src/components/Section/Section.vue
32
+ var Section_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
33
+ __name: "Section",
34
+ emits: ["intersecting"],
35
+ setup(__props, { emit: __emit }) {
36
+ const emit = __emit;
37
+ const section = useTemplateRef("section");
38
+ useIntersection(section, () => emit("intersecting"));
39
+ return (_ctx, _cache) => {
40
+ return openBlock(), createElementBlock("section", {
41
+ ref_key: "section",
42
+ ref: section,
43
+ class: "section"
44
+ }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512);
45
+ };
46
+ }
47
+ }), [["__scopeId", "data-v-be4443e9"]]);
48
+ //#endregion
49
+ //#region src/components/Section/SectionColumn.vue
50
+ var _sfc_main$1 = {};
51
+ var _hoisted_1$5 = { class: "section-column" };
52
+ function _sfc_render$1(_ctx, _cache) {
53
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]);
54
+ }
55
+ var SectionColumn_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-699c28e3"]]);
56
+ //#endregion
57
+ //#region src/components/Section/SectionColumns.vue
58
+ var _sfc_main = {};
59
+ var _hoisted_1$4 = { class: "section-columns" };
60
+ function _sfc_render(_ctx, _cache) {
61
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]);
62
+ }
63
+ var SectionColumns_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8b9602bf"]]);
64
+ //#endregion
65
+ //#region src/components/LoadingSkeleton.vue
66
+ var LoadingSkeleton_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
67
+ __name: "LoadingSkeleton",
68
+ props: { lines: { default: 1 } },
69
+ setup(__props) {
70
+ return (_ctx, _cache) => {
71
+ return openBlock(true), createElementBlock(Fragment, null, renderList([...Array(__props.lines).keys()], (idx) => {
72
+ return openBlock(), createElementBlock("div", {
73
+ key: idx,
74
+ class: normalizeClass(["loading", { "single-line": __props.lines === 1 }])
75
+ }, null, 2);
76
+ }), 128);
77
+ };
78
+ }
79
+ }), [["__scopeId", "data-v-8e0226d7"]]);
80
+ //#endregion
81
+ //#region src/components/Section/SectionContent.vue?vue&type=script&setup=true&lang.ts
82
+ var _hoisted_1$3 = { class: "section-content" };
83
+ //#endregion
84
+ //#region src/components/Section/SectionContent.vue
85
+ var SectionContent_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
86
+ __name: "SectionContent",
87
+ props: { loading: {
88
+ type: Boolean,
89
+ default: false
90
+ } },
91
+ setup(__props) {
92
+ return (_ctx, _cache) => {
93
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [!__props.loading ? renderSlot(_ctx.$slots, "default", { key: 0 }, void 0, true) : (openBlock(), createBlock(LoadingSkeleton_default, {
94
+ key: 1,
95
+ lines: 8
96
+ }))]);
97
+ };
98
+ }
99
+ }), [["__scopeId", "data-v-9735459e"]]);
100
+ //#endregion
101
+ //#region src/components/Section/SectionHeader.vue?vue&type=script&setup=true&lang.ts
102
+ var _hoisted_1$2 = { class: "section-header-wrapper xl:gap-12" };
103
+ //#endregion
104
+ //#region src/components/Section/SectionHeader.vue
105
+ var SectionHeader_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
106
+ __name: "SectionHeader",
107
+ props: {
108
+ loading: { type: Boolean },
109
+ tight: { type: Boolean }
110
+ },
111
+ setup(__props) {
112
+ return (_ctx, _cache) => {
113
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [__props.loading ? (openBlock(), createBlock(LoadingSkeleton_default, { key: 0 })) : (openBlock(), createElementBlock("div", {
114
+ key: 1,
115
+ class: normalizeClass(["section-header", { tight: __props.tight }])
116
+ }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2)), _ctx.$slots.links ? renderSlot(_ctx.$slots, "links", { key: 2 }, void 0, true) : createCommentVNode("", true)]);
117
+ };
118
+ }
119
+ }), [["__scopeId", "data-v-465a7a78"]]);
120
+ //#endregion
121
+ //#region src/components/Section/SectionHeaderTag.vue
122
+ var SectionHeaderTag_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
123
+ __name: "SectionHeaderTag",
124
+ props: { level: { default: 1 } },
125
+ setup(__props) {
126
+ return (_ctx, _cache) => {
127
+ return openBlock(), createBlock(resolveDynamicComponent(`h${__props.level}`), { class: "section-header-label" }, {
128
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
129
+ _: 3
130
+ });
131
+ };
132
+ }
133
+ }), [["__scopeId", "data-v-f1ac6c38"]]);
134
+ //#endregion
135
+ //#region src/features/specification-extension/SpecificationExtension.vue?vue&type=script&setup=true&lang.ts
136
+ var _hoisted_1$1 = {
137
+ key: 0,
138
+ class: "text-base"
139
+ };
140
+ //#endregion
141
+ //#region src/features/specification-extension/SpecificationExtension.vue
142
+ var SpecificationExtension_default = /* @__PURE__ */ defineComponent({
143
+ __name: "SpecificationExtension",
144
+ props: { value: {} },
145
+ setup(__props) {
146
+ const { getSpecificationExtensions } = usePluginManager();
147
+ /**
148
+ * Extract registered OpenAPI extension names
149
+ */
150
+ function getCustomExtensionNames(value) {
151
+ return Object.keys(value ?? {}).filter((item) => item.startsWith("x-"));
152
+ }
153
+ /**
154
+ * Get the components for the specification extensions
155
+ */
156
+ function getCustomOpenApiExtensionComponents(extensionNames) {
157
+ return extensionNames.flatMap((name) => getSpecificationExtensions(name)).filter((extension) => extension.component);
158
+ }
159
+ /**
160
+ * Get the names of custom extensions from the provided value.
161
+ */
162
+ const customExtensionNames = computed(() => getCustomExtensionNames(__props.value));
163
+ /**
164
+ * Get the components for the custom extensions.
165
+ */
166
+ const customExtensions = computed(() => getCustomOpenApiExtensionComponents(customExtensionNames.value));
167
+ return (_ctx, _cache) => {
168
+ return typeof __props.value === "object" && customExtensions.value.length ? (openBlock(), createElementBlock("div", _hoisted_1$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(customExtensions.value, (extension) => {
169
+ return openBlock(), createBlock(unref(ScalarErrorBoundary), null, {
170
+ default: withCtx(() => [extension.renderer ? (openBlock(), createBlock(resolveDynamicComponent(extension.renderer), mergeProps({
171
+ key: 0,
172
+ ref_for: true
173
+ }, {
174
+ [extension.name]: __props.value?.[extension.name],
175
+ component: extension.component
176
+ }), null, 16)) : (openBlock(), createBlock(resolveDynamicComponent(extension.component), mergeProps({
177
+ key: 1,
178
+ ref_for: true
179
+ }, { [extension.name]: __props.value?.[extension.name] }), null, 16))]),
180
+ _: 2
181
+ }, 1024);
182
+ }), 256))])) : createCommentVNode("", true);
183
+ };
184
+ }
185
+ });
186
+ //#endregion
187
+ //#region src/components/LinkList/LinkList.vue
188
+ var LinkList_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
189
+ __name: "LinkList",
190
+ setup(__props) {
191
+ const containerRef = ref();
192
+ /** Whether the container needs to scroll */
193
+ const needsScroll = ref(false);
194
+ /** Check if the container can scroll in either direction */
195
+ const checkScrollability = () => {
196
+ if (!containerRef.value) return;
197
+ const { scrollWidth, clientWidth } = containerRef.value;
198
+ needsScroll.value = scrollWidth > clientWidth;
199
+ };
200
+ /** MutationObserver to watch for changes in child elements */
201
+ let mutationObserver = null;
202
+ /**
203
+ * We use the mutation observer to watch for changes and check if we need to scroll,
204
+ * if we do need to scroll we apply the icons-only class to the container
205
+ */
206
+ onMounted(() => {
207
+ checkScrollability();
208
+ window.addEventListener("resize", checkScrollability);
209
+ if (containerRef.value) {
210
+ mutationObserver = new MutationObserver(() => {
211
+ checkScrollability();
212
+ });
213
+ mutationObserver.observe(containerRef.value, {
214
+ childList: true,
215
+ subtree: true
216
+ });
217
+ }
218
+ });
219
+ onUnmounted(() => {
220
+ window.removeEventListener("resize", checkScrollability);
221
+ if (mutationObserver) {
222
+ mutationObserver.disconnect();
223
+ mutationObserver = null;
224
+ }
225
+ });
226
+ return (_ctx, _cache) => {
227
+ return openBlock(), createElementBlock("div", {
228
+ ref_key: "containerRef",
229
+ ref: containerRef,
230
+ class: normalizeClass([{ "icons-only": needsScroll.value }, "custom-scroll mb-3 flex h-auto min-h-8 max-w-full items-center gap-2 overflow-x-auto text-base whitespace-nowrap xl:mb-1.5"])
231
+ }, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2);
232
+ };
233
+ }
234
+ }), [["__scopeId", "data-v-b59b0acf"]]);
235
+ //#endregion
236
+ //#region src/features/external-docs/ExternalDocs.vue?vue&type=script&setup=true&lang.ts
237
+ var _hoisted_1 = {
238
+ key: 0,
239
+ class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
240
+ };
241
+ var _hoisted_2 = ["href"];
242
+ var _hoisted_3 = {
243
+ key: 0,
244
+ class: "ml-1 empty:hidden"
245
+ };
246
+ var _hoisted_4 = {
247
+ key: 1,
248
+ class: "ml-1 empty:hidden"
249
+ };
250
+ //#endregion
251
+ //#region src/features/external-docs/ExternalDocs.vue
252
+ var ExternalDocs_default = /* @__PURE__ */ defineComponent({
253
+ __name: "ExternalDocs",
254
+ props: { value: {} },
255
+ setup(__props) {
256
+ return (_ctx, _cache) => {
257
+ return __props.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("a", {
258
+ href: __props.value.url,
259
+ class: "text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none",
260
+ target: "_blank",
261
+ rel: "noopener noreferrer"
262
+ }, [createVNode(unref(ScalarIconBook), {
263
+ weight: "bold",
264
+ class: "size-3 text-current"
265
+ }), __props.value.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.value.description), 1)) : (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(__props.value.url), 1))], 8, _hoisted_2)])) : createCommentVNode("", true);
266
+ };
267
+ }
268
+ });
269
+ //#endregion
270
+ export { SectionHeader_default as a, SectionColumn_default as c, _plugin_vue_export_helper_default as d, SectionHeaderTag_default as i, Section_default as l, LinkList_default as n, SectionContent_default as o, SpecificationExtension_default as r, SectionColumns_default as s, ExternalDocs_default as t, Badge_default as u };
271
+
272
+ //# sourceMappingURL=ExternalDocs-phu7GxpZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalDocs-phu7GxpZ.js","names":["$slots"],"sources":["../src/components/Badge/Badge.vue","../src/components/Badge/Badge.vue","../src/components/Section/Section.vue","../src/components/Section/Section.vue","../src/components/Section/SectionColumn.vue","../src/components/Section/SectionColumns.vue","../src/components/LoadingSkeleton.vue","../src/components/LoadingSkeleton.vue","../src/components/Section/SectionContent.vue","../src/components/Section/SectionContent.vue","../src/components/Section/SectionHeader.vue","../src/components/Section/SectionHeader.vue","../src/components/Section/SectionHeaderTag.vue","../src/components/Section/SectionHeaderTag.vue","../src/features/specification-extension/SpecificationExtension.vue","../src/features/specification-extension/SpecificationExtension.vue","../src/components/LinkList/LinkList.vue","../src/components/LinkList/LinkList.vue","../src/features/external-docs/ExternalDocs.vue","../src/features/external-docs/ExternalDocs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst { color } = defineProps<{\n color?: string\n}>()\n\nconst badgeStyle = computed(() =>\n color\n ? {\n '--badge-background-color': color,\n '--badge-text-color': `color-mix(in srgb, ${color}, black 40%)`,\n }\n : {},\n)\n</script>\n\n<template>\n <div\n class=\"badge\"\n :style=\"badgeStyle\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.badge {\n color: var(--badge-text-color, var(--scalar-color-2));\n font-size: var(--scalar-mini);\n background: var(--badge-background-color, var(--scalar-background-2));\n border: var(--scalar-border-width) solid\n var(--badge-border-color, var(--scalar-border-color));\n padding: 2px 6px;\n border-radius: 12px;\n display: inline-block;\n}\n.badge.text-orange {\n background: color-mix(in srgb, var(--scalar-color-orange), transparent 90%);\n border: transparent;\n}\n.badge.text-yellow {\n background: color-mix(in srgb, var(--scalar-color-yellow), transparent 90%);\n border: transparent;\n}\n.badge.text-red {\n background: color-mix(in srgb, var(--scalar-color-red), transparent 90%);\n border: transparent;\n}\n.badge.text-purple {\n background: color-mix(in srgb, var(--scalar-color-purple), transparent 90%);\n border: transparent;\n}\n.badge.text-green {\n background: color-mix(in srgb, var(--scalar-color-green), transparent 90%);\n border: transparent;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst { color } = defineProps<{\n color?: string\n}>()\n\nconst badgeStyle = computed(() =>\n color\n ? {\n '--badge-background-color': color,\n '--badge-text-color': `color-mix(in srgb, ${color}, black 40%)`,\n }\n : {},\n)\n</script>\n\n<template>\n <div\n class=\"badge\"\n :style=\"badgeStyle\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.badge {\n color: var(--badge-text-color, var(--scalar-color-2));\n font-size: var(--scalar-mini);\n background: var(--badge-background-color, var(--scalar-background-2));\n border: var(--scalar-border-width) solid\n var(--badge-border-color, var(--scalar-border-color));\n padding: 2px 6px;\n border-radius: 12px;\n display: inline-block;\n}\n.badge.text-orange {\n background: color-mix(in srgb, var(--scalar-color-orange), transparent 90%);\n border: transparent;\n}\n.badge.text-yellow {\n background: color-mix(in srgb, var(--scalar-color-yellow), transparent 90%);\n border: transparent;\n}\n.badge.text-red {\n background: color-mix(in srgb, var(--scalar-color-red), transparent 90%);\n border: transparent;\n}\n.badge.text-purple {\n background: color-mix(in srgb, var(--scalar-color-purple), transparent 90%);\n border: transparent;\n}\n.badge.text-green {\n background: color-mix(in srgb, var(--scalar-color-green), transparent 90%);\n border: transparent;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from 'vue'\n\nimport { useIntersection } from '@/hooks/use-intersection'\n\nconst emit = defineEmits<{\n (e: 'intersecting'): void\n}>()\n\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () => emit('intersecting'))\n</script>\n<template>\n <section\n ref=\"section\"\n class=\"section\">\n <slot />\n </section>\n</template>\n\n<style scoped>\n.section {\n position: relative;\n display: flex;\n flex-direction: column;\n\n max-width: var(--refs-content-max-width);\n margin: auto;\n\n padding: 90px 0;\n\n /* Offset by header height to line up scroll position */\n scroll-margin-top: var(--refs-viewport-offset);\n}\n.section:has(~ div.contents) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.references-classic .section {\n padding: 48px 0;\n gap: 24px;\n}\n@container narrow-references-container (max-width: 900px) {\n .references-classic .section,\n .section {\n padding: 48px 24px;\n }\n}\n.section:not(:last-of-type) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from 'vue'\n\nimport { useIntersection } from '@/hooks/use-intersection'\n\nconst emit = defineEmits<{\n (e: 'intersecting'): void\n}>()\n\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () => emit('intersecting'))\n</script>\n<template>\n <section\n ref=\"section\"\n class=\"section\">\n <slot />\n </section>\n</template>\n\n<style scoped>\n.section {\n position: relative;\n display: flex;\n flex-direction: column;\n\n max-width: var(--refs-content-max-width);\n margin: auto;\n\n padding: 90px 0;\n\n /* Offset by header height to line up scroll position */\n scroll-margin-top: var(--refs-viewport-offset);\n}\n.section:has(~ div.contents) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.references-classic .section {\n padding: 48px 0;\n gap: 24px;\n}\n@container narrow-references-container (max-width: 900px) {\n .references-classic .section,\n .section {\n padding: 48px 24px;\n }\n}\n.section:not(:last-of-type) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n</style>\n","<template>\n <div class=\"section-column\"><slot /></div>\n</template>\n\n<style scoped>\n.section-column {\n flex: 1;\n min-width: 0;\n}\n@container narrow-references-container (max-width: 900px) {\n .section-column:nth-of-type(2) {\n padding-top: 0;\n }\n}\n</style>\n","<template>\n <div class=\"section-columns\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.section-columns {\n display: flex;\n gap: 48px;\n}\n@container narrow-references-container (max-width: 900px) {\n .section-columns {\n flex-direction: column;\n gap: 24px;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(defineProps<{ lines?: number }>(), {\n lines: 1,\n})\n</script>\n\n<template>\n <div\n v-for=\"idx in [...Array(lines).keys()]\"\n :key=\"idx\"\n class=\"loading\"\n :class=\"{ 'single-line': lines === 1 }\" />\n</template>\n\n<style scoped>\n.loading {\n background: var(--scalar-background-3);\n animation: loading-skeleton 1.5s infinite alternate;\n border-radius: var(--scalar-radius-lg);\n min-height: 1.6em;\n margin: 0.6em 0;\n max-width: 100%;\n}\n.loading:first-of-type {\n min-height: 3em;\n margin-bottom: 24px;\n margin-top: 0;\n}\n.loading:last-of-type {\n width: 60%;\n}\n\n.loading.single-line {\n min-height: 3em;\n margin: 0.6em 0;\n max-width: 80%;\n}\n\n@keyframes loading-skeleton {\n from {\n opacity: 1;\n }\n to {\n opacity: 0.33;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(defineProps<{ lines?: number }>(), {\n lines: 1,\n})\n</script>\n\n<template>\n <div\n v-for=\"idx in [...Array(lines).keys()]\"\n :key=\"idx\"\n class=\"loading\"\n :class=\"{ 'single-line': lines === 1 }\" />\n</template>\n\n<style scoped>\n.loading {\n background: var(--scalar-background-3);\n animation: loading-skeleton 1.5s infinite alternate;\n border-radius: var(--scalar-radius-lg);\n min-height: 1.6em;\n margin: 0.6em 0;\n max-width: 100%;\n}\n.loading:first-of-type {\n min-height: 3em;\n margin-bottom: 24px;\n margin-top: 0;\n}\n.loading:last-of-type {\n width: 60%;\n}\n\n.loading.single-line {\n min-height: 3em;\n margin: 0.6em 0;\n max-width: 80%;\n}\n\n@keyframes loading-skeleton {\n from {\n opacity: 1;\n }\n to {\n opacity: 0.33;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\nwithDefaults(\n defineProps<{\n loading?: boolean\n }>(),\n {\n loading: false,\n },\n)\n</script>\n\n<template>\n <div class=\"section-content\">\n <slot v-if=\"!loading\" />\n <template v-else>\n <LoadingSkeleton :lines=\"8\" />\n </template>\n </div>\n</template>\n\n<style scoped>\n@container narrow-references-container (max-width: 900px) {\n .section-content--with-columns {\n flex-direction: column;\n gap: 24px;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\nwithDefaults(\n defineProps<{\n loading?: boolean\n }>(),\n {\n loading: false,\n },\n)\n</script>\n\n<template>\n <div class=\"section-content\">\n <slot v-if=\"!loading\" />\n <template v-else>\n <LoadingSkeleton :lines=\"8\" />\n </template>\n </div>\n</template>\n\n<style scoped>\n@container narrow-references-container (max-width: 900px) {\n .section-content--with-columns {\n flex-direction: column;\n gap: 24px;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\ndefineProps<{\n loading?: boolean\n tight?: boolean\n}>()\n</script>\n\n<template>\n <div class=\"section-header-wrapper xl:gap-12\">\n <LoadingSkeleton v-if=\"loading\" />\n <div\n v-else\n class=\"section-header\"\n :class=\"{ tight }\">\n <slot />\n </div>\n <slot\n v-if=\"$slots.links\"\n name=\"links\" />\n </div>\n</template>\n\n<style scoped>\n@reference \"@/style.css\";\n\n.section-header-wrapper {\n display: grid;\n grid-template-columns: 1fr;\n}\n\n@variant xl {\n .section-header-wrapper {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.section-header {\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n /* prettier-ignore */\n color: var(--scalar-color-1);\n word-wrap: break-word;\n line-height: 1.45;\n margin-top: 0;\n margin-bottom: 12px;\n}\n\n.section-header.tight {\n margin-bottom: 6px;\n}\n\n.section-header.loading {\n width: 80%;\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\ndefineProps<{\n loading?: boolean\n tight?: boolean\n}>()\n</script>\n\n<template>\n <div class=\"section-header-wrapper xl:gap-12\">\n <LoadingSkeleton v-if=\"loading\" />\n <div\n v-else\n class=\"section-header\"\n :class=\"{ tight }\">\n <slot />\n </div>\n <slot\n v-if=\"$slots.links\"\n name=\"links\" />\n </div>\n</template>\n\n<style scoped>\n@reference \"@/style.css\";\n\n.section-header-wrapper {\n display: grid;\n grid-template-columns: 1fr;\n}\n\n@variant xl {\n .section-header-wrapper {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.section-header {\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n /* prettier-ignore */\n color: var(--scalar-color-1);\n word-wrap: break-word;\n line-height: 1.45;\n margin-top: 0;\n margin-bottom: 12px;\n}\n\n.section-header.tight {\n margin-bottom: 6px;\n}\n\n.section-header.loading {\n width: 80%;\n}\n</style>\n","<script setup lang=\"ts\">\nconst { level = 1 } = defineProps<{ level?: 1 | 2 | 3 | 4 | 5 | 6 }>()\n</script>\n<template>\n <component\n :is=\"`h${level}`\"\n class=\"section-header-label\">\n <slot />\n </component>\n</template>\n<style scoped>\n.section-header-label {\n display: inline;\n}\n</style>\n","<script setup lang=\"ts\">\nconst { level = 1 } = defineProps<{ level?: 1 | 2 | 3 | 4 | 5 | 6 }>()\n</script>\n<template>\n <component\n :is=\"`h${level}`\"\n class=\"section-header-label\">\n <slot />\n </component>\n</template>\n<style scoped>\n.section-header-label {\n display: inline;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarErrorBoundary } from '@scalar/components'\nimport { computed } from 'vue'\n\nimport { usePluginManager } from '@/plugins'\n\nconst { value } = defineProps<{\n /**\n * Any value that can contain OpenAPI specification extensions.\n */\n value: Record<string, unknown> | undefined\n}>()\n\nconst { getSpecificationExtensions } = usePluginManager()\n\n/**\n * Extract registered OpenAPI extension names\n */\nfunction getCustomExtensionNames(\n value: Record<string, any> | undefined,\n): `x-${string}`[] {\n return Object.keys(value ?? {}).filter((item) =>\n item.startsWith('x-'),\n ) as `x-${string}`[]\n}\n\n/**\n * Get the components for the specification extensions\n */\nfunction getCustomOpenApiExtensionComponents(extensionNames: `x-${string}`[]) {\n return extensionNames\n .flatMap((name) => getSpecificationExtensions(name))\n .filter((extension) => extension.component)\n}\n\n/**\n * Get the names of custom extensions from the provided value.\n */\nconst customExtensionNames = computed(() => getCustomExtensionNames(value))\n\n/**\n * Get the components for the custom extensions.\n */\nconst customExtensions = computed(() =>\n getCustomOpenApiExtensionComponents(customExtensionNames.value),\n)\n</script>\n\n<template>\n <template v-if=\"typeof value === 'object' && customExtensions.length\">\n <div class=\"text-base\">\n <template v-for=\"extension in customExtensions\">\n <ScalarErrorBoundary>\n <template v-if=\"extension.renderer\">\n <!-- Custom rendering -->\n <component\n :is=\"extension.renderer\"\n v-bind=\"{\n [extension.name]: value?.[extension.name],\n component: extension.component,\n }\" />\n </template>\n <template v-else>\n <!-- Vue rendering -->\n <component\n :is=\"extension.component\"\n v-bind=\"{ [extension.name]: value?.[extension.name] }\" />\n </template>\n </ScalarErrorBoundary>\n </template>\n </div>\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarErrorBoundary } from '@scalar/components'\nimport { computed } from 'vue'\n\nimport { usePluginManager } from '@/plugins'\n\nconst { value } = defineProps<{\n /**\n * Any value that can contain OpenAPI specification extensions.\n */\n value: Record<string, unknown> | undefined\n}>()\n\nconst { getSpecificationExtensions } = usePluginManager()\n\n/**\n * Extract registered OpenAPI extension names\n */\nfunction getCustomExtensionNames(\n value: Record<string, any> | undefined,\n): `x-${string}`[] {\n return Object.keys(value ?? {}).filter((item) =>\n item.startsWith('x-'),\n ) as `x-${string}`[]\n}\n\n/**\n * Get the components for the specification extensions\n */\nfunction getCustomOpenApiExtensionComponents(extensionNames: `x-${string}`[]) {\n return extensionNames\n .flatMap((name) => getSpecificationExtensions(name))\n .filter((extension) => extension.component)\n}\n\n/**\n * Get the names of custom extensions from the provided value.\n */\nconst customExtensionNames = computed(() => getCustomExtensionNames(value))\n\n/**\n * Get the components for the custom extensions.\n */\nconst customExtensions = computed(() =>\n getCustomOpenApiExtensionComponents(customExtensionNames.value),\n)\n</script>\n\n<template>\n <template v-if=\"typeof value === 'object' && customExtensions.length\">\n <div class=\"text-base\">\n <template v-for=\"extension in customExtensions\">\n <ScalarErrorBoundary>\n <template v-if=\"extension.renderer\">\n <!-- Custom rendering -->\n <component\n :is=\"extension.renderer\"\n v-bind=\"{\n [extension.name]: value?.[extension.name],\n component: extension.component,\n }\" />\n </template>\n <template v-else>\n <!-- Vue rendering -->\n <component\n :is=\"extension.component\"\n v-bind=\"{ [extension.name]: value?.[extension.name] }\" />\n </template>\n </ScalarErrorBoundary>\n </template>\n </div>\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\n\nconst containerRef = ref<HTMLDivElement>()\n\n/** Whether the container needs to scroll */\nconst needsScroll = ref(false)\n\n/** Check if the container can scroll in either direction */\nconst checkScrollability = () => {\n if (!containerRef.value) {\n return\n }\n\n const { scrollWidth, clientWidth } = containerRef.value\n needsScroll.value = scrollWidth > clientWidth\n}\n\n/** MutationObserver to watch for changes in child elements */\nlet mutationObserver: MutationObserver | null = null\n\n/**\n * We use the mutation observer to watch for changes and check if we need to scroll,\n * if we do need to scroll we apply the icons-only class to the container\n */\nonMounted(() => {\n checkScrollability()\n\n // Re-check on window resize\n window.addEventListener('resize', checkScrollability)\n\n // Watch for changes in child elements\n if (containerRef.value) {\n mutationObserver = new MutationObserver(() => {\n checkScrollability()\n })\n\n mutationObserver.observe(containerRef.value, {\n childList: true,\n subtree: true,\n })\n }\n})\n\nonUnmounted(() => {\n // Clean up event listeners and observer\n window.removeEventListener('resize', checkScrollability)\n\n if (mutationObserver) {\n mutationObserver.disconnect()\n mutationObserver = null\n }\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n :class=\"{ 'icons-only': needsScroll }\"\n class=\"custom-scroll mb-3 flex h-auto min-h-8 max-w-full items-center gap-2 overflow-x-auto text-base whitespace-nowrap xl:mb-1.5\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.icons-only :deep(span) {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\n\nconst containerRef = ref<HTMLDivElement>()\n\n/** Whether the container needs to scroll */\nconst needsScroll = ref(false)\n\n/** Check if the container can scroll in either direction */\nconst checkScrollability = () => {\n if (!containerRef.value) {\n return\n }\n\n const { scrollWidth, clientWidth } = containerRef.value\n needsScroll.value = scrollWidth > clientWidth\n}\n\n/** MutationObserver to watch for changes in child elements */\nlet mutationObserver: MutationObserver | null = null\n\n/**\n * We use the mutation observer to watch for changes and check if we need to scroll,\n * if we do need to scroll we apply the icons-only class to the container\n */\nonMounted(() => {\n checkScrollability()\n\n // Re-check on window resize\n window.addEventListener('resize', checkScrollability)\n\n // Watch for changes in child elements\n if (containerRef.value) {\n mutationObserver = new MutationObserver(() => {\n checkScrollability()\n })\n\n mutationObserver.observe(containerRef.value, {\n childList: true,\n subtree: true,\n })\n }\n})\n\nonUnmounted(() => {\n // Clean up event listeners and observer\n window.removeEventListener('resize', checkScrollability)\n\n if (mutationObserver) {\n mutationObserver.disconnect()\n mutationObserver = null\n }\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n :class=\"{ 'icons-only': needsScroll }\"\n class=\"custom-scroll mb-3 flex h-auto min-h-8 max-w-full items-center gap-2 overflow-x-auto text-base whitespace-nowrap xl:mb-1.5\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.icons-only :deep(span) {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarIconBook } from '@scalar/icons'\nimport { type OpenAPIV3_1 } from '@scalar/openapi-types'\n\ndefineProps<{\n value?: OpenAPIV3_1.ExternalDocumentationObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :href=\"value.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconBook\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span\n class=\"ml-1 empty:hidden\"\n v-if=\"value.description\">\n {{ value.description }}\n </span>\n <span\n class=\"ml-1 empty:hidden\"\n v-else>\n {{ value.url }}\n </span>\n </a>\n </div>\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconBook } from '@scalar/icons'\nimport { type OpenAPIV3_1 } from '@scalar/openapi-types'\n\ndefineProps<{\n value?: OpenAPIV3_1.ExternalDocumentationObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :href=\"value.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconBook\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span\n class=\"ml-1 empty:hidden\"\n v-if=\"value.description\">\n {{ value.description }}\n </span>\n <span\n class=\"ml-1 empty:hidden\"\n v-else>\n {{ value.url }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":"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"}