@scalar/api-reference 1.59.3 → 1.60.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 (200) hide show
  1. package/CHANGELOG.md +16 -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-CesFQ_Ax.js +27 -0
  15. package/dist/browser/chunks/ScalarTextInput.vue-C14zmVNI.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-BZzcBkVp.js +99 -0
  83. package/dist/browser/chunks/{modal-Bh68oUy_.js → modal-LBDjZSmM.js} +2 -2
  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-wW8jg8wN.js +306 -0
  105. package/dist/browser/standalone.esm.js +6 -6
  106. package/dist/browser/standalone.js +249 -248
  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 +37 -9
  111. package/dist/components/ApiReference.vue.script.js.map +1 -1
  112. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.d.ts.map +1 -1
  113. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.js.map +1 -1
  114. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js +0 -1
  115. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js.map +1 -1
  116. package/dist/components/Content/Content.vue.d.ts +4 -2
  117. package/dist/components/Content/Content.vue.d.ts.map +1 -1
  118. package/dist/components/Content/Content.vue.js.map +1 -1
  119. package/dist/components/Content/Content.vue.script.js +18 -1
  120. package/dist/components/Content/Content.vue.script.js.map +1 -1
  121. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  122. package/dist/components/Content/Operations/TraversedEntry.vue.js.map +1 -1
  123. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +0 -1
  124. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  125. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  126. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  127. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  128. package/dist/components/Content/Schema/Schema.vue.script.js +22 -2
  129. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  130. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +0 -6
  131. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  132. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  133. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  134. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +16 -2
  135. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  136. package/dist/components/Content/Schema/helpers/should-display-description.d.ts.map +1 -1
  137. package/dist/components/Content/Schema/helpers/should-display-description.js +1 -1
  138. package/dist/components/Content/Schema/helpers/should-display-description.js.map +1 -1
  139. package/dist/components/Content/Tags/Tag.vue.d.ts +0 -1
  140. package/dist/components/Content/Tags/Tag.vue.d.ts.map +1 -1
  141. package/dist/components/Content/Tags/Tag.vue.js.map +1 -1
  142. package/dist/components/Content/Tags/Tag.vue.script.js +0 -3
  143. package/dist/components/Content/Tags/Tag.vue.script.js.map +1 -1
  144. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts +0 -1
  145. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  146. package/dist/components/Content/Tags/components/ModernLayout.vue.js +1 -1
  147. package/dist/components/Content/Tags/components/ModernLayout.vue.js.map +1 -1
  148. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js +0 -3
  149. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js.map +1 -1
  150. package/dist/components/Content/Tags/components/TagSection.vue.d.ts +0 -1
  151. package/dist/components/Content/Tags/components/TagSection.vue.d.ts.map +1 -1
  152. package/dist/components/Content/Tags/components/TagSection.vue.js.map +1 -1
  153. package/dist/components/Content/Tags/components/TagSection.vue.script.js +5 -6
  154. package/dist/components/Content/Tags/components/TagSection.vue.script.js.map +1 -1
  155. package/dist/components/RenderPlugins/RenderPluginView.vue.d.ts +11 -0
  156. package/dist/components/RenderPlugins/RenderPluginView.vue.d.ts.map +1 -0
  157. package/dist/components/RenderPlugins/RenderPluginView.vue.js +7 -0
  158. package/dist/components/RenderPlugins/RenderPluginView.vue.js.map +1 -0
  159. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js +45 -0
  160. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js.map +1 -0
  161. package/dist/components/RenderPlugins/RenderPlugins.vue.d.ts +5 -1
  162. package/dist/components/RenderPlugins/RenderPlugins.vue.d.ts.map +1 -1
  163. package/dist/components/RenderPlugins/RenderPlugins.vue.js.map +1 -1
  164. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js +17 -22
  165. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js.map +1 -1
  166. package/dist/components/Section/SectionContent.vue.d.ts +1 -6
  167. package/dist/components/Section/SectionContent.vue.d.ts.map +1 -1
  168. package/dist/components/Section/SectionContent.vue.js +7 -2
  169. package/dist/components/Section/SectionContent.vue.js.map +1 -1
  170. package/dist/components/Section/SectionHeader.vue.d.ts +3 -4
  171. package/dist/components/Section/SectionHeader.vue.d.ts.map +1 -1
  172. package/dist/components/Section/SectionHeader.vue.js +1 -1
  173. package/dist/components/Section/SectionHeader.vue.js.map +1 -1
  174. package/dist/components/Section/SectionHeader.vue.script.js +5 -10
  175. package/dist/components/Section/SectionHeader.vue.script.js.map +1 -1
  176. package/dist/helpers/lazy-bus.d.ts +10 -0
  177. package/dist/helpers/lazy-bus.d.ts.map +1 -1
  178. package/dist/helpers/lazy-bus.js +22 -1
  179. package/dist/helpers/lazy-bus.js.map +1 -1
  180. package/dist/plugins/index.d.ts +1 -1
  181. package/dist/plugins/index.d.ts.map +1 -1
  182. package/dist/plugins/plugin-manager.d.ts +27 -2
  183. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  184. package/dist/plugins/plugin-manager.js +32 -2
  185. package/dist/plugins/plugin-manager.js.map +1 -1
  186. package/dist/style.css +424 -249
  187. package/dist/vue-styles.css +141 -143
  188. package/package.json +13 -13
  189. package/dist/browser/chunks/AgentScalarChatInterface-Dv0uBVU9.js +0 -27
  190. package/dist/browser/chunks/ScalarTextInput.vue-ZmlutrTU.js +0 -27
  191. package/dist/browser/chunks/modal-DHI6k89v.js +0 -66
  192. package/dist/browser/chunks/vendor-Cx_C-51y.js +0 -338
  193. package/dist/components/LoadingSkeleton.vue.d.ts +0 -9
  194. package/dist/components/LoadingSkeleton.vue.d.ts.map +0 -1
  195. package/dist/components/LoadingSkeleton.vue.js +0 -9
  196. package/dist/components/LoadingSkeleton.vue.js.map +0 -1
  197. package/dist/components/LoadingSkeleton.vue.script.js +0 -20
  198. package/dist/components/LoadingSkeleton.vue.script.js.map +0 -1
  199. package/dist/components/Section/SectionContent.vue.script.js +0 -23
  200. package/dist/components/Section/SectionContent.vue.script.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @scalar/api-reference
2
2
 
3
+ ## 1.60.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9478](https://github.com/scalar/scalar/pull/9478): Add `content.start` plugin view slot and `sidebar` visibility option for plugin view components.
8
+ - **`content.start`**: A new view slot that renders custom plugin components **before** the Introduction/Info section (at the top of the content area).
9
+ - **`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.
10
+
11
+ ### Patch Changes
12
+
13
+ - [#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`)
14
+ - [#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`.
15
+ - [#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.
16
+ - [#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
17
+ - [#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.
18
+
3
19
  ## 1.59.3
4
20
 
5
21
  ### 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"}