@scalar/api-reference 1.64.0 → 1.65.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 (630) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.d.ts.map +1 -1
  3. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js +1 -1
  4. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js.map +1 -1
  5. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  6. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js +1 -1
  7. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js.map +1 -1
  8. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.script.js +2 -2
  9. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.script.js.map +1 -1
  10. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.d.ts.map +1 -1
  11. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.script.js +1 -1
  12. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.script.js.map +1 -1
  13. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/helpers/filter-async-api-navigation.js.map +1 -1
  14. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts +1 -3
  15. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts.map +1 -1
  16. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js +1 -1
  17. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js.map +1 -1
  18. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js +13 -27
  19. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js.map +1 -1
  20. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.d.ts.map +1 -1
  21. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js +1 -1
  22. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js.map +1 -1
  23. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js +37 -25
  24. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js.map +1 -1
  25. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.js.map +1 -1
  26. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.d.ts.map +1 -1
  27. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js +1 -1
  28. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js.map +1 -1
  29. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js +10 -4
  30. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js.map +1 -1
  31. package/dist/blocks/scalar-info-block/components/InfoBlock.vue.script.js +1 -1
  32. package/dist/blocks/scalar-info-block/components/InfoBlock.vue.script.js.map +1 -1
  33. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.js +1 -1
  34. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.script.js +1 -1
  35. package/dist/blocks/scalar-info-block/components/InfoDescription.vue.script.js.map +1 -1
  36. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.script.js +1 -1
  37. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.script.js.map +1 -1
  38. package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue.script.js +1 -1
  39. package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue.script.js.map +1 -1
  40. package/dist/blocks/scalar-info-block/components/InfoVersion.vue.script.js +1 -1
  41. package/dist/blocks/scalar-info-block/components/InfoVersion.vue.script.js.map +1 -1
  42. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js +1 -1
  43. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js +1 -1
  44. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js.map +1 -1
  45. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js +1 -1
  46. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js.map +1 -1
  47. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.d.ts.map +1 -1
  48. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +1 -1
  49. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js +1 -1
  50. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js.map +1 -1
  51. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js +1 -1
  52. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js +1 -1
  53. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js.map +1 -1
  54. package/dist/blocks/scalar-info-block/components/SpecificationVersion.vue.script.js +1 -1
  55. package/dist/blocks/scalar-info-block/components/SpecificationVersion.vue.script.js.map +1 -1
  56. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.d.ts.map +1 -1
  57. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js +1 -1
  58. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js.map +1 -1
  59. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js +16 -9
  60. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js.map +1 -1
  61. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.js.map +1 -1
  62. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.js.map +1 -1
  63. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.js.map +1 -1
  64. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  65. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js +1 -1
  66. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js.map +1 -1
  67. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.d.ts.map +1 -1
  68. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js +1 -1
  69. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js.map +1 -1
  70. package/dist/browser/chunks/AgentScalarChatInterface-2lNB6wO-.js +27 -0
  71. package/dist/browser/chunks/ScalarTextInput.vue-DVmXRWbS.js +27 -0
  72. package/dist/browser/chunks/{basic-shape-diamond.svg-BTEOT1FL.js → basic-shape-diamond.svg-o5eiY2I7.js} +2 -2
  73. package/dist/browser/chunks/{basic-shape-hexagon.svg-BSPzaCgF.js → basic-shape-hexagon.svg-CGuS7mbd.js} +2 -2
  74. package/dist/browser/chunks/{basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js → basic-shape-primary-circle-ellipse-round.svg-DDIpXiBm.js} +2 -2
  75. package/dist/browser/chunks/{basic-shape-primary-square-rectangle.svg-n2YRykHD.js → basic-shape-primary-square-rectangle.svg-DzVEJHMB.js} +2 -2
  76. package/dist/browser/chunks/{basic-shape-shield.svg-Bec9cJDA.js → basic-shape-shield.svg-BZzapRqv.js} +2 -2
  77. package/dist/browser/chunks/browser-CTPPEMEL.js +129 -0
  78. package/dist/browser/chunks/{computer-device-desktop-monitor.svg-m6j893Hb.js → computer-device-desktop-monitor.svg-OSM05r1I.js} +2 -2
  79. package/dist/browser/chunks/{computer-device-desktop.svg-Dk1VVO7k.js → computer-device-desktop.svg-BMFzGZ27.js} +2 -2
  80. package/dist/browser/chunks/{computer-device-laptop.svg-BNGVUCYS.js → computer-device-laptop.svg-CMAjzuB-.js} +2 -2
  81. package/dist/browser/chunks/{computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js → computer-device-mobile-phone-android-samsung-back.svg-D4xBONmL.js} +2 -2
  82. package/dist/browser/chunks/{computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js → computer-device-mobile-phone-android-samsung.svg-gbMJLjJw.js} +2 -2
  83. package/dist/browser/chunks/{computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js → computer-device-mobile-phone-iphone-x-back.svg-Bl1rmdKA.js} +2 -2
  84. package/dist/browser/chunks/{computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js → computer-device-mobile-phone-iphone-x.svg-DVetP0aa.js} +2 -2
  85. package/dist/browser/chunks/{computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js → computer-device-mobile-tablet-touch.svg-Zi88BP4L.js} +2 -2
  86. package/dist/browser/chunks/{computer-device-mobile-tablet.svg-DCr0XlRc.js → computer-device-mobile-tablet.svg-C1ggisWP.js} +2 -2
  87. package/dist/browser/chunks/{computer-device-network-ethernet-cat6.svg-AK9l0iOl.js → computer-device-network-ethernet-cat6.svg-BIUymdC1.js} +2 -2
  88. package/dist/browser/chunks/{computer-device-network-lan-www.svg-gUIdFBlE.js → computer-device-network-lan-www.svg-CoFUlIVO.js} +2 -2
  89. package/dist/browser/chunks/{computer-device-network-wifi-connection.svg-Be-EMm4e.js → computer-device-network-wifi-connection.svg-DeWsacxI.js} +2 -2
  90. package/dist/browser/chunks/{computer-device-network-wifi-router.svg-Dc2VzyqK.js → computer-device-network-wifi-router.svg-BjpZEot4.js} +2 -2
  91. package/dist/browser/chunks/{ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js → ecology-science-erlenmeyer-flask.svg-ftjGGirE.js} +2 -2
  92. package/dist/browser/chunks/{image-flash-lightning.svg-EETR_y1q.js → image-flash-lightning.svg-DYQ0W4Fi.js} +2 -2
  93. package/dist/browser/chunks/{image-picture-flower.svg-DN1AYzJU.js → image-picture-flower.svg-Bfe5SVDf.js} +2 -2
  94. package/dist/browser/chunks/{interface-alert-exclamation-diamond.svg-C5NozMV_.js → interface-alert-exclamation-diamond.svg-D1HePDNM.js} +2 -2
  95. package/dist/browser/chunks/{interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js → interface-alert-exclamation-triangle-warning.svg-CILUsxBC.js} +2 -2
  96. package/dist/browser/chunks/{interface-alert-information-circle.svg-ckkkt9Mv.js → interface-alert-information-circle.svg-9LrbJM5J.js} +2 -2
  97. package/dist/browser/chunks/{interface-award-crown.svg-pjvn9hY-.js → interface-award-crown.svg-DllWgiU1.js} +2 -2
  98. package/dist/browser/chunks/{interface-bookmark.svg-BK9HKQBT.js → interface-bookmark-tag.svg-Dc-JL-Kc.js} +2 -2
  99. package/dist/browser/chunks/{interface-bookmark-tag.svg-r2r-lQq4.js → interface-bookmark.svg-Dc-JL-Kc.js} +2 -2
  100. package/dist/browser/chunks/{interface-calendar-date-one.svg-DNnF0M1I.js → interface-calendar-date-one.svg-DO2jelhF.js} +2 -2
  101. package/dist/browser/chunks/{interface-content-book-open-pages.svg-CQj_w9Vp.js → interface-content-book-open-pages.svg-BJjMjIgA.js} +2 -2
  102. package/dist/browser/chunks/{interface-content-book-page.svg-DppoeJRe.js → interface-content-book-page.svg-C6rKB2fs.js} +2 -2
  103. package/dist/browser/chunks/{interface-content-file.svg-CvcD7OiY.js → interface-content-file.svg-CS0q2FKx.js} +2 -2
  104. package/dist/browser/chunks/{interface-content-folder.svg-BmtS5I9A.js → interface-content-folder.svg-CThTWsJX.js} +2 -2
  105. package/dist/browser/chunks/{interface-copy-clipboard.svg-Be6EI50X.js → interface-copy-clipboard.svg-DdN67cLv.js} +2 -2
  106. package/dist/browser/chunks/{interface-edit-attachment.svg-G5TKzpWX.js → interface-edit-attachment.svg-Ciizphuh.js} +2 -2
  107. package/dist/browser/chunks/{interface-edit-binocular.svg-jzL-DvGB.js → interface-edit-binocular.svg-Dw1nDqmL.js} +2 -2
  108. package/dist/browser/chunks/{interface-edit-magic-wand.svg-BOTlymvp.js → interface-edit-magic-wand.svg-BYS0jm_E.js} +2 -2
  109. package/dist/browser/chunks/{interface-edit-tool-paint-roller.svg-s9dwryx7.js → interface-edit-tool-paint-roller.svg-NioSHZC2.js} +2 -2
  110. package/dist/browser/chunks/{interface-edit-tool-pencil.svg-C7v0dbB3.js → interface-edit-tool-pencil.svg-P87QFlat.js} +2 -2
  111. package/dist/browser/chunks/{interface-favorite-award.svg-CYHUgUG0.js → interface-favorite-award.svg-DBBAChSi.js} +2 -2
  112. package/dist/browser/chunks/{interface-favorite-flag.svg-C10zlKOb.js → interface-favorite-flag.svg-HlhPomHY.js} +2 -2
  113. package/dist/browser/chunks/{interface-favorite-heart.svg-eoduXxlz.js → interface-favorite-heart.svg-Cqu2GYDo.js} +2 -2
  114. package/dist/browser/chunks/{interface-favorite-star.svg-BSmxJetr.js → interface-favorite-star.svg-BD4JY_J2.js} +2 -2
  115. package/dist/browser/chunks/{interface-favorite-stars-sparkles.svg-JTFLj3Ls.js → interface-favorite-stars-sparkles.svg-BXi6aO8q.js} +2 -2
  116. package/dist/browser/chunks/{interface-hierarchy-flowchart.svg-Cg_Wy0kN.js → interface-hierarchy-flowchart.svg-CDEVSsD4.js} +2 -2
  117. package/dist/browser/chunks/{interface-home-house.svg-DytoGRnv.js → interface-home-house.svg-DJetUjwj.js} +2 -2
  118. package/dist/browser/chunks/{interface-hyperlink.svg-CuEfmmQI.js → interface-hyperlink.svg-DJ1LREmz.js} +2 -2
  119. package/dist/browser/chunks/{interface-lighting-brightness.svg-DSK0h_Pa.js → interface-lighting-brightness.svg-TGKAaHYV.js} +2 -2
  120. package/dist/browser/chunks/{interface-lock-closed.svg-Cn6TaLYv.js → interface-lock-closed.svg-3hehWr3i.js} +2 -2
  121. package/dist/browser/chunks/{interface-lock-open-unlock.svg-CVkG5-9W.js → interface-lock-open-unlock.svg-CuXKcv1m.js} +2 -2
  122. package/dist/browser/chunks/{interface-login-key.svg-y-cwwXjN.js → interface-login-key.svg-Chwvvywd.js} +2 -2
  123. package/dist/browser/chunks/{interface-search.svg-S-puVFJB.js → interface-search.svg-JDE3fk0u.js} +2 -2
  124. package/dist/browser/chunks/{interface-setting-cog.svg-CTH4_lLg.js → interface-setting-cog.svg-BBCkeh4K.js} +2 -2
  125. package/dist/browser/chunks/{interface-share-megaphone-bullhorn.svg-Pbp39MyC.js → interface-share-megaphone-bullhorn.svg-CDdxF-4y.js} +2 -2
  126. package/dist/browser/chunks/{interface-share-rocket.svg-BgCsIRZO.js → interface-share-rocket.svg-DSbdn_o7.js} +2 -2
  127. package/dist/browser/chunks/{interface-share-satellite.svg-DAMN9d5G.js → interface-share-satellite.svg-CefBVZvY.js} +2 -2
  128. package/dist/browser/chunks/{interface-share-space-ship.svg-Dt-Mejxk.js → interface-share-space-ship.svg-tFA2dsSU.js} +2 -2
  129. package/dist/browser/chunks/{interface-share.svg-vFYTXSti.js → interface-share.svg-BpOGopyv.js} +2 -2
  130. package/dist/browser/chunks/{interface-signal-square.svg-DNG4LpAe.js → interface-signal-square.svg-BcX_BoaC.js} +2 -2
  131. package/dist/browser/chunks/{interface-time-clock-circle.svg-Bpz-nLxo.js → interface-time-clock-circle.svg-C8B_L_RM.js} +2 -2
  132. package/dist/browser/chunks/{interface-time-hour-glass.svg-D7agfKsH.js → interface-time-hour-glass.svg-qw-oeoVn.js} +2 -2
  133. package/dist/browser/chunks/{interface-users-multiple.svg-CkPJBBnG.js → interface-users-multiple.svg-Cs13Eewq.js} +2 -2
  134. package/dist/browser/chunks/{interface-weather-moon.svg-CaTZFMPO.js → interface-weather-moon.svg-CV-oDTae.js} +2 -2
  135. package/dist/browser/chunks/{mail-chat-bubble-square.svg-DC8RIihp.js → mail-chat-bubble-square.svg-dpauJhin.js} +2 -2
  136. package/dist/browser/chunks/{mail-send-email-paper-airplane.svg-D8OLs9jz.js → mail-send-email-paper-airplane.svg-BBofxojL.js} +2 -2
  137. package/dist/browser/chunks/{mail-send-envelope.svg-CV33h5Sx.js → mail-send-envelope.svg-DyENgYOI.js} +2 -2
  138. package/dist/browser/chunks/modal-70ibkEHi.js +102 -0
  139. package/dist/browser/chunks/{money-cashier-receipt.svg-CJL8C2gs.js → money-cashier-receipt.svg-dNTr5aio.js} +2 -2
  140. package/dist/browser/chunks/{money-currency-dollar-pay.svg-VdBplCTx.js → money-currency-dollar-pay.svg-1ZESPtFY.js} +2 -2
  141. package/dist/browser/chunks/{money-graph-arrow-increase.svg-DcRov3zk.js → money-graph-arrow-increase.svg-kEZ2u2z2.js} +2 -2
  142. package/dist/browser/chunks/{money-graph-bar-chart-increase.svg-Cc7KxjX-.js → money-graph-bar-chart-increase.svg-B-t2UWB3.js} +2 -2
  143. package/dist/browser/chunks/{nature-ecology-leaf.svg-DR3cTZxt.js → nature-ecology-leaf.svg-DZ2GJV8m.js} +2 -2
  144. package/dist/browser/chunks/{phone-telephone.svg-DyY0gUlk.js → phone-telephone.svg-C12QjpN7.js} +2 -2
  145. package/dist/browser/chunks/{programming-bug.svg-BHLT-Qhp.js → programming-bug.svg-wLTsruN9.js} +2 -2
  146. package/dist/browser/chunks/{programming-cloud.svg-B6YW33ba.js → programming-cloud.svg-3XU6dNUg.js} +2 -2
  147. package/dist/browser/chunks/{programming-computer-database-server.svg-B6o5Sdn-.js → programming-computer-database-server.svg-B1JrHSPd.js} +2 -2
  148. package/dist/browser/chunks/{programming-computer-database.svg-Cl7OVtpJ.js → programming-computer-database.svg-BxHSuFl7.js} +2 -2
  149. package/dist/browser/chunks/{programming-module-four-layout.svg-BQrerL1x.js → programming-module-four-layout.svg-CeV35q45.js} +2 -2
  150. package/dist/browser/chunks/{programming-module-three.svg-B2KTQzBM.js → programming-module-three.svg-YIBpLt45.js} +2 -2
  151. package/dist/browser/chunks/{programming-module.svg-CiID7kPm.js → programming-module.svg-CU_pEibI.js} +2 -2
  152. package/dist/browser/chunks/{programming-script-code.svg-D1M5rtkN.js → programming-script-code.svg-CLzinmHT.js} +2 -2
  153. package/dist/browser/chunks/runtime-core.esm-bundler-CqqEw5ds.js +17 -0
  154. package/dist/browser/chunks/{shopping-cart.svg-BEegiIR9.js → shopping-cart.svg-Brzddu3K.js} +2 -2
  155. package/dist/browser/chunks/{shopping-gift-present.svg-BUHwuLix.js → shopping-gift-present.svg-l2K48g7L.js} +2 -2
  156. package/dist/browser/chunks/{shopping-shipping-box-parcel-package.svg-D6fxWdYx.js → shopping-shipping-box-parcel-package.svg-DesGopPo.js} +2 -2
  157. package/dist/browser/chunks/{tag-new-circle.svg-jsg1bGs0.js → tag-new-circle.svg-DE-VaLZU.js} +2 -2
  158. package/dist/browser/chunks/{travel-map-earth-globe.svg-ClbMiU-f.js → travel-map-earth-globe.svg-DLaOMzx6.js} +2 -2
  159. package/dist/browser/chunks/vendor-BcTep96u.js +306 -0
  160. package/dist/browser/standalone.esm.js +22 -20
  161. package/dist/browser/standalone.js +256 -254
  162. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js +1 -1
  163. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js.map +1 -1
  164. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.script.js +1 -1
  165. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.script.js.map +1 -1
  166. package/dist/components/AgentScalar/AgentScalarDrawer.vue.d.ts.map +1 -1
  167. package/dist/components/AgentScalar/AgentScalarDrawer.vue.js +1 -1
  168. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js +1 -1
  169. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js.map +1 -1
  170. package/dist/components/AgentScalar/OpenMCPButton.vue.d.ts.map +1 -1
  171. package/dist/components/AgentScalar/OpenMCPButton.vue.js +1 -1
  172. package/dist/components/AgentScalar/OpenMCPButton.vue.js.map +1 -1
  173. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js +47 -32
  174. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js.map +1 -1
  175. package/dist/components/Anchor/Anchor.vue.d.ts.map +1 -1
  176. package/dist/components/Anchor/Anchor.vue.script.js +1 -1
  177. package/dist/components/Anchor/Anchor.vue.script.js.map +1 -1
  178. package/dist/components/Anchor/WithBreadcrumb.vue.script.js +2 -2
  179. package/dist/components/Anchor/WithBreadcrumb.vue.script.js.map +1 -1
  180. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  181. package/dist/components/ApiReference.vue.js +1 -1
  182. package/dist/components/ApiReference.vue.js.map +1 -1
  183. package/dist/components/ApiReference.vue.script.js +55 -22
  184. package/dist/components/ApiReference.vue.script.js.map +1 -1
  185. package/dist/components/Badge/Badge.vue.js +1 -1
  186. package/dist/components/Badge/Badge.vue.script.js +1 -1
  187. package/dist/components/Badge/Badge.vue.script.js.map +1 -1
  188. package/dist/components/ClassicHeader.vue.js +1 -1
  189. package/dist/components/ClassicHeader.vue.js.map +1 -1
  190. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js +1 -1
  191. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js +1 -1
  192. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js.map +1 -1
  193. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js +1 -1
  194. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js.map +1 -1
  195. package/dist/components/Content/AsyncApi/Channel.vue.d.ts.map +1 -1
  196. package/dist/components/Content/AsyncApi/Channel.vue.js +1 -1
  197. package/dist/components/Content/AsyncApi/Channel.vue.script.js +1 -1
  198. package/dist/components/Content/AsyncApi/Channel.vue.script.js.map +1 -1
  199. package/dist/components/Content/AsyncApi/ChannelsList.vue.js +1 -1
  200. package/dist/components/Content/AsyncApi/ChannelsList.vue.script.js +1 -1
  201. package/dist/components/Content/AsyncApi/ChannelsList.vue.script.js.map +1 -1
  202. package/dist/components/Content/AsyncApi/Message.vue.d.ts.map +1 -1
  203. package/dist/components/Content/AsyncApi/Message.vue.js +1 -1
  204. package/dist/components/Content/AsyncApi/Message.vue.script.js +2 -2
  205. package/dist/components/Content/AsyncApi/Message.vue.script.js.map +1 -1
  206. package/dist/components/Content/AsyncApi/Operation.vue.d.ts.map +1 -1
  207. package/dist/components/Content/AsyncApi/Operation.vue.js +1 -1
  208. package/dist/components/Content/AsyncApi/Operation.vue.script.js +1 -1
  209. package/dist/components/Content/AsyncApi/Operation.vue.script.js.map +1 -1
  210. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.js.map +1 -1
  211. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.js.map +1 -1
  212. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.js.map +1 -1
  213. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.js.map +1 -1
  214. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js.map +1 -1
  215. package/dist/components/Content/AsyncApi/helpers/pick-heading.js.map +1 -1
  216. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.js.map +1 -1
  217. package/dist/components/Content/AsyncApi/index.d.ts +3 -0
  218. package/dist/components/Content/AsyncApi/index.d.ts.map +1 -1
  219. package/dist/components/Content/Auth/Auth.vue.script.js +1 -1
  220. package/dist/components/Content/Auth/Auth.vue.script.js.map +1 -1
  221. package/dist/components/Content/Content.vue.script.js +1 -1
  222. package/dist/components/Content/Content.vue.script.js.map +1 -1
  223. package/dist/components/Content/Models/Model.vue.script.js +1 -1
  224. package/dist/components/Content/Models/Model.vue.script.js.map +1 -1
  225. package/dist/components/Content/Models/ModelTag.vue.d.ts.map +1 -1
  226. package/dist/components/Content/Models/ModelTag.vue.script.js +2 -2
  227. package/dist/components/Content/Models/ModelTag.vue.script.js.map +1 -1
  228. package/dist/components/Content/Models/components/ClassicLayout.vue.d.ts.map +1 -1
  229. package/dist/components/Content/Models/components/ClassicLayout.vue.js +1 -1
  230. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js +1 -1
  231. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js.map +1 -1
  232. package/dist/components/Content/Models/components/ModernLayout.vue.d.ts.map +1 -1
  233. package/dist/components/Content/Models/components/ModernLayout.vue.script.js +1 -1
  234. package/dist/components/Content/Models/components/ModernLayout.vue.script.js.map +1 -1
  235. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +1 -1
  236. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  237. package/dist/components/Content/Schema/LinkButton.vue.js +1 -1
  238. package/dist/components/Content/Schema/LinkButton.vue.js.map +1 -1
  239. package/dist/components/Content/Schema/RenderString.vue.script.js +1 -1
  240. package/dist/components/Content/Schema/RenderString.vue.script.js.map +1 -1
  241. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  242. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  243. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  244. package/dist/components/Content/Schema/Schema.vue.script.js +5 -13
  245. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  246. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  247. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +1 -1
  248. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  249. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.js +1 -1
  250. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.script.js +1 -1
  251. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.script.js.map +1 -1
  252. package/dist/components/Content/Schema/SchemaEnums.vue.d.ts.map +1 -1
  253. package/dist/components/Content/Schema/SchemaEnums.vue.js +1 -1
  254. package/dist/components/Content/Schema/SchemaEnums.vue.script.js +1 -1
  255. package/dist/components/Content/Schema/SchemaEnums.vue.script.js.map +1 -1
  256. package/dist/components/Content/Schema/SchemaHeading.vue.js +1 -1
  257. package/dist/components/Content/Schema/SchemaHeading.vue.script.js +1 -1
  258. package/dist/components/Content/Schema/SchemaHeading.vue.script.js.map +1 -1
  259. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js +1 -1
  260. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js.map +1 -1
  261. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js +1 -1
  262. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js.map +1 -1
  263. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  264. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  265. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  266. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +9 -3
  267. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  268. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js +1 -1
  269. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js +1 -1
  270. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js.map +1 -1
  271. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.js +1 -1
  272. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.script.js +1 -1
  273. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.script.js.map +1 -1
  274. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js +1 -1
  275. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js +1 -1
  276. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js.map +1 -1
  277. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts +6 -0
  278. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  279. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +1 -1
  280. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js.map +1 -1
  281. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js +6 -2
  282. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js.map +1 -1
  283. package/dist/components/Content/Schema/helpers/dynamic-scope.js.map +1 -1
  284. package/dist/components/Content/Schema/helpers/format-example.js.map +1 -1
  285. package/dist/components/Content/Schema/helpers/format-value.js.map +1 -1
  286. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js.map +1 -1
  287. package/dist/components/Content/Schema/helpers/get-enum-values.js.map +1 -1
  288. package/dist/components/Content/Schema/helpers/get-property-description.js.map +1 -1
  289. package/dist/components/Content/Schema/helpers/get-ref-name.d.ts +16 -0
  290. package/dist/components/Content/Schema/helpers/get-ref-name.d.ts.map +1 -1
  291. package/dist/components/Content/Schema/helpers/get-ref-name.js +28 -1
  292. package/dist/components/Content/Schema/helpers/get-ref-name.js.map +1 -1
  293. package/dist/components/Content/Schema/helpers/get-schema-type.js.map +1 -1
  294. package/dist/components/Content/Schema/helpers/has-complex-array-items.js.map +1 -1
  295. package/dist/components/Content/Schema/helpers/is-empty-schema-object.js.map +1 -1
  296. package/dist/components/Content/Schema/helpers/is-model-linkable.d.ts +15 -0
  297. package/dist/components/Content/Schema/helpers/is-model-linkable.d.ts.map +1 -0
  298. package/dist/components/Content/Schema/helpers/is-model-linkable.js +22 -0
  299. package/dist/components/Content/Schema/helpers/is-model-linkable.js.map +1 -0
  300. package/dist/components/Content/Schema/helpers/is-type-object.js.map +1 -1
  301. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +3 -3
  302. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js.map +1 -1
  303. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js.map +1 -1
  304. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js.map +1 -1
  305. package/dist/components/Content/Schema/helpers/schema-composition.js.map +1 -1
  306. package/dist/components/Content/Schema/helpers/schema-cycle.js.map +1 -1
  307. package/dist/components/Content/Schema/helpers/schema-name.d.ts +6 -1
  308. package/dist/components/Content/Schema/helpers/schema-name.d.ts.map +1 -1
  309. package/dist/components/Content/Schema/helpers/schema-name.js +5 -4
  310. package/dist/components/Content/Schema/helpers/schema-name.js.map +1 -1
  311. package/dist/components/Content/Schema/helpers/should-display-description.js.map +1 -1
  312. package/dist/components/Content/Schema/helpers/should-display-heading.js.map +1 -1
  313. package/dist/components/Content/Schema/helpers/should-render-array-item-composition.js.map +1 -1
  314. package/dist/components/Content/Schema/helpers/sort-property-names.js.map +1 -1
  315. package/dist/components/Content/Schema/types.d.ts +7 -0
  316. package/dist/components/Content/Schema/types.d.ts.map +1 -1
  317. package/dist/components/Content/Tags/Tag.vue.script.js +1 -1
  318. package/dist/components/Content/Tags/Tag.vue.script.js.map +1 -1
  319. package/dist/components/Content/Tags/components/ClassicLayout.vue.d.ts.map +1 -1
  320. package/dist/components/Content/Tags/components/ClassicLayout.vue.js +1 -1
  321. package/dist/components/Content/Tags/components/ClassicLayout.vue.script.js +1 -1
  322. package/dist/components/Content/Tags/components/ClassicLayout.vue.script.js.map +1 -1
  323. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  324. package/dist/components/Content/Tags/components/ModernLayout.vue.js +1 -1
  325. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js +1 -1
  326. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js.map +1 -1
  327. package/dist/components/Content/Tags/components/TagSection.vue.d.ts.map +1 -1
  328. package/dist/components/Content/Tags/components/TagSection.vue.script.js +1 -1
  329. package/dist/components/Content/Tags/components/TagSection.vue.script.js.map +1 -1
  330. package/dist/components/GettingStarted.vue.d.ts.map +1 -1
  331. package/dist/components/GettingStarted.vue.js +1 -1
  332. package/dist/components/GettingStarted.vue.js.map +1 -1
  333. package/dist/components/GettingStarted.vue.script.js +4 -3
  334. package/dist/components/GettingStarted.vue.script.js.map +1 -1
  335. package/dist/components/HttpMethod/HttpMethod.vue.script.js +1 -1
  336. package/dist/components/HttpMethod/HttpMethod.vue.script.js.map +1 -1
  337. package/dist/components/IntersectionObserver.vue.script.js +10 -7
  338. package/dist/components/IntersectionObserver.vue.script.js.map +1 -1
  339. package/dist/components/Lazy/Lazy.vue.script.js +2 -2
  340. package/dist/components/Lazy/Lazy.vue.script.js.map +1 -1
  341. package/dist/components/LinkList/LinkList.vue.js +1 -1
  342. package/dist/components/LinkList/LinkList.vue.script.js +1 -1
  343. package/dist/components/LinkList/LinkList.vue.script.js.map +1 -1
  344. package/dist/components/MobileHeader.vue.d.ts.map +1 -1
  345. package/dist/components/MobileHeader.vue.script.js +4 -4
  346. package/dist/components/MobileHeader.vue.script.js.map +1 -1
  347. package/dist/components/OperationPath.vue.d.ts.map +1 -1
  348. package/dist/components/OperationPath.vue.js +1 -1
  349. package/dist/components/OperationPath.vue.script.js +1 -1
  350. package/dist/components/OperationPath.vue.script.js.map +1 -1
  351. package/dist/components/OperationsList/OperationsList.vue.js +1 -1
  352. package/dist/components/OperationsList/OperationsList.vue.script.js +1 -1
  353. package/dist/components/OperationsList/OperationsList.vue.script.js.map +1 -1
  354. package/dist/components/OperationsList/OperationsListItem.vue.js +1 -1
  355. package/dist/components/OperationsList/OperationsListItem.vue.script.js +1 -1
  356. package/dist/components/OperationsList/OperationsListItem.vue.script.js.map +1 -1
  357. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js +1 -1
  358. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js.map +1 -1
  359. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js +1 -1
  360. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js.map +1 -1
  361. package/dist/components/ScreenReader.vue.js +1 -1
  362. package/dist/components/ScreenReader.vue.script.js +2 -2
  363. package/dist/components/ScreenReader.vue.script.js.map +1 -1
  364. package/dist/components/Section/CompactSection.vue.d.ts.map +1 -1
  365. package/dist/components/Section/CompactSection.vue.js +1 -1
  366. package/dist/components/Section/CompactSection.vue.script.js +1 -1
  367. package/dist/components/Section/CompactSection.vue.script.js.map +1 -1
  368. package/dist/components/Section/Section.vue.js +1 -1
  369. package/dist/components/Section/Section.vue.script.js +1 -1
  370. package/dist/components/Section/Section.vue.script.js.map +1 -1
  371. package/dist/components/Section/SectionAccordion.vue.d.ts.map +1 -1
  372. package/dist/components/Section/SectionAccordion.vue.js +1 -1
  373. package/dist/components/Section/SectionAccordion.vue.script.js +1 -1
  374. package/dist/components/Section/SectionAccordion.vue.script.js.map +1 -1
  375. package/dist/components/Section/SectionColumn.vue.js +1 -1
  376. package/dist/components/Section/SectionColumn.vue.js.map +1 -1
  377. package/dist/components/Section/SectionColumns.vue.js +1 -1
  378. package/dist/components/Section/SectionColumns.vue.js.map +1 -1
  379. package/dist/components/Section/SectionContainer.vue.js +1 -1
  380. package/dist/components/Section/SectionContainer.vue.script.js +2 -2
  381. package/dist/components/Section/SectionContainer.vue.script.js.map +1 -1
  382. package/dist/components/Section/SectionContainerAccordion.vue.d.ts.map +1 -1
  383. package/dist/components/Section/SectionContainerAccordion.vue.js +1 -1
  384. package/dist/components/Section/SectionContainerAccordion.vue.script.js +1 -1
  385. package/dist/components/Section/SectionContainerAccordion.vue.script.js.map +1 -1
  386. package/dist/components/Section/SectionContent.vue.js +1 -1
  387. package/dist/components/Section/SectionContent.vue.js.map +1 -1
  388. package/dist/components/Section/SectionHeader.vue.js +1 -1
  389. package/dist/components/Section/SectionHeader.vue.script.js +2 -2
  390. package/dist/components/Section/SectionHeader.vue.script.js.map +1 -1
  391. package/dist/components/Section/SectionHeaderTag.vue.js +1 -1
  392. package/dist/components/Section/SectionHeaderTag.vue.script.js +1 -1
  393. package/dist/components/Section/SectionHeaderTag.vue.script.js.map +1 -1
  394. package/dist/components/SectionFlare/SectionFlare.vue.js +1 -1
  395. package/dist/components/SectionFlare/SectionFlare.vue.js.map +1 -1
  396. package/dist/components/ShowMoreButton.vue.js +1 -1
  397. package/dist/components/ShowMoreButton.vue.script.js +1 -1
  398. package/dist/components/ShowMoreButton.vue.script.js.map +1 -1
  399. package/dist/components/index.d.ts +1 -0
  400. package/dist/components/index.d.ts.map +1 -1
  401. package/dist/components/index.js +5 -1
  402. package/dist/features/Operation/Operation.vue.script.js +1 -1
  403. package/dist/features/Operation/Operation.vue.script.js.map +1 -1
  404. package/dist/features/Operation/components/ContentTypeSelect.vue.d.ts.map +1 -1
  405. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js +2 -2
  406. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js.map +1 -1
  407. package/dist/features/Operation/components/Header.vue.d.ts +2 -0
  408. package/dist/features/Operation/components/Header.vue.d.ts.map +1 -1
  409. package/dist/features/Operation/components/Header.vue.js.map +1 -1
  410. package/dist/features/Operation/components/Header.vue.script.js +4 -2
  411. package/dist/features/Operation/components/Header.vue.script.js.map +1 -1
  412. package/dist/features/Operation/components/Headers.vue.d.ts +2 -0
  413. package/dist/features/Operation/components/Headers.vue.d.ts.map +1 -1
  414. package/dist/features/Operation/components/Headers.vue.js +1 -1
  415. package/dist/features/Operation/components/Headers.vue.js.map +1 -1
  416. package/dist/features/Operation/components/Headers.vue.script.js +5 -2
  417. package/dist/features/Operation/components/Headers.vue.script.js.map +1 -1
  418. package/dist/features/Operation/components/OperationParameters.vue.d.ts.map +1 -1
  419. package/dist/features/Operation/components/OperationParameters.vue.js.map +1 -1
  420. package/dist/features/Operation/components/OperationParameters.vue.script.js +4 -4
  421. package/dist/features/Operation/components/OperationParameters.vue.script.js.map +1 -1
  422. package/dist/features/Operation/components/OperationResponses.vue.script.js +1 -1
  423. package/dist/features/Operation/components/OperationResponses.vue.script.js.map +1 -1
  424. package/dist/features/Operation/components/OperationScopes.vue.script.js +1 -1
  425. package/dist/features/Operation/components/OperationScopes.vue.script.js.map +1 -1
  426. package/dist/features/Operation/components/ParameterList.vue.script.js +1 -1
  427. package/dist/features/Operation/components/ParameterList.vue.script.js.map +1 -1
  428. package/dist/features/Operation/components/ParameterListItem.vue.d.ts.map +1 -1
  429. package/dist/features/Operation/components/ParameterListItem.vue.js +1 -1
  430. package/dist/features/Operation/components/ParameterListItem.vue.js.map +1 -1
  431. package/dist/features/Operation/components/ParameterListItem.vue.script.js +4 -1
  432. package/dist/features/Operation/components/ParameterListItem.vue.script.js.map +1 -1
  433. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  434. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  435. package/dist/features/Operation/components/RequestBody.vue.js.map +1 -1
  436. package/dist/features/Operation/components/RequestBody.vue.script.js +12 -3
  437. package/dist/features/Operation/components/RequestBody.vue.script.js.map +1 -1
  438. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js +1 -1
  439. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js.map +1 -1
  440. package/dist/features/Operation/components/SecurityRequirementBadgeScheme.vue.script.js +1 -1
  441. package/dist/features/Operation/components/SecurityRequirementBadgeScheme.vue.script.js.map +1 -1
  442. package/dist/features/Operation/components/callbacks/Callback.vue.js +1 -1
  443. package/dist/features/Operation/components/callbacks/Callback.vue.script.js +1 -1
  444. package/dist/features/Operation/components/callbacks/Callback.vue.script.js.map +1 -1
  445. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js +1 -1
  446. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js.map +1 -1
  447. package/dist/features/Operation/components/helpers/get-parameter-examples.js.map +1 -1
  448. package/dist/features/Operation/helpers/filter-selected-security.js.map +1 -1
  449. package/dist/features/Operation/helpers/flatten-deep-object-query-parameter.js.map +1 -1
  450. package/dist/features/Operation/helpers/get-required-security.js.map +1 -1
  451. package/dist/features/Operation/helpers/operation-stability.js.map +1 -1
  452. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts.map +1 -1
  453. package/dist/features/Operation/layouts/ClassicLayout.vue.js +1 -1
  454. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js +1 -1
  455. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js.map +1 -1
  456. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  457. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  458. package/dist/features/Operation/layouts/ModernLayout.vue.script.js +1 -1
  459. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  460. package/dist/features/Operation/request-body-composition-index.js.map +1 -1
  461. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -1
  462. package/dist/features/Search/components/SearchButton.vue.script.js +1 -1
  463. package/dist/features/Search/components/SearchButton.vue.script.js.map +1 -1
  464. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -1
  465. package/dist/features/Search/components/SearchModal.vue.js +1 -1
  466. package/dist/features/Search/components/SearchModal.vue.script.js +1 -1
  467. package/dist/features/Search/components/SearchModal.vue.script.js.map +1 -1
  468. package/dist/features/Search/components/SearchResult.vue.d.ts.map +1 -1
  469. package/dist/features/Search/components/SearchResult.vue.js.map +1 -1
  470. package/dist/features/Search/components/SearchResult.vue.script.js +3 -3
  471. package/dist/features/Search/components/SearchResult.vue.script.js.map +1 -1
  472. package/dist/features/Search/helpers/create-fuse-instance.js.map +1 -1
  473. package/dist/features/Search/helpers/create-search-index.js.map +1 -1
  474. package/dist/features/Search/hooks/useSearchIndex.js.map +1 -1
  475. package/dist/features/ask-agent-button/AskAgentButton.vue.js +1 -1
  476. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js +1 -1
  477. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js.map +1 -1
  478. package/dist/features/developer-tools/DeveloperTools.vue.script.js +2 -2
  479. package/dist/features/developer-tools/DeveloperTools.vue.script.js.map +1 -1
  480. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js +1 -1
  481. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js.map +1 -1
  482. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js +1 -1
  483. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js.map +1 -1
  484. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.d.ts.map +1 -1
  485. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js.map +1 -1
  486. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js +3 -3
  487. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js.map +1 -1
  488. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js +1 -1
  489. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js.map +1 -1
  490. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js +1 -1
  491. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js.map +1 -1
  492. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.d.ts.map +1 -1
  493. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js +4 -3
  494. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js.map +1 -1
  495. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.d.ts.map +1 -1
  496. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js.map +1 -1
  497. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js +2 -1
  498. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js.map +1 -1
  499. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.d.ts.map +1 -1
  500. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js +4 -3
  501. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js.map +1 -1
  502. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.d.ts.map +1 -1
  503. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js +1 -1
  504. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js.map +1 -1
  505. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js +1 -1
  506. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js.map +1 -1
  507. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js +2 -2
  508. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js.map +1 -1
  509. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js +1 -1
  510. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js.map +1 -1
  511. package/dist/features/example-responses/ExampleResponse.vue.js +1 -1
  512. package/dist/features/example-responses/ExampleResponse.vue.script.js +1 -1
  513. package/dist/features/example-responses/ExampleResponse.vue.script.js.map +1 -1
  514. package/dist/features/example-responses/ExampleResponseTab.vue.js +1 -1
  515. package/dist/features/example-responses/ExampleResponseTab.vue.script.js +1 -1
  516. package/dist/features/example-responses/ExampleResponseTab.vue.script.js.map +1 -1
  517. package/dist/features/example-responses/ExampleResponseTabList.vue.d.ts.map +1 -1
  518. package/dist/features/example-responses/ExampleResponseTabList.vue.js +1 -1
  519. package/dist/features/example-responses/ExampleResponseTabList.vue.script.js +1 -1
  520. package/dist/features/example-responses/ExampleResponseTabList.vue.script.js.map +1 -1
  521. package/dist/features/example-responses/ExampleResponses.vue.d.ts.map +1 -1
  522. package/dist/features/example-responses/ExampleResponses.vue.js +1 -1
  523. package/dist/features/example-responses/ExampleResponses.vue.script.js +1 -1
  524. package/dist/features/example-responses/ExampleResponses.vue.script.js.map +1 -1
  525. package/dist/features/example-responses/ExampleSchema.vue.script.js +1 -1
  526. package/dist/features/example-responses/ExampleSchema.vue.script.js.map +1 -1
  527. package/dist/features/example-responses/helpers/has-response-content.js.map +1 -1
  528. package/dist/features/example-responses/helpers/normalize-mime-type-object.js.map +1 -1
  529. package/dist/features/example-responses/helpers/normalize-mime-type.js.map +1 -1
  530. package/dist/features/external-docs/ExternalDocs.vue.d.ts.map +1 -1
  531. package/dist/features/external-docs/ExternalDocs.vue.js.map +1 -1
  532. package/dist/features/external-docs/ExternalDocs.vue.script.js +25 -13
  533. package/dist/features/external-docs/ExternalDocs.vue.script.js.map +1 -1
  534. package/dist/features/info-object/Contact.vue.d.ts.map +1 -1
  535. package/dist/features/info-object/Contact.vue.js.map +1 -1
  536. package/dist/features/info-object/Contact.vue.script.js +10 -4
  537. package/dist/features/info-object/Contact.vue.script.js.map +1 -1
  538. package/dist/features/info-object/InfoLink.vue.d.ts.map +1 -1
  539. package/dist/features/info-object/InfoLink.vue.js.map +1 -1
  540. package/dist/features/info-object/InfoLink.vue.script.js +17 -5
  541. package/dist/features/info-object/InfoLink.vue.script.js.map +1 -1
  542. package/dist/features/info-object/License.vue.d.ts.map +1 -1
  543. package/dist/features/info-object/License.vue.js.map +1 -1
  544. package/dist/features/info-object/License.vue.script.js +11 -5
  545. package/dist/features/info-object/License.vue.script.js.map +1 -1
  546. package/dist/features/info-object/TermsOfService.vue.d.ts.map +1 -1
  547. package/dist/features/info-object/TermsOfService.vue.js.map +1 -1
  548. package/dist/features/info-object/TermsOfService.vue.script.js +10 -4
  549. package/dist/features/info-object/TermsOfService.vue.script.js.map +1 -1
  550. package/dist/features/localization/locales/ar.js.map +1 -1
  551. package/dist/features/localization/locales/de.js.map +1 -1
  552. package/dist/features/localization/locales/en.js.map +1 -1
  553. package/dist/features/localization/locales/es.js.map +1 -1
  554. package/dist/features/localization/locales/fr.js.map +1 -1
  555. package/dist/features/localization/locales/pt.d.ts +229 -0
  556. package/dist/features/localization/locales/pt.d.ts.map +1 -0
  557. package/dist/features/localization/locales/pt.js +227 -0
  558. package/dist/features/localization/locales/pt.js.map +1 -0
  559. package/dist/features/localization/locales/ru.js.map +1 -1
  560. package/dist/features/localization/locales/zh-cn.js.map +1 -1
  561. package/dist/features/localization/translations.d.ts +228 -0
  562. package/dist/features/localization/translations.d.ts.map +1 -1
  563. package/dist/features/localization/translations.js +4 -2
  564. package/dist/features/localization/translations.js.map +1 -1
  565. package/dist/features/localization/use-localization.js.map +1 -1
  566. package/dist/features/multiple-documents/DocumentSelector.vue.d.ts.map +1 -1
  567. package/dist/features/multiple-documents/DocumentSelector.vue.script.js +1 -1
  568. package/dist/features/multiple-documents/DocumentSelector.vue.script.js.map +1 -1
  569. package/dist/features/specification-extension/SpecificationExtension.vue.script.js +1 -1
  570. package/dist/features/specification-extension/SpecificationExtension.vue.script.js.map +1 -1
  571. package/dist/features/specification-extension/helpers.js.map +1 -1
  572. package/dist/features/test-request-button/TestRequestButton.vue.js +1 -1
  573. package/dist/features/test-request-button/TestRequestButton.vue.script.js +1 -1
  574. package/dist/features/test-request-button/TestRequestButton.vue.script.js.map +1 -1
  575. package/dist/features/x-badges/XBadges.vue.d.ts.map +1 -1
  576. package/dist/features/x-badges/XBadges.vue.script.js +1 -1
  577. package/dist/features/x-badges/XBadges.vue.script.js.map +1 -1
  578. package/dist/helpers/build-models-index.d.ts +15 -0
  579. package/dist/helpers/build-models-index.d.ts.map +1 -0
  580. package/dist/helpers/build-models-index.js +28 -0
  581. package/dist/helpers/build-models-index.js.map +1 -0
  582. package/dist/helpers/color-mode.js.map +1 -1
  583. package/dist/helpers/download.js.map +1 -1
  584. package/dist/helpers/get-async-api-message-payload-schema.js.map +1 -1
  585. package/dist/helpers/get-async-api-model-schema.js.map +1 -1
  586. package/dist/helpers/id-routing.d.ts +18 -4
  587. package/dist/helpers/id-routing.d.ts.map +1 -1
  588. package/dist/helpers/id-routing.js +67 -20
  589. package/dist/helpers/id-routing.js.map +1 -1
  590. package/dist/helpers/is-introduction-entry.js.map +1 -1
  591. package/dist/helpers/lazy-bus.js.map +1 -1
  592. package/dist/helpers/load-from-perssistance.js.map +1 -1
  593. package/dist/helpers/map-config-plugins.js.map +1 -1
  594. package/dist/helpers/map-config-to-workspace-store.js.map +1 -1
  595. package/dist/helpers/normalize-configurations.js +1 -1
  596. package/dist/helpers/normalize-configurations.js.map +1 -1
  597. package/dist/helpers/openapi.d.ts +6 -1
  598. package/dist/helpers/openapi.d.ts.map +1 -1
  599. package/dist/helpers/openapi.js +37 -6
  600. package/dist/helpers/openapi.js.map +1 -1
  601. package/dist/helpers/safe-deep-clone.js.map +1 -1
  602. package/dist/helpers/storage.d.ts +16 -0
  603. package/dist/helpers/storage.d.ts.map +1 -1
  604. package/dist/helpers/storage.js +14 -0
  605. package/dist/helpers/storage.js.map +1 -1
  606. package/dist/helpers/upload-temp-document.js.map +1 -1
  607. package/dist/hooks/use-agent.js.map +1 -1
  608. package/dist/hooks/use-intersection.js.map +1 -1
  609. package/dist/plugins/hooks/usePluginManager.js.map +1 -1
  610. package/dist/plugins/persistence-plugin.js +6 -1
  611. package/dist/plugins/persistence-plugin.js.map +1 -1
  612. package/dist/plugins/plugin-manager.js +35 -0
  613. package/dist/plugins/plugin-manager.js.map +1 -1
  614. package/dist/plugins/posthog/index.js.map +1 -1
  615. package/dist/standalone/lib/html-api.js.map +1 -1
  616. package/dist/standalone/lib/load-plugins-from-urls.js.map +1 -1
  617. package/dist/style.css +1419 -1316
  618. package/dist/vue-styles.css +918 -831
  619. package/package.json +27 -27
  620. package/dist/browser/chunks/AgentScalarChatInterface-C8lX3RCo.js +0 -27
  621. package/dist/browser/chunks/ScalarTextInput.vue-Xf60Nwf-.js +0 -27
  622. package/dist/browser/chunks/browser-67K6wmG9.js +0 -129
  623. package/dist/browser/chunks/modal-B8Opb61-.js +0 -15
  624. package/dist/browser/chunks/modal-Dcl-Y2Zk.js +0 -99
  625. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +0 -17
  626. package/dist/browser/chunks/vendor-CBP43oHJ.js +0 -306
  627. package/dist/features/Operation/helpers/should-ignore-entity.d.ts +0 -8
  628. package/dist/features/Operation/helpers/should-ignore-entity.d.ts.map +0 -1
  629. package/dist/features/Operation/helpers/should-ignore-entity.js +0 -9
  630. package/dist/features/Operation/helpers/should-ignore-entity.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityRequirementBadge.vue.script.js","names":[],"sources":["../../../../src/features/Operation/components/SecurityRequirementBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n} from '@scalar/components/floating'\nimport { ScalarIconLockSimple, ScalarIconLockSimpleOpen } from '@scalar/icons'\nimport { onClickOutside, onKeyStroke } from '@vueuse/core'\nimport { computed, onBeforeUnmount, ref } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\nimport SecurityRequirementBadgeScheme from '@/features/Operation/components/SecurityRequirementBadgeScheme.vue'\nimport type { RequiredSecurity } from '@/features/Operation/helpers/get-required-security'\n\nconst { requiredSecurity, hideLabel = false } = defineProps<{\n requiredSecurity: RequiredSecurity\n hideLabel?: boolean\n}>()\nconst { translate } = useLocalization()\n\n/**\n * The badge shows a small panel with the security details. It opens on hover\n * and on click, so we own the open state directly instead of leaning on a\n * click-only popover. Owning the state keeps the two interactions from fighting\n * each other: hover and the click of the same gesture (a tap fires both) can no\n * longer toggle each other off.\n */\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst panelRef = ref<HTMLElement | null>(null)\nconst isOpen = ref(false)\n\n/**\n * Whether the panel is pinned open by a click. A pinned panel ignores the\n * pointer leaving so it behaves like the old click-to-open popover, and it only\n * closes on another click, a click outside, or Escape.\n */\nconst isPinned = ref(false)\nlet closeTimeout: ReturnType<typeof setTimeout> | undefined\n\n/**\n * Close after a short delay so the pointer can travel across the gap between the\n * badge and the panel without the panel disappearing. A pinned panel stays open.\n */\nconst scheduleClose = () => {\n if (isPinned.value) {\n return\n }\n clearTimeout(closeTimeout)\n closeTimeout = setTimeout(() => {\n isOpen.value = false\n }, 120)\n}\n\nconst cancelClose = () => clearTimeout(closeTimeout)\n\nconst openOnHover = () => {\n cancelClose()\n isOpen.value = true\n}\n\nconst close = () => {\n cancelClose()\n isOpen.value = false\n isPinned.value = false\n}\n\n/**\n * Toggle on click. A hover already opened the panel (and a tap's `mouseenter`\n * fires just before its `click`), so the first click pins it open rather than\n * closing it; a click on an already pinned panel closes it.\n */\nconst toggleOnClick = () => {\n if (isPinned.value) {\n close()\n return\n }\n cancelClose()\n isOpen.value = true\n isPinned.value = true\n}\n\nonClickOutside(triggerRef, close, { ignore: [panelRef] })\nonKeyStroke('Escape', () => {\n if (isOpen.value) {\n close()\n }\n})\n\nonBeforeUnmount(() => clearTimeout(closeTimeout))\n\nconst label = computed(() =>\n requiredSecurity.state === 'required'\n ? translate('authentication.required')\n : translate('authentication.optional'),\n)\n\nconst verb = computed(() =>\n requiredSecurity.state === 'required'\n ? translate('authentication.requires')\n : translate('authentication.accepts'),\n)\n\n/** Single group, single scheme — shown inline in the header. */\nconst isSingleScheme = computed(\n () =>\n requiredSecurity.requirements.length === 1 &&\n requiredSecurity.requirements[0]?.schemes.length === 1,\n)\n\n/** Single group with multiple schemes — all must be satisfied (AND). */\nconst isAndGroup = computed(\n () =>\n requiredSecurity.requirements.length === 1 &&\n (requiredSecurity.requirements[0]?.schemes.length ?? 0) > 1,\n)\n\n/** Multiple groups — any one group satisfies authentication (OR). */\nconst isOrAlternatives = computed(\n () => requiredSecurity.requirements.length > 1,\n)\n</script>\n\n<template>\n <ScalarFloating\n v-if=\"requiredSecurity.state !== 'none'\"\n placement=\"bottom-end\">\n <button\n ref=\"triggerRef\"\n class=\"security-requirement-badge inline-flex w-fit shrink-0 items-center justify-center gap-1 text-sm\"\n :class=\"\n requiredSecurity.state === 'optional'\n ? 'text-c-2'\n : 'text-c-1 font-medium'\n \"\n type=\"button\"\n :aria-expanded=\"isOpen\"\n aria-haspopup=\"dialog\"\n @click.stop=\"toggleOnClick\"\n @mouseenter=\"openOnHover\"\n @mouseleave=\"scheduleClose\">\n <ScalarIconLockSimple\n v-if=\"requiredSecurity.state === 'required'\"\n class=\"size-3\"\n weight=\"bold\" />\n <ScalarIconLockSimpleOpen\n v-else\n class=\"size-3\"\n weight=\"bold\" />\n <span v-if=\"!hideLabel\">{{ label }}</span>\n </button>\n <template #floating>\n <div\n v-if=\"isOpen\"\n ref=\"panelRef\"\n class=\"relative flex flex-col p-0.75\"\n @click.stop\n @mouseenter=\"cancelClose\"\n @mouseleave=\"scheduleClose\">\n <div class=\"flex max-w-xs min-w-48 flex-col gap-1.5 p-2 text-sm\">\n <div class=\"font-medium\">\n {{ verb }}\n <template v-if=\"isSingleScheme\">\n <SecurityRequirementBadgeScheme\n is=\"span\"\n class=\"contents\"\n :scheme=\"requiredSecurity.requirements[0]!.schemes[0]!\" />\n </template>\n <template v-else-if=\"isOrAlternatives\">\n {{ translate('authentication.oneOf') }}\n </template>\n <template v-else-if=\"isAndGroup\">\n {{ translate('authentication.allOf') }}\n </template>\n <template v-else>\n {{ translate('authentication.authentication') }}\n </template>\n </div>\n\n <!-- Multiple OR alternatives -->\n <ul\n v-if=\"isOrAlternatives\"\n class=\"contents\">\n <li\n v-for=\"(group, gi) in requiredSecurity.requirements\"\n :key=\"gi\"\n class=\"markdown\">\n <!-- Single scheme in this OR branch -->\n <SecurityRequirementBadgeScheme\n is=\"span\"\n v-if=\"group.schemes.length === 1\"\n class=\"contents\"\n :scheme=\"group.schemes[0]!\" />\n <!-- Multiple AND schemes in this OR branch -->\n <template v-else>\n <ul class=\"contents\">\n <SecurityRequirementBadgeScheme\n v-for=\"(scheme, si) in group.schemes\"\n :key=\"si\"\n :scheme />\n </ul>\n </template>\n </li>\n </ul>\n\n <!-- Single group, multiple AND schemes -->\n <ul\n v-else-if=\"isAndGroup\"\n class=\"contents\">\n <SecurityRequirementBadgeScheme\n v-for=\"(scheme, key) in requiredSecurity.requirements[0]!.schemes\"\n :key\n :scheme />\n </ul>\n </div>\n <ScalarFloatingBackdrop />\n </div>\n </template>\n </ScalarFloating>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"SecurityRequirementBadge.vue.script.js","names":[],"sources":["../../../../src/features/Operation/components/SecurityRequirementBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n} from '@scalar/components/floating'\nimport { ScalarIconLockSimple, ScalarIconLockSimpleOpen } from '@scalar/icons'\nimport { onClickOutside, onKeyStroke } from '@vueuse/core'\nimport { computed, onBeforeUnmount, ref } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\nimport SecurityRequirementBadgeScheme from '@/features/Operation/components/SecurityRequirementBadgeScheme.vue'\nimport type { RequiredSecurity } from '@/features/Operation/helpers/get-required-security'\n\nconst { requiredSecurity, hideLabel = false } = defineProps<{\n requiredSecurity: RequiredSecurity\n hideLabel?: boolean\n}>()\nconst { translate } = useLocalization()\n\n/**\n * The badge shows a small panel with the security details. It opens on hover\n * and on click, so we own the open state directly instead of leaning on a\n * click-only popover. Owning the state keeps the two interactions from fighting\n * each other: hover and the click of the same gesture (a tap fires both) can no\n * longer toggle each other off.\n */\nconst triggerRef = ref<HTMLButtonElement | null>(null)\nconst panelRef = ref<HTMLElement | null>(null)\nconst isOpen = ref(false)\n\n/**\n * Whether the panel is pinned open by a click. A pinned panel ignores the\n * pointer leaving so it behaves like the old click-to-open popover, and it only\n * closes on another click, a click outside, or Escape.\n */\nconst isPinned = ref(false)\nlet closeTimeout: ReturnType<typeof setTimeout> | undefined\n\n/**\n * Close after a short delay so the pointer can travel across the gap between the\n * badge and the panel without the panel disappearing. A pinned panel stays open.\n */\nconst scheduleClose = () => {\n if (isPinned.value) {\n return\n }\n clearTimeout(closeTimeout)\n closeTimeout = setTimeout(() => {\n isOpen.value = false\n }, 120)\n}\n\nconst cancelClose = () => clearTimeout(closeTimeout)\n\nconst openOnHover = () => {\n cancelClose()\n isOpen.value = true\n}\n\nconst close = () => {\n cancelClose()\n isOpen.value = false\n isPinned.value = false\n}\n\n/**\n * Toggle on click. A hover already opened the panel (and a tap's `mouseenter`\n * fires just before its `click`), so the first click pins it open rather than\n * closing it; a click on an already pinned panel closes it.\n */\nconst toggleOnClick = () => {\n if (isPinned.value) {\n close()\n return\n }\n cancelClose()\n isOpen.value = true\n isPinned.value = true\n}\n\nonClickOutside(triggerRef, close, { ignore: [panelRef] })\nonKeyStroke('Escape', () => {\n if (isOpen.value) {\n close()\n }\n})\n\nonBeforeUnmount(() => clearTimeout(closeTimeout))\n\nconst label = computed(() =>\n requiredSecurity.state === 'required'\n ? translate('authentication.required')\n : translate('authentication.optional'),\n)\n\nconst verb = computed(() =>\n requiredSecurity.state === 'required'\n ? translate('authentication.requires')\n : translate('authentication.accepts'),\n)\n\n/** Single group, single scheme — shown inline in the header. */\nconst isSingleScheme = computed(\n () =>\n requiredSecurity.requirements.length === 1 &&\n requiredSecurity.requirements[0]?.schemes.length === 1,\n)\n\n/** Single group with multiple schemes — all must be satisfied (AND). */\nconst isAndGroup = computed(\n () =>\n requiredSecurity.requirements.length === 1 &&\n (requiredSecurity.requirements[0]?.schemes.length ?? 0) > 1,\n)\n\n/** Multiple groups — any one group satisfies authentication (OR). */\nconst isOrAlternatives = computed(\n () => requiredSecurity.requirements.length > 1,\n)\n</script>\n\n<template>\n <ScalarFloating\n v-if=\"requiredSecurity.state !== 'none'\"\n placement=\"bottom-end\">\n <button\n ref=\"triggerRef\"\n class=\"security-requirement-badge inline-flex w-fit shrink-0 items-center justify-center gap-1 text-sm\"\n :class=\"\n requiredSecurity.state === 'optional'\n ? 'text-c-2'\n : 'text-c-1 font-medium'\n \"\n type=\"button\"\n :aria-expanded=\"isOpen\"\n aria-haspopup=\"dialog\"\n @click.stop=\"toggleOnClick\"\n @mouseenter=\"openOnHover\"\n @mouseleave=\"scheduleClose\">\n <ScalarIconLockSimple\n v-if=\"requiredSecurity.state === 'required'\"\n class=\"size-3\"\n weight=\"bold\" />\n <ScalarIconLockSimpleOpen\n v-else\n class=\"size-3\"\n weight=\"bold\" />\n <span v-if=\"!hideLabel\">{{ label }}</span>\n </button>\n <template #floating>\n <div\n v-if=\"isOpen\"\n ref=\"panelRef\"\n class=\"relative flex flex-col p-0.75\"\n @click.stop\n @mouseenter=\"cancelClose\"\n @mouseleave=\"scheduleClose\">\n <div class=\"flex max-w-xs min-w-48 flex-col gap-1.5 p-2 text-sm\">\n <div class=\"font-medium\">\n {{ verb }}\n <template v-if=\"isSingleScheme\">\n <SecurityRequirementBadgeScheme\n is=\"span\"\n class=\"contents\"\n :scheme=\"requiredSecurity.requirements[0]!.schemes[0]!\" />\n </template>\n <template v-else-if=\"isOrAlternatives\">\n {{ translate('authentication.oneOf') }}\n </template>\n <template v-else-if=\"isAndGroup\">\n {{ translate('authentication.allOf') }}\n </template>\n <template v-else>\n {{ translate('authentication.authentication') }}\n </template>\n </div>\n\n <!-- Multiple OR alternatives -->\n <ul\n v-if=\"isOrAlternatives\"\n class=\"contents\">\n <li\n v-for=\"(group, gi) in requiredSecurity.requirements\"\n :key=\"gi\"\n class=\"markdown\">\n <!-- Single scheme in this OR branch -->\n <SecurityRequirementBadgeScheme\n is=\"span\"\n v-if=\"group.schemes.length === 1\"\n class=\"contents\"\n :scheme=\"group.schemes[0]!\" />\n <!-- Multiple AND schemes in this OR branch -->\n <template v-else>\n <ul class=\"contents\">\n <SecurityRequirementBadgeScheme\n v-for=\"(scheme, si) in group.schemes\"\n :key=\"si\"\n :scheme />\n </ul>\n </template>\n </li>\n </ul>\n\n <!-- Single group, multiple AND schemes -->\n <ul\n v-else-if=\"isAndGroup\"\n class=\"contents\">\n <SecurityRequirementBadgeScheme\n v-for=\"(scheme, key) in requiredSecurity.requirements[0]!.schemes\"\n :key\n :scheme />\n </ul>\n </div>\n <ScalarFloatingBackdrop />\n </div>\n </template>\n </ScalarFloating>\n</template>\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Fragment, createBlock, createCommentVNode, createElementBlock, createTe
2
2
  //#region src/features/Operation/components/SecurityRequirementBadgeScheme.vue?vue&type=script&setup=true&lang.ts
3
3
  var _hoisted_1 = { key: 0 };
4
4
  var _hoisted_2 = { key: 1 };
5
- var SecurityRequirementBadgeScheme_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
+ var SecurityRequirementBadgeScheme_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
6
6
  __name: "SecurityRequirementBadgeScheme",
7
7
  props: {
8
8
  is: { default: "li" },
@@ -1 +1 @@
1
- {"version":3,"file":"SecurityRequirementBadgeScheme.vue.script.js","names":[],"sources":["../../../../src/features/Operation/components/SecurityRequirementBadgeScheme.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Component } from 'vue'\n\nimport type { RequiredSecurityScheme } from '@/features/Operation/helpers/get-required-security'\n\nconst { is = 'li', scheme } = defineProps<{\n is?: Component | string\n scheme: RequiredSecurityScheme\n}>()\n</script>\n<template>\n <component\n :is\n class=\"markdown\">\n {{ scheme.name }}\n <code v-if=\"scheme.scheme?.type\">{{ scheme.scheme.type }}</code>\n <ul v-if=\"scheme.scopes.length\">\n <li\n v-for=\"scope in scheme.scopes\"\n :key=\"scope\"\n class=\"font-code text-c-2\">\n {{ scope }}\n </li>\n </ul>\n </component>\n</template>\n"],"mappings":";;;;;;;;;;;;uBAWE,YAaY,wBAZT,QAAA,GAAE,EAAA,EACH,OAAM,YAAU,EAAA;2BACC;qCAAd,QAAA,OAAO,KAAI,GAAG,KACjB,EAAA;KAAY,QAAA,OAAO,QAAQ,QAAA,WAAA,EAA3B,mBAAgE,QAAA,YAAA,gBAA5B,QAAA,OAAO,OAAO,KAAI,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAC5C,QAAA,OAAO,OAAO,UAAA,WAAA,EAAxB,mBAOK,MAAA,YAAA,EAAA,UAAA,KAAA,EANH,mBAKK,UAAA,MAAA,WAJa,QAAA,OAAO,SAAhB,UAAK;0BADd,mBAKK,MAAA;OAHF,KAAK;OACN,OAAM;yBACH,MAAK,EAAA,EAAA"}
1
+ {"version":3,"file":"SecurityRequirementBadgeScheme.vue.script.js","names":[],"sources":["../../../../src/features/Operation/components/SecurityRequirementBadgeScheme.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Component } from 'vue'\n\nimport type { RequiredSecurityScheme } from '@/features/Operation/helpers/get-required-security'\n\nconst { is = 'li', scheme } = defineProps<{\n is?: Component | string\n scheme: RequiredSecurityScheme\n}>()\n</script>\n<template>\n <component\n :is\n class=\"markdown\">\n {{ scheme.name }}\n <code v-if=\"scheme.scheme?.type\">{{ scheme.scheme.type }}</code>\n <ul v-if=\"scheme.scopes.length\">\n <li\n v-for=\"scope in scheme.scopes\"\n :key=\"scope\"\n class=\"font-code text-c-2\">\n {{ scope }}\n </li>\n </ul>\n </component>\n</template>\n"],"mappings":";;;;;;;;;;;;uBAWE,YAaY,wBAZT,QAAA,EAAE,GAAA,EACH,OAAM,WAAU,GAAA;2BACC;qCAAd,QAAA,OAAO,IAAI,IAAG,KACjB,CAAA;KAAY,QAAA,OAAO,QAAQ,QAAA,UAAA,GAA3B,mBAAgE,QAAA,YAAA,gBAA5B,QAAA,OAAO,OAAO,IAAI,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;KAC5C,QAAA,OAAO,OAAO,UAAA,UAAA,GAAxB,mBAOK,MAAA,YAAA,EAAA,UAAA,IAAA,GANH,mBAKK,UAAA,MAAA,WAJa,QAAA,OAAO,SAAhB,UAAK;0BADd,mBAKK,MAAA;OAHF,KAAK;OACN,OAAM;yBACH,KAAK,GAAA,CAAA"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_
2
2
  import Callback_vue_vue_type_script_setup_true_lang_default from "./Callback.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/features/Operation/components/callbacks/Callback.vue
5
- var Callback_default = /* @__PURE__ */ _plugin_vue_export_helper_default(Callback_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-474e6fa6"]]);
5
+ var Callback_default = /*#__PURE__*/ _plugin_vue_export_helper_default(Callback_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-474e6fa6"]]);
6
6
  //#endregion
7
7
  export { Callback_default as default };
8
8
 
@@ -10,7 +10,7 @@ var _hoisted_2 = { class: "font-code bg-b-1 callback-sticky-offset callback-list
10
10
  var _hoisted_3 = { class: "text-c-1 min-w-0 flex-1 truncate text-sm leading-5 font-bold group-open:whitespace-normal" };
11
11
  var _hoisted_4 = { class: "text-c-2 font-normal" };
12
12
  var _hoisted_5 = { class: "callback-operation-container flex flex-col gap-2" };
13
- var Callback_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
13
+ var Callback_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
14
14
  __name: "Callback",
15
15
  props: {
16
16
  callback: {},
@@ -1 +1 @@
1
- {"version":3,"file":"Callback.vue.script.js","names":[],"sources":["../../../../../src/features/Operation/components/callbacks/Callback.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { HttpMethod as HttpMethodType } from '@scalar/helpers/http/http-methods'\nimport { ScalarIconCaretRight } from '@scalar/icons'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport {\n type OpenApiDocument,\n type OperationObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { HttpMethod } from '@/components/HttpMethod'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\n\nconst { method, name, url, options, document } = defineProps<{\n callback: OperationObject\n method: HttpMethodType\n name: string\n url: string\n eventBus: WorkspaceEventBus | null\n /** The document the callback belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n options: Pick<\n OperationProps['options'],\n | 'hideModels'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n >\n}>()\n</script>\n\n<template>\n <details class=\"group callback-list-item\">\n <!-- Title -->\n <summary\n class=\"font-code bg-b-1 callback-sticky-offset callback-list-item-title sticky flex cursor-pointer flex-row items-start gap-2 border-t py-2.5 text-sm group-open:flex-wrap\">\n <ScalarIconCaretRight\n class=\"callback-list-item-icon text-c-3 group-hover:text-c-1 absolute top-3.5 -left-5 size-3 transition-transform duration-100 group-open:rotate-90\"\n weight=\"bold\" />\n <HttpMethod\n as=\"span\"\n class=\"request-method py-0.75 font-bold\"\n :method=\"method\" />\n <div\n class=\"text-c-1 min-w-0 flex-1 truncate text-sm leading-5 font-bold group-open:whitespace-normal\">\n {{ name }}\n <span class=\"text-c-2 font-normal\">\n {{ url }}\n </span>\n </div>\n </summary>\n\n <!-- Body -->\n <div class=\"callback-operation-container flex flex-col gap-2\">\n <OperationParameters\n :document=\"document\"\n :eventBus=\"eventBus\"\n :options=\"options\"\n :parameters=\"\n callback.parameters?.map((param) => getResolvedRef(param)) ?? []\n \"\n :requestBody=\"getResolvedRef(callback.requestBody)\" />\n\n <!-- Responses -->\n <OperationResponses\n :collapsableItems=\"false\"\n :document\n :eventBus\n :options\n :responses=\"callback.responses\" />\n </div>\n </details>\n</template>\n<style scoped>\n.callback-sticky-offset {\n top: var(--refs-viewport-offset, 0px);\n z-index: 1;\n}\n.callback-operation-container :deep(.request-body),\n.callback-operation-container :deep(.request-body-description),\n.callback-operation-container :deep(.request-body-header) {\n margin-top: 0;\n}\n.callback-operation-container :deep(.request-body-header) {\n --scalar-font-size-2: var(--scalar-font-size-4);\n padding: 10px;\n border-bottom: none;\n border: 0.5px solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg) var(--scalar-radius-lg) 0 0;\n background: color-mix(in srgb, var(--scalar-background-2) 50%, transparent);\n}\n.callback-operation-container\n :deep(.request-body-schema > .schema-card > .schema-card-description) {\n padding-inline: 8px;\n}\n.callback-operation-container :deep(ul li.property.property--level-1) {\n padding: 10px;\n}\n.callback-operation-container :deep(.request-body-schema) {\n background-color: var(--scalar-background-1);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-top: none;\n overflow: hidden;\n border-radius: 0 0 var(--scalar-radius-lg) var(--scalar-radius-lg);\n}\n.callback-operation-container :deep(.parameter-list) {\n margin-top: 0;\n}\n.callback-operation-container :deep(.parameter-list-title) {\n background: color-mix(in srgb, var(--scalar-background-2) 50%, transparent);\n border-radius: var(--scalar-radius-lg) var(--scalar-radius-lg) 0 0;\n padding: 10px;\n margin-bottom: 0;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: none;\n --scalar-font-size-2: var(--scalar-font-size-4);\n}\n.callback-operation-container :deep(.parameter-list-items) {\n /* background: pink; */\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 0 0 var(--scalar-radius-lg) var(--scalar-radius-lg);\n}\n.callback-operation-container :deep(.parameter-list-items > li:first-of-type) {\n border-top: none;\n}\n.callback-operation-container :deep(.parameter-list-items > li) {\n padding: 0 8px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;uBAkCE,mBAuCU,WAvCV,YAuCU,CArCR,mBAgBU,WAhBV,YAgBU;IAdR,YAEkB,MAAA,qBAAA,EAAA;KADhB,OAAM;KACN,QAAO;;IACT,YAGqB,MAAA,mBAAA,EAAA;KAFnB,IAAG;KACH,OAAM;KACL,QAAQ,QAAA;;IACX,mBAMM,OANN,YAMM,CAAA,gBAAA,gBAJD,QAAA,KAAI,GAAG,KACV,EAAA,EAAA,mBAEO,QAFP,YAEO,gBADF,QAAA,IAAG,EAAA,EAAA,CAAA,CAAA;OAMZ,mBAiBM,OAjBN,YAiBM,CAhBJ,YAOwD,6BAAA;IANrD,UAAU,QAAA;IACV,UAAU,QAAA;IACV,SAAS,QAAA;IACT,YAAuB,QAAA,SAAS,YAAY,KAAK,UAAU,MAAA,eAAc,CAAC,MAAK,CAAA,IAAA,EAAA;IAG/E,aAAa,MAAA,eAAc,CAAC,QAAA,SAAS,YAAW;;;;;;;OAGnD,YAKoC,4BAAA;IAJjC,kBAAkB;IAClB,UAAA,QAAA;IACA,UAAA,QAAA;IACA,SAAA,QAAA;IACA,WAAW,QAAA,SAAS"}
1
+ {"version":3,"file":"Callback.vue.script.js","names":[],"sources":["../../../../../src/features/Operation/components/callbacks/Callback.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { HttpMethod as HttpMethodType } from '@scalar/helpers/http/http-methods'\nimport { ScalarIconCaretRight } from '@scalar/icons'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport {\n type OpenApiDocument,\n type OperationObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { HttpMethod } from '@/components/HttpMethod'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\n\nconst { method, name, url, options, document } = defineProps<{\n callback: OperationObject\n method: HttpMethodType\n name: string\n url: string\n eventBus: WorkspaceEventBus | null\n /** The document the callback belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n options: Pick<\n OperationProps['options'],\n | 'hideModels'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n >\n}>()\n</script>\n\n<template>\n <details class=\"group callback-list-item\">\n <!-- Title -->\n <summary\n class=\"font-code bg-b-1 callback-sticky-offset callback-list-item-title sticky flex cursor-pointer flex-row items-start gap-2 border-t py-2.5 text-sm group-open:flex-wrap\">\n <ScalarIconCaretRight\n class=\"callback-list-item-icon text-c-3 group-hover:text-c-1 absolute top-3.5 -left-5 size-3 transition-transform duration-100 group-open:rotate-90\"\n weight=\"bold\" />\n <HttpMethod\n as=\"span\"\n class=\"request-method py-0.75 font-bold\"\n :method=\"method\" />\n <div\n class=\"text-c-1 min-w-0 flex-1 truncate text-sm leading-5 font-bold group-open:whitespace-normal\">\n {{ name }}\n <span class=\"text-c-2 font-normal\">\n {{ url }}\n </span>\n </div>\n </summary>\n\n <!-- Body -->\n <div class=\"callback-operation-container flex flex-col gap-2\">\n <OperationParameters\n :document=\"document\"\n :eventBus=\"eventBus\"\n :options=\"options\"\n :parameters=\"\n callback.parameters?.map((param) => getResolvedRef(param)) ?? []\n \"\n :requestBody=\"getResolvedRef(callback.requestBody)\" />\n\n <!-- Responses -->\n <OperationResponses\n :collapsableItems=\"false\"\n :document\n :eventBus\n :options\n :responses=\"callback.responses\" />\n </div>\n </details>\n</template>\n<style scoped>\n.callback-sticky-offset {\n top: var(--refs-viewport-offset, 0px);\n z-index: 1;\n}\n.callback-operation-container :deep(.request-body),\n.callback-operation-container :deep(.request-body-description),\n.callback-operation-container :deep(.request-body-header) {\n margin-top: 0;\n}\n.callback-operation-container :deep(.request-body-header) {\n --scalar-font-size-2: var(--scalar-font-size-4);\n padding: 10px;\n border-bottom: none;\n border: 0.5px solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg) var(--scalar-radius-lg) 0 0;\n background: color-mix(in srgb, var(--scalar-background-2) 50%, transparent);\n}\n.callback-operation-container\n :deep(.request-body-schema > .schema-card > .schema-card-description) {\n padding-inline: 8px;\n}\n.callback-operation-container :deep(ul li.property.property--level-1) {\n padding: 10px;\n}\n.callback-operation-container :deep(.request-body-schema) {\n background-color: var(--scalar-background-1);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-top: none;\n overflow: hidden;\n border-radius: 0 0 var(--scalar-radius-lg) var(--scalar-radius-lg);\n}\n.callback-operation-container :deep(.parameter-list) {\n margin-top: 0;\n}\n.callback-operation-container :deep(.parameter-list-title) {\n background: color-mix(in srgb, var(--scalar-background-2) 50%, transparent);\n border-radius: var(--scalar-radius-lg) var(--scalar-radius-lg) 0 0;\n padding: 10px;\n margin-bottom: 0;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-bottom: none;\n --scalar-font-size-2: var(--scalar-font-size-4);\n}\n.callback-operation-container :deep(.parameter-list-items) {\n /* background: pink; */\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 0 0 var(--scalar-radius-lg) var(--scalar-radius-lg);\n}\n.callback-operation-container :deep(.parameter-list-items > li:first-of-type) {\n border-top: none;\n}\n.callback-operation-container :deep(.parameter-list-items > li) {\n padding: 0 8px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;uBAkCE,mBAuCU,WAvCV,YAuCU,CArCR,mBAgBU,WAhBV,YAgBU;IAdR,YAEkB,MAAA,oBAAA,GAAA;KADhB,OAAM;KACN,QAAO;;IACT,YAGqB,MAAA,kBAAA,GAAA;KAFnB,IAAG;KACH,OAAM;KACL,QAAQ,QAAA;;IACX,mBAMM,OANN,YAMM,CAAA,gBAAA,gBAJD,QAAA,IAAI,IAAG,KACV,CAAA,GAAA,mBAEO,QAFP,YAEO,gBADF,QAAA,GAAG,GAAA,CAAA,CAAA,CAAA;OAMZ,mBAiBM,OAjBN,YAiBM,CAhBJ,YAOwD,6BAAA;IANrD,UAAU,QAAA;IACV,UAAU,QAAA;IACV,SAAS,QAAA;IACT,YAAuB,QAAA,SAAS,YAAY,KAAK,UAAU,MAAA,cAAA,CAAc,CAAC,KAAK,CAAA,KAAA,CAAA;IAG/E,aAAa,MAAA,cAAA,CAAc,CAAC,QAAA,SAAS,WAAW;;;;;;;OAGnD,YAKoC,4BAAA;IAJjC,kBAAkB;IAClB,UAAA,QAAA;IACA,UAAA,QAAA;IACA,SAAA,QAAA;IACA,WAAW,QAAA,SAAS"}
@@ -8,7 +8,7 @@ import { objectEntries } from "@scalar/helpers/object/object-entries";
8
8
  var _hoisted_1 = ["aria-label"];
9
9
  var _hoisted_2 = { class: "callbacks-title text-c-1 my-3 text-lg font-medium" };
10
10
  /** Extract the callbacks with method, url, and name */
11
- var Callbacks_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
+ var Callbacks_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
12
12
  __name: "Callbacks",
13
13
  props: {
14
14
  path: {},
@@ -1 +1 @@
1
- {"version":3,"file":"Callbacks.vue.script.js","names":[],"sources":["../../../../../src/features/Operation/components/callbacks/Callbacks.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { HttpMethod } from '@scalar/helpers/http/http-methods'\nimport { isHttpMethod } from '@scalar/helpers/http/is-http-method'\nimport { objectEntries } from '@scalar/helpers/object/object-entries'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n CallbackObject,\n OpenApiDocument,\n OperationObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\n\nimport Callback from './Callback.vue'\n\nconst { path, callbacks, options } = defineProps<{\n path: string\n callbacks: CallbackObject\n eventBus: WorkspaceEventBus | null\n /** The document the callbacks belong to, used to resolve schema references for display */\n document?: OpenApiDocument\n options: Pick<\n OperationProps['options'],\n | 'hideModels'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n >\n}>()\nconst { translate } = useLocalization()\n\ntype CallbackType = {\n name: string\n url: string\n method: HttpMethod\n callback: OperationObject\n}\n\n/** Extract the callbacks with method, url, and name */\nconst flattenedCallbacks = computed<CallbackType[]>(() => {\n const _callbacks: CallbackType[] = []\n\n // Loop over the name level\n objectEntries(callbacks).forEach(([name, pathItem]) => {\n // Loop over the url level\n objectEntries(getResolvedRef(pathItem)).forEach(([url, methods]) => {\n if (typeof methods !== 'object' || !methods) {\n return\n }\n\n // Loop over the method level\n objectEntries(methods).forEach(([callbackMethod, callback]) => {\n if (!isHttpMethod(callbackMethod)) {\n return\n }\n\n _callbacks.push({\n name,\n url,\n method: callbackMethod,\n callback: callback,\n })\n })\n })\n })\n\n return _callbacks\n})\n</script>\n\n<template>\n <div\n :aria-label=\"translate('operation.callbacks')\"\n class=\"callbacks-list gap-3\"\n role=\"group\">\n <div class=\"callbacks-title text-c-1 my-3 text-lg font-medium\">\n {{ translate('operation.callbacks') }}\n </div>\n <Callback\n v-for=\"{ callback, method, name, url } in flattenedCallbacks\"\n :key=\"`${name}-${url}-${method}`\"\n :callback\n :document\n :eventBus\n :method\n :name\n :options\n :path\n :url />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAgCA,MAAM,EAAE,cAAc,iBAAgB;EAUtC,MAAM,qBAAqB,eAA+B;GACxD,MAAM,aAA6B,EAAC;AAGpC,iBAAc,QAAA,UAAU,CAAC,SAAS,CAAC,MAAM,cAAc;AAErD,kBAAc,eAAe,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,aAAa;AAClE,SAAI,OAAO,YAAY,YAAY,CAAC,QAClC;AAIF,mBAAc,QAAQ,CAAC,SAAS,CAAC,gBAAgB,cAAc;AAC7D,UAAI,CAAC,aAAa,eAAe,CAC/B;AAGF,iBAAW,KAAK;OACd;OACA;OACA,QAAQ;OACE;OACX,CAAA;OACF;MACF;KACF;AAED,UAAO;IACR;;uBAIC,mBAkBM,OAAA;IAjBH,cAAY,MAAA,UAAS,CAAA,sBAAA;IACtB,OAAM;IACN,MAAK;OACL,mBAEM,OAFN,YAEM,gBADD,MAAA,UAAS,CAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,UAAA,KAAA,EAEd,mBAUS,UAAA,MAAA,WATmC,mBAAA,QAAkB,EAAnD,UAAU,QAAQ,MAAM,UAAG;wBADtC,YAUS,kBAAA;KARN,KAAG,GAAK,KAAI,GAAI,IAAG,GAAI;KACvB;KACA,UAAA,QAAA;KACA,UAAA,QAAA;KACA;KACA;KACA,SAAA,QAAA;KACA,MAAA,QAAA;KACA"}
1
+ {"version":3,"file":"Callbacks.vue.script.js","names":[],"sources":["../../../../../src/features/Operation/components/callbacks/Callbacks.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { HttpMethod } from '@scalar/helpers/http/http-methods'\nimport { isHttpMethod } from '@scalar/helpers/http/is-http-method'\nimport { objectEntries } from '@scalar/helpers/object/object-entries'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n CallbackObject,\n OpenApiDocument,\n OperationObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\n\nimport Callback from './Callback.vue'\n\nconst { path, callbacks, options } = defineProps<{\n path: string\n callbacks: CallbackObject\n eventBus: WorkspaceEventBus | null\n /** The document the callbacks belong to, used to resolve schema references for display */\n document?: OpenApiDocument\n options: Pick<\n OperationProps['options'],\n | 'hideModels'\n | 'orderRequiredPropertiesFirst'\n | 'orderSchemaPropertiesBy'\n | 'expandAllSchemaProperties'\n >\n}>()\nconst { translate } = useLocalization()\n\ntype CallbackType = {\n name: string\n url: string\n method: HttpMethod\n callback: OperationObject\n}\n\n/** Extract the callbacks with method, url, and name */\nconst flattenedCallbacks = computed<CallbackType[]>(() => {\n const _callbacks: CallbackType[] = []\n\n // Loop over the name level\n objectEntries(callbacks).forEach(([name, pathItem]) => {\n // Loop over the url level\n objectEntries(getResolvedRef(pathItem)).forEach(([url, methods]) => {\n if (typeof methods !== 'object' || !methods) {\n return\n }\n\n // Loop over the method level\n objectEntries(methods).forEach(([callbackMethod, callback]) => {\n if (!isHttpMethod(callbackMethod)) {\n return\n }\n\n _callbacks.push({\n name,\n url,\n method: callbackMethod,\n callback: callback,\n })\n })\n })\n })\n\n return _callbacks\n})\n</script>\n\n<template>\n <div\n :aria-label=\"translate('operation.callbacks')\"\n class=\"callbacks-list gap-3\"\n role=\"group\">\n <div class=\"callbacks-title text-c-1 my-3 text-lg font-medium\">\n {{ translate('operation.callbacks') }}\n </div>\n <Callback\n v-for=\"{ callback, method, name, url } in flattenedCallbacks\"\n :key=\"`${name}-${url}-${method}`\"\n :callback\n :document\n :eventBus\n :method\n :name\n :options\n :path\n :url />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAgCA,MAAM,EAAE,cAAc,gBAAgB;EAUtC,MAAM,qBAAqB,eAA+B;GACxD,MAAM,aAA6B,CAAC;GAGpC,cAAc,QAAA,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,cAAc;IAErD,cAAc,eAAe,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,aAAa;KAClE,IAAI,OAAO,YAAY,YAAY,CAAC,SAClC;KAIF,cAAc,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,cAAc;MAC7D,IAAI,CAAC,aAAa,cAAc,GAC9B;MAGF,WAAW,KAAK;OACd;OACA;OACA,QAAQ;OACE;MACZ,CAAC;KACH,CAAC;IACH,CAAC;GACH,CAAC;GAED,OAAO;EACT,CAAC;;uBAIC,mBAkBM,OAAA;IAjBH,cAAY,MAAA,SAAA,CAAS,CAAA,qBAAA;IACtB,OAAM;IACN,MAAK;OACL,mBAEM,OAFN,YAEM,gBADD,MAAA,SAAA,CAAS,CAAA,qBAAA,CAAA,GAAA,CAAA,IAAA,UAAA,IAAA,GAEd,mBAUS,UAAA,MAAA,WATmC,mBAAA,QAAkB,EAAnD,UAAU,QAAQ,MAAM,UAAG;wBADtC,YAUS,kBAAA;KARN,KAAG,GAAK,KAAI,GAAI,IAAG,GAAI;KACvB;KACA,UAAA,QAAA;KACA,UAAA,QAAA;KACA;KACA;KACA,SAAA,QAAA;KACA,MAAA,QAAA;KACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-parameter-examples.js","names":[],"sources":["../../../../../src/features/Operation/components/helpers/get-parameter-examples.ts"],"sourcesContent":["import type { ParameterObject, ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { isObjectLike } from '@scalar/helpers/object/is-object'\n\nconst filterUndefined = (example: unknown): example is unknown => example !== undefined\n\ntype GetParameterExamplesArgs = {\n parameter: ParameterObject | ResponseObject\n schemaExamples?: unknown[]\n contentExamples?: unknown\n}\n\n/**\n * Build a normalized examples array from parameter/content/schema examples.\n * Undefined values are removed so the UI does not render \"undefined\" entries.\n */\nexport const getParameterExamples = ({\n parameter,\n schemaExamples,\n contentExamples,\n}: GetParameterExamplesArgs): unknown[] => {\n const paramExamples = 'examples' in parameter && isObjectLike(parameter.examples) ? parameter.examples : {}\n\n const recordExamples = Object.values({\n ...paramExamples,\n ...(isObjectLike(contentExamples) ? contentExamples : {}),\n }).filter(filterUndefined)\n\n const fallbackExample =\n recordExamples.length === 0 && 'example' in parameter && parameter.example !== undefined ? [parameter.example] : []\n\n const arrayExamples = (schemaExamples ?? fallbackExample).filter(filterUndefined)\n\n return [...recordExamples, ...arrayExamples]\n}\n"],"mappings":";;AAGA,IAAM,mBAAmB,YAAyC,YAAY,KAAA;;;;;AAY9E,IAAa,wBAAwB,EACnC,WACA,gBACA,sBACyC;CACzC,MAAM,gBAAgB,cAAc,aAAa,aAAa,UAAU,SAAS,GAAG,UAAU,WAAW,EAAE;CAE3G,MAAM,iBAAiB,OAAO,OAAO;EACnC,GAAG;EACH,GAAI,aAAa,gBAAgB,GAAG,kBAAkB,EAAE;EACzD,CAAC,CAAC,OAAO,gBAAgB;CAE1B,MAAM,kBACJ,eAAe,WAAW,KAAK,aAAa,aAAa,UAAU,YAAY,KAAA,IAAY,CAAC,UAAU,QAAQ,GAAG,EAAE;CAErH,MAAM,iBAAiB,kBAAkB,iBAAiB,OAAO,gBAAgB;AAEjF,QAAO,CAAC,GAAG,gBAAgB,GAAG,cAAc"}
1
+ {"version":3,"file":"get-parameter-examples.js","names":[],"sources":["../../../../../src/features/Operation/components/helpers/get-parameter-examples.ts"],"sourcesContent":["import type { ParameterObject, ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { isObjectLike } from '@scalar/helpers/object/is-object'\n\nconst filterUndefined = (example: unknown): example is unknown => example !== undefined\n\ntype GetParameterExamplesArgs = {\n parameter: ParameterObject | ResponseObject\n schemaExamples?: unknown[]\n contentExamples?: unknown\n}\n\n/**\n * Build a normalized examples array from parameter/content/schema examples.\n * Undefined values are removed so the UI does not render \"undefined\" entries.\n */\nexport const getParameterExamples = ({\n parameter,\n schemaExamples,\n contentExamples,\n}: GetParameterExamplesArgs): unknown[] => {\n const paramExamples = 'examples' in parameter && isObjectLike(parameter.examples) ? parameter.examples : {}\n\n const recordExamples = Object.values({\n ...paramExamples,\n ...(isObjectLike(contentExamples) ? contentExamples : {}),\n }).filter(filterUndefined)\n\n const fallbackExample =\n recordExamples.length === 0 && 'example' in parameter && parameter.example !== undefined ? [parameter.example] : []\n\n const arrayExamples = (schemaExamples ?? fallbackExample).filter(filterUndefined)\n\n return [...recordExamples, ...arrayExamples]\n}\n"],"mappings":";;AAGA,IAAM,mBAAmB,YAAyC,YAAY,KAAA;;;;;AAY9E,IAAa,wBAAwB,EACnC,WACA,gBACA,sBACyC;CACzC,MAAM,gBAAgB,cAAc,aAAa,aAAa,UAAU,QAAQ,IAAI,UAAU,WAAW,CAAC;CAE1G,MAAM,iBAAiB,OAAO,OAAO;EACnC,GAAG;EACH,GAAI,aAAa,eAAe,IAAI,kBAAkB,CAAC;CACzD,CAAC,CAAC,CAAC,OAAO,eAAe;CAEzB,MAAM,kBACJ,eAAe,WAAW,KAAK,aAAa,aAAa,UAAU,YAAY,KAAA,IAAY,CAAC,UAAU,OAAO,IAAI,CAAC;CAEpH,MAAM,iBAAiB,kBAAkB,gBAAA,CAAiB,OAAO,eAAe;CAEhF,OAAO,CAAC,GAAG,gBAAgB,GAAG,aAAa;AAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter-selected-security.js","names":[],"sources":["../../../../src/features/Operation/helpers/filter-selected-security.ts"],"sourcesContent":["import type { SelectedSecurity } from '@scalar/workspace-store/entities/auth'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport {\n type MergedSecuritySchemes,\n getSecuritySchemes,\n getSelectedSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n SecurityRequirementObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\n/** Builds a quick cache key from the sorted object keys */\nconst getKey = (requirement: SecurityRequirementObject) => Object.keys(requirement).sort().join(',')\n\n/**\n * Find the intersection between which security is selected on the document and what this operation requires\n *\n * If there is no overlap, we return the first requirement\n */\nexport const filterSelectedSecurity = (\n document: OpenApiDocument,\n operation: OperationObject | null,\n selectedSecurityDocument?: SelectedSecurity,\n selectedSecurityOperation?: SelectedSecurity,\n securitySchemes: MergedSecuritySchemes = {},\n): SecuritySchemeObjectSecret[] => {\n const securityRequirements = operation?.security ?? document.security ?? []\n\n /** The selected security keys for the document */\n const selectedSecurity = getSelectedSecurity(\n selectedSecurityDocument,\n selectedSecurityOperation,\n securityRequirements,\n )\n\n /** Build a set for O(1) lookup */\n const requirementSet = new Set(securityRequirements.map((r) => getKey(r)))\n\n // Lets check the selectedIndex first\n const selectedRequirement = selectedSecurity.selectedSchemes[selectedSecurity.selectedIndex]\n if (selectedRequirement && requirementSet.has(getKey(selectedRequirement))) {\n return getSecuritySchemes(securitySchemes, selectedRequirement)\n }\n\n // Otherwise lets loop over all selected\n for (const selected of selectedSecurity.selectedSchemes) {\n if (requirementSet.has(getKey(selected))) {\n return getSecuritySchemes(securitySchemes, selected)\n }\n }\n\n /**\n * If we are selected security on the document,\n * we should show the first requirement of the operation to show auth is required\n */\n if (operation?.security?.length) {\n return getSecuritySchemes(securitySchemes, securityRequirements[0] ?? {})\n }\n\n return []\n}\n"],"mappings":";;;AAcA,IAAM,UAAU,gBAA2C,OAAO,KAAK,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI;;;;;;AAOpG,IAAa,0BACX,UACA,WACA,0BACA,2BACA,kBAAyC,EAAE,KACV;CACjC,MAAM,uBAAuB,WAAW,YAAY,SAAS,YAAY,EAAE;;CAG3E,MAAM,mBAAmB,oBACvB,0BACA,2BACA,qBACD;;CAGD,MAAM,iBAAiB,IAAI,IAAI,qBAAqB,KAAK,MAAM,OAAO,EAAE,CAAC,CAAC;CAG1E,MAAM,sBAAsB,iBAAiB,gBAAgB,iBAAiB;AAC9E,KAAI,uBAAuB,eAAe,IAAI,OAAO,oBAAoB,CAAC,CACxE,QAAO,mBAAmB,iBAAiB,oBAAoB;AAIjE,MAAK,MAAM,YAAY,iBAAiB,gBACtC,KAAI,eAAe,IAAI,OAAO,SAAS,CAAC,CACtC,QAAO,mBAAmB,iBAAiB,SAAS;;;;;AAQxD,KAAI,WAAW,UAAU,OACvB,QAAO,mBAAmB,iBAAiB,qBAAqB,MAAM,EAAE,CAAC;AAG3E,QAAO,EAAE"}
1
+ {"version":3,"file":"filter-selected-security.js","names":[],"sources":["../../../../src/features/Operation/helpers/filter-selected-security.ts"],"sourcesContent":["import type { SelectedSecurity } from '@scalar/workspace-store/entities/auth'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport {\n type MergedSecuritySchemes,\n getSecuritySchemes,\n getSelectedSecurity,\n} from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n SecurityRequirementObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\n/** Builds a quick cache key from the sorted object keys */\nconst getKey = (requirement: SecurityRequirementObject) => Object.keys(requirement).sort().join(',')\n\n/**\n * Find the intersection between which security is selected on the document and what this operation requires\n *\n * If there is no overlap, we return the first requirement\n */\nexport const filterSelectedSecurity = (\n document: OpenApiDocument,\n operation: OperationObject | null,\n selectedSecurityDocument?: SelectedSecurity,\n selectedSecurityOperation?: SelectedSecurity,\n securitySchemes: MergedSecuritySchemes = {},\n): SecuritySchemeObjectSecret[] => {\n const securityRequirements = operation?.security ?? document.security ?? []\n\n /** The selected security keys for the document */\n const selectedSecurity = getSelectedSecurity(\n selectedSecurityDocument,\n selectedSecurityOperation,\n securityRequirements,\n )\n\n /** Build a set for O(1) lookup */\n const requirementSet = new Set(securityRequirements.map((r) => getKey(r)))\n\n // Lets check the selectedIndex first\n const selectedRequirement = selectedSecurity.selectedSchemes[selectedSecurity.selectedIndex]\n if (selectedRequirement && requirementSet.has(getKey(selectedRequirement))) {\n return getSecuritySchemes(securitySchemes, selectedRequirement)\n }\n\n // Otherwise lets loop over all selected\n for (const selected of selectedSecurity.selectedSchemes) {\n if (requirementSet.has(getKey(selected))) {\n return getSecuritySchemes(securitySchemes, selected)\n }\n }\n\n /**\n * If we are selected security on the document,\n * we should show the first requirement of the operation to show auth is required\n */\n if (operation?.security?.length) {\n return getSecuritySchemes(securitySchemes, securityRequirements[0] ?? {})\n }\n\n return []\n}\n"],"mappings":";;;AAcA,IAAM,UAAU,gBAA2C,OAAO,KAAK,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG;;;;;;AAOnG,IAAa,0BACX,UACA,WACA,0BACA,2BACA,kBAAyC,CAAC,MACT;CACjC,MAAM,uBAAuB,WAAW,YAAY,SAAS,YAAY,CAAC;;CAG1E,MAAM,mBAAmB,oBACvB,0BACA,2BACA,oBACF;;CAGA,MAAM,iBAAiB,IAAI,IAAI,qBAAqB,KAAK,MAAM,OAAO,CAAC,CAAC,CAAC;CAGzE,MAAM,sBAAsB,iBAAiB,gBAAgB,iBAAiB;CAC9E,IAAI,uBAAuB,eAAe,IAAI,OAAO,mBAAmB,CAAC,GACvE,OAAO,mBAAmB,iBAAiB,mBAAmB;CAIhE,KAAK,MAAM,YAAY,iBAAiB,iBACtC,IAAI,eAAe,IAAI,OAAO,QAAQ,CAAC,GACrC,OAAO,mBAAmB,iBAAiB,QAAQ;;;;;CAQvD,IAAI,WAAW,UAAU,QACvB,OAAO,mBAAmB,iBAAiB,qBAAqB,MAAM,CAAC,CAAC;CAG1E,OAAO,CAAC;AACV"}
@@ -1 +1 @@
1
- {"version":3,"file":"flatten-deep-object-query-parameter.js","names":[],"sources":["../../../../src/features/Operation/helpers/flatten-deep-object-query-parameter.ts"],"sourcesContent":["import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n ParameterObject,\n ParameterWithSchemaObject,\n ReferenceType,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { isObjectSchema } from '@scalar/workspace-store/schemas/v3.1/strict/type-guards'\n\ntype ParameterWithRequiredSchema = ParameterWithSchemaObject & {\n schema: ReferenceType<SchemaObject>\n}\n\nconst isParameterWithSchema = (parameter: ParameterObject): parameter is ParameterWithRequiredSchema =>\n 'schema' in parameter && parameter.schema !== undefined\n\nconst resolveSchema = (schema: unknown): SchemaObject | undefined => {\n const resolvedSchema = getResolvedRef(schema as SchemaObject | { '$ref': string; '$ref-value': SchemaObject })\n\n return resolvedSchema as SchemaObject | undefined\n}\n\nconst toFlattenedDeepObjectParameter = (\n parameter: ParameterWithRequiredSchema,\n name: string,\n description: string | undefined,\n required: boolean,\n schema: SchemaObject,\n): ParameterWithRequiredSchema => {\n const { example: _example, examples: _examples, ...parameterWithoutExamples } = parameter\n\n return {\n ...parameterWithoutExamples,\n name,\n description,\n required,\n schema,\n }\n}\n\nconst flattenDeepObjectProperties = (\n parameter: ParameterWithRequiredSchema,\n schema: Extract<SchemaObject, { type: 'object' }>,\n namePrefix: string,\n): ParameterObject[] => {\n if (!schema.properties) {\n return [parameter]\n }\n\n const requiredProperties = new Set(schema.required ?? [])\n const flattenedParameters = Object.entries(schema.properties).flatMap(([propertyName, propertySchema]) => {\n const resolvedPropertySchema = resolveSchema(propertySchema)\n if (!resolvedPropertySchema) {\n return []\n }\n\n const nestedName = `${namePrefix}[${propertyName}]`\n const nestedParameter = toFlattenedDeepObjectParameter(\n parameter,\n nestedName,\n resolvedPropertySchema.description ?? parameter.description,\n requiredProperties.has(propertyName),\n resolvedPropertySchema,\n )\n\n if (isObjectSchema(resolvedPropertySchema) && resolvedPropertySchema.properties) {\n return flattenDeepObjectProperties(nestedParameter, resolvedPropertySchema, nestedName)\n }\n\n return [nestedParameter]\n })\n\n return flattenedParameters.length > 0 ? flattenedParameters : [parameter]\n}\n\n/**\n * Deep object query parameters serialize as name[prop] pairs in URLs.\n * Rendering the same shape keeps docs aligned with the request UI.\n */\nexport const flattenDeepObjectQueryParameter = (parameter: ParameterObject): ParameterObject[] => {\n if (parameter.in !== 'query' || !isParameterWithSchema(parameter) || parameter.style !== 'deepObject') {\n return [parameter]\n }\n\n const resolvedSchema = resolveSchema(parameter.schema)\n if (!resolvedSchema || !isObjectSchema(resolvedSchema)) {\n return [parameter]\n }\n\n return flattenDeepObjectProperties(parameter, resolvedSchema, parameter.name)\n}\n"],"mappings":";;;AAaA,IAAM,yBAAyB,cAC7B,YAAY,aAAa,UAAU,WAAW,KAAA;AAEhD,IAAM,iBAAiB,WAA8C;AAGnE,QAFuB,eAAe,OAAwE;;AAKhH,IAAM,kCACJ,WACA,MACA,aACA,UACA,WACgC;CAChC,MAAM,EAAE,SAAS,UAAU,UAAU,WAAW,GAAG,6BAA6B;AAEhF,QAAO;EACL,GAAG;EACH;EACA;EACA;EACA;EACD;;AAGH,IAAM,+BACJ,WACA,QACA,eACsB;AACtB,KAAI,CAAC,OAAO,WACV,QAAO,CAAC,UAAU;CAGpB,MAAM,qBAAqB,IAAI,IAAI,OAAO,YAAY,EAAE,CAAC;CACzD,MAAM,sBAAsB,OAAO,QAAQ,OAAO,WAAW,CAAC,SAAS,CAAC,cAAc,oBAAoB;EACxG,MAAM,yBAAyB,cAAc,eAAe;AAC5D,MAAI,CAAC,uBACH,QAAO,EAAE;EAGX,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa;EACjD,MAAM,kBAAkB,+BACtB,WACA,YACA,uBAAuB,eAAe,UAAU,aAChD,mBAAmB,IAAI,aAAa,EACpC,uBACD;AAED,MAAI,eAAe,uBAAuB,IAAI,uBAAuB,WACnE,QAAO,4BAA4B,iBAAiB,wBAAwB,WAAW;AAGzF,SAAO,CAAC,gBAAgB;GACxB;AAEF,QAAO,oBAAoB,SAAS,IAAI,sBAAsB,CAAC,UAAU;;;;;;AAO3E,IAAa,mCAAmC,cAAkD;AAChG,KAAI,UAAU,OAAO,WAAW,CAAC,sBAAsB,UAAU,IAAI,UAAU,UAAU,aACvF,QAAO,CAAC,UAAU;CAGpB,MAAM,iBAAiB,cAAc,UAAU,OAAO;AACtD,KAAI,CAAC,kBAAkB,CAAC,eAAe,eAAe,CACpD,QAAO,CAAC,UAAU;AAGpB,QAAO,4BAA4B,WAAW,gBAAgB,UAAU,KAAK"}
1
+ {"version":3,"file":"flatten-deep-object-query-parameter.js","names":[],"sources":["../../../../src/features/Operation/helpers/flatten-deep-object-query-parameter.ts"],"sourcesContent":["import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n ParameterObject,\n ParameterWithSchemaObject,\n ReferenceType,\n SchemaObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { isObjectSchema } from '@scalar/workspace-store/schemas/v3.1/strict/type-guards'\n\ntype ParameterWithRequiredSchema = ParameterWithSchemaObject & {\n schema: ReferenceType<SchemaObject>\n}\n\nconst isParameterWithSchema = (parameter: ParameterObject): parameter is ParameterWithRequiredSchema =>\n 'schema' in parameter && parameter.schema !== undefined\n\nconst resolveSchema = (schema: unknown): SchemaObject | undefined => {\n const resolvedSchema = getResolvedRef(schema as SchemaObject | { '$ref': string; '$ref-value': SchemaObject })\n\n return resolvedSchema as SchemaObject | undefined\n}\n\nconst toFlattenedDeepObjectParameter = (\n parameter: ParameterWithRequiredSchema,\n name: string,\n description: string | undefined,\n required: boolean,\n schema: SchemaObject,\n): ParameterWithRequiredSchema => {\n const { example: _example, examples: _examples, ...parameterWithoutExamples } = parameter\n\n return {\n ...parameterWithoutExamples,\n name,\n description,\n required,\n schema,\n }\n}\n\nconst flattenDeepObjectProperties = (\n parameter: ParameterWithRequiredSchema,\n schema: Extract<SchemaObject, { type: 'object' }>,\n namePrefix: string,\n): ParameterObject[] => {\n if (!schema.properties) {\n return [parameter]\n }\n\n const requiredProperties = new Set(schema.required ?? [])\n const flattenedParameters = Object.entries(schema.properties).flatMap(([propertyName, propertySchema]) => {\n const resolvedPropertySchema = resolveSchema(propertySchema)\n if (!resolvedPropertySchema) {\n return []\n }\n\n const nestedName = `${namePrefix}[${propertyName}]`\n const nestedParameter = toFlattenedDeepObjectParameter(\n parameter,\n nestedName,\n resolvedPropertySchema.description ?? parameter.description,\n requiredProperties.has(propertyName),\n resolvedPropertySchema,\n )\n\n if (isObjectSchema(resolvedPropertySchema) && resolvedPropertySchema.properties) {\n return flattenDeepObjectProperties(nestedParameter, resolvedPropertySchema, nestedName)\n }\n\n return [nestedParameter]\n })\n\n return flattenedParameters.length > 0 ? flattenedParameters : [parameter]\n}\n\n/**\n * Deep object query parameters serialize as name[prop] pairs in URLs.\n * Rendering the same shape keeps docs aligned with the request UI.\n */\nexport const flattenDeepObjectQueryParameter = (parameter: ParameterObject): ParameterObject[] => {\n if (parameter.in !== 'query' || !isParameterWithSchema(parameter) || parameter.style !== 'deepObject') {\n return [parameter]\n }\n\n const resolvedSchema = resolveSchema(parameter.schema)\n if (!resolvedSchema || !isObjectSchema(resolvedSchema)) {\n return [parameter]\n }\n\n return flattenDeepObjectProperties(parameter, resolvedSchema, parameter.name)\n}\n"],"mappings":";;;AAaA,IAAM,yBAAyB,cAC7B,YAAY,aAAa,UAAU,WAAW,KAAA;AAEhD,IAAM,iBAAiB,WAA8C;CAGnE,OAFuB,eAAe,MAE/B;AACT;AAEA,IAAM,kCACJ,WACA,MACA,aACA,UACA,WACgC;CAChC,MAAM,EAAE,SAAS,UAAU,UAAU,WAAW,GAAG,6BAA6B;CAEhF,OAAO;EACL,GAAG;EACH;EACA;EACA;EACA;CACF;AACF;AAEA,IAAM,+BACJ,WACA,QACA,eACsB;CACtB,IAAI,CAAC,OAAO,YACV,OAAO,CAAC,SAAS;CAGnB,MAAM,qBAAqB,IAAI,IAAI,OAAO,YAAY,CAAC,CAAC;CACxD,MAAM,sBAAsB,OAAO,QAAQ,OAAO,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,oBAAoB;EACxG,MAAM,yBAAyB,cAAc,cAAc;EAC3D,IAAI,CAAC,wBACH,OAAO,CAAC;EAGV,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa;EACjD,MAAM,kBAAkB,+BACtB,WACA,YACA,uBAAuB,eAAe,UAAU,aAChD,mBAAmB,IAAI,YAAY,GACnC,sBACF;EAEA,IAAI,eAAe,sBAAsB,KAAK,uBAAuB,YACnE,OAAO,4BAA4B,iBAAiB,wBAAwB,UAAU;EAGxF,OAAO,CAAC,eAAe;CACzB,CAAC;CAED,OAAO,oBAAoB,SAAS,IAAI,sBAAsB,CAAC,SAAS;AAC1E;;;;;AAMA,IAAa,mCAAmC,cAAkD;CAChG,IAAI,UAAU,OAAO,WAAW,CAAC,sBAAsB,SAAS,KAAK,UAAU,UAAU,cACvF,OAAO,CAAC,SAAS;CAGnB,MAAM,iBAAiB,cAAc,UAAU,MAAM;CACrD,IAAI,CAAC,kBAAkB,CAAC,eAAe,cAAc,GACnD,OAAO,CAAC,SAAS;CAGnB,OAAO,4BAA4B,WAAW,gBAAgB,UAAU,IAAI;AAC9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-required-security.js","names":[],"sources":["../../../../src/features/Operation/helpers/get-required-security.ts"],"sourcesContent":["import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport { isNonOptionalSecurityRequirement } from '@scalar/workspace-store/helpers/is-non-optional-security-requirement'\nimport type { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/operation'\nimport type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/security-scheme'\n\nexport type RequiredSecurityState = 'required' | 'optional' | 'none'\n\nexport type RequiredSecurityScheme = {\n /** Scheme key as declared in `components.securitySchemes`. */\n name: string\n /** Resolved scheme object. `undefined` if the referenced scheme isn't defined on the document. */\n scheme: SecuritySchemeObject | undefined\n /** Scopes required by the operation for this scheme (OAuth2 / OpenID Connect). Empty otherwise. */\n scopes: string[]\n}\n\n/**\n * One alternative in the security requirement list.\n * All schemes within a group must be satisfied simultaneously (AND semantics).\n */\nexport type RequiredSecurityGroup = {\n schemes: RequiredSecurityScheme[]\n}\n\nexport type RequiredSecurity = {\n state: RequiredSecurityState\n /**\n * Each element is one alternative (OR semantics). Within each group, all schemes\n * must be satisfied simultaneously (AND semantics). Empty when `state === 'none'`.\n *\n * Mirrors the OpenAPI `security` array structure:\n * - outer array → OR (satisfy any one group)\n * - inner object → AND (all schemes in a group are required together)\n */\n requirements: RequiredSecurityGroup[]\n}\n\n/**\n * Determine whether an operation requires authentication, using `operation.security ?? document.security`\n * as the source of truth. Operation-level `security` fully overrides document-level — including `security: []`,\n * which explicitly opts the operation out of auth.\n *\n * OpenAPI encodes \"auth is optional\" by including an empty requirement object `{}`. Whenever `{}`\n * appears — whether alongside real requirements or as the only entry — auth is treated as optional (state: 'optional').\n */\nexport const getRequiredSecurity = (\n operation: Pick<OperationObject, 'security'> | null | undefined,\n document: Pick<OpenApiDocument, 'security' | 'components'>,\n): RequiredSecurity => {\n const securityList = operation?.security ?? document.security ?? []\n const definedSchemes = document.components?.securitySchemes ?? {}\n\n let hasEmpty = false\n const groups: RequiredSecurityGroup[] = []\n\n for (const requirement of securityList) {\n if (!isNonOptionalSecurityRequirement(requirement)) {\n hasEmpty = true\n continue\n }\n\n const schemes: RequiredSecurityScheme[] = Object.entries(requirement).map(([name, scopes]) => ({\n name,\n scheme: getResolvedRef(definedSchemes[name]),\n scopes: scopes.filter((s) => s.length > 0),\n }))\n\n if (schemes.length > 0) {\n groups.push({ schemes })\n }\n }\n\n if (groups.length === 0) {\n return { state: hasEmpty ? 'optional' : 'none', requirements: [] }\n }\n\n return {\n state: hasEmpty ? 'optional' : 'required',\n requirements: groups,\n }\n}\n\n/**\n * Required OAuth scopes grouped by security alternative (OR).\n *\n * Each returned array is the de-duplicated set of scopes for one alternative, kept in\n * declaration order. Scopes are only collected for OAuth2 / OpenID Connect schemes, so\n * alternatives without any scopes (for example API-key-only auth) are omitted and the\n * result is empty when the operation requires no OAuth scopes.\n *\n * Grouping is preserved intentionally: unioning scopes across alternatives would imply\n * that mutually exclusive scope sets are all required at once, which misstates OpenAPI\n * OR semantics.\n */\nexport const getRequiredScopeGroups = (requiredSecurity: RequiredSecurity): string[][] => {\n const groups: string[][] = []\n\n for (const group of requiredSecurity.requirements) {\n const collected = new Set<string>()\n\n for (const scheme of group.schemes) {\n for (const scope of scheme.scopes) {\n collected.add(scope)\n }\n }\n\n if (collected.size > 0) {\n groups.push([...collected])\n }\n }\n\n return groups\n}\n"],"mappings":";;;;;;;;;;;AA8CA,IAAa,uBACX,WACA,aACqB;CACrB,MAAM,eAAe,WAAW,YAAY,SAAS,YAAY,EAAE;CACnE,MAAM,iBAAiB,SAAS,YAAY,mBAAmB,EAAE;CAEjE,IAAI,WAAW;CACf,MAAM,SAAkC,EAAE;AAE1C,MAAK,MAAM,eAAe,cAAc;AACtC,MAAI,CAAC,iCAAiC,YAAY,EAAE;AAClD,cAAW;AACX;;EAGF,MAAM,UAAoC,OAAO,QAAQ,YAAY,CAAC,KAAK,CAAC,MAAM,aAAa;GAC7F;GACA,QAAQ,eAAe,eAAe,MAAM;GAC5C,QAAQ,OAAO,QAAQ,MAAM,EAAE,SAAS,EAAE;GAC3C,EAAE;AAEH,MAAI,QAAQ,SAAS,EACnB,QAAO,KAAK,EAAE,SAAS,CAAC;;AAI5B,KAAI,OAAO,WAAW,EACpB,QAAO;EAAE,OAAO,WAAW,aAAa;EAAQ,cAAc,EAAE;EAAE;AAGpE,QAAO;EACL,OAAO,WAAW,aAAa;EAC/B,cAAc;EACf;;;;;;;;;;;;;;AAeH,IAAa,0BAA0B,qBAAmD;CACxF,MAAM,SAAqB,EAAE;AAE7B,MAAK,MAAM,SAAS,iBAAiB,cAAc;EACjD,MAAM,4BAAY,IAAI,KAAa;AAEnC,OAAK,MAAM,UAAU,MAAM,QACzB,MAAK,MAAM,SAAS,OAAO,OACzB,WAAU,IAAI,MAAM;AAIxB,MAAI,UAAU,OAAO,EACnB,QAAO,KAAK,CAAC,GAAG,UAAU,CAAC;;AAI/B,QAAO"}
1
+ {"version":3,"file":"get-required-security.js","names":[],"sources":["../../../../src/features/Operation/helpers/get-required-security.ts"],"sourcesContent":["import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport { isNonOptionalSecurityRequirement } from '@scalar/workspace-store/helpers/is-non-optional-security-requirement'\nimport type { OpenApiDocument } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/operation'\nimport type { SecuritySchemeObject } from '@scalar/workspace-store/schemas/v3.1/strict/security-scheme'\n\nexport type RequiredSecurityState = 'required' | 'optional' | 'none'\n\nexport type RequiredSecurityScheme = {\n /** Scheme key as declared in `components.securitySchemes`. */\n name: string\n /** Resolved scheme object. `undefined` if the referenced scheme isn't defined on the document. */\n scheme: SecuritySchemeObject | undefined\n /** Scopes required by the operation for this scheme (OAuth2 / OpenID Connect). Empty otherwise. */\n scopes: string[]\n}\n\n/**\n * One alternative in the security requirement list.\n * All schemes within a group must be satisfied simultaneously (AND semantics).\n */\nexport type RequiredSecurityGroup = {\n schemes: RequiredSecurityScheme[]\n}\n\nexport type RequiredSecurity = {\n state: RequiredSecurityState\n /**\n * Each element is one alternative (OR semantics). Within each group, all schemes\n * must be satisfied simultaneously (AND semantics). Empty when `state === 'none'`.\n *\n * Mirrors the OpenAPI `security` array structure:\n * - outer array → OR (satisfy any one group)\n * - inner object → AND (all schemes in a group are required together)\n */\n requirements: RequiredSecurityGroup[]\n}\n\n/**\n * Determine whether an operation requires authentication, using `operation.security ?? document.security`\n * as the source of truth. Operation-level `security` fully overrides document-level — including `security: []`,\n * which explicitly opts the operation out of auth.\n *\n * OpenAPI encodes \"auth is optional\" by including an empty requirement object `{}`. Whenever `{}`\n * appears — whether alongside real requirements or as the only entry — auth is treated as optional (state: 'optional').\n */\nexport const getRequiredSecurity = (\n operation: Pick<OperationObject, 'security'> | null | undefined,\n document: Pick<OpenApiDocument, 'security' | 'components'>,\n): RequiredSecurity => {\n const securityList = operation?.security ?? document.security ?? []\n const definedSchemes = document.components?.securitySchemes ?? {}\n\n let hasEmpty = false\n const groups: RequiredSecurityGroup[] = []\n\n for (const requirement of securityList) {\n if (!isNonOptionalSecurityRequirement(requirement)) {\n hasEmpty = true\n continue\n }\n\n const schemes: RequiredSecurityScheme[] = Object.entries(requirement).map(([name, scopes]) => ({\n name,\n scheme: getResolvedRef(definedSchemes[name]),\n scopes: scopes.filter((s) => s.length > 0),\n }))\n\n if (schemes.length > 0) {\n groups.push({ schemes })\n }\n }\n\n if (groups.length === 0) {\n return { state: hasEmpty ? 'optional' : 'none', requirements: [] }\n }\n\n return {\n state: hasEmpty ? 'optional' : 'required',\n requirements: groups,\n }\n}\n\n/**\n * Required OAuth scopes grouped by security alternative (OR).\n *\n * Each returned array is the de-duplicated set of scopes for one alternative, kept in\n * declaration order. Scopes are only collected for OAuth2 / OpenID Connect schemes, so\n * alternatives without any scopes (for example API-key-only auth) are omitted and the\n * result is empty when the operation requires no OAuth scopes.\n *\n * Grouping is preserved intentionally: unioning scopes across alternatives would imply\n * that mutually exclusive scope sets are all required at once, which misstates OpenAPI\n * OR semantics.\n */\nexport const getRequiredScopeGroups = (requiredSecurity: RequiredSecurity): string[][] => {\n const groups: string[][] = []\n\n for (const group of requiredSecurity.requirements) {\n const collected = new Set<string>()\n\n for (const scheme of group.schemes) {\n for (const scope of scheme.scopes) {\n collected.add(scope)\n }\n }\n\n if (collected.size > 0) {\n groups.push([...collected])\n }\n }\n\n return groups\n}\n"],"mappings":";;;;;;;;;;;AA8CA,IAAa,uBACX,WACA,aACqB;CACrB,MAAM,eAAe,WAAW,YAAY,SAAS,YAAY,CAAC;CAClE,MAAM,iBAAiB,SAAS,YAAY,mBAAmB,CAAC;CAEhE,IAAI,WAAW;CACf,MAAM,SAAkC,CAAC;CAEzC,KAAK,MAAM,eAAe,cAAc;EACtC,IAAI,CAAC,iCAAiC,WAAW,GAAG;GAClD,WAAW;GACX;EACF;EAEA,MAAM,UAAoC,OAAO,QAAQ,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,aAAa;GAC7F;GACA,QAAQ,eAAe,eAAe,KAAK;GAC3C,QAAQ,OAAO,QAAQ,MAAM,EAAE,SAAS,CAAC;EAC3C,EAAE;EAEF,IAAI,QAAQ,SAAS,GACnB,OAAO,KAAK,EAAE,QAAQ,CAAC;CAE3B;CAEA,IAAI,OAAO,WAAW,GACpB,OAAO;EAAE,OAAO,WAAW,aAAa;EAAQ,cAAc,CAAC;CAAE;CAGnE,OAAO;EACL,OAAO,WAAW,aAAa;EAC/B,cAAc;CAChB;AACF;;;;;;;;;;;;;AAcA,IAAa,0BAA0B,qBAAmD;CACxF,MAAM,SAAqB,CAAC;CAE5B,KAAK,MAAM,SAAS,iBAAiB,cAAc;EACjD,MAAM,4BAAY,IAAI,IAAY;EAElC,KAAK,MAAM,UAAU,MAAM,SACzB,KAAK,MAAM,SAAS,OAAO,QACzB,UAAU,IAAI,KAAK;EAIvB,IAAI,UAAU,OAAO,GACnB,OAAO,KAAK,CAAC,GAAG,SAAS,CAAC;CAE9B;CAEA,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"operation-stability.js","names":[],"sources":["../../../../src/features/Operation/helpers/operation-stability.ts"],"sourcesContent":["import { XScalarStability } from '@scalar/types/legacy'\n\ntype OperationStability = {\n deprecated?: boolean\n 'x-scalar-stability'?: unknown\n}\n\n/**\n * Returns true if an operation is considered deprecated.\n */\nexport const isOperationDeprecated = (operation: OperationStability): boolean =>\n operation.deprecated || operation['x-scalar-stability'] === XScalarStability.Deprecated\n\n/**\n * Get operation stability from deprecated or x-scalar-stability\n */\nexport const getOperationStability = (operation: OperationStability): XScalarStability | undefined =>\n operation.deprecated ? XScalarStability.Deprecated : (operation['x-scalar-stability'] as XScalarStability | undefined)\n\n/**\n * Get Operation stability tailwind color class\n */\nexport const getOperationStabilityColor = (operation: OperationStability): string => {\n switch (getOperationStability(operation)) {\n case XScalarStability.Deprecated:\n return 'text-red'\n case XScalarStability.Experimental:\n return 'text-orange'\n case XScalarStability.Stable:\n return 'text-green'\n default:\n return ''\n }\n}\n"],"mappings":";;;;;AAUA,IAAa,yBAAyB,cACpC,UAAU,cAAc,UAAU,0BAA0B,iBAAiB;;;;AAK/E,IAAa,yBAAyB,cACpC,UAAU,aAAa,iBAAiB,aAAc,UAAU;;;;AAKlE,IAAa,8BAA8B,cAA0C;AACnF,SAAQ,sBAAsB,UAAU,EAAxC;EACE,KAAK,iBAAiB,WACpB,QAAO;EACT,KAAK,iBAAiB,aACpB,QAAO;EACT,KAAK,iBAAiB,OACpB,QAAO;EACT,QACE,QAAO"}
1
+ {"version":3,"file":"operation-stability.js","names":[],"sources":["../../../../src/features/Operation/helpers/operation-stability.ts"],"sourcesContent":["import { XScalarStability } from '@scalar/types/legacy'\n\ntype OperationStability = {\n deprecated?: boolean\n 'x-scalar-stability'?: unknown\n}\n\n/**\n * Returns true if an operation is considered deprecated.\n */\nexport const isOperationDeprecated = (operation: OperationStability): boolean =>\n operation.deprecated || operation['x-scalar-stability'] === XScalarStability.Deprecated\n\n/**\n * Get operation stability from deprecated or x-scalar-stability\n */\nexport const getOperationStability = (operation: OperationStability): XScalarStability | undefined =>\n operation.deprecated ? XScalarStability.Deprecated : (operation['x-scalar-stability'] as XScalarStability | undefined)\n\n/**\n * Get Operation stability tailwind color class\n */\nexport const getOperationStabilityColor = (operation: OperationStability): string => {\n switch (getOperationStability(operation)) {\n case XScalarStability.Deprecated:\n return 'text-red'\n case XScalarStability.Experimental:\n return 'text-orange'\n case XScalarStability.Stable:\n return 'text-green'\n default:\n return ''\n }\n}\n"],"mappings":";;;;;AAUA,IAAa,yBAAyB,cACpC,UAAU,cAAc,UAAU,0BAA0B,iBAAiB;;;;AAK/E,IAAa,yBAAyB,cACpC,UAAU,aAAa,iBAAiB,aAAc,UAAU;;;;AAKlE,IAAa,8BAA8B,cAA0C;CACnF,QAAQ,sBAAsB,SAAS,GAAvC;EACE,KAAK,iBAAiB,YACpB,OAAO;EACT,KAAK,iBAAiB,cACpB,OAAO;EACT,KAAK,iBAAiB,QACpB,OAAO;EACT,SACE,OAAO;CACX;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClassicLayout.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/Operation/layouts/ClassicLayout.vue"],"names":[],"mappings":"AAokBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACzF,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAiBrE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,oDAAoD,CAAA;AAM3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAUxE,KAAK,WAAW,GAAG,IAAI,CACnB,cAAc,EACd,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,iBAAiB,GAAG,WAAW,CACtE,GAAG;IACF,wCAAwC;IACxC,SAAS,EAAE,eAAe,CAAA;IAC1B,4CAA4C;IAC5C,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,sDAAsD;IACtD,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B,CAAC;AA6sBJ,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ClassicLayout.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/Operation/layouts/ClassicLayout.vue"],"names":[],"mappings":"AAokBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACzF,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAiBrE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,oDAAoD,CAAA;AAM3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAUxE,KAAK,WAAW,GAAG,IAAI,CACnB,cAAc,EACd,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,iBAAiB,GAAG,WAAW,CACtE,GAAG;IACF,wCAAwC;IACxC,SAAS,EAAE,eAAe,CAAA;IAC1B,4CAA4C;IAC5C,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,sDAAsD;IACtD,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B,CAAC;AAitBJ,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import ClassicLayout_vue_vue_type_script_setup_true_lang_default from "./ClassicLayout.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/features/Operation/layouts/ClassicLayout.vue
5
- var ClassicLayout_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ClassicLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ae829610"]]);
5
+ var ClassicLayout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ClassicLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ae829610"]]);
6
6
  //#endregion
7
7
  export { ClassicLayout_default as default };
8
8
 
@@ -53,7 +53,7 @@ var _hoisted_13 = {
53
53
  key: 2,
54
54
  class: "operation-details-card-item"
55
55
  };
56
- var ClassicLayout_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
56
+ var ClassicLayout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
57
57
  __name: "ClassicLayout",
58
58
  props: {
59
59
  id: {},
@@ -1 +1 @@
1
- {"version":3,"file":"ClassicLayout.vue.script.js","names":[],"sources":["../../../../src/features/Operation/layouts/ClassicLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CodeExample } from '@scalar/blocks/code-example'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport { ScalarIconButton } from '@scalar/components/icon-button'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport {\n ScalarIconCopy,\n ScalarIconPlay,\n ScalarIconWebhooksLogo,\n} from '@scalar/icons'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, provide, ref } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Badge } from '@/components/Badge'\nimport { HttpMethod } from '@/components/HttpMethod'\nimport { LinkList } from '@/components/LinkList'\nimport OperationPath from '@/components/OperationPath.vue'\nimport { SectionAccordion } from '@/components/Section'\nimport { ExampleResponses } from '@/features/example-responses'\nimport { ExternalDocs } from '@/features/external-docs'\nimport { useLocalization } from '@/features/localization'\nimport Callbacks from '@/features/Operation/components/callbacks/Callbacks.vue'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport OperationScopes from '@/features/Operation/components/OperationScopes.vue'\nimport SecurityRequirementBadge from '@/features/Operation/components/SecurityRequirementBadge.vue'\nimport {\n getRequiredScopeGroups,\n type RequiredSecurity,\n} from '@/features/Operation/helpers/get-required-security'\nimport {\n getOperationStability,\n getOperationStabilityColor,\n isOperationDeprecated,\n} from '@/features/Operation/helpers/operation-stability'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\nimport {\n REQUEST_BODY_COMPOSITION_INDEX_SYMBOL,\n type RequestBodyCompositionSelection,\n} from '@/features/Operation/request-body-composition-index'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport SpecificationExtension from '@/features/specification-extension/SpecificationExtension.vue'\nimport { TestRequestButton } from '@/features/test-request-button'\nimport { XBadges } from '@/features/x-badges'\n\nconst {\n clientOptions,\n document,\n eventBus,\n isWebhook,\n method,\n operation,\n options,\n path,\n requiredSecurity,\n selectedServer,\n selectedSecuritySchemes,\n selectedClient,\n selectedExample,\n} = defineProps<\n Omit<\n OperationProps,\n 'document' | 'pathValue' | 'server' | 'securitySchemes' | 'authStore'\n > & {\n /** Operation object with path params */\n operation: OperationObject\n /** The selected server for the operation */\n selectedServer: ServerObject | null\n /** The selected security schemes for the operation */\n selectedSecuritySchemes: SecuritySchemeObjectSecret[]\n /** Required/optional security state for the badge next to the path */\n requiredSecurity: RequiredSecurity\n /** The document the operation belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n }\n>()\nconst { translate } = useLocalization()\n\nconst operationTitle = computed(() => operation.summary || path || '')\nconst operationExtensions = computed(() => getXKeysFromObject(operation))\n\n/** Whether the operation requires any OAuth scopes, used to skip the empty card item. */\nconst hasRequiredScopes = computed(\n () => getRequiredScopeGroups(requiredSecurity).length > 0,\n)\n\n/** Track the selected request body content type so the code sample stays in sync */\nconst selectedRequestBodyContentType = ref<string | undefined>()\n\n/**\n * The example key actually shown in the request snippet for this operation.\n *\n * The test-request button lives in the accordion header, outside `OperationCodeSample`, so it\n * cannot read the resolved key from the footer slot like the modern layout does. We mirror it here\n * so the button opens the client with the same example the snippet displays, even when this\n * operation does not share the document-wide selection.\n */\nconst resolvedExampleKey = ref<string>('')\n\n/** Selected request body oneOf/anyOf variants; synced with schema dropdowns and code sample */\nconst requestBodyCompositionSelection = ref<RequestBodyCompositionSelection>({})\n\nconst requestBodyCompositionSelectionForCodeSample = computed(\n (): RequestBodyCompositionSelection => ({\n ...requestBodyCompositionSelection.value,\n }),\n)\n\nconst requestBodyCompositionSelectionKey = computed(() =>\n JSON.stringify(requestBodyCompositionSelectionForCodeSample.value),\n)\n\nprovide(REQUEST_BODY_COMPOSITION_INDEX_SYMBOL, requestBodyCompositionSelection)\n\nconst { copyToClipboard } = useClipboard()\n</script>\n<template>\n <SectionAccordion\n :id=\"id\"\n :aria-label=\"operationTitle\"\n class=\"reference-endpoint\"\n :modelValue=\"!isCollapsed\"\n transparent\n @update:modelValue=\"\n (value) => eventBus?.emit('toggle:nav-item', { id, open: value })\n \">\n <template #title>\n <div class=\"operation-title\">\n <div class=\"operation-details\">\n <HttpMethod\n class=\"endpoint-type\"\n :method=\"method\"\n short />\n <Anchor\n class=\"endpoint-anchor\"\n @copyAnchorUrl=\"() => eventBus?.emit('copy-url:nav-item', { id })\">\n <h3 class=\"endpoint-label\">\n <div class=\"endpoint-label-path\">\n <OperationPath\n :deprecated=\"isOperationDeprecated(operation)\"\n :path=\"path\" />\n </div>\n <div class=\"endpoint-label-name\">\n {{ operationTitle }}\n </div>\n <!-- Stability badge -->\n <Badge\n v-if=\"getOperationStability(operation)\"\n class=\"capitalize\"\n :class=\"getOperationStabilityColor(operation)\">\n {{ getOperationStability(operation) }}\n </Badge>\n\n <!-- Webhook badge -->\n <Badge\n v-if=\"isWebhook\"\n class=\"font-code text-green flex w-fit items-center justify-center gap-1\">\n <ScalarIconWebhooksLogo weight=\"bold\" />\n {{ translate('operation.webhook') }}\n </Badge>\n\n <!-- x-badges before -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"before\" />\n </h3>\n </Anchor>\n </div>\n </div>\n </template>\n <template #actions=\"{ active }\">\n <!-- Required auth indicator -->\n <SecurityRequirementBadge\n hideLabel\n :requiredSecurity />\n <!-- x-badges after -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"after\" />\n <template v-if=\"!options.hideTestRequestButton\">\n <TestRequestButton\n v-if=\"active && !isWebhook\"\n :id\n :eventBus\n :exampleName=\"resolvedExampleKey\"\n :method\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \" />\n <ScalarIconPlay\n v-else\n class=\"endpoint-try-hint size-4.5\" />\n </template>\n <span\n v-if=\"options.showOperationId && operation.operationId\"\n class=\"font-code text-sm\">\n {{ operation.operationId }}\n </span>\n <ScalarIconButton\n class=\"endpoint-copy p-0.5\"\n :icon=\"ScalarIconCopy\"\n :label=\"translate('actions.copyEndpointUrl')\"\n size=\"xs\"\n variant=\"ghost\"\n @click.stop=\"copyToClipboard(path)\" />\n </template>\n <template\n v-if=\"operation.description\"\n #description>\n <ScalarMarkdown\n :anchorPrefix=\"id\"\n :aria-label=\"translate('common.description')\"\n role=\"group\"\n transformType=\"heading\"\n :value=\"operation.description\"\n withAnchors\n withImages />\n </template>\n <div class=\"endpoint-content\">\n <div class=\"operation-details-card\">\n <div\n v-if=\"Object.keys(operationExtensions).length > 0\"\n class=\"operation-details-card-item\">\n <SpecificationExtension :value=\"operationExtensions\" />\n </div>\n <div\n v-if=\"hasRequiredScopes\"\n class=\"operation-details-card-item\">\n <OperationScopes :requiredSecurity />\n </div>\n <div class=\"operation-details-card-item\">\n <OperationParameters\n v-model:selectedContentType=\"selectedRequestBodyContentType\"\n :document\n :eventBus\n :options\n :parameters=\"operation.parameters\"\n :requestBody=\"getResolvedRef(operation.requestBody)\" />\n </div>\n <div class=\"operation-details-card-item\">\n <OperationResponses\n :document\n :eventBus\n :options\n :responses=\"operation.responses\" />\n </div>\n\n <!-- Callbacks -->\n <div\n v-if=\"operation?.callbacks\"\n class=\"operation-details-card-item\">\n <Callbacks\n :callbacks=\"operation.callbacks\"\n :document\n :eventBus\n :options\n :path />\n </div>\n </div>\n\n <ExampleResponses\n v-if=\"operation.responses\"\n class=\"operation-example-card\"\n :eventBus\n :responses=\"operation.responses\"\n :selectedExample />\n\n <!-- New Example Request -->\n <div>\n <!-- External Docs -->\n <LinkList v-if=\"operation.externalDocs\">\n <ExternalDocs :value=\"operation.externalDocs\" />\n </LinkList>\n <!-- Request Example -->\n <ScalarErrorBoundary>\n <CodeExample\n :key=\"requestBodyCompositionSelectionKey\"\n class=\"operation-example-card\"\n :clientOptions\n :eventBus\n fallback\n :isWebhook\n :method\n :operation\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \"\n :securitySchemes=\"selectedSecuritySchemes\"\n :selectedClient\n :selectedContentType=\"selectedRequestBodyContentType\"\n :selectedExample\n :selectedServer\n @update:exampleKey=\"resolvedExampleKey = $event\" />\n </ScalarErrorBoundary>\n </div>\n </div>\n </SectionAccordion>\n</template>\n\n<style scoped>\n@reference \"@/style.css\";\n\n.operation-title {\n display: flex;\n justify-content: space-between;\n}\n.operation-details {\n display: flex;\n align-items: center;\n margin-top: 0;\n gap: 9px;\n\n min-width: 0;\n flex-shrink: 1;\n}\n.operation-details :deep(.endpoint-anchor .scalar-button svg) {\n width: 16px;\n height: 16px;\n}\n.endpoint-type {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n\n position: relative;\n z-index: 0;\n\n width: 60px;\n padding: 6px;\n flex-shrink: 0;\n\n font-size: var(--scalar-small);\n\n text-transform: uppercase;\n font-weight: var(--scalar-bold);\n font-family: var(--scalar-font);\n}\n.endpoint-type::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n\n background: currentColor;\n opacity: 0.15;\n\n border-radius: var(--scalar-radius);\n}\n\n.endpoint-anchor {\n display: flex;\n align-items: center;\n min-width: 0;\n flex-shrink: 1;\n}\n.endpoint-anchor.label {\n display: flex;\n}\n.endpoint-label {\n display: flex;\n align-items: baseline;\n gap: 9px;\n\n min-width: 0;\n flex-shrink: 1;\n\n color: var(--scalar-color-1);\n}\n\n.endpoint-label-path {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-mini);\n\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.endpoint-label-path :deep(em) {\n color: var(--scalar-color-2);\n}\n.endpoint-label-name {\n color: var(--scalar-color-2);\n font-size: var(--scalar-small);\n\n /* Concatenate the name before we shrink the path */\n flex-shrink: 1000000000;\n\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.endpoint-try-hint {\n padding: 2px;\n flex-shrink: 0;\n}\n.endpoint-copy {\n color: currentColor;\n}\n.endpoint-copy :deep(svg) {\n stroke-width: 2px;\n}\n\n.endpoint-content {\n display: grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: row;\n gap: 9px;\n padding: 9px;\n}\n\n@variant lg {\n .endpoint-content {\n grid-auto-flow: column;\n }\n}\n\n@container (max-width: 900px) {\n .endpoint-content {\n grid-template-columns: 1fr;\n }\n}\n\n.endpoint-content > * {\n min-width: 0;\n}\n\n.operation-details-card {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-width: 0;\n}\n.operation-details-card-item :deep(.parameter-list),\n.operation-details-card-item :deep(.callbacks-list) {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg);\n margin-top: 0;\n}\n\n.operation-details-card-item {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.operation-details-card-item :deep(.parameter-list-items) {\n margin-bottom: 0;\n}\n.operation-details-card :deep(.parameter-item:last-of-type .parameter-schema) {\n padding-bottom: 12px;\n}\n.operation-details-card :deep(.parameter-list .parameter-list) {\n margin-bottom: 12px;\n}\n.operation-details-card :deep(.parameter-item) {\n margin: 0;\n padding: 0;\n}\n.operation-details-card :deep(.property) {\n padding: 9px;\n margin: 0;\n}\n.operation-details-card :deep(.parameter-list-title),\n.operation-details-card :deep(.request-body-title),\n.operation-details-card :deep(.callbacks-title) {\n text-transform: uppercase;\n font-weight: var(--scalar-bold);\n font-size: var(--scalar-mini);\n color: var(--scalar-color-2);\n line-height: 1.33;\n padding: 9px;\n margin: 0;\n}\n\n.operation-details-card :deep(.callback-list-item-title) {\n padding-left: 28px;\n padding-right: 12px;\n}\n\n.operation-details-card :deep(.callback-list-item-icon) {\n left: 6px;\n}\n\n.operation-details-card :deep(.callback-operation-container) {\n padding-inline: 9px;\n padding-bottom: 9px;\n}\n\n.operation-details-card :deep(.callback-operation-container > .request-body),\n.operation-details-card :deep(.callback-operation-container > .parameter-list) {\n border: none;\n}\n\n.operation-details-card\n :deep(.callback-operation-container > .request-body > .request-body-header) {\n padding: 0;\n padding-bottom: 9px;\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n\n.operation-details-card :deep(.request-body-description) {\n margin-top: 0;\n padding: 9px 9px 0 9px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n\n.operation-details-card :deep(.request-body) {\n margin-top: 0;\n border-radius: var(--scalar-radius-lg);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.operation-details-card\n :deep(.request-body .schema-card--level-0 > .schema-card-description) {\n padding-inline: 9px;\n}\n\n.operation-details-card :deep(.request-body-header) {\n padding-bottom: 0;\n border-bottom: 0;\n}\n\n.operation-details-card :deep(.contents button) {\n margin-right: 9px;\n}\n\n.operation-details-card\n :deep(.schema-card--open + .schema-card:not(.schema-card--open)) {\n margin-inline: 9px;\n margin-bottom: 9px;\n}\n.operation-details-card :deep(.request-body-schema .property--level-0) {\n padding: 0;\n}\n.operation-details-card :deep(.request-body-schema .property--level-0) {\n padding: 0;\n}\n\n.operation-details-card :deep(.selected-content-type) {\n margin-right: 9px;\n}\n\n.operation-example-card {\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n max-height: calc(var(--refs-viewport-height) - 48px);\n}\n\n@media (max-width: 600px) {\n .operation-example-card {\n max-height: unset;\n position: static;\n }\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"ClassicLayout.vue.script.js","names":[],"sources":["../../../../src/features/Operation/layouts/ClassicLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CodeExample } from '@scalar/blocks/code-example'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport { ScalarIconButton } from '@scalar/components/icon-button'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport {\n ScalarIconCopy,\n ScalarIconPlay,\n ScalarIconWebhooksLogo,\n} from '@scalar/icons'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, provide, ref } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Badge } from '@/components/Badge'\nimport { HttpMethod } from '@/components/HttpMethod'\nimport { LinkList } from '@/components/LinkList'\nimport OperationPath from '@/components/OperationPath.vue'\nimport { SectionAccordion } from '@/components/Section'\nimport { ExampleResponses } from '@/features/example-responses'\nimport { ExternalDocs } from '@/features/external-docs'\nimport { useLocalization } from '@/features/localization'\nimport Callbacks from '@/features/Operation/components/callbacks/Callbacks.vue'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport OperationScopes from '@/features/Operation/components/OperationScopes.vue'\nimport SecurityRequirementBadge from '@/features/Operation/components/SecurityRequirementBadge.vue'\nimport {\n getRequiredScopeGroups,\n type RequiredSecurity,\n} from '@/features/Operation/helpers/get-required-security'\nimport {\n getOperationStability,\n getOperationStabilityColor,\n isOperationDeprecated,\n} from '@/features/Operation/helpers/operation-stability'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\nimport {\n REQUEST_BODY_COMPOSITION_INDEX_SYMBOL,\n type RequestBodyCompositionSelection,\n} from '@/features/Operation/request-body-composition-index'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport SpecificationExtension from '@/features/specification-extension/SpecificationExtension.vue'\nimport { TestRequestButton } from '@/features/test-request-button'\nimport { XBadges } from '@/features/x-badges'\n\nconst {\n clientOptions,\n document,\n eventBus,\n isWebhook,\n method,\n operation,\n options,\n path,\n requiredSecurity,\n selectedServer,\n selectedSecuritySchemes,\n selectedClient,\n selectedExample,\n} = defineProps<\n Omit<\n OperationProps,\n 'document' | 'pathValue' | 'server' | 'securitySchemes' | 'authStore'\n > & {\n /** Operation object with path params */\n operation: OperationObject\n /** The selected server for the operation */\n selectedServer: ServerObject | null\n /** The selected security schemes for the operation */\n selectedSecuritySchemes: SecuritySchemeObjectSecret[]\n /** Required/optional security state for the badge next to the path */\n requiredSecurity: RequiredSecurity\n /** The document the operation belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n }\n>()\nconst { translate } = useLocalization()\n\nconst operationTitle = computed(() => operation.summary || path || '')\nconst operationExtensions = computed(() => getXKeysFromObject(operation))\n\n/** Whether the operation requires any OAuth scopes, used to skip the empty card item. */\nconst hasRequiredScopes = computed(\n () => getRequiredScopeGroups(requiredSecurity).length > 0,\n)\n\n/** Track the selected request body content type so the code sample stays in sync */\nconst selectedRequestBodyContentType = ref<string | undefined>()\n\n/**\n * The example key actually shown in the request snippet for this operation.\n *\n * The test-request button lives in the accordion header, outside `OperationCodeSample`, so it\n * cannot read the resolved key from the footer slot like the modern layout does. We mirror it here\n * so the button opens the client with the same example the snippet displays, even when this\n * operation does not share the document-wide selection.\n */\nconst resolvedExampleKey = ref<string>('')\n\n/** Selected request body oneOf/anyOf variants; synced with schema dropdowns and code sample */\nconst requestBodyCompositionSelection = ref<RequestBodyCompositionSelection>({})\n\nconst requestBodyCompositionSelectionForCodeSample = computed(\n (): RequestBodyCompositionSelection => ({\n ...requestBodyCompositionSelection.value,\n }),\n)\n\nconst requestBodyCompositionSelectionKey = computed(() =>\n JSON.stringify(requestBodyCompositionSelectionForCodeSample.value),\n)\n\nprovide(REQUEST_BODY_COMPOSITION_INDEX_SYMBOL, requestBodyCompositionSelection)\n\nconst { copyToClipboard } = useClipboard()\n</script>\n<template>\n <SectionAccordion\n :id=\"id\"\n :aria-label=\"operationTitle\"\n class=\"reference-endpoint\"\n :modelValue=\"!isCollapsed\"\n transparent\n @update:modelValue=\"\n (value) => eventBus?.emit('toggle:nav-item', { id, open: value })\n \">\n <template #title>\n <div class=\"operation-title\">\n <div class=\"operation-details\">\n <HttpMethod\n class=\"endpoint-type\"\n :method=\"method\"\n short />\n <Anchor\n class=\"endpoint-anchor\"\n @copyAnchorUrl=\"() => eventBus?.emit('copy-url:nav-item', { id })\">\n <h3 class=\"endpoint-label\">\n <div class=\"endpoint-label-path\">\n <OperationPath\n :deprecated=\"isOperationDeprecated(operation)\"\n :path=\"path\" />\n </div>\n <div class=\"endpoint-label-name\">\n {{ operationTitle }}\n </div>\n <!-- Stability badge -->\n <Badge\n v-if=\"getOperationStability(operation)\"\n class=\"capitalize\"\n :class=\"getOperationStabilityColor(operation)\">\n {{ getOperationStability(operation) }}\n </Badge>\n\n <!-- Webhook badge -->\n <Badge\n v-if=\"isWebhook\"\n class=\"font-code text-green flex w-fit items-center justify-center gap-1\">\n <ScalarIconWebhooksLogo weight=\"bold\" />\n {{ translate('operation.webhook') }}\n </Badge>\n\n <!-- x-badges before -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"before\" />\n </h3>\n </Anchor>\n </div>\n </div>\n </template>\n <template #actions=\"{ active }\">\n <!-- Required auth indicator -->\n <SecurityRequirementBadge\n hideLabel\n :requiredSecurity />\n <!-- x-badges after -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"after\" />\n <template v-if=\"!options.hideTestRequestButton\">\n <TestRequestButton\n v-if=\"active && !isWebhook\"\n :id\n :eventBus\n :exampleName=\"resolvedExampleKey\"\n :method\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \" />\n <ScalarIconPlay\n v-else\n class=\"endpoint-try-hint size-4.5\" />\n </template>\n <span\n v-if=\"options.showOperationId && operation.operationId\"\n class=\"font-code text-sm\">\n {{ operation.operationId }}\n </span>\n <ScalarIconButton\n class=\"endpoint-copy p-0.5\"\n :icon=\"ScalarIconCopy\"\n :label=\"translate('actions.copyEndpointUrl')\"\n size=\"xs\"\n variant=\"ghost\"\n @click.stop=\"copyToClipboard(path)\" />\n </template>\n <template\n v-if=\"operation.description\"\n #description>\n <ScalarMarkdown\n :anchorPrefix=\"id\"\n :aria-label=\"translate('common.description')\"\n role=\"group\"\n transformType=\"heading\"\n :value=\"operation.description\"\n withAnchors\n withImages />\n </template>\n <div class=\"endpoint-content\">\n <div class=\"operation-details-card\">\n <div\n v-if=\"Object.keys(operationExtensions).length > 0\"\n class=\"operation-details-card-item\">\n <SpecificationExtension :value=\"operationExtensions\" />\n </div>\n <div\n v-if=\"hasRequiredScopes\"\n class=\"operation-details-card-item\">\n <OperationScopes :requiredSecurity />\n </div>\n <div class=\"operation-details-card-item\">\n <OperationParameters\n v-model:selectedContentType=\"selectedRequestBodyContentType\"\n :document\n :eventBus\n :options\n :parameters=\"operation.parameters\"\n :requestBody=\"getResolvedRef(operation.requestBody)\" />\n </div>\n <div class=\"operation-details-card-item\">\n <OperationResponses\n :document\n :eventBus\n :options\n :responses=\"operation.responses\" />\n </div>\n\n <!-- Callbacks -->\n <div\n v-if=\"operation?.callbacks\"\n class=\"operation-details-card-item\">\n <Callbacks\n :callbacks=\"operation.callbacks\"\n :document\n :eventBus\n :options\n :path />\n </div>\n </div>\n\n <ExampleResponses\n v-if=\"operation.responses\"\n class=\"operation-example-card\"\n :eventBus\n :responses=\"operation.responses\"\n :selectedExample />\n\n <!-- New Example Request -->\n <div>\n <!-- External Docs -->\n <LinkList v-if=\"operation.externalDocs\">\n <ExternalDocs :value=\"operation.externalDocs\" />\n </LinkList>\n <!-- Request Example -->\n <ScalarErrorBoundary>\n <CodeExample\n :key=\"requestBodyCompositionSelectionKey\"\n class=\"operation-example-card\"\n :clientOptions\n :eventBus\n fallback\n :isWebhook\n :method\n :operation\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \"\n :securitySchemes=\"selectedSecuritySchemes\"\n :selectedClient\n :selectedContentType=\"selectedRequestBodyContentType\"\n :selectedExample\n :selectedServer\n @update:exampleKey=\"resolvedExampleKey = $event\" />\n </ScalarErrorBoundary>\n </div>\n </div>\n </SectionAccordion>\n</template>\n\n<style scoped>\n@reference \"@/style.css\";\n\n.operation-title {\n display: flex;\n justify-content: space-between;\n}\n.operation-details {\n display: flex;\n align-items: center;\n margin-top: 0;\n gap: 9px;\n\n min-width: 0;\n flex-shrink: 1;\n}\n.operation-details :deep(.endpoint-anchor .scalar-button svg) {\n width: 16px;\n height: 16px;\n}\n.endpoint-type {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n\n position: relative;\n z-index: 0;\n\n width: 60px;\n padding: 6px;\n flex-shrink: 0;\n\n font-size: var(--scalar-small);\n\n text-transform: uppercase;\n font-weight: var(--scalar-bold);\n font-family: var(--scalar-font);\n}\n.endpoint-type::after {\n content: '';\n position: absolute;\n inset: 0;\n z-index: -1;\n\n background: currentColor;\n opacity: 0.15;\n\n border-radius: var(--scalar-radius);\n}\n\n.endpoint-anchor {\n display: flex;\n align-items: center;\n min-width: 0;\n flex-shrink: 1;\n}\n.endpoint-anchor.label {\n display: flex;\n}\n.endpoint-label {\n display: flex;\n align-items: baseline;\n gap: 9px;\n\n min-width: 0;\n flex-shrink: 1;\n\n color: var(--scalar-color-1);\n}\n\n.endpoint-label-path {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-mini);\n\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n.endpoint-label-path :deep(em) {\n color: var(--scalar-color-2);\n}\n.endpoint-label-name {\n color: var(--scalar-color-2);\n font-size: var(--scalar-small);\n\n /* Concatenate the name before we shrink the path */\n flex-shrink: 1000000000;\n\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.endpoint-try-hint {\n padding: 2px;\n flex-shrink: 0;\n}\n.endpoint-copy {\n color: currentColor;\n}\n.endpoint-copy :deep(svg) {\n stroke-width: 2px;\n}\n\n.endpoint-content {\n display: grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: row;\n gap: 9px;\n padding: 9px;\n}\n\n@variant lg {\n .endpoint-content {\n grid-auto-flow: column;\n }\n}\n\n@container (max-width: 900px) {\n .endpoint-content {\n grid-template-columns: 1fr;\n }\n}\n\n.endpoint-content > * {\n min-width: 0;\n}\n\n.operation-details-card {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-width: 0;\n}\n.operation-details-card-item :deep(.parameter-list),\n.operation-details-card-item :deep(.callbacks-list) {\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-lg);\n margin-top: 0;\n}\n\n.operation-details-card-item {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.operation-details-card-item :deep(.parameter-list-items) {\n margin-bottom: 0;\n}\n.operation-details-card :deep(.parameter-item:last-of-type .parameter-schema) {\n padding-bottom: 12px;\n}\n.operation-details-card :deep(.parameter-list .parameter-list) {\n margin-bottom: 12px;\n}\n.operation-details-card :deep(.parameter-item) {\n margin: 0;\n padding: 0;\n}\n.operation-details-card :deep(.property) {\n padding: 9px;\n margin: 0;\n}\n.operation-details-card :deep(.parameter-list-title),\n.operation-details-card :deep(.request-body-title),\n.operation-details-card :deep(.callbacks-title) {\n text-transform: uppercase;\n font-weight: var(--scalar-bold);\n font-size: var(--scalar-mini);\n color: var(--scalar-color-2);\n line-height: 1.33;\n padding: 9px;\n margin: 0;\n}\n\n.operation-details-card :deep(.callback-list-item-title) {\n padding-left: 28px;\n padding-right: 12px;\n}\n\n.operation-details-card :deep(.callback-list-item-icon) {\n left: 6px;\n}\n\n.operation-details-card :deep(.callback-operation-container) {\n padding-inline: 9px;\n padding-bottom: 9px;\n}\n\n.operation-details-card :deep(.callback-operation-container > .request-body),\n.operation-details-card :deep(.callback-operation-container > .parameter-list) {\n border: none;\n}\n\n.operation-details-card\n :deep(.callback-operation-container > .request-body > .request-body-header) {\n padding: 0;\n padding-bottom: 9px;\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n\n.operation-details-card :deep(.request-body-description) {\n margin-top: 0;\n padding: 9px 9px 0 9px;\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n\n.operation-details-card :deep(.request-body) {\n margin-top: 0;\n border-radius: var(--scalar-radius-lg);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.operation-details-card\n :deep(.request-body .schema-card--level-0 > .schema-card-description) {\n padding-inline: 9px;\n}\n\n.operation-details-card :deep(.request-body-header) {\n padding-bottom: 0;\n border-bottom: 0;\n}\n\n.operation-details-card :deep(.contents button) {\n margin-right: 9px;\n}\n\n.operation-details-card\n :deep(.schema-card--open + .schema-card:not(.schema-card--open)) {\n margin-inline: 9px;\n margin-bottom: 9px;\n}\n.operation-details-card :deep(.request-body-schema .property--level-0) {\n padding: 0;\n}\n.operation-details-card :deep(.request-body-schema .property--level-0) {\n padding: 0;\n}\n\n.operation-details-card :deep(.selected-content-type) {\n margin-right: 9px;\n}\n\n.operation-example-card {\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n max-height: calc(var(--refs-viewport-height) - 48px);\n}\n\n@media (max-width: 600px) {\n .operation-example-card {\n max-height: unset;\n position: static;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModernLayout.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/Operation/layouts/ModernLayout.vue"],"names":[],"mappings":"AA4ZA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACzF,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAiBrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAM1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAUxE,KAAK,WAAW,GAAG,IAAI,CACnB,cAAc,EACZ,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,WAAW,CACd,GAAG;IACF,wCAAwC;IACxC,SAAS,EAAE,eAAe,CAAA;IAC1B,4CAA4C;IAC5C,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,sDAAsD;IACtD,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B,CAAC;AAimBJ,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ModernLayout.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/Operation/layouts/ModernLayout.vue"],"names":[],"mappings":"AA4ZA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACzF,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,8DAA8D,CAAA;AAiBrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAM1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAUxE,KAAK,WAAW,GAAG,IAAI,CACnB,cAAc,EACZ,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,WAAW,CACd,GAAG;IACF,wCAAwC;IACxC,SAAS,EAAE,eAAe,CAAA;IAC1B,4CAA4C;IAC5C,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,sDAAsD;IACtD,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC3B,CAAC;AAmmBJ,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import ModernLayout_vue_vue_type_script_setup_true_lang_default from "./ModernLayout.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/features/Operation/layouts/ModernLayout.vue
5
- var ModernLayout_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ModernLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2382aa8f"]]);
5
+ var ModernLayout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(ModernLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2382aa8f"]]);
6
6
  //#endregion
7
7
  export { ModernLayout_default as default };
8
8
 
@@ -36,7 +36,7 @@ var _hoisted_6 = { class: "operation-description" };
36
36
  var _hoisted_7 = { class: "operation-details" };
37
37
  var _hoisted_8 = { class: "examples" };
38
38
  var _hoisted_9 = { class: "flex" };
39
- var ModernLayout_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
39
+ var ModernLayout_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
40
40
  __name: "ModernLayout",
41
41
  props: {
42
42
  id: {},
@@ -1 +1 @@
1
- {"version":3,"file":"ModernLayout.vue.script.js","names":[],"sources":["../../../../src/features/Operation/layouts/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CodeExample } from '@scalar/blocks/code-example'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { ScalarIconWebhooksLogo } from '@scalar/icons'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, provide, ref, useId } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Badge } from '@/components/Badge'\nimport { LinkList } from '@/components/LinkList'\nimport OperationPath from '@/components/OperationPath.vue'\nimport { Section, SectionContent, SectionHeaderTag } from '@/components/Section'\nimport AskAgentButton from '@/features/ask-agent-button/AskAgentButton.vue'\nimport { ExampleResponses } from '@/features/example-responses'\nimport { ExternalDocs } from '@/features/external-docs'\nimport { useLocalization } from '@/features/localization'\nimport Callbacks from '@/features/Operation/components/callbacks/Callbacks.vue'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport OperationScopes from '@/features/Operation/components/OperationScopes.vue'\nimport SecurityRequirementBadge from '@/features/Operation/components/SecurityRequirementBadge.vue'\nimport type { RequiredSecurity } from '@/features/Operation/helpers/get-required-security'\nimport {\n getOperationStability,\n getOperationStabilityColor,\n isOperationDeprecated,\n} from '@/features/Operation/helpers/operation-stability'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\nimport {\n REQUEST_BODY_COMPOSITION_INDEX_SYMBOL,\n type RequestBodyCompositionSelection,\n} from '@/features/Operation/request-body-composition-index'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport SpecificationExtension from '@/features/specification-extension/SpecificationExtension.vue'\nimport { TestRequestButton } from '@/features/test-request-button'\nimport { XBadges } from '@/features/x-badges'\n\nconst {\n clientOptions,\n document,\n eventBus,\n isWebhook,\n method,\n operation,\n options,\n path,\n requiredSecurity,\n selectedServer,\n selectedSecuritySchemes,\n selectedClient,\n selectedExample,\n} = defineProps<\n Omit<\n OperationProps,\n | 'document'\n | 'pathValue'\n | 'server'\n | 'isCollapsed'\n | 'securitySchemes'\n | 'authStore'\n > & {\n /** Operation object with path params */\n operation: OperationObject\n /** The selected server for the operation */\n selectedServer: ServerObject | null\n /** The selected security schemes for the operation */\n selectedSecuritySchemes: SecuritySchemeObjectSecret[]\n /** Required/optional security state for the badge next to the path */\n requiredSecurity: RequiredSecurity\n /** The document the operation belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n }\n>()\nconst { translate } = useLocalization()\n\nconst operationTitle = computed(() => operation.summary || path || '')\n\nconst labelId = useId()\n\nconst operationExtensions = computed(() => getXKeysFromObject(operation))\n\n/** Track the selected request body content type so the code sample stays in sync */\nconst selectedRequestBodyContentType = ref<string | undefined>()\n\n/** Selected request body oneOf/anyOf variants; synced with schema dropdowns and code sample */\nconst requestBodyCompositionSelection = ref<RequestBodyCompositionSelection>({})\n\nconst requestBodyCompositionSelectionForCodeSample = computed(\n (): RequestBodyCompositionSelection => ({\n ...requestBodyCompositionSelection.value,\n }),\n)\n\nconst requestBodyCompositionSelectionKey = computed(() =>\n JSON.stringify(requestBodyCompositionSelectionForCodeSample.value),\n)\n\nprovide(REQUEST_BODY_COMPOSITION_INDEX_SYMBOL, requestBodyCompositionSelection)\n</script>\n\n<template>\n <Section\n :id=\"id\"\n :aria-labelledby=\"labelId\"\n :label=\"operationTitle\"\n tabindex=\"-1\"\n @intersecting=\"() => eventBus?.emit('intersecting:nav-item', { id })\">\n <SectionContent>\n <!-- Badges -->\n <div class=\"flex flex-row justify-between gap-1\">\n <!-- Left -->\n <div class=\"flex gap-1\">\n <!-- Operation ID -->\n <Badge v-if=\"options?.showOperationId && operation.operationId\">\n {{ operation.operationId }}\n </Badge>\n <!-- Stability badge -->\n <Badge\n v-if=\"getOperationStability(operation)\"\n class=\"capitalize\"\n :class=\"getOperationStabilityColor(operation)\">\n {{ getOperationStability(operation) }}\n </Badge>\n <!-- Webhook badge -->\n <Badge\n v-if=\"isWebhook\"\n class=\"font-code text-green flex w-fit items-center justify-center gap-1\">\n <ScalarIconWebhooksLogo weight=\"bold\" />\n {{ translate('operation.webhook') }}\n </Badge>\n <!-- x-badges before -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"before\" />\n </div>\n <!-- Right -->\n <div class=\"flex gap-1\">\n <!-- x-badges after -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"after\" />\n </div>\n </div>\n <div class=\"operation-layout\">\n <!-- Title -->\n <div\n class=\"operation-title\"\n :class=\"isOperationDeprecated(operation) && 'deprecated'\">\n <Anchor\n @copyAnchorUrl=\"() => eventBus?.emit('copy-url:nav-item', { id })\">\n <SectionHeaderTag\n :id=\"labelId\"\n :level=\"3\">\n {{ operationTitle }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <!-- Required auth badge -->\n <div class=\"operation-auth\">\n <SecurityRequirementBadge :requiredSecurity />\n </div>\n\n <!-- Description -->\n <div class=\"operation-description\">\n <SpecificationExtension :value=\"operationExtensions\" />\n <ScalarMarkdown\n :anchorPrefix=\"id\"\n :aria-label=\"translate('common.description')\"\n role=\"group\"\n transformType=\"heading\"\n :value=\"operation.description\"\n withAnchors\n withImages />\n </div>\n\n <!--\n Parameters, request body, responses and callbacks.\n\n This block is kept before the examples in source order on purpose: the\n request body schema (via SchemaComposition) seeds the shared\n requestBodyCompositionSelection on mount, which drives the\n CodeExample's :key. Mounting the details first means the code\n sample reads the final key on its first render and is never remounted —\n a remount would reset the selected client and tear down an open client\n picker. The grid (see grid-template-areas below) still paints the\n examples on the right, independent of this source order.\n -->\n <div class=\"operation-details\">\n <OperationScopes :requiredSecurity />\n <OperationParameters\n v-model:selectedContentType=\"selectedRequestBodyContentType\"\n :breadcrumb=\"[id]\"\n :document\n :eventBus\n :options\n :parameters=\"operation.parameters\"\n :requestBody=\"getResolvedRef(operation.requestBody)\" />\n <OperationResponses\n :breadcrumb=\"[id]\"\n :collapsableItems=\"!options.expandAllResponses\"\n :document\n :eventBus\n :options\n :responses=\"operation.responses\" />\n\n <!-- Callbacks -->\n <ScalarErrorBoundary>\n <Callbacks\n v-if=\"operation.callbacks\"\n :callbacks=\"operation.callbacks\"\n class=\"mt-6\"\n :document\n :eventBus\n :options\n :path />\n </ScalarErrorBoundary>\n </div>\n\n <!-- Example request and responses -->\n <div class=\"examples\">\n <!-- External Docs -->\n <LinkList v-if=\"operation.externalDocs\">\n <ExternalDocs :value=\"operation.externalDocs\" />\n </LinkList>\n\n <!-- New Example Request -->\n <ScalarErrorBoundary>\n <CodeExample\n :key=\"requestBodyCompositionSelectionKey\"\n :clientOptions\n :eventBus\n fallback\n :isWebhook\n :method\n :operation\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \"\n :securitySchemes=\"selectedSecuritySchemes\"\n :selectedClient\n :selectedContentType=\"selectedRequestBodyContentType\"\n :selectedExample\n :selectedServer>\n <template #header>\n <OperationPath\n class=\"font-code text-c-2 [&_em]:text-c-1 min-w-0 [&_em]:not-italic\"\n :deprecated=\"operation?.deprecated\"\n :path=\"path\" />\n </template>\n <template\n v-if=\"!isWebhook\"\n #footer=\"{ exampleName }\">\n <div class=\"flex\">\n <AskAgentButton />\n <TestRequestButton\n v-if=\"!options.hideTestRequestButton\"\n :id\n :eventBus\n :exampleName\n :method\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \" />\n </div>\n </template>\n </CodeExample>\n </ScalarErrorBoundary>\n\n <ScalarErrorBoundary>\n <ExampleResponses\n v-if=\"operation.responses\"\n :eventBus\n :responses=\"operation.responses\"\n :selectedExample\n style=\"margin-top: 12px\" />\n </ScalarErrorBoundary>\n </div>\n </div>\n </SectionContent>\n </Section>\n</template>\n\n<style scoped>\n/*\n * The operation is a single grid so the request example can sit beside the\n * details on wide screens, then be lifted directly under the description when\n * the layout collapses (see the container query below). Vertical rhythm comes\n * from element margins rather than row-gap, because the details block carries\n * its own leading margin (mt-6) that already spaces it from whatever precedes\n * it — a row-gap would double that gap.\n */\n.operation-layout {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto 1fr;\n grid-template-areas:\n 'heading badge'\n 'description examples'\n 'details examples';\n column-gap: 48px;\n row-gap: 0;\n}\n\n.operation-title {\n grid-area: heading;\n margin-bottom: 12px;\n\n /* Mirror the shared section header typography (see SectionHeader.vue) */\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n color: var(--scalar-color-1);\n line-height: 1.45;\n}\n\n.operation-auth {\n grid-area: badge;\n justify-self: end;\n align-self: start;\n}\n\n.operation-description {\n grid-area: description;\n min-width: 0;\n}\n\n.operation-details {\n grid-area: details;\n min-width: 0;\n}\n\n.examples {\n grid-area: examples;\n align-self: start;\n min-width: 0;\n\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n\n.examples > * {\n max-height: calc((var(--refs-viewport-height) - 60px) / 2);\n position: relative;\n}\n\n.examples > *:first-of-type:last-of-type {\n max-height: calc((var(--refs-viewport-height) - 60px));\n}\n\n/*\n * Don't constrain card height on mobile\n * (or zoomed in screens)\n */\n@media (max-width: 600px) {\n .examples > * {\n max-height: unset;\n }\n}\n\n.deprecated * {\n text-decoration: line-through;\n}\n\n/*\n * On narrow containers the layout collapses to a single column: the request\n * example is lifted directly under the description, and the auth badge becomes\n * an eyebrow above the title.\n */\n@container narrow-references-container (max-width: 900px) {\n .operation-layout {\n grid-template-columns: 1fr;\n grid-template-areas:\n 'badge'\n 'heading'\n 'description'\n 'examples'\n 'details';\n column-gap: 0;\n }\n\n .operation-auth {\n justify-self: start;\n margin-bottom: 4px;\n }\n\n .operation-description {\n margin-bottom: 24px;\n }\n\n /* Don't make the examples sticky on narrow viewports */\n .examples {\n position: static;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFA,MAAM,EAAE,cAAc,iBAAgB;EAEtC,MAAM,iBAAiB,eAAe,QAAA,UAAU,WAAW,QAAA,QAAQ,GAAE;EAErE,MAAM,UAAU,OAAM;EAEtB,MAAM,sBAAsB,eAAe,mBAAmB,QAAA,UAAU,CAAA;;EAGxE,MAAM,iCAAiC,KAAwB;;EAG/D,MAAM,kCAAkC,IAAqC,EAAE,CAAA;EAE/E,MAAM,+CAA+C,gBACX,EACtC,GAAG,gCAAgC,OACpC,EACH;EAEA,MAAM,qCAAqC,eACzC,KAAK,UAAU,6CAA6C,MAAM,CACpE;AAEA,UAAQ,uCAAuC,gCAA+B;;uBAI5E,YAqLU,MAAA,gBAAA,EAAA;IApLP,IAAI,QAAA;IACJ,mBAAiB,MAAA,QAAO;IACxB,OAAO,eAAA;IACR,UAAS;IACR,gBAAY,OAAA,OAAA,OAAA,WAAQ,QAAA,UAAU,KAAI,yBAAA,EAAA,IAA4B,QAAA,IAAE,CAAA;;2BA+KhD,CA9KjB,YA8KiB,MAAA,uBAAA,EAAA,MAAA;4BA3IT,CAjCN,mBAiCM,OAjCN,YAiCM,CA/BJ,mBAuBM,OAvBN,YAuBM;MArBS,QAAA,SAAS,mBAAmB,QAAA,UAAU,eAAA,WAAA,EAAnD,YAEQ,MAAA,cAAA,EAAA,EAAA,KAAA,GAAA,EAAA;8BADqB,CAAA,gBAAA,gBAAxB,QAAA,UAAU,YAAW,EAAA,EAAA,CAAA,CAAA;;;MAIlB,MAAA,sBAAqB,CAAC,QAAA,UAAS,IAAA,WAAA,EADvC,YAKQ,MAAA,cAAA,EAAA;;OAHN,OAAK,eAAA,CAAC,cACE,MAAA,2BAA0B,CAAC,QAAA,UAAS,CAAA,CAAA;;8BACN,CAAA,gBAAA,gBAAnC,MAAA,sBAAqB,CAAC,QAAA,UAAS,CAAA,EAAA,EAAA,CAAA,CAAA;;;MAI5B,QAAA,aAAA,WAAA,EADR,YAKQ,MAAA,cAAA,EAAA;;OAHN,OAAM;;8BACkC,CAAxC,YAAwC,MAAA,uBAAA,EAAA,EAAhB,QAAO,QAAM,CAAA,EAAA,gBAAG,MACxC,gBAAG,MAAA,UAAS,CAAA,oBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;MAGd,YAEsB,MAAA,gBAAA,EAAA;OADnB,QAAQ,QAAA,UAAS;OAClB,UAAS;;SAGb,mBAKM,OALN,YAKM,CAHJ,YAEqB,MAAA,gBAAA,EAAA;MADlB,QAAQ,QAAA,UAAS;MAClB,UAAS;kCAGf,mBAyIM,OAzIN,YAyIM;MAvIJ,mBAWM,OAAA,EAVJ,OAAK,eAAA,CAAC,mBACE,MAAA,sBAAqB,CAAC,QAAA,UAAS,IAAA,aAAA,CAAA,EAAA,EAAA,CACvC,YAOS,MAAA,eAAA,EAAA,EANN,iBAAa,OAAA,OAAA,OAAA,WAAQ,QAAA,UAAU,KAAI,qBAAA,EAAA,IAAwB,QAAA,IAAE,CAAA,GAAA,EAAA;8BAK3C,CAJnB,YAImB,MAAA,yBAAA,EAAA;QAHhB,IAAI,MAAA,QAAO;QACX,OAAO;;+BACY,CAAA,gBAAA,gBAAjB,eAAA,MAAc,EAAA,EAAA,CAAA,CAAA;;;;;MAMvB,mBAEM,OAFN,YAEM,CADJ,YAA8C,kCAAA,EAAnB,kBAAA,QAAA,kBAAgB,EAAA,MAAA,GAAA,CAAA,mBAAA,CAAA,CAAA,CAAA;MAI7C,mBAUM,OAVN,YAUM,CATJ,YAAuD,gCAAA,EAA9B,OAAO,oBAAA,OAAmB,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,EACnD,YAOe,MAAA,eAAA,EAAA;OANZ,cAAc,QAAA;OACd,cAAY,MAAA,UAAS,CAAA,qBAAA;OACtB,MAAK;OACL,eAAc;OACb,OAAO,QAAA,UAAU;OAClB,aAAA;OACA,YAAA;;;;;;MAeJ,mBA6BM,OA7BN,YA6BM;OA5BJ,YAAqC,yBAAA,EAAnB,kBAAA,QAAA,kBAAgB,EAAA,MAAA,GAAA,CAAA,mBAAA,CAAA;OAClC,YAOyD,6BAAA;QAN/C,qBAAqB,+BAAA;6GAA8B,QAAA;QAC1D,YAAU,CAAG,QAAA,GAAE;QACf,UAAA,QAAA;QACA,UAAA,QAAA;QACA,SAAA,QAAA;QACA,YAAY,QAAA,UAAU;QACtB,aAAa,MAAA,eAAc,CAAC,QAAA,UAAU,YAAW;;;;;;;;;;OACpD,YAMqC,4BAAA;QALlC,YAAU,CAAG,QAAA,GAAE;QACf,kBAAgB,CAAG,QAAA,QAAQ;QAC3B,UAAA,QAAA;QACA,UAAA,QAAA;QACA,SAAA,QAAA;QACA,WAAW,QAAA,UAAU;;;;;;;;;OAGxB,YASsB,MAAA,oBAAA,EAAA,MAAA;gCAPZ,QAAA,UAAU,aAAA,WAAA,EADlB,YAOU,mBAAA;;SALP,WAAW,QAAA,UAAU;SACtB,OAAM;SACL,UAAA,QAAA;SACA,UAAA,QAAA;SACA,SAAA,QAAA;SACA,MAAA,QAAA;;;;;;;;;;;MAKP,mBA2DM,OA3DN,YA2DM;OAzDY,QAAA,UAAU,gBAAA,WAAA,EAA1B,YAEW,MAAA,iBAAA,EAAA,EAAA,KAAA,GAAA,EAAA;+BADuC,CAAhD,YAAgD,MAAA,qBAAA,EAAA,EAAjC,OAAO,QAAA,UAAU,cAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,CAAA,CAAA;;;OAIlC,YA0CsB,MAAA,oBAAA,EAAA,MAAA;+BADN,EAAA,WAAA,EAxCd,YAwCc,MAAA,YAAA,EAAA;SAvCX,KAAK,mCAAA;SACL,eAAA,QAAA;SACA,UAAA,QAAA;SACD,UAAA;SACC,WAAA,QAAA;SACA,QAAA,QAAA;SACA,WAAA,QAAA;SACA,MAAA,QAAA;SACA,iCAAkD,6CAAA;SAGlD,iBAAiB,QAAA;SACjB,gBAAA,QAAA;SACA,qBAAqB,+BAAA;SACrB,iBAAA,QAAA;SACA,gBAAA,QAAA;;SACU,QAAM,cAIE,CAHjB,YAGiB,uBAAA;UAFf,OAAM;UACL,YAAY,QAAA,WAAW;UACvB,MAAM,QAAA;;;aAGF,QAAA,YAAA;eACN;sBAaK,EAbK,kBAAW,CACtB,mBAYM,OAZN,YAYM,CAXJ,YAAkB,uBAAA,EAAA,CAET,QAAA,QAAQ,yBAAA,WAAA,EADjB,YASM,MAAA,0BAAA,EAAA;;UAPH,IAAA,QAAA;UACA,UAAA,QAAA;UACA;UACA,QAAA,QAAA;UACA,MAAA,QAAA;UACA,iCAAwD,6CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;OAQnE,YAOsB,MAAA,oBAAA,EAAA,MAAA;gCALZ,QAAA,UAAU,aAAA,WAAA,EADlB,YAK6B,MAAA,yBAAA,EAAA;;SAH1B,UAAA,QAAA;SACA,WAAW,QAAA,UAAU;SACrB,iBAAA,QAAA;SACD,OAAA,EAAA,cAAA,QAAwB"}
1
+ {"version":3,"file":"ModernLayout.vue.script.js","names":[],"sources":["../../../../src/features/Operation/layouts/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CodeExample } from '@scalar/blocks/code-example'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { ScalarIconWebhooksLogo } from '@scalar/icons'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, provide, ref, useId } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Badge } from '@/components/Badge'\nimport { LinkList } from '@/components/LinkList'\nimport OperationPath from '@/components/OperationPath.vue'\nimport { Section, SectionContent, SectionHeaderTag } from '@/components/Section'\nimport AskAgentButton from '@/features/ask-agent-button/AskAgentButton.vue'\nimport { ExampleResponses } from '@/features/example-responses'\nimport { ExternalDocs } from '@/features/external-docs'\nimport { useLocalization } from '@/features/localization'\nimport Callbacks from '@/features/Operation/components/callbacks/Callbacks.vue'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport OperationScopes from '@/features/Operation/components/OperationScopes.vue'\nimport SecurityRequirementBadge from '@/features/Operation/components/SecurityRequirementBadge.vue'\nimport type { RequiredSecurity } from '@/features/Operation/helpers/get-required-security'\nimport {\n getOperationStability,\n getOperationStabilityColor,\n isOperationDeprecated,\n} from '@/features/Operation/helpers/operation-stability'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\nimport {\n REQUEST_BODY_COMPOSITION_INDEX_SYMBOL,\n type RequestBodyCompositionSelection,\n} from '@/features/Operation/request-body-composition-index'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport SpecificationExtension from '@/features/specification-extension/SpecificationExtension.vue'\nimport { TestRequestButton } from '@/features/test-request-button'\nimport { XBadges } from '@/features/x-badges'\n\nconst {\n clientOptions,\n document,\n eventBus,\n isWebhook,\n method,\n operation,\n options,\n path,\n requiredSecurity,\n selectedServer,\n selectedSecuritySchemes,\n selectedClient,\n selectedExample,\n} = defineProps<\n Omit<\n OperationProps,\n | 'document'\n | 'pathValue'\n | 'server'\n | 'isCollapsed'\n | 'securitySchemes'\n | 'authStore'\n > & {\n /** Operation object with path params */\n operation: OperationObject\n /** The selected server for the operation */\n selectedServer: ServerObject | null\n /** The selected security schemes for the operation */\n selectedSecuritySchemes: SecuritySchemeObjectSecret[]\n /** Required/optional security state for the badge next to the path */\n requiredSecurity: RequiredSecurity\n /** The document the operation belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n }\n>()\nconst { translate } = useLocalization()\n\nconst operationTitle = computed(() => operation.summary || path || '')\n\nconst labelId = useId()\n\nconst operationExtensions = computed(() => getXKeysFromObject(operation))\n\n/** Track the selected request body content type so the code sample stays in sync */\nconst selectedRequestBodyContentType = ref<string | undefined>()\n\n/** Selected request body oneOf/anyOf variants; synced with schema dropdowns and code sample */\nconst requestBodyCompositionSelection = ref<RequestBodyCompositionSelection>({})\n\nconst requestBodyCompositionSelectionForCodeSample = computed(\n (): RequestBodyCompositionSelection => ({\n ...requestBodyCompositionSelection.value,\n }),\n)\n\nconst requestBodyCompositionSelectionKey = computed(() =>\n JSON.stringify(requestBodyCompositionSelectionForCodeSample.value),\n)\n\nprovide(REQUEST_BODY_COMPOSITION_INDEX_SYMBOL, requestBodyCompositionSelection)\n</script>\n\n<template>\n <Section\n :id=\"id\"\n :aria-labelledby=\"labelId\"\n :label=\"operationTitle\"\n tabindex=\"-1\"\n @intersecting=\"() => eventBus?.emit('intersecting:nav-item', { id })\">\n <SectionContent>\n <!-- Badges -->\n <div class=\"flex flex-row justify-between gap-1\">\n <!-- Left -->\n <div class=\"flex gap-1\">\n <!-- Operation ID -->\n <Badge v-if=\"options?.showOperationId && operation.operationId\">\n {{ operation.operationId }}\n </Badge>\n <!-- Stability badge -->\n <Badge\n v-if=\"getOperationStability(operation)\"\n class=\"capitalize\"\n :class=\"getOperationStabilityColor(operation)\">\n {{ getOperationStability(operation) }}\n </Badge>\n <!-- Webhook badge -->\n <Badge\n v-if=\"isWebhook\"\n class=\"font-code text-green flex w-fit items-center justify-center gap-1\">\n <ScalarIconWebhooksLogo weight=\"bold\" />\n {{ translate('operation.webhook') }}\n </Badge>\n <!-- x-badges before -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"before\" />\n </div>\n <!-- Right -->\n <div class=\"flex gap-1\">\n <!-- x-badges after -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"after\" />\n </div>\n </div>\n <div class=\"operation-layout\">\n <!-- Title -->\n <div\n class=\"operation-title\"\n :class=\"isOperationDeprecated(operation) && 'deprecated'\">\n <Anchor\n @copyAnchorUrl=\"() => eventBus?.emit('copy-url:nav-item', { id })\">\n <SectionHeaderTag\n :id=\"labelId\"\n :level=\"3\">\n {{ operationTitle }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <!-- Required auth badge -->\n <div class=\"operation-auth\">\n <SecurityRequirementBadge :requiredSecurity />\n </div>\n\n <!-- Description -->\n <div class=\"operation-description\">\n <SpecificationExtension :value=\"operationExtensions\" />\n <ScalarMarkdown\n :anchorPrefix=\"id\"\n :aria-label=\"translate('common.description')\"\n role=\"group\"\n transformType=\"heading\"\n :value=\"operation.description\"\n withAnchors\n withImages />\n </div>\n\n <!--\n Parameters, request body, responses and callbacks.\n\n This block is kept before the examples in source order on purpose: the\n request body schema (via SchemaComposition) seeds the shared\n requestBodyCompositionSelection on mount, which drives the\n CodeExample's :key. Mounting the details first means the code\n sample reads the final key on its first render and is never remounted —\n a remount would reset the selected client and tear down an open client\n picker. The grid (see grid-template-areas below) still paints the\n examples on the right, independent of this source order.\n -->\n <div class=\"operation-details\">\n <OperationScopes :requiredSecurity />\n <OperationParameters\n v-model:selectedContentType=\"selectedRequestBodyContentType\"\n :breadcrumb=\"[id]\"\n :document\n :eventBus\n :options\n :parameters=\"operation.parameters\"\n :requestBody=\"getResolvedRef(operation.requestBody)\" />\n <OperationResponses\n :breadcrumb=\"[id]\"\n :collapsableItems=\"!options.expandAllResponses\"\n :document\n :eventBus\n :options\n :responses=\"operation.responses\" />\n\n <!-- Callbacks -->\n <ScalarErrorBoundary>\n <Callbacks\n v-if=\"operation.callbacks\"\n :callbacks=\"operation.callbacks\"\n class=\"mt-6\"\n :document\n :eventBus\n :options\n :path />\n </ScalarErrorBoundary>\n </div>\n\n <!-- Example request and responses -->\n <div class=\"examples\">\n <!-- External Docs -->\n <LinkList v-if=\"operation.externalDocs\">\n <ExternalDocs :value=\"operation.externalDocs\" />\n </LinkList>\n\n <!-- New Example Request -->\n <ScalarErrorBoundary>\n <CodeExample\n :key=\"requestBodyCompositionSelectionKey\"\n :clientOptions\n :eventBus\n fallback\n :isWebhook\n :method\n :operation\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \"\n :securitySchemes=\"selectedSecuritySchemes\"\n :selectedClient\n :selectedContentType=\"selectedRequestBodyContentType\"\n :selectedExample\n :selectedServer>\n <template #header>\n <OperationPath\n class=\"font-code text-c-2 [&_em]:text-c-1 min-w-0 [&_em]:not-italic\"\n :deprecated=\"operation?.deprecated\"\n :path=\"path\" />\n </template>\n <template\n v-if=\"!isWebhook\"\n #footer=\"{ exampleName }\">\n <div class=\"flex\">\n <AskAgentButton />\n <TestRequestButton\n v-if=\"!options.hideTestRequestButton\"\n :id\n :eventBus\n :exampleName\n :method\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \" />\n </div>\n </template>\n </CodeExample>\n </ScalarErrorBoundary>\n\n <ScalarErrorBoundary>\n <ExampleResponses\n v-if=\"operation.responses\"\n :eventBus\n :responses=\"operation.responses\"\n :selectedExample\n style=\"margin-top: 12px\" />\n </ScalarErrorBoundary>\n </div>\n </div>\n </SectionContent>\n </Section>\n</template>\n\n<style scoped>\n/*\n * The operation is a single grid so the request example can sit beside the\n * details on wide screens, then be lifted directly under the description when\n * the layout collapses (see the container query below). Vertical rhythm comes\n * from element margins rather than row-gap, because the details block carries\n * its own leading margin (mt-6) that already spaces it from whatever precedes\n * it — a row-gap would double that gap.\n */\n.operation-layout {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto 1fr;\n grid-template-areas:\n 'heading badge'\n 'description examples'\n 'details examples';\n column-gap: 48px;\n row-gap: 0;\n}\n\n.operation-title {\n grid-area: heading;\n margin-bottom: 12px;\n\n /* Mirror the shared section header typography (see SectionHeader.vue) */\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n color: var(--scalar-color-1);\n line-height: 1.45;\n}\n\n.operation-auth {\n grid-area: badge;\n justify-self: end;\n align-self: start;\n}\n\n.operation-description {\n grid-area: description;\n min-width: 0;\n}\n\n.operation-details {\n grid-area: details;\n min-width: 0;\n}\n\n.examples {\n grid-area: examples;\n align-self: start;\n min-width: 0;\n\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n\n.examples > * {\n max-height: calc((var(--refs-viewport-height) - 60px) / 2);\n position: relative;\n}\n\n.examples > *:first-of-type:last-of-type {\n max-height: calc((var(--refs-viewport-height) - 60px));\n}\n\n/*\n * Don't constrain card height on mobile\n * (or zoomed in screens)\n */\n@media (max-width: 600px) {\n .examples > * {\n max-height: unset;\n }\n}\n\n.deprecated * {\n text-decoration: line-through;\n}\n\n/*\n * On narrow containers the layout collapses to a single column: the request\n * example is lifted directly under the description, and the auth badge becomes\n * an eyebrow above the title.\n */\n@container narrow-references-container (max-width: 900px) {\n .operation-layout {\n grid-template-columns: 1fr;\n grid-template-areas:\n 'badge'\n 'heading'\n 'description'\n 'examples'\n 'details';\n column-gap: 0;\n }\n\n .operation-auth {\n justify-self: start;\n margin-bottom: 4px;\n }\n\n .operation-description {\n margin-bottom: 24px;\n }\n\n /* Don't make the examples sticky on narrow viewports */\n .examples {\n position: static;\n }\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-body-composition-index.js","names":[],"sources":["../../../src/features/Operation/request-body-composition-index.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\n\nexport type RequestBodyCompositionSelection = Record<string, number>\n\n/**\n * Shares the selected request-body composition variants between the schema\n * dropdowns and the generated request snippet for a single operation layout.\n */\nexport const REQUEST_BODY_COMPOSITION_INDEX_SYMBOL = Symbol() as InjectionKey<Ref<RequestBodyCompositionSelection>>\n"],"mappings":";;;;;AAQA,IAAa,wCAAwC,QAAQ"}
1
+ {"version":3,"file":"request-body-composition-index.js","names":[],"sources":["../../../src/features/Operation/request-body-composition-index.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\n\nexport type RequestBodyCompositionSelection = Record<string, number>\n\n/**\n * Shares the selected request-body composition variants between the schema\n * dropdowns and the generated request snippet for a single operation layout.\n */\nexport const REQUEST_BODY_COMPOSITION_INDEX_SYMBOL = Symbol() as InjectionKey<Ref<RequestBodyCompositionSelection>>\n"],"mappings":";;;;;AAQA,IAAa,wCAAwC,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchButton.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/Search/components/SearchButton.vue"],"names":[],"mappings":"AAgIA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAOnG,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAAA;IAC7C,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAC;AA+LF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"SearchButton.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/Search/components/SearchButton.vue"],"names":[],"mappings":"AAgIA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAOnG,KAAK,WAAW,GAAG;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAAA;IAC7C,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAC;AAiMF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -15,7 +15,7 @@ var _hoisted_2 = {
15
15
  };
16
16
  var _hoisted_3 = { class: "sr-only" };
17
17
  var _hoisted_4 = { class: "sr-only" };
18
- var SearchButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
18
+ var SearchButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
19
19
  __name: "SearchButton",
20
20
  props: {
21
21
  forceIcon: { type: Boolean },