@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @scalar/api-reference
2
2
 
3
+ ## 1.61.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9520](https://github.com/scalar/scalar/pull/9520): Render AsyncAPI operations and their messages (with payload and header schemas) nested inside each channel, in both the modern and classic layouts
8
+ - [#9569](https://github.com/scalar/scalar/pull/9569): Show server and protocol labels when rendering AsyncAPI channels and messages: each channel header lists the servers it's available on and their protocols, and each message surfaces every protocol it's carried over (its channel's server protocols unioned with its own binding protocols)
9
+ - [#9515](https://github.com/scalar/scalar/pull/9515): feat: add `requestBuilt` client plugin hook and `onRequestBuilt` configuration callback that receive the exact fetch `Request` that is sent over the wire
10
+
11
+ The hook runs after the request has been built, right before it is sent. Header mutations apply to the outgoing request and the body bytes match what the server receives, which makes request signing possible: hashing the body of a rebuilt `multipart/form-data` request would produce a different multipart boundary than the request that is actually sent.
12
+
13
+ ### Patch Changes
14
+
15
+ - [#9559](https://github.com/scalar/scalar/pull/9559): Render an object's own properties when they are factored out alongside a composition keyword (`anyOf`/`oneOf`/`allOf`/`not`)
16
+ - [#9542](https://github.com/scalar/scalar/pull/9542): Fix an SSR hydration mismatch in the injected `<style>` tag: the CSS is now rendered verbatim instead of being HTML-escaped on the server (`"` became `&quot;`), which broke font styles and caused a hydration mismatch.
17
+ - [#9546](https://github.com/scalar/scalar/pull/9546): fix: let a later `allOf` member override the `description` and `title` of an earlier one
18
+ - [#9557](https://github.com/scalar/scalar/pull/9557): Fix `oneOf`/`anyOf` being dropped when nested inside an `allOf`. The composition is now preserved so its variants keep rendering alongside the merged base properties, instead of only the first `allOf` member showing up.
19
+
20
+ ## 1.60.0
21
+
22
+ ### Minor Changes
23
+
24
+ - [#9478](https://github.com/scalar/scalar/pull/9478): Add `content.start` plugin view slot and `sidebar` visibility option for plugin view components.
25
+ - **`content.start`**: A new view slot that renders custom plugin components **before** the Introduction/Info section (at the top of the content area).
26
+ - **`sidebar` option on `ViewComponent`**: Plugins can now opt-in to display a sidebar entry for their custom views by providing `sidebar: { show: true, label: 'My Page' }`. Omitting `sidebar` or setting `show: false` hides the entry from the sidebar. The entry hooks into the existing navigation, so clicking it scrolls to the plugin view and it highlights as it scrolls into view.
27
+
28
+ ### Patch Changes
29
+
30
+ - [#9504](https://github.com/scalar/scalar/pull/9504): Fix extra nesting and duplicated description when array items are wrapped in a single-item composition (`allOf`, `oneOf`, or `anyOf`)
31
+ - [#9526](https://github.com/scalar/scalar/pull/9526): Fix anchor links to schema properties that are hidden inside collapsed sections. Deep links now expand the disclosures on the path to the target property and scroll to it, so links work without enabling `expandAllSchemaProperties`.
32
+ - [#9484](https://github.com/scalar/scalar/pull/9484): Fix the schema description being hidden for responses when `expandAllResponses` is enabled. A response's own description and its content schema's description are now both shown.
33
+ - [#9531](https://github.com/scalar/scalar/pull/9531): fix: the introduction loading skeleton now mirrors the actual layout (badges, title, links, description and selector cards) instead of generic stacked bars, so the page no longer jumps once the document loads
34
+ - [#9524](https://github.com/scalar/scalar/pull/9524): Fix sidebar overlapping the content at exactly 1000px wide. The layout grid switched to the mobile (stacked) layout at `max-width: 1000px` while the sidebar visibility is driven by Tailwind's `lg:` variant (`min-width: 1000px`), so both fired at 1000px. The mobile breakpoint now uses `width < 1000px`, the exact complement of `lg:`, so 1000px is treated as desktop.
35
+
3
36
  ## 1.59.3
4
37
 
5
38
  ### Patch Changes
@@ -13,13 +13,13 @@ type __VLS_Props = {
13
13
  headingSlugGenerator: (heading: Heading) => string;
14
14
  eventBus: WorkspaceEventBus | null;
15
15
  };
16
- declare var __VLS_62: {}, __VLS_75: {}, __VLS_87: {};
16
+ declare var __VLS_67: {}, __VLS_80: {}, __VLS_92: {};
17
17
  type __VLS_Slots = {} & {
18
- 'download-link'?: (props: typeof __VLS_62) => any;
18
+ 'download-link'?: (props: typeof __VLS_67) => any;
19
19
  } & {
20
- aside?: (props: typeof __VLS_75) => any;
20
+ aside?: (props: typeof __VLS_80) => any;
21
21
  } & {
22
- after?: (props: typeof __VLS_87) => any;
22
+ after?: (props: typeof __VLS_92) => any;
23
23
  };
24
24
  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>;
25
25
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1 +1 @@
1
- {"version":3,"file":"IntroductionLayout.vue.d.ts","sourceRoot":"","sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLayout.vue"],"names":[],"mappings":"AAuGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EACV,2BAA2B,EAC3B,UAAU,EACX,MAAM,8DAA8D,CAAA;AAkBrE,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;IACtB,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IACrC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAA;IACjD,YAAY,CAAC,EAAE,2BAA2B,CAAA;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACnC,CAAC;AAgPF,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACpE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACrD;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAK9C,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":"IntroductionLayout.vue.d.ts","sourceRoot":"","sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLayout.vue"],"names":[],"mappings":"AA0GA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EACV,2BAA2B,EAC3B,UAAU,EACX,MAAM,8DAA8D,CAAA;AAmBrE,KAAK,WAAW,GAAG;IACjB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAA;IACtB,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IACrC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAA;IACjD,YAAY,CAAC,EAAE,2BAA2B,CAAA;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACnC,CAAC;AAoPF,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACpE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACrD;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAK9C,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"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import IntroductionLayout_vue_vue_type_script_setup_true_lang_default from "./IntroductionLayout.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/blocks/scalar-info-block/components/IntroductionLayout.vue
5
- var IntroductionLayout_default = /* @__PURE__ */ _plugin_vue_export_helper_default(IntroductionLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-bd137508"]]);
5
+ var IntroductionLayout_default = /* @__PURE__ */ _plugin_vue_export_helper_default(IntroductionLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4e3a9e30"]]);
6
6
  //#endregion
7
7
  export { IntroductionLayout_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"IntroductionLayout.vue.js","names":[],"sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { AsyncApiInfoObject } from '@scalar/types/asyncapi/3.1'\nimport type { Heading } from '@scalar/types/legacy'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n ExternalDocumentationObject,\n InfoObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContainer,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nimport InfoDescription from './InfoDescription.vue'\nimport InfoLinks from './InfoLinks.vue'\nimport InfoVersion from './InfoVersion.vue'\nimport SpecificationVersion from './SpecificationVersion.vue'\n\ndefineProps<{\n id: string | undefined\n documentType?: 'openapi' | 'asyncapi'\n specificationVersion: string | undefined\n info: InfoObject | AsyncApiInfoObject | undefined\n externalDocs?: ExternalDocumentationObject\n documentExtensions?: Record<string, unknown>\n infoExtensions?: Record<string, unknown>\n headingSlugGenerator: (heading: Heading) => string\n eventBus: WorkspaceEventBus | null\n}>()\n</script>\n\n<template>\n <SectionContainer>\n <!-- If the #after slot is used, we need to add a gap to the section. -->\n <Section\n :id=\"id\"\n aria-label=\"Introduction\"\n class=\"introduction-section z-1 gap-12\"\n @intersecting=\"\n () => id && eventBus?.emit('intersecting:nav-item', { id })\n \">\n <SectionContent :loading=\"!info\">\n <div class=\"flex gap-1.5\">\n <InfoVersion\n v-if=\"info\"\n :version=\"info?.version\" />\n <SpecificationVersion\n :documentType\n :version=\"specificationVersion\" />\n </div>\n <SectionHeader\n :loading=\"!info?.title\"\n tight>\n <SectionHeaderTag :level=\"1\">\n {{ info?.title }}\n </SectionHeaderTag>\n <template #links>\n <InfoLinks\n v-if=\"info\"\n :externalDocs=\"externalDocs\"\n :info=\"info\" />\n </template>\n </SectionHeader>\n <SectionColumns>\n <SectionColumn>\n <slot name=\"download-link\" />\n <InfoDescription\n :description=\"info?.description\"\n :eventBus=\"eventBus\"\n :headingSlugGenerator=\"headingSlugGenerator\" />\n </SectionColumn>\n <SectionColumn v-if=\"$slots.aside\">\n <div class=\"sticky-cards\">\n <slot name=\"aside\" />\n </div>\n </SectionColumn>\n </SectionColumns>\n <SpecificationExtension :value=\"documentExtensions\" />\n <SpecificationExtension :value=\"infoExtensions\" />\n </SectionContent>\n <slot name=\"after\" />\n </Section>\n </SectionContainer>\n</template>\n\n<style scoped>\n.sticky-cards {\n display: flex;\n flex-direction: column;\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"IntroductionLayout.vue.js","names":[],"sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { AsyncApiInfoObject } from '@scalar/types/asyncapi/3.1'\nimport type { Heading } from '@scalar/types/legacy'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n ExternalDocumentationObject,\n InfoObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContainer,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nimport InfoDescription from './InfoDescription.vue'\nimport InfoLinks from './InfoLinks.vue'\nimport InfoVersion from './InfoVersion.vue'\nimport IntroductionLoading from './IntroductionLoading.vue'\nimport SpecificationVersion from './SpecificationVersion.vue'\n\ndefineProps<{\n id: string | undefined\n documentType?: 'openapi' | 'asyncapi'\n specificationVersion: string | undefined\n info: InfoObject | AsyncApiInfoObject | undefined\n externalDocs?: ExternalDocumentationObject\n documentExtensions?: Record<string, unknown>\n infoExtensions?: Record<string, unknown>\n headingSlugGenerator: (heading: Heading) => string\n eventBus: WorkspaceEventBus | null\n}>()\n</script>\n\n<template>\n <SectionContainer>\n <!-- If the #after slot is used, we need to add a gap to the section. -->\n <Section\n :id=\"id\"\n aria-label=\"Introduction\"\n class=\"introduction-section z-1 gap-12\"\n @intersecting=\"\n () => id && eventBus?.emit('intersecting:nav-item', { id })\n \">\n <SectionContent>\n <!-- While the document loads we show a skeleton that mirrors this layout. -->\n <IntroductionLoading\n v-if=\"!info\"\n :hasAside=\"Boolean($slots.aside)\" />\n\n <template v-else>\n <div class=\"flex gap-1.5\">\n <InfoVersion :version=\"info?.version\" />\n <SpecificationVersion\n :documentType\n :version=\"specificationVersion\" />\n </div>\n <SectionHeader tight>\n <SectionHeaderTag :level=\"1\">\n {{ info?.title }}\n </SectionHeaderTag>\n <template #links>\n <InfoLinks\n :externalDocs=\"externalDocs\"\n :info=\"info\" />\n </template>\n </SectionHeader>\n <SectionColumns>\n <SectionColumn>\n <slot name=\"download-link\" />\n <InfoDescription\n :description=\"info?.description\"\n :eventBus=\"eventBus\"\n :headingSlugGenerator=\"headingSlugGenerator\" />\n </SectionColumn>\n <SectionColumn v-if=\"$slots.aside\">\n <div class=\"sticky-cards\">\n <slot name=\"aside\" />\n </div>\n </SectionColumn>\n </SectionColumns>\n <SpecificationExtension :value=\"documentExtensions\" />\n <SpecificationExtension :value=\"infoExtensions\" />\n </template>\n </SectionContent>\n <slot name=\"after\" />\n </Section>\n </SectionContainer>\n</template>\n\n<style scoped>\n.sticky-cards {\n display: flex;\n flex-direction: column;\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n</style>\n"],"mappings":""}
@@ -9,8 +9,9 @@ import SpecificationExtension_default from "../../../features/specification-exte
9
9
  import InfoDescription_default from "./InfoDescription.vue.js";
10
10
  import InfoLinks_default from "./InfoLinks.vue.js";
11
11
  import InfoVersion_default from "./InfoVersion.vue.js";
12
+ import IntroductionLoading_default from "./IntroductionLoading.vue.js";
12
13
  import SpecificationVersion_default from "./SpecificationVersion.vue.js";
13
- import { createBlock, createCommentVNode, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
14
+ import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
14
15
  //#region src/blocks/scalar-info-block/components/IntroductionLayout.vue?vue&type=script&setup=true&lang.ts
15
16
  var _hoisted_1 = { class: "flex gap-1.5" };
16
17
  var _hoisted_2 = { class: "sticky-cards" };
@@ -36,30 +37,26 @@ var IntroductionLayout_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
36
37
  class: "introduction-section z-1 gap-12",
37
38
  onIntersecting: _cache[0] || (_cache[0] = () => __props.id && __props.eventBus?.emit("intersecting:nav-item", { id: __props.id }))
38
39
  }, {
39
- default: withCtx(() => [createVNode(unref(SectionContent_default), { loading: !__props.info }, {
40
- default: withCtx(() => [
41
- createElementVNode("div", _hoisted_1, [__props.info ? (openBlock(), createBlock(InfoVersion_default, {
42
- key: 0,
43
- version: __props.info?.version
44
- }, null, 8, ["version"])) : createCommentVNode("", true), createVNode(SpecificationVersion_default, {
40
+ default: withCtx(() => [createVNode(unref(SectionContent_default), null, {
41
+ default: withCtx(() => [!__props.info ? (openBlock(), createBlock(IntroductionLoading_default, {
42
+ key: 0,
43
+ hasAside: Boolean(_ctx.$slots.aside)
44
+ }, null, 8, ["hasAside"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
45
+ createElementVNode("div", _hoisted_1, [createVNode(InfoVersion_default, { version: __props.info?.version }, null, 8, ["version"]), createVNode(SpecificationVersion_default, {
45
46
  documentType: __props.documentType,
46
47
  version: __props.specificationVersion
47
48
  }, null, 8, ["documentType", "version"])]),
48
- createVNode(unref(SectionHeader_default), {
49
- loading: !__props.info?.title,
50
- tight: ""
51
- }, {
52
- links: withCtx(() => [__props.info ? (openBlock(), createBlock(InfoLinks_default, {
53
- key: 0,
49
+ createVNode(unref(SectionHeader_default), { tight: "" }, {
50
+ links: withCtx(() => [createVNode(InfoLinks_default, {
54
51
  externalDocs: __props.externalDocs,
55
52
  info: __props.info
56
- }, null, 8, ["externalDocs", "info"])) : createCommentVNode("", true)]),
53
+ }, null, 8, ["externalDocs", "info"])]),
57
54
  default: withCtx(() => [createVNode(unref(SectionHeaderTag_default), { level: 1 }, {
58
55
  default: withCtx(() => [createTextVNode(toDisplayString(__props.info?.title), 1)]),
59
56
  _: 1
60
57
  })]),
61
58
  _: 1
62
- }, 8, ["loading"]),
59
+ }),
63
60
  createVNode(unref(SectionColumns_default), null, {
64
61
  default: withCtx(() => [createVNode(unref(SectionColumn_default), null, {
65
62
  default: withCtx(() => [renderSlot(_ctx.$slots, "download-link", {}, void 0, true), createVNode(InfoDescription_default, {
@@ -80,9 +77,9 @@ var IntroductionLayout_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
80
77
  }),
81
78
  createVNode(unref(SpecificationExtension_default), { value: __props.documentExtensions }, null, 8, ["value"]),
82
79
  createVNode(unref(SpecificationExtension_default), { value: __props.infoExtensions }, null, 8, ["value"])
83
- ]),
80
+ ], 64))]),
84
81
  _: 3
85
- }, 8, ["loading"]), renderSlot(_ctx.$slots, "after", {}, void 0, true)]),
82
+ }), renderSlot(_ctx.$slots, "after", {}, void 0, true)]),
86
83
  _: 3
87
84
  }, 8, ["id"])]),
88
85
  _: 3
@@ -1 +1 @@
1
- {"version":3,"file":"IntroductionLayout.vue.script.js","names":["$slots"],"sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { AsyncApiInfoObject } from '@scalar/types/asyncapi/3.1'\nimport type { Heading } from '@scalar/types/legacy'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n ExternalDocumentationObject,\n InfoObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContainer,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nimport InfoDescription from './InfoDescription.vue'\nimport InfoLinks from './InfoLinks.vue'\nimport InfoVersion from './InfoVersion.vue'\nimport SpecificationVersion from './SpecificationVersion.vue'\n\ndefineProps<{\n id: string | undefined\n documentType?: 'openapi' | 'asyncapi'\n specificationVersion: string | undefined\n info: InfoObject | AsyncApiInfoObject | undefined\n externalDocs?: ExternalDocumentationObject\n documentExtensions?: Record<string, unknown>\n infoExtensions?: Record<string, unknown>\n headingSlugGenerator: (heading: Heading) => string\n eventBus: WorkspaceEventBus | null\n}>()\n</script>\n\n<template>\n <SectionContainer>\n <!-- If the #after slot is used, we need to add a gap to the section. -->\n <Section\n :id=\"id\"\n aria-label=\"Introduction\"\n class=\"introduction-section z-1 gap-12\"\n @intersecting=\"\n () => id && eventBus?.emit('intersecting:nav-item', { id })\n \">\n <SectionContent :loading=\"!info\">\n <div class=\"flex gap-1.5\">\n <InfoVersion\n v-if=\"info\"\n :version=\"info?.version\" />\n <SpecificationVersion\n :documentType\n :version=\"specificationVersion\" />\n </div>\n <SectionHeader\n :loading=\"!info?.title\"\n tight>\n <SectionHeaderTag :level=\"1\">\n {{ info?.title }}\n </SectionHeaderTag>\n <template #links>\n <InfoLinks\n v-if=\"info\"\n :externalDocs=\"externalDocs\"\n :info=\"info\" />\n </template>\n </SectionHeader>\n <SectionColumns>\n <SectionColumn>\n <slot name=\"download-link\" />\n <InfoDescription\n :description=\"info?.description\"\n :eventBus=\"eventBus\"\n :headingSlugGenerator=\"headingSlugGenerator\" />\n </SectionColumn>\n <SectionColumn v-if=\"$slots.aside\">\n <div class=\"sticky-cards\">\n <slot name=\"aside\" />\n </div>\n </SectionColumn>\n </SectionColumns>\n <SpecificationExtension :value=\"documentExtensions\" />\n <SpecificationExtension :value=\"infoExtensions\" />\n </SectionContent>\n <slot name=\"after\" />\n </Section>\n </SectionContainer>\n</template>\n\n<style scoped>\n.sticky-cards {\n display: flex;\n flex-direction: column;\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAuCE,YAkDmB,MAAA,yBAAA,EAAA,MAAA;2BADP,CA/CV,YA+CU,MAAA,gBAAA,EAAA;KA9CP,IAAI,QAAA;KACL,cAAW;KACX,OAAM;KACL,gBAAY,OAAA,OAAA,OAAA,WAAiB,QAAA,MAAM,QAAA,UAAU,KAAI,yBAAA,EAAA,IAA4B,QAAA,IAAE,CAAA;;4BAyC/D,CAtCjB,YAsCiB,MAAA,uBAAA,EAAA,EAtCA,SAAO,CAAG,QAAA,MAAA,EAAA;6BAQnB;OAPN,mBAOM,OAPN,YAOM,CALI,QAAA,QAAA,WAAA,EADR,YAE6B,qBAAA;;QAA1B,SAAS,QAAA,MAAM;iEAClB,YAEoC,8BAAA;QADjC,cAAA,QAAA;QACA,SAAS,QAAA;;OAEd,YAYgB,MAAA,sBAAA,EAAA;QAXb,SAAO,CAAG,QAAA,MAAM;QACjB,OAAA;;QAIW,OAAK,cAIG,CAFT,QAAA,QAAA,WAAA,EADR,YAGiB,mBAAA;;SADd,cAAc,QAAA;SACd,MAAM,QAAA;;+BALQ,CAFnB,YAEmB,MAAA,yBAAA,EAAA,EAFA,OAAO,GAAC,EAAA;gCACR,CAAA,gBAAA,gBAAd,QAAA,MAAM,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;OASlB,YAaiB,MAAA,uBAAA,EAAA,MAAA;+BANC,CANhB,YAMgB,MAAA,sBAAA,EAAA,MAAA;gCALe,CAA7B,WAA6B,KAAA,QAAA,iBAAA,EAAA,EAAA,KAAA,GAAA,KAAA,EAC7B,YAGiD,yBAAA;UAF9C,aAAa,QAAA,MAAM;UACnB,UAAU,QAAA;UACV,sBAAsB,QAAA;;;;;;;YAENA,KAAAA,OAAO,SAAA,WAAA,EAA5B,YAIgB,MAAA,sBAAA,EAAA,EAAA,KAAA,GAAA,EAAA;gCADR,CAFN,mBAEM,OAFN,YAEM,CADJ,WAAqB,KAAA,QAAA,SAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;;;;;OAI3B,YAAsD,MAAA,+BAAA,EAAA,EAA7B,OAAO,QAAA,oBAAkB,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA;OAClD,YAAkD,MAAA,+BAAA,EAAA,EAAzB,OAAO,QAAA,gBAAc,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA;;;yBAEhD,WAAqB,KAAA,QAAA,SAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"IntroductionLayout.vue.script.js","names":["$slots"],"sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { AsyncApiInfoObject } from '@scalar/types/asyncapi/3.1'\nimport type { Heading } from '@scalar/types/legacy'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type {\n ExternalDocumentationObject,\n InfoObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContainer,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nimport InfoDescription from './InfoDescription.vue'\nimport InfoLinks from './InfoLinks.vue'\nimport InfoVersion from './InfoVersion.vue'\nimport IntroductionLoading from './IntroductionLoading.vue'\nimport SpecificationVersion from './SpecificationVersion.vue'\n\ndefineProps<{\n id: string | undefined\n documentType?: 'openapi' | 'asyncapi'\n specificationVersion: string | undefined\n info: InfoObject | AsyncApiInfoObject | undefined\n externalDocs?: ExternalDocumentationObject\n documentExtensions?: Record<string, unknown>\n infoExtensions?: Record<string, unknown>\n headingSlugGenerator: (heading: Heading) => string\n eventBus: WorkspaceEventBus | null\n}>()\n</script>\n\n<template>\n <SectionContainer>\n <!-- If the #after slot is used, we need to add a gap to the section. -->\n <Section\n :id=\"id\"\n aria-label=\"Introduction\"\n class=\"introduction-section z-1 gap-12\"\n @intersecting=\"\n () => id && eventBus?.emit('intersecting:nav-item', { id })\n \">\n <SectionContent>\n <!-- While the document loads we show a skeleton that mirrors this layout. -->\n <IntroductionLoading\n v-if=\"!info\"\n :hasAside=\"Boolean($slots.aside)\" />\n\n <template v-else>\n <div class=\"flex gap-1.5\">\n <InfoVersion :version=\"info?.version\" />\n <SpecificationVersion\n :documentType\n :version=\"specificationVersion\" />\n </div>\n <SectionHeader tight>\n <SectionHeaderTag :level=\"1\">\n {{ info?.title }}\n </SectionHeaderTag>\n <template #links>\n <InfoLinks\n :externalDocs=\"externalDocs\"\n :info=\"info\" />\n </template>\n </SectionHeader>\n <SectionColumns>\n <SectionColumn>\n <slot name=\"download-link\" />\n <InfoDescription\n :description=\"info?.description\"\n :eventBus=\"eventBus\"\n :headingSlugGenerator=\"headingSlugGenerator\" />\n </SectionColumn>\n <SectionColumn v-if=\"$slots.aside\">\n <div class=\"sticky-cards\">\n <slot name=\"aside\" />\n </div>\n </SectionColumn>\n </SectionColumns>\n <SpecificationExtension :value=\"documentExtensions\" />\n <SpecificationExtension :value=\"infoExtensions\" />\n </template>\n </SectionContent>\n <slot name=\"after\" />\n </Section>\n </SectionContainer>\n</template>\n\n<style scoped>\n.sticky-cards {\n display: flex;\n flex-direction: column;\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAwCE,YAoDmB,MAAA,yBAAA,EAAA,MAAA;2BADP,CAjDV,YAiDU,MAAA,gBAAA,EAAA;KAhDP,IAAI,QAAA;KACL,cAAW;KACX,OAAM;KACL,gBAAY,OAAA,OAAA,OAAA,WAAiB,QAAA,MAAM,QAAA,UAAU,KAAI,yBAAA,EAAA,IAA4B,QAAA,IAAE,CAAA;;4BA2C/D,CAxCjB,YAwCiB,MAAA,uBAAA,EAAA,MAAA;6BApCuB,CAAA,CAD7B,QAAA,QAAA,WAAA,EADT,YAEsC,6BAAA;;OAAnC,UAAU,QAAQA,KAAAA,OAAO,MAAK;iDAEjC,mBAiCW,UAAA,EAAA,KAAA,GAAA,EAAA;OAhCT,mBAKM,OALN,YAKM,CAJJ,YAAwC,qBAAA,EAA1B,SAAS,QAAA,MAAM,SAAA,EAAA,MAAA,GAAA,CAAA,UAAA,CAAA,EAC7B,YAEoC,8BAAA;QADjC,cAAA,QAAA;QACA,SAAS,QAAA;;OAEd,YASgB,MAAA,sBAAA,EAAA,EATD,OAAA,IAAK,EAAA;QAIP,OAAK,cAGG,CAFjB,YAEiB,mBAAA;SADd,cAAc,QAAA;SACd,MAAM,QAAA;;+BAJQ,CAFnB,YAEmB,MAAA,yBAAA,EAAA,EAFA,OAAO,GAAC,EAAA;gCACR,CAAA,gBAAA,gBAAd,QAAA,MAAM,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;OAQlB,YAaiB,MAAA,uBAAA,EAAA,MAAA;+BANC,CANhB,YAMgB,MAAA,sBAAA,EAAA,MAAA;gCALe,CAA7B,WAA6B,KAAA,QAAA,iBAAA,EAAA,EAAA,KAAA,GAAA,KAAA,EAC7B,YAGiD,yBAAA;UAF9C,aAAa,QAAA,MAAM;UACnB,UAAU,QAAA;UACV,sBAAsB,QAAA;;;;;;;YAENA,KAAAA,OAAO,SAAA,WAAA,EAA5B,YAIgB,MAAA,sBAAA,EAAA,EAAA,KAAA,GAAA,EAAA;gCADR,CAFN,mBAEM,OAFN,YAEM,CADJ,WAAqB,KAAA,QAAA,SAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA;;;;;OAI3B,YAAsD,MAAA,+BAAA,EAAA,EAA7B,OAAO,QAAA,oBAAkB,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA;OAClD,YAAkD,MAAA,+BAAA,EAAA,EAAzB,OAAO,QAAA,gBAAc,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA;;;SAGlD,WAAqB,KAAA,QAAA,SAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA"}
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ /**
3
+ * Whether the selector cards live in a sticky aside column (modern layout)
4
+ * or in a row below the description (classic layout). Mirrors the
5
+ * `$slots.aside` check in the loaded layout.
6
+ */
7
+ hasAside?: boolean;
8
+ };
9
+ declare const __VLS_export: 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>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
12
+ //# sourceMappingURL=IntroductionLoading.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntroductionLoading.vue.d.ts","sourceRoot":"","sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLoading.vue"],"names":[],"mappings":"AAyGA,KAAK,WAAW,GAAG;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AA8PF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -0,0 +1,9 @@
1
+ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
+ import IntroductionLoading_vue_vue_type_script_setup_true_lang_default from "./IntroductionLoading.vue.script.js";
3
+ /* empty css */
4
+ //#region src/blocks/scalar-info-block/components/IntroductionLoading.vue
5
+ var IntroductionLoading_default = /* @__PURE__ */ _plugin_vue_export_helper_default(IntroductionLoading_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-1bd6e256"]]);
6
+ //#endregion
7
+ export { IntroductionLoading_default as default };
8
+
9
+ //# sourceMappingURL=IntroductionLoading.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntroductionLoading.vue.js","names":[],"sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLoading.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Loading skeleton for the introduction block. It mirrors the real layout\n * (badges, title, links, description and selector cards) so the page does not\n * jump once the document has loaded.\n */\nimport { SectionColumn, SectionColumns } from '@/components/Section'\n\nconst { hasAside = true } = defineProps<{\n /**\n * Whether the selector cards live in a sticky aside column (modern layout)\n * or in a row below the description (classic layout). Mirrors the\n * `$slots.aside` check in the loaded layout.\n */\n hasAside?: boolean\n}>()\n</script>\n\n<template>\n <div\n class=\"introduction-loading flex flex-col gap-5\"\n aria-hidden=\"true\">\n <!-- Version and specification badges -->\n <div class=\"flex gap-1.5\">\n <div class=\"introduction-skeleton h-6 w-14 rounded-full\" />\n <div class=\"introduction-skeleton h-6 w-24 rounded-full\" />\n </div>\n <!-- Title and links (mirrors SectionHeader's two-column grid at xl) -->\n <div class=\"grid grid-cols-1 gap-3 xl:grid-cols-2 xl:gap-12\">\n <div class=\"introduction-skeleton h-9 w-3/5 rounded-lg\" />\n <div class=\"flex flex-wrap items-center gap-2 xl:justify-end\">\n <div class=\"introduction-skeleton h-5 w-28 rounded\" />\n <div class=\"introduction-skeleton h-5 w-28 rounded\" />\n <div class=\"introduction-skeleton h-5 w-12 rounded\" />\n </div>\n </div>\n <SectionColumns>\n <SectionColumn>\n <div class=\"flex flex-col gap-3\">\n <!-- Download link -->\n <div class=\"introduction-skeleton mb-2 h-5 w-56 rounded\" />\n <!-- Description -->\n <div class=\"introduction-skeleton h-4 w-full rounded\" />\n <div class=\"introduction-skeleton h-4 w-11/12 rounded\" />\n <div class=\"introduction-skeleton h-4 w-4/5 rounded\" />\n <!-- Section heading -->\n <div class=\"introduction-skeleton mt-4 h-6 w-40 rounded\" />\n <div class=\"introduction-skeleton h-4 w-3/4 rounded\" />\n <div class=\"introduction-skeleton h-4 w-2/3 rounded\" />\n <div class=\"introduction-skeleton h-4 w-1/2 rounded\" />\n </div>\n </SectionColumn>\n <!-- Modern layout: selector cards in a sticky aside column -->\n <SectionColumn v-if=\"hasAside\">\n <div class=\"sticky-cards gap-3\">\n <div class=\"introduction-skeleton h-20 w-full rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full rounded-lg\" />\n </div>\n </SectionColumn>\n </SectionColumns>\n <!-- Classic layout: selector cards in a row below the description -->\n <div\n v-if=\"!hasAside\"\n class=\"flex flex-col gap-3 sm:flex-row sm:gap-6\">\n <div class=\"introduction-skeleton h-28 w-full flex-1 rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full flex-1 rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full flex-1 rounded-lg\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.sticky-cards {\n display: flex;\n flex-direction: column;\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n\n/* Pulsing placeholder, matching the look of the rest of the loading states. */\n.introduction-skeleton {\n background: var(--scalar-background-3);\n animation: introduction-skeleton-pulse 1.5s infinite alternate;\n}\n\n@keyframes introduction-skeleton-pulse {\n from {\n opacity: 1;\n }\n to {\n opacity: 0.33;\n }\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import SectionColumn_default from "../../../components/Section/SectionColumn.vue.js";
2
+ import SectionColumns_default from "../../../components/Section/SectionColumns.vue.js";
3
+ import { createBlock, createCommentVNode, createElementBlock, createElementVNode, createStaticVNode, createVNode, defineComponent, openBlock, unref, withCtx } from "vue";
4
+ //#region src/blocks/scalar-info-block/components/IntroductionLoading.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = {
6
+ class: "introduction-loading flex flex-col gap-5",
7
+ "aria-hidden": "true"
8
+ };
9
+ var _hoisted_2 = {
10
+ key: 0,
11
+ class: "flex flex-col gap-3 sm:flex-row sm:gap-6"
12
+ };
13
+ var IntroductionLoading_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
14
+ __name: "IntroductionLoading",
15
+ props: { hasAside: {
16
+ type: Boolean,
17
+ default: true
18
+ } },
19
+ setup(__props) {
20
+ /**
21
+ * Loading skeleton for the introduction block. It mirrors the real layout
22
+ * (badges, title, links, description and selector cards) so the page does not
23
+ * jump once the document has loaded.
24
+ */
25
+ return (_ctx, _cache) => {
26
+ return openBlock(), createElementBlock("div", _hoisted_1, [
27
+ _cache[3] || (_cache[3] = createStaticVNode("<div class=\"flex gap-1.5\" data-v-1bd6e256><div class=\"introduction-skeleton h-6 w-14 rounded-full\" data-v-1bd6e256></div><div class=\"introduction-skeleton h-6 w-24 rounded-full\" data-v-1bd6e256></div></div><div class=\"grid grid-cols-1 gap-3 xl:grid-cols-2 xl:gap-12\" data-v-1bd6e256><div class=\"introduction-skeleton h-9 w-3/5 rounded-lg\" data-v-1bd6e256></div><div class=\"flex flex-wrap items-center gap-2 xl:justify-end\" data-v-1bd6e256><div class=\"introduction-skeleton h-5 w-28 rounded\" data-v-1bd6e256></div><div class=\"introduction-skeleton h-5 w-28 rounded\" data-v-1bd6e256></div><div class=\"introduction-skeleton h-5 w-12 rounded\" data-v-1bd6e256></div></div></div>", 2)),
28
+ createVNode(unref(SectionColumns_default), null, {
29
+ default: withCtx(() => [createVNode(unref(SectionColumn_default), null, {
30
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [createElementVNode("div", { class: "flex flex-col gap-3" }, [
31
+ createElementVNode("div", { class: "introduction-skeleton mb-2 h-5 w-56 rounded" }),
32
+ createElementVNode("div", { class: "introduction-skeleton h-4 w-full rounded" }),
33
+ createElementVNode("div", { class: "introduction-skeleton h-4 w-11/12 rounded" }),
34
+ createElementVNode("div", { class: "introduction-skeleton h-4 w-4/5 rounded" }),
35
+ createElementVNode("div", { class: "introduction-skeleton mt-4 h-6 w-40 rounded" }),
36
+ createElementVNode("div", { class: "introduction-skeleton h-4 w-3/4 rounded" }),
37
+ createElementVNode("div", { class: "introduction-skeleton h-4 w-2/3 rounded" }),
38
+ createElementVNode("div", { class: "introduction-skeleton h-4 w-1/2 rounded" })
39
+ ], -1)])]),
40
+ _: 1
41
+ }), __props.hasAside ? (openBlock(), createBlock(unref(SectionColumn_default), { key: 0 }, {
42
+ default: withCtx(() => [..._cache[1] || (_cache[1] = [createElementVNode("div", { class: "sticky-cards gap-3" }, [
43
+ createElementVNode("div", { class: "introduction-skeleton h-20 w-full rounded-lg" }),
44
+ createElementVNode("div", { class: "introduction-skeleton h-28 w-full rounded-lg" }),
45
+ createElementVNode("div", { class: "introduction-skeleton h-28 w-full rounded-lg" })
46
+ ], -1)])]),
47
+ _: 1
48
+ })) : createCommentVNode("", true)]),
49
+ _: 1
50
+ }),
51
+ !__props.hasAside ? (openBlock(), createElementBlock("div", _hoisted_2, [..._cache[2] || (_cache[2] = [
52
+ createElementVNode("div", { class: "introduction-skeleton h-28 w-full flex-1 rounded-lg" }, null, -1),
53
+ createElementVNode("div", { class: "introduction-skeleton h-28 w-full flex-1 rounded-lg" }, null, -1),
54
+ createElementVNode("div", { class: "introduction-skeleton h-28 w-full flex-1 rounded-lg" }, null, -1)
55
+ ])])) : createCommentVNode("", true)
56
+ ]);
57
+ };
58
+ }
59
+ });
60
+ //#endregion
61
+ export { IntroductionLoading_vue_vue_type_script_setup_true_lang_default as default };
62
+
63
+ //# sourceMappingURL=IntroductionLoading.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntroductionLoading.vue.script.js","names":[],"sources":["../../../../src/blocks/scalar-info-block/components/IntroductionLoading.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Loading skeleton for the introduction block. It mirrors the real layout\n * (badges, title, links, description and selector cards) so the page does not\n * jump once the document has loaded.\n */\nimport { SectionColumn, SectionColumns } from '@/components/Section'\n\nconst { hasAside = true } = defineProps<{\n /**\n * Whether the selector cards live in a sticky aside column (modern layout)\n * or in a row below the description (classic layout). Mirrors the\n * `$slots.aside` check in the loaded layout.\n */\n hasAside?: boolean\n}>()\n</script>\n\n<template>\n <div\n class=\"introduction-loading flex flex-col gap-5\"\n aria-hidden=\"true\">\n <!-- Version and specification badges -->\n <div class=\"flex gap-1.5\">\n <div class=\"introduction-skeleton h-6 w-14 rounded-full\" />\n <div class=\"introduction-skeleton h-6 w-24 rounded-full\" />\n </div>\n <!-- Title and links (mirrors SectionHeader's two-column grid at xl) -->\n <div class=\"grid grid-cols-1 gap-3 xl:grid-cols-2 xl:gap-12\">\n <div class=\"introduction-skeleton h-9 w-3/5 rounded-lg\" />\n <div class=\"flex flex-wrap items-center gap-2 xl:justify-end\">\n <div class=\"introduction-skeleton h-5 w-28 rounded\" />\n <div class=\"introduction-skeleton h-5 w-28 rounded\" />\n <div class=\"introduction-skeleton h-5 w-12 rounded\" />\n </div>\n </div>\n <SectionColumns>\n <SectionColumn>\n <div class=\"flex flex-col gap-3\">\n <!-- Download link -->\n <div class=\"introduction-skeleton mb-2 h-5 w-56 rounded\" />\n <!-- Description -->\n <div class=\"introduction-skeleton h-4 w-full rounded\" />\n <div class=\"introduction-skeleton h-4 w-11/12 rounded\" />\n <div class=\"introduction-skeleton h-4 w-4/5 rounded\" />\n <!-- Section heading -->\n <div class=\"introduction-skeleton mt-4 h-6 w-40 rounded\" />\n <div class=\"introduction-skeleton h-4 w-3/4 rounded\" />\n <div class=\"introduction-skeleton h-4 w-2/3 rounded\" />\n <div class=\"introduction-skeleton h-4 w-1/2 rounded\" />\n </div>\n </SectionColumn>\n <!-- Modern layout: selector cards in a sticky aside column -->\n <SectionColumn v-if=\"hasAside\">\n <div class=\"sticky-cards gap-3\">\n <div class=\"introduction-skeleton h-20 w-full rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full rounded-lg\" />\n </div>\n </SectionColumn>\n </SectionColumns>\n <!-- Classic layout: selector cards in a row below the description -->\n <div\n v-if=\"!hasAside\"\n class=\"flex flex-col gap-3 sm:flex-row sm:gap-6\">\n <div class=\"introduction-skeleton h-28 w-full flex-1 rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full flex-1 rounded-lg\" />\n <div class=\"introduction-skeleton h-28 w-full flex-1 rounded-lg\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.sticky-cards {\n display: flex;\n flex-direction: column;\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n\n/* Pulsing placeholder, matching the look of the rest of the loading states. */\n.introduction-skeleton {\n background: var(--scalar-background-3);\n animation: introduction-skeleton-pulse 1.5s infinite alternate;\n}\n\n@keyframes introduction-skeleton-pulse {\n from {\n opacity: 1;\n }\n to {\n opacity: 0.33;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;uBAmBE,mBAkDM,OAlDN,YAkDM;;IAjCJ,YAwBiB,MAAA,uBAAA,EAAA,MAAA;4BATC,CAdhB,YAcgB,MAAA,sBAAA,EAAA,MAAA;6BADR,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAZN,mBAYM,OAAA,EAZD,OAAM,uBAAqB,EAAA;OAE9B,mBAA2D,OAAA,EAAtD,OAAM,+CAA6C,CAAA;OAExD,mBAAwD,OAAA,EAAnD,OAAM,4CAA0C,CAAA;OACrD,mBAAyD,OAAA,EAApD,OAAM,6CAA2C,CAAA;OACtD,mBAAuD,OAAA,EAAlD,OAAM,2CAAyC,CAAA;OAEpD,mBAA2D,OAAA,EAAtD,OAAM,+CAA6C,CAAA;OACxD,mBAAuD,OAAA,EAAlD,OAAM,2CAAyC,CAAA;OACpD,mBAAuD,OAAA,EAAlD,OAAM,2CAAyC,CAAA;OACpD,mBAAuD,OAAA,EAAlD,OAAM,2CAAyC,CAAA;;;SAInC,QAAA,YAAA,WAAA,EAArB,YAMgB,MAAA,sBAAA,EAAA,EAAA,KAAA,GAAA,EAAA;6BADR,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAJN,mBAIM,OAAA,EAJD,OAAM,sBAAoB,EAAA;OAC7B,mBAA4D,OAAA,EAAvD,OAAM,gDAA8C,CAAA;OACzD,mBAA4D,OAAA,EAAvD,OAAM,gDAA8C,CAAA;OACzD,mBAA4D,OAAA,EAAvD,OAAM,gDAA8C,CAAA;;;;;;KAMtD,QAAA,YAAA,WAAA,EADT,mBAMM,OANN,YAMM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA;KAHJ,mBAAmE,OAAA,EAA9D,OAAM,uDAAqD,EAAA,MAAA,GAAA;KAChE,mBAAmE,OAAA,EAA9D,OAAM,uDAAqD,EAAA,MAAA,GAAA;KAChE,mBAAmE,OAAA,EAA9D,OAAM,uDAAqD,EAAA,MAAA,GAAA"}