@scalar/api-reference 1.59.3 → 1.61.0

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 (262) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.d.ts +4 -4
  3. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.d.ts.map +1 -1
  4. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +1 -1
  5. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js.map +1 -1
  6. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js +14 -17
  7. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js.map +1 -1
  8. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.d.ts +12 -0
  9. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.d.ts.map +1 -0
  10. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js +9 -0
  11. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js.map +1 -0
  12. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js +63 -0
  13. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js.map +1 -0
  14. package/dist/browser/chunks/AgentScalarChatInterface-BhUn0w1j.js +27 -0
  15. package/dist/browser/chunks/ScalarTextInput.vue-BUzf4Z_k.js +27 -0
  16. package/dist/browser/chunks/basic-shape-diamond.svg-BTEOT1FL.js +1 -1
  17. package/dist/browser/chunks/basic-shape-hexagon.svg-BSPzaCgF.js +1 -1
  18. package/dist/browser/chunks/basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js +1 -1
  19. package/dist/browser/chunks/basic-shape-primary-square-rectangle.svg-n2YRykHD.js +1 -1
  20. package/dist/browser/chunks/basic-shape-shield.svg-Bec9cJDA.js +1 -1
  21. package/dist/browser/chunks/browser-67K6wmG9.js +1 -1
  22. package/dist/browser/chunks/computer-device-desktop-monitor.svg-m6j893Hb.js +1 -1
  23. package/dist/browser/chunks/computer-device-desktop.svg-Dk1VVO7k.js +1 -1
  24. package/dist/browser/chunks/computer-device-laptop.svg-BNGVUCYS.js +1 -1
  25. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js +1 -1
  26. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js +1 -1
  27. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js +1 -1
  28. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js +1 -1
  29. package/dist/browser/chunks/computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js +1 -1
  30. package/dist/browser/chunks/computer-device-mobile-tablet.svg-DCr0XlRc.js +1 -1
  31. package/dist/browser/chunks/computer-device-network-ethernet-cat6.svg-AK9l0iOl.js +1 -1
  32. package/dist/browser/chunks/computer-device-network-lan-www.svg-gUIdFBlE.js +1 -1
  33. package/dist/browser/chunks/computer-device-network-wifi-connection.svg-Be-EMm4e.js +1 -1
  34. package/dist/browser/chunks/computer-device-network-wifi-router.svg-Dc2VzyqK.js +1 -1
  35. package/dist/browser/chunks/ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js +1 -1
  36. package/dist/browser/chunks/image-flash-lightning.svg-EETR_y1q.js +1 -1
  37. package/dist/browser/chunks/image-picture-flower.svg-DN1AYzJU.js +1 -1
  38. package/dist/browser/chunks/interface-alert-exclamation-diamond.svg-C5NozMV_.js +1 -1
  39. package/dist/browser/chunks/interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js +1 -1
  40. package/dist/browser/chunks/interface-alert-information-circle.svg-ckkkt9Mv.js +1 -1
  41. package/dist/browser/chunks/interface-award-crown.svg-pjvn9hY-.js +1 -1
  42. package/dist/browser/chunks/interface-bookmark-tag.svg-r2r-lQq4.js +1 -1
  43. package/dist/browser/chunks/interface-bookmark.svg-BK9HKQBT.js +1 -1
  44. package/dist/browser/chunks/interface-calendar-date-one.svg-DNnF0M1I.js +1 -1
  45. package/dist/browser/chunks/interface-content-book-open-pages.svg-CQj_w9Vp.js +1 -1
  46. package/dist/browser/chunks/interface-content-book-page.svg-DppoeJRe.js +1 -1
  47. package/dist/browser/chunks/interface-content-file.svg-CvcD7OiY.js +1 -1
  48. package/dist/browser/chunks/interface-content-folder.svg-BmtS5I9A.js +1 -1
  49. package/dist/browser/chunks/interface-copy-clipboard.svg-Be6EI50X.js +1 -1
  50. package/dist/browser/chunks/interface-edit-attachment.svg-G5TKzpWX.js +1 -1
  51. package/dist/browser/chunks/interface-edit-binocular.svg-jzL-DvGB.js +1 -1
  52. package/dist/browser/chunks/interface-edit-magic-wand.svg-BOTlymvp.js +1 -1
  53. package/dist/browser/chunks/interface-edit-tool-paint-roller.svg-s9dwryx7.js +1 -1
  54. package/dist/browser/chunks/interface-edit-tool-pencil.svg-C7v0dbB3.js +1 -1
  55. package/dist/browser/chunks/interface-favorite-award.svg-CYHUgUG0.js +1 -1
  56. package/dist/browser/chunks/interface-favorite-flag.svg-C10zlKOb.js +1 -1
  57. package/dist/browser/chunks/interface-favorite-heart.svg-eoduXxlz.js +1 -1
  58. package/dist/browser/chunks/interface-favorite-star.svg-BSmxJetr.js +1 -1
  59. package/dist/browser/chunks/interface-favorite-stars-sparkles.svg-JTFLj3Ls.js +1 -1
  60. package/dist/browser/chunks/interface-hierarchy-flowchart.svg-Cg_Wy0kN.js +1 -1
  61. package/dist/browser/chunks/interface-home-house.svg-DytoGRnv.js +1 -1
  62. package/dist/browser/chunks/interface-hyperlink.svg-CuEfmmQI.js +1 -1
  63. package/dist/browser/chunks/interface-lighting-brightness.svg-DSK0h_Pa.js +1 -1
  64. package/dist/browser/chunks/interface-lock-closed.svg-Cn6TaLYv.js +1 -1
  65. package/dist/browser/chunks/interface-lock-open-unlock.svg-CVkG5-9W.js +1 -1
  66. package/dist/browser/chunks/interface-login-key.svg-y-cwwXjN.js +1 -1
  67. package/dist/browser/chunks/interface-search.svg-S-puVFJB.js +1 -1
  68. package/dist/browser/chunks/interface-setting-cog.svg-CTH4_lLg.js +1 -1
  69. package/dist/browser/chunks/interface-share-megaphone-bullhorn.svg-Pbp39MyC.js +1 -1
  70. package/dist/browser/chunks/interface-share-rocket.svg-BgCsIRZO.js +1 -1
  71. package/dist/browser/chunks/interface-share-satellite.svg-DAMN9d5G.js +1 -1
  72. package/dist/browser/chunks/interface-share-space-ship.svg-Dt-Mejxk.js +1 -1
  73. package/dist/browser/chunks/interface-share.svg-vFYTXSti.js +1 -1
  74. package/dist/browser/chunks/interface-signal-square.svg-DNG4LpAe.js +1 -1
  75. package/dist/browser/chunks/interface-time-clock-circle.svg-Bpz-nLxo.js +1 -1
  76. package/dist/browser/chunks/interface-time-hour-glass.svg-D7agfKsH.js +1 -1
  77. package/dist/browser/chunks/interface-users-multiple.svg-CkPJBBnG.js +1 -1
  78. package/dist/browser/chunks/interface-weather-moon.svg-CaTZFMPO.js +1 -1
  79. package/dist/browser/chunks/mail-chat-bubble-square.svg-DC8RIihp.js +1 -1
  80. package/dist/browser/chunks/mail-send-email-paper-airplane.svg-D8OLs9jz.js +1 -1
  81. package/dist/browser/chunks/mail-send-envelope.svg-CV33h5Sx.js +1 -1
  82. package/dist/browser/chunks/{modal-Bh68oUy_.js → modal-CKthJJWy.js} +2 -2
  83. package/dist/browser/chunks/modal-CZI71Aau.js +99 -0
  84. package/dist/browser/chunks/money-cashier-receipt.svg-CJL8C2gs.js +1 -1
  85. package/dist/browser/chunks/money-currency-dollar-pay.svg-VdBplCTx.js +1 -1
  86. package/dist/browser/chunks/money-graph-arrow-increase.svg-DcRov3zk.js +1 -1
  87. package/dist/browser/chunks/money-graph-bar-chart-increase.svg-Cc7KxjX-.js +1 -1
  88. package/dist/browser/chunks/nature-ecology-leaf.svg-DR3cTZxt.js +1 -1
  89. package/dist/browser/chunks/phone-telephone.svg-DyY0gUlk.js +1 -1
  90. package/dist/browser/chunks/programming-bug.svg-BHLT-Qhp.js +1 -1
  91. package/dist/browser/chunks/programming-cloud.svg-B6YW33ba.js +1 -1
  92. package/dist/browser/chunks/programming-computer-database-server.svg-B6o5Sdn-.js +1 -1
  93. package/dist/browser/chunks/programming-computer-database.svg-Cl7OVtpJ.js +1 -1
  94. package/dist/browser/chunks/programming-module-four-layout.svg-BQrerL1x.js +1 -1
  95. package/dist/browser/chunks/programming-module-three.svg-B2KTQzBM.js +1 -1
  96. package/dist/browser/chunks/programming-module.svg-CiID7kPm.js +1 -1
  97. package/dist/browser/chunks/programming-script-code.svg-D1M5rtkN.js +1 -1
  98. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +1 -1
  99. package/dist/browser/chunks/shopping-cart.svg-BEegiIR9.js +1 -1
  100. package/dist/browser/chunks/shopping-gift-present.svg-BUHwuLix.js +1 -1
  101. package/dist/browser/chunks/shopping-shipping-box-parcel-package.svg-D6fxWdYx.js +1 -1
  102. package/dist/browser/chunks/tag-new-circle.svg-jsg1bGs0.js +1 -1
  103. package/dist/browser/chunks/travel-map-earth-globe.svg-ClbMiU-f.js +1 -1
  104. package/dist/browser/chunks/vendor-BeJNu9KM.js +306 -0
  105. package/dist/browser/standalone.esm.js +6 -6
  106. package/dist/browser/standalone.js +250 -249
  107. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  108. package/dist/components/ApiReference.vue.js +1 -1
  109. package/dist/components/ApiReference.vue.js.map +1 -1
  110. package/dist/components/ApiReference.vue.script.js +48 -14
  111. package/dist/components/ApiReference.vue.script.js.map +1 -1
  112. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.d.ts +10 -0
  113. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.d.ts.map +1 -0
  114. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js +9 -0
  115. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js.map +1 -0
  116. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js +43 -0
  117. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js.map +1 -0
  118. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.js.map +1 -1
  119. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js +2 -1
  120. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js.map +1 -1
  121. package/dist/components/Content/AsyncApi/Channel.vue.d.ts +4 -1
  122. package/dist/components/Content/AsyncApi/Channel.vue.d.ts.map +1 -1
  123. package/dist/components/Content/AsyncApi/Channel.vue.js +1 -1
  124. package/dist/components/Content/AsyncApi/Channel.vue.js.map +1 -1
  125. package/dist/components/Content/AsyncApi/Channel.vue.script.js +98 -44
  126. package/dist/components/Content/AsyncApi/Channel.vue.script.js.map +1 -1
  127. package/dist/components/Content/AsyncApi/Message.vue.d.ts +18 -0
  128. package/dist/components/Content/AsyncApi/Message.vue.d.ts.map +1 -0
  129. package/dist/components/Content/AsyncApi/Message.vue.js +9 -0
  130. package/dist/components/Content/AsyncApi/Message.vue.js.map +1 -0
  131. package/dist/components/Content/AsyncApi/Message.vue.script.js +159 -0
  132. package/dist/components/Content/AsyncApi/Message.vue.script.js.map +1 -0
  133. package/dist/components/Content/AsyncApi/Operation.vue.d.ts +18 -0
  134. package/dist/components/Content/AsyncApi/Operation.vue.d.ts.map +1 -0
  135. package/dist/components/Content/AsyncApi/Operation.vue.js +9 -0
  136. package/dist/components/Content/AsyncApi/Operation.vue.js.map +1 -0
  137. package/dist/components/Content/AsyncApi/Operation.vue.script.js +84 -0
  138. package/dist/components/Content/AsyncApi/Operation.vue.script.js.map +1 -0
  139. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.d.ts +14 -0
  140. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.d.ts.map +1 -0
  141. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.js +14 -0
  142. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.js.map +1 -0
  143. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.d.ts +9 -0
  144. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.d.ts.map +1 -0
  145. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.js +12 -0
  146. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.js.map +1 -0
  147. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.d.ts +13 -0
  148. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.d.ts.map +1 -0
  149. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.js +23 -0
  150. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.js.map +1 -0
  151. package/dist/components/Content/AsyncApi/helpers/pick-heading.d.ts +10 -0
  152. package/dist/components/Content/AsyncApi/helpers/pick-heading.d.ts.map +1 -0
  153. package/dist/components/Content/AsyncApi/helpers/pick-heading.js +20 -0
  154. package/dist/components/Content/AsyncApi/helpers/pick-heading.js.map +1 -0
  155. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.d.ts +21 -0
  156. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.d.ts.map +1 -0
  157. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.js +35 -0
  158. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.js.map +1 -0
  159. package/dist/components/Content/Content.vue.d.ts +4 -2
  160. package/dist/components/Content/Content.vue.d.ts.map +1 -1
  161. package/dist/components/Content/Content.vue.js.map +1 -1
  162. package/dist/components/Content/Content.vue.script.js +18 -1
  163. package/dist/components/Content/Content.vue.script.js.map +1 -1
  164. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  165. package/dist/components/Content/Operations/TraversedEntry.vue.js.map +1 -1
  166. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +0 -1
  167. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  168. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  169. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  170. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  171. package/dist/components/Content/Schema/Schema.vue.script.js +24 -3
  172. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  173. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  174. package/dist/components/Content/Schema/SchemaComposition.vue.js.map +1 -1
  175. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +16 -1
  176. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  177. package/dist/components/Content/Schema/SchemaHeading.vue.script.js +1 -1
  178. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +0 -6
  179. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  180. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  181. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  182. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +37 -8
  183. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  184. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.d.ts.map +1 -1
  185. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +10 -9
  186. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js.map +1 -1
  187. package/dist/components/Content/Schema/helpers/should-display-description.d.ts.map +1 -1
  188. package/dist/components/Content/Schema/helpers/should-display-description.js +1 -1
  189. package/dist/components/Content/Schema/helpers/should-display-description.js.map +1 -1
  190. package/dist/components/Content/Tags/Tag.vue.d.ts +0 -1
  191. package/dist/components/Content/Tags/Tag.vue.d.ts.map +1 -1
  192. package/dist/components/Content/Tags/Tag.vue.js.map +1 -1
  193. package/dist/components/Content/Tags/Tag.vue.script.js +0 -3
  194. package/dist/components/Content/Tags/Tag.vue.script.js.map +1 -1
  195. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts +0 -1
  196. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  197. package/dist/components/Content/Tags/components/ModernLayout.vue.js +1 -1
  198. package/dist/components/Content/Tags/components/ModernLayout.vue.js.map +1 -1
  199. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js +0 -3
  200. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js.map +1 -1
  201. package/dist/components/Content/Tags/components/TagSection.vue.d.ts +0 -1
  202. package/dist/components/Content/Tags/components/TagSection.vue.d.ts.map +1 -1
  203. package/dist/components/Content/Tags/components/TagSection.vue.js.map +1 -1
  204. package/dist/components/Content/Tags/components/TagSection.vue.script.js +5 -6
  205. package/dist/components/Content/Tags/components/TagSection.vue.script.js.map +1 -1
  206. package/dist/components/RenderPlugins/RenderPluginView.vue.d.ts +11 -0
  207. package/dist/components/RenderPlugins/RenderPluginView.vue.d.ts.map +1 -0
  208. package/dist/components/RenderPlugins/RenderPluginView.vue.js +7 -0
  209. package/dist/components/RenderPlugins/RenderPluginView.vue.js.map +1 -0
  210. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js +45 -0
  211. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js.map +1 -0
  212. package/dist/components/RenderPlugins/RenderPlugins.vue.d.ts +5 -1
  213. package/dist/components/RenderPlugins/RenderPlugins.vue.d.ts.map +1 -1
  214. package/dist/components/RenderPlugins/RenderPlugins.vue.js.map +1 -1
  215. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js +17 -22
  216. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js.map +1 -1
  217. package/dist/components/Section/SectionContent.vue.d.ts +1 -6
  218. package/dist/components/Section/SectionContent.vue.d.ts.map +1 -1
  219. package/dist/components/Section/SectionContent.vue.js +7 -2
  220. package/dist/components/Section/SectionContent.vue.js.map +1 -1
  221. package/dist/components/Section/SectionHeader.vue.d.ts +3 -4
  222. package/dist/components/Section/SectionHeader.vue.d.ts.map +1 -1
  223. package/dist/components/Section/SectionHeader.vue.js +1 -1
  224. package/dist/components/Section/SectionHeader.vue.js.map +1 -1
  225. package/dist/components/Section/SectionHeader.vue.script.js +5 -10
  226. package/dist/components/Section/SectionHeader.vue.script.js.map +1 -1
  227. package/dist/helpers/get-async-api-message-payload-schema.d.ts +18 -0
  228. package/dist/helpers/get-async-api-message-payload-schema.d.ts.map +1 -0
  229. package/dist/helpers/get-async-api-message-payload-schema.js +33 -0
  230. package/dist/helpers/get-async-api-message-payload-schema.js.map +1 -0
  231. package/dist/helpers/get-async-api-model-schema.d.ts.map +1 -1
  232. package/dist/helpers/get-async-api-model-schema.js +2 -11
  233. package/dist/helpers/get-async-api-model-schema.js.map +1 -1
  234. package/dist/helpers/lazy-bus.d.ts +10 -0
  235. package/dist/helpers/lazy-bus.d.ts.map +1 -1
  236. package/dist/helpers/lazy-bus.js +22 -1
  237. package/dist/helpers/lazy-bus.js.map +1 -1
  238. package/dist/helpers/map-config-plugins.d.ts +8 -3
  239. package/dist/helpers/map-config-plugins.d.ts.map +1 -1
  240. package/dist/helpers/map-config-plugins.js +22 -4
  241. package/dist/helpers/map-config-plugins.js.map +1 -1
  242. package/dist/plugins/index.d.ts +1 -1
  243. package/dist/plugins/index.d.ts.map +1 -1
  244. package/dist/plugins/plugin-manager.d.ts +27 -2
  245. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  246. package/dist/plugins/plugin-manager.js +32 -2
  247. package/dist/plugins/plugin-manager.js.map +1 -1
  248. package/dist/style.css +850 -570
  249. package/dist/vue-styles.css +550 -452
  250. package/package.json +14 -14
  251. package/dist/browser/chunks/AgentScalarChatInterface-Dv0uBVU9.js +0 -27
  252. package/dist/browser/chunks/ScalarTextInput.vue-ZmlutrTU.js +0 -27
  253. package/dist/browser/chunks/modal-DHI6k89v.js +0 -66
  254. package/dist/browser/chunks/vendor-Cx_C-51y.js +0 -338
  255. package/dist/components/LoadingSkeleton.vue.d.ts +0 -9
  256. package/dist/components/LoadingSkeleton.vue.d.ts.map +0 -1
  257. package/dist/components/LoadingSkeleton.vue.js +0 -9
  258. package/dist/components/LoadingSkeleton.vue.js.map +0 -1
  259. package/dist/components/LoadingSkeleton.vue.script.js +0 -20
  260. package/dist/components/LoadingSkeleton.vue.script.js.map +0 -1
  261. package/dist/components/Section/SectionContent.vue.script.js +0 -23
  262. package/dist/components/Section/SectionContent.vue.script.js.map +0 -1
@@ -0,0 +1,84 @@
1
+ import { useIntersection } from "../../../hooks/use-intersection.js";
2
+ import SectionHeaderTag_default from "../../Section/SectionHeaderTag.vue.js";
3
+ import Anchor_default from "../../Anchor/Anchor.vue.js";
4
+ import { filterChildrenByType } from "./helpers/filter-children-by-type.js";
5
+ import { pickHeading } from "./helpers/pick-heading.js";
6
+ import { resolveAsyncApiOperation } from "./helpers/resolve-async-api-nodes.js";
7
+ import Message_default from "./Message.vue.js";
8
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, renderList, toDisplayString, unref, useId, useTemplateRef, withCtx } from "vue";
9
+ import { ScalarMarkdown } from "@scalar/components/markdown";
10
+ //#region src/components/Content/AsyncApi/Operation.vue?vue&type=script&setup=true&lang.ts
11
+ var _hoisted_1 = ["id"];
12
+ var _hoisted_2 = { class: "operation-header" };
13
+ var Operation_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
14
+ __name: "Operation",
15
+ props: {
16
+ operation: {},
17
+ document: {},
18
+ eventBus: {},
19
+ options: {},
20
+ expandedItems: { default: () => ({}) }
21
+ },
22
+ setup(__props) {
23
+ const headerId = useId();
24
+ const section = useTemplateRef("section");
25
+ useIntersection(section, () => __props.eventBus?.emit("intersecting:nav-item", { id: __props.operation.id }));
26
+ /**
27
+ * Resolve the operation from the document so we can read its summary/description.
28
+ * Operation traits are merged in (matching the channel connection UI) so trait-only
29
+ * fields render as part of the operation.
30
+ */
31
+ const resolvedOperation = computed(() => resolveAsyncApiOperation(__props.document, __props.operation.operationName));
32
+ /** Heading prefers title, then summary, then the operation map key. */
33
+ const headingText = computed(() => pickHeading(resolvedOperation.value?.title, __props.operation.title, __props.operation.operationName));
34
+ const description = computed(() => resolvedOperation.value?.description || resolvedOperation.value?.summary || "");
35
+ /** Only the message children of this operation. */
36
+ const messages = computed(() => filterChildrenByType(__props.operation.children, "asyncapi-message"));
37
+ return (_ctx, _cache) => {
38
+ return openBlock(), createElementBlock("div", {
39
+ id: __props.operation.id,
40
+ ref_key: "section",
41
+ ref: section,
42
+ class: normalizeClass(["operation", `operation--${__props.operation.action}`])
43
+ }, [
44
+ createElementVNode("div", _hoisted_2, [createElementVNode("span", { class: normalizeClass(["operation-action", `operation-action--${__props.operation.action}`]) }, toDisplayString(__props.operation.action), 3), createVNode(unref(Anchor_default), { onCopyAnchorUrl: _cache[0] || (_cache[0] = () => __props.eventBus?.emit("copy-url:nav-item", { id: __props.operation.id })) }, {
45
+ default: withCtx(() => [createVNode(unref(SectionHeaderTag_default), {
46
+ id: unref(headerId),
47
+ class: "operation-title",
48
+ level: 3
49
+ }, {
50
+ default: withCtx(() => [createTextVNode(toDisplayString(headingText.value), 1)]),
51
+ _: 1
52
+ }, 8, ["id"])]),
53
+ _: 1
54
+ })]),
55
+ description.value ? (openBlock(), createBlock(unref(ScalarMarkdown), {
56
+ key: 0,
57
+ class: "operation-description",
58
+ value: description.value,
59
+ withImages: ""
60
+ }, null, 8, ["value"])) : createCommentVNode("", true),
61
+ (openBlock(true), createElementBlock(Fragment, null, renderList(messages.value, (message) => {
62
+ return openBlock(), createBlock(Message_default, {
63
+ key: message.id,
64
+ document: __props.document,
65
+ eventBus: __props.eventBus,
66
+ expandedItems: __props.expandedItems,
67
+ message,
68
+ options: __props.options
69
+ }, null, 8, [
70
+ "document",
71
+ "eventBus",
72
+ "expandedItems",
73
+ "message",
74
+ "options"
75
+ ]);
76
+ }), 128))
77
+ ], 10, _hoisted_1);
78
+ };
79
+ }
80
+ });
81
+ //#endregion
82
+ export { Operation_vue_vue_type_script_setup_true_lang_default as default };
83
+
84
+ //# sourceMappingURL=Operation.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Operation.vue.script.js","names":[],"sources":["../../../../src/components/Content/AsyncApi/Operation.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n TraversedAsyncApiMessage,\n TraversedAsyncApiOperation,\n} from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId, useTemplateRef } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { SectionHeaderTag } from '@/components/Section'\nimport { useIntersection } from '@/hooks/use-intersection'\n\nimport type { AsyncApiSchemaRenderOptions } from './helpers/async-api-render-options'\nimport { filterChildrenByType } from './helpers/filter-children-by-type'\nimport { pickHeading } from './helpers/pick-heading'\nimport { resolveAsyncApiOperation } from './helpers/resolve-async-api-nodes'\nimport Message from './Message.vue'\n\n/** Subset of the configuration the nested `Message`/`Schema` renderers need. */\ntype OperationOptions = AsyncApiSchemaRenderOptions\n\nconst {\n operation,\n document,\n eventBus,\n options,\n expandedItems = {},\n} = defineProps<{\n operation: TraversedAsyncApiOperation\n document: AsyncApiDocument\n eventBus: WorkspaceEventBus | null\n options?: Partial<OperationOptions>\n /** Map of navigation item id to expanded state, shared with the sidebar. */\n expandedItems?: Record<string, boolean>\n}>()\n\nconst headerId = useId()\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () =>\n eventBus?.emit('intersecting:nav-item', { id: operation.id }),\n)\n\n/**\n * Resolve the operation from the document so we can read its summary/description.\n * Operation traits are merged in (matching the channel connection UI) so trait-only\n * fields render as part of the operation.\n */\nconst resolvedOperation = computed(() =>\n resolveAsyncApiOperation(document, operation.operationName),\n)\n\n/** Heading prefers title, then summary, then the operation map key. */\nconst headingText = computed(() =>\n pickHeading(\n resolvedOperation.value?.title,\n operation.title,\n operation.operationName,\n ),\n)\n\nconst description = computed(\n () =>\n resolvedOperation.value?.description ||\n resolvedOperation.value?.summary ||\n '',\n)\n\n/** Only the message children of this operation. */\nconst messages = computed(() =>\n filterChildrenByType<TraversedAsyncApiMessage>(\n operation.children,\n 'asyncapi-message',\n ),\n)\n</script>\n\n<template>\n <div\n :id=\"operation.id\"\n ref=\"section\"\n class=\"operation\"\n :class=\"`operation--${operation.action}`\">\n <div class=\"operation-header\">\n <span\n class=\"operation-action\"\n :class=\"`operation-action--${operation.action}`\">\n {{ operation.action }}\n </span>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: operation.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n class=\"operation-title\"\n :level=\"3\">\n {{ headingText }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <ScalarMarkdown\n v-if=\"description\"\n class=\"operation-description\"\n :value=\"description\"\n withImages />\n\n <Message\n v-for=\"message in messages\"\n :key=\"message.id\"\n :document=\"document\"\n :eventBus=\"eventBus\"\n :expandedItems=\"expandedItems\"\n :message=\"message\"\n :options=\"options\" />\n </div>\n</template>\n\n<style scoped>\n.operation {\n margin-top: 32px;\n scroll-margin-top: var(--refs-viewport-offset);\n}\n\n.operation-header {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.operation-title {\n font-size: var(--scalar-heading-3);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n\n/* Filled, color-coded pill carries the primary send/receive signal. */\n.operation-action {\n text-transform: uppercase;\n font-size: var(--scalar-mini);\n font-weight: var(--scalar-semibold);\n letter-spacing: 0.05em;\n border-radius: 12px;\n padding: 2px 8px;\n display: inline-flex;\n align-items: center;\n}\n.operation-action--send {\n color: var(--scalar-color-blue);\n background: color-mix(in srgb, var(--scalar-color-blue), transparent 88%);\n}\n.operation-action--receive {\n color: var(--scalar-color-green);\n background: color-mix(in srgb, var(--scalar-color-green), transparent 88%);\n}\n\n.operation-description {\n text-align: left;\n margin-top: 4px;\n}\n/* Space the first message accordion away from the operation header/description. */\n.operation > :deep(.message) {\n margin-top: 12px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAsCA,MAAM,WAAW,OAAM;EACvB,MAAM,UAAU,eAA4B,UAAS;AAErD,kBAAgB,eACd,QAAA,UAAU,KAAK,yBAAyB,EAAE,IAAI,QAAA,UAAU,IAAI,CAAC,CAC/D;;;;;;EAOA,MAAM,oBAAoB,eACxB,yBAAyB,QAAA,UAAU,QAAA,UAAU,cAAc,CAC7D;;EAGA,MAAM,cAAc,eAClB,YACE,kBAAkB,OAAO,OACzB,QAAA,UAAU,OACV,QAAA,UAAU,cACX,CACH;EAEA,MAAM,cAAc,eAEhB,kBAAkB,OAAO,eACzB,kBAAkB,OAAO,WACzB,GACJ;;EAGA,MAAM,WAAW,eACf,qBACE,QAAA,UAAU,UACV,mBACD,CACH;;uBAIE,mBAsCM,OAAA;IArCH,IAAI,QAAA,UAAU;aACX;IAAJ,KAAI;IACJ,OAAK,eAAA,CAAC,aAAW,cACK,QAAA,UAAU,SAAM,CAAA;;IACtC,mBAiBM,OAjBN,YAiBM,CAhBJ,mBAIO,QAAA,EAHL,OAAK,eAAA,CAAC,oBAAkB,qBACK,QAAA,UAAU,SAAM,CAAA,EAAA,EAAA,gBAC1C,QAAA,UAAU,OAAM,EAAA,EAAA,EAErB,YAUS,MAAA,eAAA,EAAA,EATN,iBAAa,OAAA,OAAA,OAAA,WAAmB,QAAA,UAAU,KAAI,qBAAA,EAAA,IAA4B,QAAA,UAAU,IAAE,CAAA,GAAA,EAAA;4BAQpE,CALnB,YAKmB,MAAA,yBAAA,EAAA;MAJhB,IAAI,MAAA,SAAQ;MACb,OAAM;MACL,OAAO;;6BACS,CAAA,gBAAA,gBAAd,YAAA,MAAW,EAAA,EAAA,CAAA,CAAA;;;;;IAMZ,YAAA,SAAA,WAAA,EADR,YAIe,MAAA,eAAA,EAAA;;KAFb,OAAM;KACL,OAAO,YAAA;KACR,YAAA;;sBAEF,mBAOuB,UAAA,MAAA,WANH,SAAA,QAAX,YAAO;yBADhB,YAOuB,iBAAA;MALpB,KAAK,QAAQ;MACb,UAAU,QAAA;MACV,UAAU,QAAA;MACV,eAAe,QAAA;MACN;MACT,SAAS,QAAA"}
@@ -0,0 +1,14 @@
1
+ import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference';
2
+ /**
3
+ * Schema-ordering options shared by the AsyncAPI channel, operation, and message renderers.
4
+ *
5
+ * Each surface threads the same subset of the reference configuration through to the shared
6
+ * `Schema`/`ParameterList` components, so they extend this type rather than re-declaring it.
7
+ */
8
+ export type AsyncApiSchemaRenderOptions = Pick<ApiReferenceConfigurationRaw, 'orderRequiredPropertiesFirst' | 'orderSchemaPropertiesBy' | 'expandAllSchemaProperties'>;
9
+ /**
10
+ * Fill in defaults so the shared renderers always receive a complete ordering options object,
11
+ * regardless of which fields the caller provided.
12
+ */
13
+ export declare const resolveSchemaRenderOptions: (options?: Partial<AsyncApiSchemaRenderOptions>) => AsyncApiSchemaRenderOptions;
14
+ //# sourceMappingURL=async-api-render-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-api-render-options.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/AsyncApi/helpers/async-api-render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAE/E;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,4BAA4B,EAC5B,8BAA8B,GAAG,yBAAyB,GAAG,2BAA2B,CACzF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,UAAU,OAAO,CAAC,2BAA2B,CAAC,KAC7C,2BAID,CAAA"}
@@ -0,0 +1,14 @@
1
+ //#region src/components/Content/AsyncApi/helpers/async-api-render-options.ts
2
+ /**
3
+ * Fill in defaults so the shared renderers always receive a complete ordering options object,
4
+ * regardless of which fields the caller provided.
5
+ */
6
+ var resolveSchemaRenderOptions = (options) => ({
7
+ orderRequiredPropertiesFirst: options?.orderRequiredPropertiesFirst ?? false,
8
+ orderSchemaPropertiesBy: options?.orderSchemaPropertiesBy ?? "preserve",
9
+ expandAllSchemaProperties: options?.expandAllSchemaProperties ?? false
10
+ });
11
+ //#endregion
12
+ export { resolveSchemaRenderOptions };
13
+
14
+ //# sourceMappingURL=async-api-render-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-api-render-options.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/async-api-render-options.ts"],"sourcesContent":["import type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\n\n/**\n * Schema-ordering options shared by the AsyncAPI channel, operation, and message renderers.\n *\n * Each surface threads the same subset of the reference configuration through to the shared\n * `Schema`/`ParameterList` components, so they extend this type rather than re-declaring it.\n */\nexport type AsyncApiSchemaRenderOptions = Pick<\n ApiReferenceConfigurationRaw,\n 'orderRequiredPropertiesFirst' | 'orderSchemaPropertiesBy' | 'expandAllSchemaProperties'\n>\n\n/**\n * Fill in defaults so the shared renderers always receive a complete ordering options object,\n * regardless of which fields the caller provided.\n */\nexport const resolveSchemaRenderOptions = (\n options?: Partial<AsyncApiSchemaRenderOptions>,\n): AsyncApiSchemaRenderOptions => ({\n orderRequiredPropertiesFirst: options?.orderRequiredPropertiesFirst ?? false,\n orderSchemaPropertiesBy: options?.orderSchemaPropertiesBy ?? 'preserve',\n expandAllSchemaProperties: options?.expandAllSchemaProperties ?? false,\n})\n"],"mappings":";;;;;AAiBA,IAAa,8BACX,aACiC;CACjC,8BAA8B,SAAS,gCAAgC;CACvE,yBAAyB,SAAS,2BAA2B;CAC7D,2BAA2B,SAAS,6BAA6B;CAClE"}
@@ -0,0 +1,9 @@
1
+ import type { TraversedEntry } from '@scalar/workspace-store/schemas/navigation';
2
+ /**
3
+ * Narrow a navigation entry's children down to a single AsyncAPI node type.
4
+ *
5
+ * The channel renderer needs its operations and the operation renderer needs its messages; both
6
+ * share this type-guarded filter so the cast lives in one place.
7
+ */
8
+ export declare const filterChildrenByType: <T extends TraversedEntry>(children: TraversedEntry[] | undefined, type: T["type"]) => T[];
9
+ //# sourceMappingURL=filter-children-by-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-children-by-type.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/AsyncApi/helpers/filter-children-by-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAA;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,cAAc,EAC3D,UAAU,cAAc,EAAE,GAAG,SAAS,EACtC,MAAM,CAAC,CAAC,MAAM,CAAC,KACd,CAAC,EAAyE,CAAA"}
@@ -0,0 +1,12 @@
1
+ //#region src/components/Content/AsyncApi/helpers/filter-children-by-type.ts
2
+ /**
3
+ * Narrow a navigation entry's children down to a single AsyncAPI node type.
4
+ *
5
+ * The channel renderer needs its operations and the operation renderer needs its messages; both
6
+ * share this type-guarded filter so the cast lives in one place.
7
+ */
8
+ var filterChildrenByType = (children, type) => (children ?? []).filter((child) => child.type === type);
9
+ //#endregion
10
+ export { filterChildrenByType };
11
+
12
+ //# sourceMappingURL=filter-children-by-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-children-by-type.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/filter-children-by-type.ts"],"sourcesContent":["import type { TraversedEntry } from '@scalar/workspace-store/schemas/navigation'\n\n/**\n * Narrow a navigation entry's children down to a single AsyncAPI node type.\n *\n * The channel renderer needs its operations and the operation renderer needs its messages; both\n * share this type-guarded filter so the cast lives in one place.\n */\nexport const filterChildrenByType = <T extends TraversedEntry>(\n children: TraversedEntry[] | undefined,\n type: T['type'],\n): T[] => (children ?? []).filter((child): child is T => child.type === type)\n"],"mappings":";;;;;;;AAQA,IAAa,wBACX,UACA,UACS,YAAY,EAAE,EAAE,QAAQ,UAAsB,MAAM,SAAS,KAAK"}
@@ -0,0 +1,13 @@
1
+ import type { AsyncApiChannelObject, AsyncApiDocument } from '@scalar/types/asyncapi/3.1';
2
+ /**
3
+ * Server names and protocols a channel is available on.
4
+ *
5
+ * Resolved from `document.servers`, restricted to `channel.servers` when the channel declares them.
6
+ * `webSocketOnly` is disabled so labels cover every protocol, not just WebSocket, and protocols are
7
+ * de-duplicated while preserving declaration order.
8
+ */
9
+ export declare const getChannelServerLabels: (document: AsyncApiDocument, channel: AsyncApiChannelObject | null | undefined) => {
10
+ servers: string[];
11
+ protocols: string[];
12
+ };
13
+ //# sourceMappingURL=get-async-api-labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-async-api-labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/AsyncApi/helpers/get-async-api-labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAGzF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,gBAAgB,EAC1B,SAAS,qBAAqB,GAAG,IAAI,GAAG,SAAS,KAChD;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAU1C,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { getAsyncApiServers } from "@scalar/workspace-store/channel-example";
2
+ //#region src/components/Content/AsyncApi/helpers/get-async-api-labels.ts
3
+ /**
4
+ * Server names and protocols a channel is available on.
5
+ *
6
+ * Resolved from `document.servers`, restricted to `channel.servers` when the channel declares them.
7
+ * `webSocketOnly` is disabled so labels cover every protocol, not just WebSocket, and protocols are
8
+ * de-duplicated while preserving declaration order.
9
+ */
10
+ var getChannelServerLabels = (document, channel) => {
11
+ const entries = getAsyncApiServers(document, {
12
+ channel: channel ?? null,
13
+ webSocketOnly: false
14
+ });
15
+ return {
16
+ servers: entries.map((entry) => entry.name),
17
+ protocols: [...new Set(entries.map((entry) => entry.protocol).filter(Boolean))]
18
+ };
19
+ };
20
+ //#endregion
21
+ export { getChannelServerLabels };
22
+
23
+ //# sourceMappingURL=get-async-api-labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-async-api-labels.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/get-async-api-labels.ts"],"sourcesContent":["import type { AsyncApiChannelObject, AsyncApiDocument } from '@scalar/types/asyncapi/3.1'\nimport { getAsyncApiServers } from '@scalar/workspace-store/channel-example'\n\n/**\n * Server names and protocols a channel is available on.\n *\n * Resolved from `document.servers`, restricted to `channel.servers` when the channel declares them.\n * `webSocketOnly` is disabled so labels cover every protocol, not just WebSocket, and protocols are\n * de-duplicated while preserving declaration order.\n */\nexport const getChannelServerLabels = (\n document: AsyncApiDocument,\n channel: AsyncApiChannelObject | null | undefined,\n): { servers: string[]; protocols: string[] } => {\n const entries = getAsyncApiServers(document, {\n channel: channel ?? null,\n webSocketOnly: false,\n })\n\n return {\n servers: entries.map((entry) => entry.name),\n protocols: [...new Set(entries.map((entry) => entry.protocol).filter(Boolean))],\n }\n}\n"],"mappings":";;;;;;;;;AAUA,IAAa,0BACX,UACA,YAC+C;CAC/C,MAAM,UAAU,mBAAmB,UAAU;EAC3C,SAAS,WAAW;EACpB,eAAe;EAChB,CAAC;AAEF,QAAO;EACL,SAAS,QAAQ,KAAK,UAAU,MAAM,KAAK;EAC3C,WAAW,CAAC,GAAG,IAAI,IAAI,QAAQ,KAAK,UAAU,MAAM,SAAS,CAAC,OAAO,QAAQ,CAAC,CAAC;EAChF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Pick the first non-empty heading from a list of candidates.
3
+ *
4
+ * Each candidate is trimmed and the first one with content wins, so the AsyncAPI channel, operation,
5
+ * and message renderers can share a single "prefer the human-friendly title, then fall back to a
6
+ * key" chain instead of repeating the same `title?.trim() || fallback` logic. Returns an empty
7
+ * string when every candidate is missing or blank.
8
+ */
9
+ export declare const pickHeading: (...candidates: Array<string | undefined>) => string;
10
+ //# sourceMappingURL=pick-heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-heading.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/AsyncApi/helpers/pick-heading.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,YAAY,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAG,MAStE,CAAA"}
@@ -0,0 +1,20 @@
1
+ //#region src/components/Content/AsyncApi/helpers/pick-heading.ts
2
+ /**
3
+ * Pick the first non-empty heading from a list of candidates.
4
+ *
5
+ * Each candidate is trimmed and the first one with content wins, so the AsyncAPI channel, operation,
6
+ * and message renderers can share a single "prefer the human-friendly title, then fall back to a
7
+ * key" chain instead of repeating the same `title?.trim() || fallback` logic. Returns an empty
8
+ * string when every candidate is missing or blank.
9
+ */
10
+ var pickHeading = (...candidates) => {
11
+ for (const candidate of candidates) {
12
+ const trimmed = candidate?.trim();
13
+ if (trimmed) return trimmed;
14
+ }
15
+ return "";
16
+ };
17
+ //#endregion
18
+ export { pickHeading };
19
+
20
+ //# sourceMappingURL=pick-heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick-heading.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/pick-heading.ts"],"sourcesContent":["/**\n * Pick the first non-empty heading from a list of candidates.\n *\n * Each candidate is trimmed and the first one with content wins, so the AsyncAPI channel, operation,\n * and message renderers can share a single \"prefer the human-friendly title, then fall back to a\n * key\" chain instead of repeating the same `title?.trim() || fallback` logic. Returns an empty\n * string when every candidate is missing or blank.\n */\nexport const pickHeading = (...candidates: Array<string | undefined>): string => {\n for (const candidate of candidates) {\n const trimmed = candidate?.trim()\n if (trimmed) {\n return trimmed\n }\n }\n\n return ''\n}\n"],"mappings":";;;;;;;;;AAQA,IAAa,eAAe,GAAG,eAAkD;AAC/E,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,UAAU,WAAW,MAAM;AACjC,MAAI,QACF,QAAO;;AAIX,QAAO"}
@@ -0,0 +1,21 @@
1
+ import type { AsyncApiChannelObject, AsyncApiDocument, AsyncApiMessageObject, AsyncApiOperationObject } from '@scalar/types/asyncapi/3.1';
2
+ /**
3
+ * Resolve a channel from the document by its `document.channels` key.
4
+ *
5
+ * Siblings are merged so keys declared alongside a `$ref` are kept rather than dropped, matching
6
+ * how the rest of the OpenAPI/AsyncAPI rendering resolves references.
7
+ */
8
+ export declare const resolveAsyncApiChannel: (document: AsyncApiDocument, channelName: string) => AsyncApiChannelObject | undefined;
9
+ /**
10
+ * Resolve a message from the channel it lives on. The navigation entry only carries the identifying
11
+ * keys, so we walk `document.channels[channelName].messages[messageName]`.
12
+ */
13
+ export declare const resolveAsyncApiMessage: (document: AsyncApiDocument, channelName: string, messageName: string) => AsyncApiMessageObject | undefined;
14
+ /**
15
+ * Resolve an operation from the document by its `document.operations` key.
16
+ *
17
+ * Operation traits are merged in (matching the channel connection UI) so trait-only fields render
18
+ * as part of the operation.
19
+ */
20
+ export declare const resolveAsyncApiOperation: (document: AsyncApiDocument, operationName: string) => AsyncApiOperationObject | undefined;
21
+ //# sourceMappingURL=resolve-async-api-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-async-api-nodes.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/AsyncApi/helpers/resolve-async-api-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,4BAA4B,CAAA;AAInC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,gBAAgB,EAC1B,aAAa,MAAM,KAClB,qBAAqB,GAAG,SAG1B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,gBAAgB,EAC1B,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,qBAAqB,GAAG,SAI1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,gBAAgB,EAC1B,eAAe,MAAM,KACpB,uBAAuB,GAAG,SAG5B,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { resolveOperationWithTraits } from "@scalar/workspace-store/channel-example";
2
+ import { getResolvedRef, mergeSiblingReferences } from "@scalar/workspace-store/helpers/get-resolved-ref";
3
+ //#region src/components/Content/AsyncApi/helpers/resolve-async-api-nodes.ts
4
+ /**
5
+ * Resolve a channel from the document by its `document.channels` key.
6
+ *
7
+ * Siblings are merged so keys declared alongside a `$ref` are kept rather than dropped, matching
8
+ * how the rest of the OpenAPI/AsyncAPI rendering resolves references.
9
+ */
10
+ var resolveAsyncApiChannel = (document, channelName) => {
11
+ const node = document.channels?.[channelName];
12
+ return node ? getResolvedRef(node, mergeSiblingReferences) : void 0;
13
+ };
14
+ /**
15
+ * Resolve a message from the channel it lives on. The navigation entry only carries the identifying
16
+ * keys, so we walk `document.channels[channelName].messages[messageName]`.
17
+ */
18
+ var resolveAsyncApiMessage = (document, channelName, messageName) => {
19
+ const node = resolveAsyncApiChannel(document, channelName)?.messages?.[messageName];
20
+ return node ? getResolvedRef(node, mergeSiblingReferences) : void 0;
21
+ };
22
+ /**
23
+ * Resolve an operation from the document by its `document.operations` key.
24
+ *
25
+ * Operation traits are merged in (matching the channel connection UI) so trait-only fields render
26
+ * as part of the operation.
27
+ */
28
+ var resolveAsyncApiOperation = (document, operationName) => {
29
+ const node = document.operations?.[operationName];
30
+ return node ? resolveOperationWithTraits(getResolvedRef(node, mergeSiblingReferences)) : void 0;
31
+ };
32
+ //#endregion
33
+ export { resolveAsyncApiChannel, resolveAsyncApiMessage, resolveAsyncApiOperation };
34
+
35
+ //# sourceMappingURL=resolve-async-api-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-async-api-nodes.js","names":[],"sources":["../../../../../src/components/Content/AsyncApi/helpers/resolve-async-api-nodes.ts"],"sourcesContent":["import type {\n AsyncApiChannelObject,\n AsyncApiDocument,\n AsyncApiMessageObject,\n AsyncApiOperationObject,\n} from '@scalar/types/asyncapi/3.1'\nimport { resolveOperationWithTraits } from '@scalar/workspace-store/channel-example'\nimport { getResolvedRef, mergeSiblingReferences } from '@scalar/workspace-store/helpers/get-resolved-ref'\n\n/**\n * Resolve a channel from the document by its `document.channels` key.\n *\n * Siblings are merged so keys declared alongside a `$ref` are kept rather than dropped, matching\n * how the rest of the OpenAPI/AsyncAPI rendering resolves references.\n */\nexport const resolveAsyncApiChannel = (\n document: AsyncApiDocument,\n channelName: string,\n): AsyncApiChannelObject | undefined => {\n const node = document.channels?.[channelName]\n return node ? getResolvedRef(node, mergeSiblingReferences) : undefined\n}\n\n/**\n * Resolve a message from the channel it lives on. The navigation entry only carries the identifying\n * keys, so we walk `document.channels[channelName].messages[messageName]`.\n */\nexport const resolveAsyncApiMessage = (\n document: AsyncApiDocument,\n channelName: string,\n messageName: string,\n): AsyncApiMessageObject | undefined => {\n const channel = resolveAsyncApiChannel(document, channelName)\n const node = channel?.messages?.[messageName]\n return node ? getResolvedRef(node, mergeSiblingReferences) : undefined\n}\n\n/**\n * Resolve an operation from the document by its `document.operations` key.\n *\n * Operation traits are merged in (matching the channel connection UI) so trait-only fields render\n * as part of the operation.\n */\nexport const resolveAsyncApiOperation = (\n document: AsyncApiDocument,\n operationName: string,\n): AsyncApiOperationObject | undefined => {\n const node = document.operations?.[operationName]\n return node ? resolveOperationWithTraits(getResolvedRef(node, mergeSiblingReferences)) : undefined\n}\n"],"mappings":";;;;;;;;;AAeA,IAAa,0BACX,UACA,gBACsC;CACtC,MAAM,OAAO,SAAS,WAAW;AACjC,QAAO,OAAO,eAAe,MAAM,uBAAuB,GAAG,KAAA;;;;;;AAO/D,IAAa,0BACX,UACA,aACA,gBACsC;CAEtC,MAAM,OADU,uBAAuB,UAAU,YAAY,EACvC,WAAW;AACjC,QAAO,OAAO,eAAe,MAAM,uBAAuB,GAAG,KAAA;;;;;;;;AAS/D,IAAa,4BACX,UACA,kBACwC;CACxC,MAAM,OAAO,SAAS,aAAa;AACnC,QAAO,OAAO,2BAA2B,eAAe,MAAM,uBAAuB,CAAC,GAAG,KAAA"}
@@ -7,6 +7,8 @@ import type { TraversedEntry as TraversedEntryType } from '@scalar/workspace-sto
7
7
  import type { Workspace, WorkspaceDocument } from '@scalar/workspace-store/schemas/workspace';
8
8
  type __VLS_Props = {
9
9
  infoSectionId: string;
10
+ /** Slug of the active document, used to scope plugin view ids for navigation and deep-linking */
11
+ documentSlug: string;
10
12
  /** The subset of the configuration object required for the content component */
11
13
  options: Pick<ApiReferenceConfigurationRaw, 'authentication' | 'baseServerURL' | 'documentDownloadType' | 'expandAllResponses' | 'hiddenClients' | 'hideTestRequestButton' | 'layout' | 'oauth2RedirectUri' | 'orderRequiredPropertiesFirst' | 'orderSchemaPropertiesBy' | 'expandAllSchemaProperties' | 'persistAuth' | 'proxyUrl' | 'servers' | 'showOperationId' | 'hideModels' | 'modelsSectionLabel'>;
12
14
  document: WorkspaceDocument | undefined;
@@ -20,11 +22,11 @@ type __VLS_Props = {
20
22
  /** Heading id generator for Markdown headings */
21
23
  headingSlugGenerator: (heading: Heading) => string;
22
24
  };
23
- declare var __VLS_6: {}, __VLS_109: {};
25
+ declare var __VLS_6: {}, __VLS_114: {};
24
26
  type __VLS_Slots = {} & {
25
27
  start?: (props: typeof __VLS_6) => any;
26
28
  } & {
27
- end?: (props: typeof __VLS_109) => any;
29
+ end?: (props: typeof __VLS_114) => any;
28
30
  };
29
31
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
32
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1 +1 @@
1
- {"version":3,"file":"Content.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Content/Content.vue"],"names":[],"mappings":"AA2UA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAKnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAMvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAMtG,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAClB,MAAM,2CAA2C,CAAA;AAuBlD,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,gFAAgF;IAChF,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC1B,gBAAgB,GAChB,eAAe,GACf,sBAAsB,GACtB,oBAAoB,GACpB,eAAe,GACf,uBAAuB,GACvB,QAAQ,GACR,mBAAmB,GACnB,8BAA8B,GAC9B,yBAAyB,GACzB,2BAA2B,GAC3B,aAAa,GACb,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CACvB,CAAA;IACD,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC7C,SAAS,EAAE,SAAS,CAAA;IACpB,oBAAoB,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAA;IAC1D,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,iDAAiD;IACjD,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAA;CACnD,CAAC;AAigBF,QAAA,IAAI,OAAO,IAAU,EAAE,SAAS,IAAa,CAAE;AAC/C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,SAAS,KAAK,GAAG,CAAA;CAAE,CAAC;AAG7C,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Content.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Content/Content.vue"],"names":[],"mappings":"AAuVA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAKnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAMvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAMtG,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAClB,MAAM,2CAA2C,CAAA;AAuBlD,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,iGAAiG;IACjG,YAAY,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC1B,gBAAgB,GAChB,eAAe,GACf,sBAAsB,GACtB,oBAAoB,GACpB,eAAe,GACf,uBAAuB,GACvB,QAAQ,GACR,mBAAmB,GACnB,8BAA8B,GAC9B,yBAAyB,GACzB,2BAA2B,GAC3B,aAAa,GACb,UAAU,GACV,SAAS,GACT,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CACvB,CAAA;IACD,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAC7C,SAAS,EAAE,SAAS,CAAA;IACpB,oBAAoB,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAA;IAC1D,KAAK,EAAE,kBAAkB,EAAE,CAAA;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,iDAAiD;IACjD,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAA;CACnD,CAAC;AAshBF,QAAA,IAAI,OAAO,IAAU,EAAE,SAAS,IAAa,CAAE;AAC/C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,SAAS,KAAK,GAAG,CAAA;CAAE,CAAC;AAG7C,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Content.vue.js","names":[],"sources":["../../../src/components/Content/Content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { generateClientOptions } from '@scalar/api-client/blocks/operation-code-sample'\nimport { mapHiddenClientsConfig } from '@scalar/api-client/modal/map-hidden-clients-config'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { Heading } from '@scalar/types/legacy'\nimport {\n getAsyncApiServers,\n getSelectedAsyncApiServer,\n} from '@scalar/workspace-store/channel-example'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSelectedServer,\n getServers,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type { TraversedEntry as TraversedEntryType } from '@scalar/workspace-store/schemas/navigation'\nimport {\n getDocumentType,\n isAsyncApiDocument,\n isOpenApiDocument,\n} from '@scalar/workspace-store/schemas/type-guards'\nimport type {\n Workspace,\n WorkspaceDocument,\n} from '@scalar/workspace-store/schemas/workspace'\nimport { computed, onMounted } from 'vue'\n\nimport { AsyncApiServerSelector } from '@/blocks/scalar-asyncapi-server-selector-block'\nimport { ClientSelector } from '@/blocks/scalar-client-selector-block'\nimport { InfoBlock } from '@/blocks/scalar-info-block'\nimport { IntroductionCardItem } from '@/blocks/scalar-info-block/'\nimport {\n getRenderableSdks,\n SdkInstallationInstructions,\n} from '@/blocks/scalar-sdk-installation-instructions'\nimport { ServerSelector } from '@/blocks/scalar-server-selector-block'\nimport { AsyncApiTraversedEntry } from '@/components/Content/AsyncApi'\nimport { Auth } from '@/components/Content/Auth'\nimport TraversedEntry from '@/components/Content/Operations/TraversedEntry.vue'\nimport { RenderPlugins } from '@/components/RenderPlugins'\nimport { SectionFlare } from '@/components/SectionFlare'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport {\n firstLazyLoadComplete,\n scheduleInitialLoadComplete,\n} from '@/helpers/lazy-bus'\n\nconst {\n document,\n clientDocument,\n items,\n environment,\n eventBus,\n options,\n authStore,\n} = defineProps<{\n infoSectionId: string\n /** The subset of the configuration object required for the content component */\n options: Pick<\n ApiReferenceConfigurationRaw,\n | 'authentication'\n | 'baseServerURL'\n | 'documentDownloadType'\n | 'expandAllResponses'\n | 'hiddenClients'\n | 'hideTestRequestButton'\n | 'layout'\n | 'oauth2RedirectUri'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n | 'persistAuth'\n | 'proxyUrl'\n | 'servers'\n | 'showOperationId'\n | 'hideModels'\n | 'modelsSectionLabel'\n >\n document: WorkspaceDocument | undefined\n clientDocument: WorkspaceDocument | undefined\n authStore: AuthStore\n xScalarDefaultClient: Workspace['x-scalar-default-client']\n items: TraversedEntryType[]\n expandedItems: Record<string, boolean>\n eventBus: WorkspaceEventBus\n environment: XScalarEnvironment\n /** Heading id generator for Markdown headings */\n headingSlugGenerator: (heading: Heading) => string\n}>()\n\n/** Generate all client options so that it can be shared between the top client picker and the operations */\nconst clientOptions = computed(() =>\n generateClientOptions(mapHiddenClientsConfig(options.hiddenClients)),\n)\n\n/**\n * Custom SDK installation instructions that actually have something to render.\n * Entries with only a `lang` are ignored so we can fall back to the client\n * selector instead of showing an empty card.\n */\nconst sdkInstallation = computed(() =>\n getRenderableSdks(openApiDocument.value?.info?.['x-scalar-sdk-installation']),\n)\n\n/**\n * Narrow the (possibly AsyncAPI) documents to OpenAPI documents. api-reference\n * is OpenAPI-native, so AsyncAPI fields surface as undefined/empty.\n */\nconst openApiDocument = computed(() =>\n isOpenApiDocument(document) ? document : undefined,\n)\nconst openApiClientDocument = computed(() =>\n isOpenApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\n/** AsyncAPI narrow, used to render the (currently channel-only) AsyncAPI content tree. */\nconst asyncApiDocument = computed(() =>\n isAsyncApiDocument(document) ? document : undefined,\n)\n\n/** AsyncAPI narrow of the client document, where server selection/variables are persisted. */\nconst asyncApiClientDocument = computed(() =>\n isAsyncApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\nconst documentType = computed(() => getDocumentType(document))\n\nconst specificationVersion = computed(() => {\n if (isAsyncApiDocument(document)) {\n return document['x-original-aas-version'] ?? document.asyncapi\n }\n return openApiDocument.value?.['x-original-oas-version']\n})\n\n/** Computed property to get all OpenAPI extension fields from the root document object */\nconst documentExtensions = computed(() => getXKeysFromObject(document))\n\n/** Computed property to get all OpenAPI extension fields from the document's info object */\nconst infoExtensions = computed(() => getXKeysFromObject(document?.info))\n\n/** Compute the servers for the document */\nconst servers = computed(() =>\n getServers(options?.servers ?? openApiClientDocument.value?.servers, {\n baseServerUrl: options?.baseServerURL,\n documentUrl: clientDocument?.['x-scalar-original-source-url'],\n }),\n)\n\n/** Compute the selected server for the document only (for now) */\nconst selectedServer = computed(() =>\n getSelectedServer(\n openApiClientDocument.value ?? null,\n null,\n null,\n servers.value,\n ),\n)\n\n/**\n * Compute the AsyncAPI servers (all protocols, not just WebSocket) for the\n * document-level server selector.\n */\nconst asyncApiServers = computed(() =>\n asyncApiClientDocument.value\n ? getAsyncApiServers(asyncApiClientDocument.value, { webSocketOnly: false })\n : [],\n)\n\n/** Compute the selected AsyncAPI server for the document */\nconst asyncApiSelectedServer = computed(() =>\n getSelectedAsyncApiServer(\n asyncApiClientDocument.value ?? null,\n asyncApiServers.value,\n ),\n)\n\n/** Merge authentication config with the document security schemes */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n openApiClientDocument.value?.components?.securitySchemes,\n options.authentication?.securitySchemes,\n authStore,\n openApiClientDocument.value?.['x-scalar-navigation']?.name ?? '',\n options.oauth2RedirectUri,\n ),\n)\n\n/** Ensures firstLazyLoadComplete is set for documents with no Lazy sections (e.g. no operations/tags/models). */\nonMounted(() => {\n scheduleInitialLoadComplete()\n})\n</script>\n<template>\n <SectionFlare />\n\n <div class=\"narrow-references-container\">\n <slot name=\"start\" />\n\n <!-- Introduction -->\n\n <InfoBlock\n :id=\"infoSectionId\"\n :documentDownloadType=\"options.documentDownloadType\"\n :documentExtensions\n :documentType\n :documentUrl=\"document?.['x-scalar-original-source-url']\"\n :eventBus\n :externalDocs=\"openApiDocument?.externalDocs\"\n :headingSlugGenerator\n :info=\"document?.info\"\n :infoExtensions\n :layout=\"options.layout\"\n :specificationVersion>\n <template #selectors>\n <!-- Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"servers?.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <ServerSelector\n :eventBus\n :selectedServer\n :servers />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- AsyncAPI Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"asyncApiServers.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <AsyncApiServerSelector\n :eventBus\n :selectedServer=\"asyncApiSelectedServer\"\n :servers=\"asyncApiServers\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Auth selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"document && !options.hideTestRequestButton\"\n class=\"scalar-reference-intro-auth scalar-client introduction-card-item leading-normal\">\n <Auth\n :authStore\n :document=\"clientDocument\"\n :environment\n :eventBus\n :options\n :securitySchemes\n :selectedServer />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Custom SDK installation instructions, or the generic client selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"sdkInstallation.length\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <SdkInstallationInstructions\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :eventBus\n :selectedClient=\"xScalarDefaultClient\"\n :xScalarSdkInstallation=\"sdkInstallation\" />\n </IntroductionCardItem>\n <IntroductionCardItem\n v-else-if=\"clientOptions.length && !asyncApiDocument\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <ClientSelector\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :clientOptions\n :eventBus\n :selectedClient=\"xScalarDefaultClient\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n </template>\n </InfoBlock>\n\n <!-- Render traversed operations and webhooks -->\n <!-- Use recursive component for cleaner rendering -->\n <TraversedEntry\n v-if=\"items.length && openApiDocument\"\n :authStore\n :clientOptions\n :document=\"openApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options\n :securitySchemes\n :selectedClient=\"xScalarDefaultClient\"\n :selectedServer>\n </TraversedEntry>\n\n <!-- AsyncAPI: render channels grouped by tag, mirroring the sidebar order. -->\n <AsyncApiTraversedEntry\n v-else-if=\"items.length && asyncApiDocument\"\n :document=\"asyncApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options />\n\n <!-- Render plugins at content.end view -->\n <RenderPlugins\n :options\n viewName=\"content.end\" />\n\n <slot name=\"end\" />\n <!-- Placeholder content to allow the active item to be scrolled to the top while the rest of the content is lazy loaded -->\n <div\n v-if=\"!firstLazyLoadComplete\"\n class=\"h-dvh\"></div>\n </div>\n</template>\n\n<style>\n.narrow-references-container {\n container-name: narrow-references-container;\n container-type: inline-size;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"Content.vue.js","names":[],"sources":["../../../src/components/Content/Content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { generateClientOptions } from '@scalar/api-client/blocks/operation-code-sample'\nimport { mapHiddenClientsConfig } from '@scalar/api-client/modal/map-hidden-clients-config'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { Heading } from '@scalar/types/legacy'\nimport {\n getAsyncApiServers,\n getSelectedAsyncApiServer,\n} from '@scalar/workspace-store/channel-example'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSelectedServer,\n getServers,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type { TraversedEntry as TraversedEntryType } from '@scalar/workspace-store/schemas/navigation'\nimport {\n getDocumentType,\n isAsyncApiDocument,\n isOpenApiDocument,\n} from '@scalar/workspace-store/schemas/type-guards'\nimport type {\n Workspace,\n WorkspaceDocument,\n} from '@scalar/workspace-store/schemas/workspace'\nimport { computed, onMounted } from 'vue'\n\nimport { AsyncApiServerSelector } from '@/blocks/scalar-asyncapi-server-selector-block'\nimport { ClientSelector } from '@/blocks/scalar-client-selector-block'\nimport { InfoBlock } from '@/blocks/scalar-info-block'\nimport { IntroductionCardItem } from '@/blocks/scalar-info-block/'\nimport {\n getRenderableSdks,\n SdkInstallationInstructions,\n} from '@/blocks/scalar-sdk-installation-instructions'\nimport { ServerSelector } from '@/blocks/scalar-server-selector-block'\nimport { AsyncApiTraversedEntry } from '@/components/Content/AsyncApi'\nimport { Auth } from '@/components/Content/Auth'\nimport TraversedEntry from '@/components/Content/Operations/TraversedEntry.vue'\nimport { RenderPlugins } from '@/components/RenderPlugins'\nimport { SectionFlare } from '@/components/SectionFlare'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport {\n firstLazyLoadComplete,\n scheduleInitialLoadComplete,\n} from '@/helpers/lazy-bus'\n\nconst {\n document,\n clientDocument,\n items,\n environment,\n eventBus,\n options,\n authStore,\n documentSlug,\n} = defineProps<{\n infoSectionId: string\n /** Slug of the active document, used to scope plugin view ids for navigation and deep-linking */\n documentSlug: string\n /** The subset of the configuration object required for the content component */\n options: Pick<\n ApiReferenceConfigurationRaw,\n | 'authentication'\n | 'baseServerURL'\n | 'documentDownloadType'\n | 'expandAllResponses'\n | 'hiddenClients'\n | 'hideTestRequestButton'\n | 'layout'\n | 'oauth2RedirectUri'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n | 'persistAuth'\n | 'proxyUrl'\n | 'servers'\n | 'showOperationId'\n | 'hideModels'\n | 'modelsSectionLabel'\n >\n document: WorkspaceDocument | undefined\n clientDocument: WorkspaceDocument | undefined\n authStore: AuthStore\n xScalarDefaultClient: Workspace['x-scalar-default-client']\n items: TraversedEntryType[]\n expandedItems: Record<string, boolean>\n eventBus: WorkspaceEventBus\n environment: XScalarEnvironment\n /** Heading id generator for Markdown headings */\n headingSlugGenerator: (heading: Heading) => string\n}>()\n\n/** Generate all client options so that it can be shared between the top client picker and the operations */\nconst clientOptions = computed(() =>\n generateClientOptions(mapHiddenClientsConfig(options.hiddenClients)),\n)\n\n/**\n * Custom SDK installation instructions that actually have something to render.\n * Entries with only a `lang` are ignored so we can fall back to the client\n * selector instead of showing an empty card.\n */\nconst sdkInstallation = computed(() =>\n getRenderableSdks(openApiDocument.value?.info?.['x-scalar-sdk-installation']),\n)\n\n/**\n * Narrow the (possibly AsyncAPI) documents to OpenAPI documents. api-reference\n * is OpenAPI-native, so AsyncAPI fields surface as undefined/empty.\n */\nconst openApiDocument = computed(() =>\n isOpenApiDocument(document) ? document : undefined,\n)\nconst openApiClientDocument = computed(() =>\n isOpenApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\n/** AsyncAPI narrow, used to render the (currently channel-only) AsyncAPI content tree. */\nconst asyncApiDocument = computed(() =>\n isAsyncApiDocument(document) ? document : undefined,\n)\n\n/** AsyncAPI narrow of the client document, where server selection/variables are persisted. */\nconst asyncApiClientDocument = computed(() =>\n isAsyncApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\nconst documentType = computed(() => getDocumentType(document))\n\nconst specificationVersion = computed(() => {\n if (isAsyncApiDocument(document)) {\n return document['x-original-aas-version'] ?? document.asyncapi\n }\n return openApiDocument.value?.['x-original-oas-version']\n})\n\n/** Computed property to get all OpenAPI extension fields from the root document object */\nconst documentExtensions = computed(() => getXKeysFromObject(document))\n\n/** Computed property to get all OpenAPI extension fields from the document's info object */\nconst infoExtensions = computed(() => getXKeysFromObject(document?.info))\n\n/** Compute the servers for the document */\nconst servers = computed(() =>\n getServers(options?.servers ?? openApiClientDocument.value?.servers, {\n baseServerUrl: options?.baseServerURL,\n documentUrl: clientDocument?.['x-scalar-original-source-url'],\n }),\n)\n\n/** Compute the selected server for the document only (for now) */\nconst selectedServer = computed(() =>\n getSelectedServer(\n openApiClientDocument.value ?? null,\n null,\n null,\n servers.value,\n ),\n)\n\n/**\n * Compute the AsyncAPI servers (all protocols, not just WebSocket) for the\n * document-level server selector.\n */\nconst asyncApiServers = computed(() =>\n asyncApiClientDocument.value\n ? getAsyncApiServers(asyncApiClientDocument.value, { webSocketOnly: false })\n : [],\n)\n\n/** Compute the selected AsyncAPI server for the document */\nconst asyncApiSelectedServer = computed(() =>\n getSelectedAsyncApiServer(\n asyncApiClientDocument.value ?? null,\n asyncApiServers.value,\n ),\n)\n\n/** Merge authentication config with the document security schemes */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n openApiClientDocument.value?.components?.securitySchemes,\n options.authentication?.securitySchemes,\n authStore,\n openApiClientDocument.value?.['x-scalar-navigation']?.name ?? '',\n options.oauth2RedirectUri,\n ),\n)\n\n/** Ensures firstLazyLoadComplete is set for documents with no Lazy sections (e.g. no operations/tags/models). */\nonMounted(() => {\n scheduleInitialLoadComplete()\n})\n</script>\n<template>\n <SectionFlare />\n\n <div class=\"narrow-references-container\">\n <slot name=\"start\" />\n\n <!-- Render plugins at content.start view -->\n <RenderPlugins\n :documentSlug\n :eventBus\n :options\n viewName=\"content.start\" />\n\n <!-- Introduction -->\n\n <InfoBlock\n :id=\"infoSectionId\"\n :documentDownloadType=\"options.documentDownloadType\"\n :documentExtensions\n :documentType\n :documentUrl=\"document?.['x-scalar-original-source-url']\"\n :eventBus\n :externalDocs=\"openApiDocument?.externalDocs\"\n :headingSlugGenerator\n :info=\"document?.info\"\n :infoExtensions\n :layout=\"options.layout\"\n :specificationVersion>\n <template #selectors>\n <!-- Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"servers?.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <ServerSelector\n :eventBus\n :selectedServer\n :servers />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- AsyncAPI Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"asyncApiServers.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <AsyncApiServerSelector\n :eventBus\n :selectedServer=\"asyncApiSelectedServer\"\n :servers=\"asyncApiServers\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Auth selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"document && !options.hideTestRequestButton\"\n class=\"scalar-reference-intro-auth scalar-client introduction-card-item leading-normal\">\n <Auth\n :authStore\n :document=\"clientDocument\"\n :environment\n :eventBus\n :options\n :securitySchemes\n :selectedServer />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Custom SDK installation instructions, or the generic client selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"sdkInstallation.length\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <SdkInstallationInstructions\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :eventBus\n :selectedClient=\"xScalarDefaultClient\"\n :xScalarSdkInstallation=\"sdkInstallation\" />\n </IntroductionCardItem>\n <IntroductionCardItem\n v-else-if=\"clientOptions.length && !asyncApiDocument\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <ClientSelector\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :clientOptions\n :eventBus\n :selectedClient=\"xScalarDefaultClient\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n </template>\n </InfoBlock>\n\n <!-- Render traversed operations and webhooks -->\n <!-- Use recursive component for cleaner rendering -->\n <TraversedEntry\n v-if=\"items.length && openApiDocument\"\n :authStore\n :clientOptions\n :document=\"openApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options\n :securitySchemes\n :selectedClient=\"xScalarDefaultClient\"\n :selectedServer>\n </TraversedEntry>\n\n <!-- AsyncAPI: render channels grouped by tag, mirroring the sidebar order. -->\n <AsyncApiTraversedEntry\n v-else-if=\"items.length && asyncApiDocument\"\n :document=\"asyncApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options />\n\n <!-- Render plugins at content.end view -->\n <RenderPlugins\n :documentSlug\n :eventBus\n :options\n viewName=\"content.end\" />\n\n <slot name=\"end\" />\n <!-- Placeholder content to allow the active item to be scrolled to the top while the rest of the content is lazy loaded -->\n <div\n v-if=\"!firstLazyLoadComplete\"\n class=\"h-dvh\"></div>\n </div>\n</template>\n\n<style>\n.narrow-references-container {\n container-name: narrow-references-container;\n container-type: inline-size;\n}\n</style>\n"],"mappings":""}
@@ -29,6 +29,7 @@ var Content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
29
29
  __name: "Content",
30
30
  props: {
31
31
  infoSectionId: {},
32
+ documentSlug: {},
32
33
  options: {},
33
34
  document: {},
34
35
  clientDocument: {},
@@ -91,6 +92,16 @@ var Content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
91
92
  return (_ctx, _cache) => {
92
93
  return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(SectionFlare_default)), createElementVNode("div", _hoisted_1, [
93
94
  renderSlot(_ctx.$slots, "start"),
95
+ createVNode(unref(RenderPlugins_default), {
96
+ documentSlug: __props.documentSlug,
97
+ eventBus: __props.eventBus,
98
+ options: __props.options,
99
+ viewName: "content.start"
100
+ }, null, 8, [
101
+ "documentSlug",
102
+ "eventBus",
103
+ "options"
104
+ ]),
94
105
  createVNode(unref(InfoBlock_default), {
95
106
  id: __props.infoSectionId,
96
107
  documentDownloadType: __props.options.documentDownloadType,
@@ -256,9 +267,15 @@ var Content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
256
267
  "options"
257
268
  ])) : createCommentVNode("", true),
258
269
  createVNode(unref(RenderPlugins_default), {
270
+ documentSlug: __props.documentSlug,
271
+ eventBus: __props.eventBus,
259
272
  options: __props.options,
260
273
  viewName: "content.end"
261
- }, null, 8, ["options"]),
274
+ }, null, 8, [
275
+ "documentSlug",
276
+ "eventBus",
277
+ "options"
278
+ ]),
262
279
  renderSlot(_ctx.$slots, "end"),
263
280
  !unref(firstLazyLoadComplete) ? (openBlock(), createElementBlock("div", _hoisted_2)) : createCommentVNode("", true)
264
281
  ])], 64);
@@ -1 +1 @@
1
- {"version":3,"file":"Content.vue.script.js","names":[],"sources":["../../../src/components/Content/Content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { generateClientOptions } from '@scalar/api-client/blocks/operation-code-sample'\nimport { mapHiddenClientsConfig } from '@scalar/api-client/modal/map-hidden-clients-config'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { Heading } from '@scalar/types/legacy'\nimport {\n getAsyncApiServers,\n getSelectedAsyncApiServer,\n} from '@scalar/workspace-store/channel-example'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSelectedServer,\n getServers,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type { TraversedEntry as TraversedEntryType } from '@scalar/workspace-store/schemas/navigation'\nimport {\n getDocumentType,\n isAsyncApiDocument,\n isOpenApiDocument,\n} from '@scalar/workspace-store/schemas/type-guards'\nimport type {\n Workspace,\n WorkspaceDocument,\n} from '@scalar/workspace-store/schemas/workspace'\nimport { computed, onMounted } from 'vue'\n\nimport { AsyncApiServerSelector } from '@/blocks/scalar-asyncapi-server-selector-block'\nimport { ClientSelector } from '@/blocks/scalar-client-selector-block'\nimport { InfoBlock } from '@/blocks/scalar-info-block'\nimport { IntroductionCardItem } from '@/blocks/scalar-info-block/'\nimport {\n getRenderableSdks,\n SdkInstallationInstructions,\n} from '@/blocks/scalar-sdk-installation-instructions'\nimport { ServerSelector } from '@/blocks/scalar-server-selector-block'\nimport { AsyncApiTraversedEntry } from '@/components/Content/AsyncApi'\nimport { Auth } from '@/components/Content/Auth'\nimport TraversedEntry from '@/components/Content/Operations/TraversedEntry.vue'\nimport { RenderPlugins } from '@/components/RenderPlugins'\nimport { SectionFlare } from '@/components/SectionFlare'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport {\n firstLazyLoadComplete,\n scheduleInitialLoadComplete,\n} from '@/helpers/lazy-bus'\n\nconst {\n document,\n clientDocument,\n items,\n environment,\n eventBus,\n options,\n authStore,\n} = defineProps<{\n infoSectionId: string\n /** The subset of the configuration object required for the content component */\n options: Pick<\n ApiReferenceConfigurationRaw,\n | 'authentication'\n | 'baseServerURL'\n | 'documentDownloadType'\n | 'expandAllResponses'\n | 'hiddenClients'\n | 'hideTestRequestButton'\n | 'layout'\n | 'oauth2RedirectUri'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n | 'persistAuth'\n | 'proxyUrl'\n | 'servers'\n | 'showOperationId'\n | 'hideModels'\n | 'modelsSectionLabel'\n >\n document: WorkspaceDocument | undefined\n clientDocument: WorkspaceDocument | undefined\n authStore: AuthStore\n xScalarDefaultClient: Workspace['x-scalar-default-client']\n items: TraversedEntryType[]\n expandedItems: Record<string, boolean>\n eventBus: WorkspaceEventBus\n environment: XScalarEnvironment\n /** Heading id generator for Markdown headings */\n headingSlugGenerator: (heading: Heading) => string\n}>()\n\n/** Generate all client options so that it can be shared between the top client picker and the operations */\nconst clientOptions = computed(() =>\n generateClientOptions(mapHiddenClientsConfig(options.hiddenClients)),\n)\n\n/**\n * Custom SDK installation instructions that actually have something to render.\n * Entries with only a `lang` are ignored so we can fall back to the client\n * selector instead of showing an empty card.\n */\nconst sdkInstallation = computed(() =>\n getRenderableSdks(openApiDocument.value?.info?.['x-scalar-sdk-installation']),\n)\n\n/**\n * Narrow the (possibly AsyncAPI) documents to OpenAPI documents. api-reference\n * is OpenAPI-native, so AsyncAPI fields surface as undefined/empty.\n */\nconst openApiDocument = computed(() =>\n isOpenApiDocument(document) ? document : undefined,\n)\nconst openApiClientDocument = computed(() =>\n isOpenApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\n/** AsyncAPI narrow, used to render the (currently channel-only) AsyncAPI content tree. */\nconst asyncApiDocument = computed(() =>\n isAsyncApiDocument(document) ? document : undefined,\n)\n\n/** AsyncAPI narrow of the client document, where server selection/variables are persisted. */\nconst asyncApiClientDocument = computed(() =>\n isAsyncApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\nconst documentType = computed(() => getDocumentType(document))\n\nconst specificationVersion = computed(() => {\n if (isAsyncApiDocument(document)) {\n return document['x-original-aas-version'] ?? document.asyncapi\n }\n return openApiDocument.value?.['x-original-oas-version']\n})\n\n/** Computed property to get all OpenAPI extension fields from the root document object */\nconst documentExtensions = computed(() => getXKeysFromObject(document))\n\n/** Computed property to get all OpenAPI extension fields from the document's info object */\nconst infoExtensions = computed(() => getXKeysFromObject(document?.info))\n\n/** Compute the servers for the document */\nconst servers = computed(() =>\n getServers(options?.servers ?? openApiClientDocument.value?.servers, {\n baseServerUrl: options?.baseServerURL,\n documentUrl: clientDocument?.['x-scalar-original-source-url'],\n }),\n)\n\n/** Compute the selected server for the document only (for now) */\nconst selectedServer = computed(() =>\n getSelectedServer(\n openApiClientDocument.value ?? null,\n null,\n null,\n servers.value,\n ),\n)\n\n/**\n * Compute the AsyncAPI servers (all protocols, not just WebSocket) for the\n * document-level server selector.\n */\nconst asyncApiServers = computed(() =>\n asyncApiClientDocument.value\n ? getAsyncApiServers(asyncApiClientDocument.value, { webSocketOnly: false })\n : [],\n)\n\n/** Compute the selected AsyncAPI server for the document */\nconst asyncApiSelectedServer = computed(() =>\n getSelectedAsyncApiServer(\n asyncApiClientDocument.value ?? null,\n asyncApiServers.value,\n ),\n)\n\n/** Merge authentication config with the document security schemes */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n openApiClientDocument.value?.components?.securitySchemes,\n options.authentication?.securitySchemes,\n authStore,\n openApiClientDocument.value?.['x-scalar-navigation']?.name ?? '',\n options.oauth2RedirectUri,\n ),\n)\n\n/** Ensures firstLazyLoadComplete is set for documents with no Lazy sections (e.g. no operations/tags/models). */\nonMounted(() => {\n scheduleInitialLoadComplete()\n})\n</script>\n<template>\n <SectionFlare />\n\n <div class=\"narrow-references-container\">\n <slot name=\"start\" />\n\n <!-- Introduction -->\n\n <InfoBlock\n :id=\"infoSectionId\"\n :documentDownloadType=\"options.documentDownloadType\"\n :documentExtensions\n :documentType\n :documentUrl=\"document?.['x-scalar-original-source-url']\"\n :eventBus\n :externalDocs=\"openApiDocument?.externalDocs\"\n :headingSlugGenerator\n :info=\"document?.info\"\n :infoExtensions\n :layout=\"options.layout\"\n :specificationVersion>\n <template #selectors>\n <!-- Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"servers?.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <ServerSelector\n :eventBus\n :selectedServer\n :servers />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- AsyncAPI Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"asyncApiServers.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <AsyncApiServerSelector\n :eventBus\n :selectedServer=\"asyncApiSelectedServer\"\n :servers=\"asyncApiServers\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Auth selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"document && !options.hideTestRequestButton\"\n class=\"scalar-reference-intro-auth scalar-client introduction-card-item leading-normal\">\n <Auth\n :authStore\n :document=\"clientDocument\"\n :environment\n :eventBus\n :options\n :securitySchemes\n :selectedServer />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Custom SDK installation instructions, or the generic client selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"sdkInstallation.length\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <SdkInstallationInstructions\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :eventBus\n :selectedClient=\"xScalarDefaultClient\"\n :xScalarSdkInstallation=\"sdkInstallation\" />\n </IntroductionCardItem>\n <IntroductionCardItem\n v-else-if=\"clientOptions.length && !asyncApiDocument\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <ClientSelector\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :clientOptions\n :eventBus\n :selectedClient=\"xScalarDefaultClient\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n </template>\n </InfoBlock>\n\n <!-- Render traversed operations and webhooks -->\n <!-- Use recursive component for cleaner rendering -->\n <TraversedEntry\n v-if=\"items.length && openApiDocument\"\n :authStore\n :clientOptions\n :document=\"openApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options\n :securitySchemes\n :selectedClient=\"xScalarDefaultClient\"\n :selectedServer>\n </TraversedEntry>\n\n <!-- AsyncAPI: render channels grouped by tag, mirroring the sidebar order. -->\n <AsyncApiTraversedEntry\n v-else-if=\"items.length && asyncApiDocument\"\n :document=\"asyncApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options />\n\n <!-- Render plugins at content.end view -->\n <RenderPlugins\n :options\n viewName=\"content.end\" />\n\n <slot name=\"end\" />\n <!-- Placeholder content to allow the active item to be scrolled to the top while the rest of the content is lazy loaded -->\n <div\n v-if=\"!firstLazyLoadComplete\"\n class=\"h-dvh\"></div>\n </div>\n</template>\n\n<style>\n.narrow-references-container {\n container-name: narrow-references-container;\n container-type: inline-size;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"Content.vue.script.js","names":[],"sources":["../../../src/components/Content/Content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { generateClientOptions } from '@scalar/api-client/blocks/operation-code-sample'\nimport { mapHiddenClientsConfig } from '@scalar/api-client/modal/map-hidden-clients-config'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport type { ApiReferenceConfigurationRaw } from '@scalar/types/api-reference'\nimport type { Heading } from '@scalar/types/legacy'\nimport {\n getAsyncApiServers,\n getSelectedAsyncApiServer,\n} from '@scalar/workspace-store/channel-example'\nimport type { AuthStore } from '@scalar/workspace-store/entities/auth'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport {\n getSelectedServer,\n getServers,\n mergeSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments'\nimport type { TraversedEntry as TraversedEntryType } from '@scalar/workspace-store/schemas/navigation'\nimport {\n getDocumentType,\n isAsyncApiDocument,\n isOpenApiDocument,\n} from '@scalar/workspace-store/schemas/type-guards'\nimport type {\n Workspace,\n WorkspaceDocument,\n} from '@scalar/workspace-store/schemas/workspace'\nimport { computed, onMounted } from 'vue'\n\nimport { AsyncApiServerSelector } from '@/blocks/scalar-asyncapi-server-selector-block'\nimport { ClientSelector } from '@/blocks/scalar-client-selector-block'\nimport { InfoBlock } from '@/blocks/scalar-info-block'\nimport { IntroductionCardItem } from '@/blocks/scalar-info-block/'\nimport {\n getRenderableSdks,\n SdkInstallationInstructions,\n} from '@/blocks/scalar-sdk-installation-instructions'\nimport { ServerSelector } from '@/blocks/scalar-server-selector-block'\nimport { AsyncApiTraversedEntry } from '@/components/Content/AsyncApi'\nimport { Auth } from '@/components/Content/Auth'\nimport TraversedEntry from '@/components/Content/Operations/TraversedEntry.vue'\nimport { RenderPlugins } from '@/components/RenderPlugins'\nimport { SectionFlare } from '@/components/SectionFlare'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport {\n firstLazyLoadComplete,\n scheduleInitialLoadComplete,\n} from '@/helpers/lazy-bus'\n\nconst {\n document,\n clientDocument,\n items,\n environment,\n eventBus,\n options,\n authStore,\n documentSlug,\n} = defineProps<{\n infoSectionId: string\n /** Slug of the active document, used to scope plugin view ids for navigation and deep-linking */\n documentSlug: string\n /** The subset of the configuration object required for the content component */\n options: Pick<\n ApiReferenceConfigurationRaw,\n | 'authentication'\n | 'baseServerURL'\n | 'documentDownloadType'\n | 'expandAllResponses'\n | 'hiddenClients'\n | 'hideTestRequestButton'\n | 'layout'\n | 'oauth2RedirectUri'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n | 'persistAuth'\n | 'proxyUrl'\n | 'servers'\n | 'showOperationId'\n | 'hideModels'\n | 'modelsSectionLabel'\n >\n document: WorkspaceDocument | undefined\n clientDocument: WorkspaceDocument | undefined\n authStore: AuthStore\n xScalarDefaultClient: Workspace['x-scalar-default-client']\n items: TraversedEntryType[]\n expandedItems: Record<string, boolean>\n eventBus: WorkspaceEventBus\n environment: XScalarEnvironment\n /** Heading id generator for Markdown headings */\n headingSlugGenerator: (heading: Heading) => string\n}>()\n\n/** Generate all client options so that it can be shared between the top client picker and the operations */\nconst clientOptions = computed(() =>\n generateClientOptions(mapHiddenClientsConfig(options.hiddenClients)),\n)\n\n/**\n * Custom SDK installation instructions that actually have something to render.\n * Entries with only a `lang` are ignored so we can fall back to the client\n * selector instead of showing an empty card.\n */\nconst sdkInstallation = computed(() =>\n getRenderableSdks(openApiDocument.value?.info?.['x-scalar-sdk-installation']),\n)\n\n/**\n * Narrow the (possibly AsyncAPI) documents to OpenAPI documents. api-reference\n * is OpenAPI-native, so AsyncAPI fields surface as undefined/empty.\n */\nconst openApiDocument = computed(() =>\n isOpenApiDocument(document) ? document : undefined,\n)\nconst openApiClientDocument = computed(() =>\n isOpenApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\n/** AsyncAPI narrow, used to render the (currently channel-only) AsyncAPI content tree. */\nconst asyncApiDocument = computed(() =>\n isAsyncApiDocument(document) ? document : undefined,\n)\n\n/** AsyncAPI narrow of the client document, where server selection/variables are persisted. */\nconst asyncApiClientDocument = computed(() =>\n isAsyncApiDocument(clientDocument) ? clientDocument : undefined,\n)\n\nconst documentType = computed(() => getDocumentType(document))\n\nconst specificationVersion = computed(() => {\n if (isAsyncApiDocument(document)) {\n return document['x-original-aas-version'] ?? document.asyncapi\n }\n return openApiDocument.value?.['x-original-oas-version']\n})\n\n/** Computed property to get all OpenAPI extension fields from the root document object */\nconst documentExtensions = computed(() => getXKeysFromObject(document))\n\n/** Computed property to get all OpenAPI extension fields from the document's info object */\nconst infoExtensions = computed(() => getXKeysFromObject(document?.info))\n\n/** Compute the servers for the document */\nconst servers = computed(() =>\n getServers(options?.servers ?? openApiClientDocument.value?.servers, {\n baseServerUrl: options?.baseServerURL,\n documentUrl: clientDocument?.['x-scalar-original-source-url'],\n }),\n)\n\n/** Compute the selected server for the document only (for now) */\nconst selectedServer = computed(() =>\n getSelectedServer(\n openApiClientDocument.value ?? null,\n null,\n null,\n servers.value,\n ),\n)\n\n/**\n * Compute the AsyncAPI servers (all protocols, not just WebSocket) for the\n * document-level server selector.\n */\nconst asyncApiServers = computed(() =>\n asyncApiClientDocument.value\n ? getAsyncApiServers(asyncApiClientDocument.value, { webSocketOnly: false })\n : [],\n)\n\n/** Compute the selected AsyncAPI server for the document */\nconst asyncApiSelectedServer = computed(() =>\n getSelectedAsyncApiServer(\n asyncApiClientDocument.value ?? null,\n asyncApiServers.value,\n ),\n)\n\n/** Merge authentication config with the document security schemes */\nconst securitySchemes = computed(() =>\n mergeSecurity(\n openApiClientDocument.value?.components?.securitySchemes,\n options.authentication?.securitySchemes,\n authStore,\n openApiClientDocument.value?.['x-scalar-navigation']?.name ?? '',\n options.oauth2RedirectUri,\n ),\n)\n\n/** Ensures firstLazyLoadComplete is set for documents with no Lazy sections (e.g. no operations/tags/models). */\nonMounted(() => {\n scheduleInitialLoadComplete()\n})\n</script>\n<template>\n <SectionFlare />\n\n <div class=\"narrow-references-container\">\n <slot name=\"start\" />\n\n <!-- Render plugins at content.start view -->\n <RenderPlugins\n :documentSlug\n :eventBus\n :options\n viewName=\"content.start\" />\n\n <!-- Introduction -->\n\n <InfoBlock\n :id=\"infoSectionId\"\n :documentDownloadType=\"options.documentDownloadType\"\n :documentExtensions\n :documentType\n :documentUrl=\"document?.['x-scalar-original-source-url']\"\n :eventBus\n :externalDocs=\"openApiDocument?.externalDocs\"\n :headingSlugGenerator\n :info=\"document?.info\"\n :infoExtensions\n :layout=\"options.layout\"\n :specificationVersion>\n <template #selectors>\n <!-- Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"servers?.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <ServerSelector\n :eventBus\n :selectedServer\n :servers />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- AsyncAPI Server Selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"asyncApiServers.length\"\n class=\"scalar-reference-intro-server scalar-client introduction-card-item text-base leading-normal [--scalar-address-bar-height:0px]\">\n <AsyncApiServerSelector\n :eventBus\n :selectedServer=\"asyncApiSelectedServer\"\n :servers=\"asyncApiServers\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Auth selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"document && !options.hideTestRequestButton\"\n class=\"scalar-reference-intro-auth scalar-client introduction-card-item leading-normal\">\n <Auth\n :authStore\n :document=\"clientDocument\"\n :environment\n :eventBus\n :options\n :securitySchemes\n :selectedServer />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n\n <!-- Custom SDK installation instructions, or the generic client selector -->\n <ScalarErrorBoundary>\n <IntroductionCardItem\n v-if=\"sdkInstallation.length\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <SdkInstallationInstructions\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :eventBus\n :selectedClient=\"xScalarDefaultClient\"\n :xScalarSdkInstallation=\"sdkInstallation\" />\n </IntroductionCardItem>\n <IntroductionCardItem\n v-else-if=\"clientOptions.length && !asyncApiDocument\"\n class=\"introduction-card-item scalar-reference-intro-clients\">\n <ClientSelector\n class=\"introduction-card-item scalar-reference-intro-clients\"\n :clientOptions\n :eventBus\n :selectedClient=\"xScalarDefaultClient\" />\n </IntroductionCardItem>\n </ScalarErrorBoundary>\n </template>\n </InfoBlock>\n\n <!-- Render traversed operations and webhooks -->\n <!-- Use recursive component for cleaner rendering -->\n <TraversedEntry\n v-if=\"items.length && openApiDocument\"\n :authStore\n :clientOptions\n :document=\"openApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options\n :securitySchemes\n :selectedClient=\"xScalarDefaultClient\"\n :selectedServer>\n </TraversedEntry>\n\n <!-- AsyncAPI: render channels grouped by tag, mirroring the sidebar order. -->\n <AsyncApiTraversedEntry\n v-else-if=\"items.length && asyncApiDocument\"\n :document=\"asyncApiDocument\"\n :entries=\"items\"\n :eventBus\n :expandedItems\n :options />\n\n <!-- Render plugins at content.end view -->\n <RenderPlugins\n :documentSlug\n :eventBus\n :options\n viewName=\"content.end\" />\n\n <slot name=\"end\" />\n <!-- Placeholder content to allow the active item to be scrolled to the top while the rest of the content is lazy loaded -->\n <div\n v-if=\"!firstLazyLoadComplete\"\n class=\"h-dvh\"></div>\n </div>\n</template>\n\n<style>\n.narrow-references-container {\n container-name: narrow-references-container;\n container-type: inline-size;\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TraversedEntry.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/Operations/TraversedEntry.vue"],"names":[],"mappings":"AAgOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,4CAA4C,CAAA;AACnD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AASrE,KAAK,WAAW,GAAG;IACjB,qBAAqB;IACrB,SAAS,EAAE,SAAS,CAAA;IACpB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,0BAA0B;IAC1B,QAAQ,EAAE,eAAe,CAAA;IACzB,+CAA+C;IAC/C,aAAa,EAAE,iBAAiB,EAAE,CAAA;IAClC,kFAAkF;IAClF,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC1B,oBAAoB,GACpB,uBAAuB,GACvB,QAAQ,GACR,8BAA8B,GAC9B,yBAAyB,GACzB,2BAA2B,GAC3B,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CACvB,CAAA;IACD,iDAAiD;IACjD,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,wFAAwF;IACxF,eAAe,EAAE,qBAAqB,CAAA;IACtC,sDAAsD;IACtD,cAAc,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,CAAC,CAAA;IACtE,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,iDAAiD;IACjD,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAC;AAwTF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"TraversedEntry.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/Operations/TraversedEntry.vue"],"names":[],"mappings":"AA+NA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAGvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,4CAA4C,CAAA;AACnD,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AASrE,KAAK,WAAW,GAAG;IACjB,qBAAqB;IACrB,SAAS,EAAE,SAAS,CAAA;IACpB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,0BAA0B;IAC1B,QAAQ,EAAE,eAAe,CAAA;IACzB,+CAA+C;IAC/C,aAAa,EAAE,iBAAiB,EAAE,CAAA;IAClC,kFAAkF;IAClF,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC1B,oBAAoB,GACpB,uBAAuB,GACvB,QAAQ,GACR,8BAA8B,GAC9B,yBAAyB,GACzB,2BAA2B,GAC3B,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CACvB,CAAA;IACD,iDAAiD;IACjD,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,wFAAwF;IACxF,eAAe,EAAE,qBAAqB,CAAA;IACtC,sDAAsD;IACtD,cAAc,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,yBAAyB,CAAC,CAAA;IACtE,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,iDAAiD;IACjD,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAC;AAsTF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}