@scalar/api-reference 1.63.0 → 1.64.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/CHANGELOG.md +90 -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.d.ts.map +1 -1
  43. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js +1 -1
  44. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js.map +1 -1
  45. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js +1 -1
  46. package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.script.js.map +1 -1
  47. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js +1 -1
  48. package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js.map +1 -1
  49. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.d.ts.map +1 -1
  50. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +1 -1
  51. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js +1 -1
  52. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js.map +1 -1
  53. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.d.ts.map +1 -1
  54. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js +1 -1
  55. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.js.map +1 -1
  56. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js +5 -5
  57. package/dist/blocks/scalar-info-block/components/IntroductionLoading.vue.script.js.map +1 -1
  58. package/dist/blocks/scalar-info-block/components/SpecificationVersion.vue.script.js +1 -1
  59. package/dist/blocks/scalar-info-block/components/SpecificationVersion.vue.script.js.map +1 -1
  60. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.d.ts.map +1 -1
  61. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js +1 -1
  62. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js.map +1 -1
  63. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js +16 -9
  64. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js.map +1 -1
  65. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.js.map +1 -1
  66. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.js.map +1 -1
  67. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.js.map +1 -1
  68. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  69. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js +1 -1
  70. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js.map +1 -1
  71. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.d.ts.map +1 -1
  72. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js +1 -1
  73. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js.map +1 -1
  74. package/dist/browser/chunks/AgentScalarChatInterface-D1mzA447.js +27 -0
  75. package/dist/browser/chunks/ScalarTextInput.vue-OfiA6SHf.js +27 -0
  76. package/dist/browser/chunks/{basic-shape-diamond.svg-BTEOT1FL.js → basic-shape-diamond.svg-o5eiY2I7.js} +2 -2
  77. package/dist/browser/chunks/{basic-shape-hexagon.svg-BSPzaCgF.js → basic-shape-hexagon.svg-CGuS7mbd.js} +2 -2
  78. package/dist/browser/chunks/{basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js → basic-shape-primary-circle-ellipse-round.svg-DDIpXiBm.js} +2 -2
  79. package/dist/browser/chunks/{basic-shape-primary-square-rectangle.svg-n2YRykHD.js → basic-shape-primary-square-rectangle.svg-DzVEJHMB.js} +2 -2
  80. package/dist/browser/chunks/{basic-shape-shield.svg-Bec9cJDA.js → basic-shape-shield.svg-BZzapRqv.js} +2 -2
  81. package/dist/browser/chunks/browser-CTPPEMEL.js +129 -0
  82. package/dist/browser/chunks/{computer-device-desktop-monitor.svg-m6j893Hb.js → computer-device-desktop-monitor.svg-OSM05r1I.js} +2 -2
  83. package/dist/browser/chunks/{computer-device-desktop.svg-Dk1VVO7k.js → computer-device-desktop.svg-BMFzGZ27.js} +2 -2
  84. package/dist/browser/chunks/{computer-device-laptop.svg-BNGVUCYS.js → computer-device-laptop.svg-CMAjzuB-.js} +2 -2
  85. 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
  86. package/dist/browser/chunks/{computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js → computer-device-mobile-phone-android-samsung.svg-gbMJLjJw.js} +2 -2
  87. 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
  88. 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
  89. package/dist/browser/chunks/{computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js → computer-device-mobile-tablet-touch.svg-Zi88BP4L.js} +2 -2
  90. package/dist/browser/chunks/{computer-device-mobile-tablet.svg-DCr0XlRc.js → computer-device-mobile-tablet.svg-C1ggisWP.js} +2 -2
  91. package/dist/browser/chunks/{computer-device-network-ethernet-cat6.svg-AK9l0iOl.js → computer-device-network-ethernet-cat6.svg-BIUymdC1.js} +2 -2
  92. package/dist/browser/chunks/{computer-device-network-lan-www.svg-gUIdFBlE.js → computer-device-network-lan-www.svg-CoFUlIVO.js} +2 -2
  93. package/dist/browser/chunks/{computer-device-network-wifi-connection.svg-Be-EMm4e.js → computer-device-network-wifi-connection.svg-DeWsacxI.js} +2 -2
  94. package/dist/browser/chunks/{computer-device-network-wifi-router.svg-Dc2VzyqK.js → computer-device-network-wifi-router.svg-BjpZEot4.js} +2 -2
  95. package/dist/browser/chunks/{ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js → ecology-science-erlenmeyer-flask.svg-ftjGGirE.js} +2 -2
  96. package/dist/browser/chunks/{image-flash-lightning.svg-EETR_y1q.js → image-flash-lightning.svg-DYQ0W4Fi.js} +2 -2
  97. package/dist/browser/chunks/{image-picture-flower.svg-DN1AYzJU.js → image-picture-flower.svg-Bfe5SVDf.js} +2 -2
  98. package/dist/browser/chunks/{interface-alert-exclamation-diamond.svg-C5NozMV_.js → interface-alert-exclamation-diamond.svg-D1HePDNM.js} +2 -2
  99. package/dist/browser/chunks/{interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js → interface-alert-exclamation-triangle-warning.svg-CILUsxBC.js} +2 -2
  100. package/dist/browser/chunks/{interface-alert-information-circle.svg-ckkkt9Mv.js → interface-alert-information-circle.svg-9LrbJM5J.js} +2 -2
  101. package/dist/browser/chunks/{interface-award-crown.svg-pjvn9hY-.js → interface-award-crown.svg-DllWgiU1.js} +2 -2
  102. package/dist/browser/chunks/{interface-bookmark.svg-BK9HKQBT.js → interface-bookmark-tag.svg-Dc-JL-Kc.js} +2 -2
  103. package/dist/browser/chunks/{interface-bookmark-tag.svg-r2r-lQq4.js → interface-bookmark.svg-Dc-JL-Kc.js} +2 -2
  104. package/dist/browser/chunks/{interface-calendar-date-one.svg-DNnF0M1I.js → interface-calendar-date-one.svg-DO2jelhF.js} +2 -2
  105. package/dist/browser/chunks/{interface-content-book-open-pages.svg-CQj_w9Vp.js → interface-content-book-open-pages.svg-BJjMjIgA.js} +2 -2
  106. package/dist/browser/chunks/{interface-content-book-page.svg-DppoeJRe.js → interface-content-book-page.svg-C6rKB2fs.js} +2 -2
  107. package/dist/browser/chunks/{interface-content-file.svg-CvcD7OiY.js → interface-content-file.svg-CS0q2FKx.js} +2 -2
  108. package/dist/browser/chunks/{interface-content-folder.svg-BmtS5I9A.js → interface-content-folder.svg-CThTWsJX.js} +2 -2
  109. package/dist/browser/chunks/{interface-copy-clipboard.svg-Be6EI50X.js → interface-copy-clipboard.svg-DdN67cLv.js} +2 -2
  110. package/dist/browser/chunks/{interface-edit-attachment.svg-G5TKzpWX.js → interface-edit-attachment.svg-Ciizphuh.js} +2 -2
  111. package/dist/browser/chunks/{interface-edit-binocular.svg-jzL-DvGB.js → interface-edit-binocular.svg-Dw1nDqmL.js} +2 -2
  112. package/dist/browser/chunks/{interface-edit-magic-wand.svg-BOTlymvp.js → interface-edit-magic-wand.svg-BYS0jm_E.js} +2 -2
  113. package/dist/browser/chunks/{interface-edit-tool-paint-roller.svg-s9dwryx7.js → interface-edit-tool-paint-roller.svg-NioSHZC2.js} +2 -2
  114. package/dist/browser/chunks/{interface-edit-tool-pencil.svg-C7v0dbB3.js → interface-edit-tool-pencil.svg-P87QFlat.js} +2 -2
  115. package/dist/browser/chunks/{interface-favorite-award.svg-CYHUgUG0.js → interface-favorite-award.svg-DBBAChSi.js} +2 -2
  116. package/dist/browser/chunks/{interface-favorite-flag.svg-C10zlKOb.js → interface-favorite-flag.svg-HlhPomHY.js} +2 -2
  117. package/dist/browser/chunks/{interface-favorite-heart.svg-eoduXxlz.js → interface-favorite-heart.svg-Cqu2GYDo.js} +2 -2
  118. package/dist/browser/chunks/{interface-favorite-star.svg-BSmxJetr.js → interface-favorite-star.svg-BD4JY_J2.js} +2 -2
  119. package/dist/browser/chunks/{interface-favorite-stars-sparkles.svg-JTFLj3Ls.js → interface-favorite-stars-sparkles.svg-BXi6aO8q.js} +2 -2
  120. package/dist/browser/chunks/{interface-hierarchy-flowchart.svg-Cg_Wy0kN.js → interface-hierarchy-flowchart.svg-CDEVSsD4.js} +2 -2
  121. package/dist/browser/chunks/{interface-home-house.svg-DytoGRnv.js → interface-home-house.svg-DJetUjwj.js} +2 -2
  122. package/dist/browser/chunks/{interface-hyperlink.svg-CuEfmmQI.js → interface-hyperlink.svg-DJ1LREmz.js} +2 -2
  123. package/dist/browser/chunks/{interface-lighting-brightness.svg-DSK0h_Pa.js → interface-lighting-brightness.svg-TGKAaHYV.js} +2 -2
  124. package/dist/browser/chunks/{interface-lock-closed.svg-Cn6TaLYv.js → interface-lock-closed.svg-3hehWr3i.js} +2 -2
  125. package/dist/browser/chunks/{interface-lock-open-unlock.svg-CVkG5-9W.js → interface-lock-open-unlock.svg-CuXKcv1m.js} +2 -2
  126. package/dist/browser/chunks/{interface-login-key.svg-y-cwwXjN.js → interface-login-key.svg-Chwvvywd.js} +2 -2
  127. package/dist/browser/chunks/{interface-search.svg-S-puVFJB.js → interface-search.svg-JDE3fk0u.js} +2 -2
  128. package/dist/browser/chunks/{interface-setting-cog.svg-CTH4_lLg.js → interface-setting-cog.svg-BBCkeh4K.js} +2 -2
  129. package/dist/browser/chunks/{interface-share-megaphone-bullhorn.svg-Pbp39MyC.js → interface-share-megaphone-bullhorn.svg-CDdxF-4y.js} +2 -2
  130. package/dist/browser/chunks/{interface-share-rocket.svg-BgCsIRZO.js → interface-share-rocket.svg-DSbdn_o7.js} +2 -2
  131. package/dist/browser/chunks/{interface-share-satellite.svg-DAMN9d5G.js → interface-share-satellite.svg-CefBVZvY.js} +2 -2
  132. package/dist/browser/chunks/{interface-share-space-ship.svg-Dt-Mejxk.js → interface-share-space-ship.svg-tFA2dsSU.js} +2 -2
  133. package/dist/browser/chunks/{interface-share.svg-vFYTXSti.js → interface-share.svg-BpOGopyv.js} +2 -2
  134. package/dist/browser/chunks/{interface-signal-square.svg-DNG4LpAe.js → interface-signal-square.svg-BcX_BoaC.js} +2 -2
  135. package/dist/browser/chunks/{interface-time-clock-circle.svg-Bpz-nLxo.js → interface-time-clock-circle.svg-C8B_L_RM.js} +2 -2
  136. package/dist/browser/chunks/{interface-time-hour-glass.svg-D7agfKsH.js → interface-time-hour-glass.svg-qw-oeoVn.js} +2 -2
  137. package/dist/browser/chunks/{interface-users-multiple.svg-CkPJBBnG.js → interface-users-multiple.svg-Cs13Eewq.js} +2 -2
  138. package/dist/browser/chunks/{interface-weather-moon.svg-CaTZFMPO.js → interface-weather-moon.svg-CV-oDTae.js} +2 -2
  139. package/dist/browser/chunks/{mail-chat-bubble-square.svg-DC8RIihp.js → mail-chat-bubble-square.svg-dpauJhin.js} +2 -2
  140. package/dist/browser/chunks/{mail-send-email-paper-airplane.svg-D8OLs9jz.js → mail-send-email-paper-airplane.svg-BBofxojL.js} +2 -2
  141. package/dist/browser/chunks/{mail-send-envelope.svg-CV33h5Sx.js → mail-send-envelope.svg-DyENgYOI.js} +2 -2
  142. package/dist/browser/chunks/modal-BS4e2gew.js +99 -0
  143. package/dist/browser/chunks/{money-cashier-receipt.svg-CJL8C2gs.js → money-cashier-receipt.svg-dNTr5aio.js} +2 -2
  144. package/dist/browser/chunks/{money-currency-dollar-pay.svg-VdBplCTx.js → money-currency-dollar-pay.svg-1ZESPtFY.js} +2 -2
  145. package/dist/browser/chunks/{money-graph-arrow-increase.svg-DcRov3zk.js → money-graph-arrow-increase.svg-kEZ2u2z2.js} +2 -2
  146. package/dist/browser/chunks/{money-graph-bar-chart-increase.svg-Cc7KxjX-.js → money-graph-bar-chart-increase.svg-B-t2UWB3.js} +2 -2
  147. package/dist/browser/chunks/{nature-ecology-leaf.svg-DR3cTZxt.js → nature-ecology-leaf.svg-DZ2GJV8m.js} +2 -2
  148. package/dist/browser/chunks/{phone-telephone.svg-DyY0gUlk.js → phone-telephone.svg-C12QjpN7.js} +2 -2
  149. package/dist/browser/chunks/{programming-bug.svg-BHLT-Qhp.js → programming-bug.svg-wLTsruN9.js} +2 -2
  150. package/dist/browser/chunks/{programming-cloud.svg-B6YW33ba.js → programming-cloud.svg-3XU6dNUg.js} +2 -2
  151. package/dist/browser/chunks/{programming-computer-database-server.svg-B6o5Sdn-.js → programming-computer-database-server.svg-B1JrHSPd.js} +2 -2
  152. package/dist/browser/chunks/{programming-computer-database.svg-Cl7OVtpJ.js → programming-computer-database.svg-BxHSuFl7.js} +2 -2
  153. package/dist/browser/chunks/{programming-module-four-layout.svg-BQrerL1x.js → programming-module-four-layout.svg-CeV35q45.js} +2 -2
  154. package/dist/browser/chunks/{programming-module-three.svg-B2KTQzBM.js → programming-module-three.svg-YIBpLt45.js} +2 -2
  155. package/dist/browser/chunks/{programming-module.svg-CiID7kPm.js → programming-module.svg-CU_pEibI.js} +2 -2
  156. package/dist/browser/chunks/{programming-script-code.svg-D1M5rtkN.js → programming-script-code.svg-CLzinmHT.js} +2 -2
  157. package/dist/browser/chunks/runtime-core.esm-bundler-CqqEw5ds.js +17 -0
  158. package/dist/browser/chunks/{shopping-cart.svg-BEegiIR9.js → shopping-cart.svg-Brzddu3K.js} +2 -2
  159. package/dist/browser/chunks/{shopping-gift-present.svg-BUHwuLix.js → shopping-gift-present.svg-l2K48g7L.js} +2 -2
  160. package/dist/browser/chunks/{shopping-shipping-box-parcel-package.svg-D6fxWdYx.js → shopping-shipping-box-parcel-package.svg-DesGopPo.js} +2 -2
  161. package/dist/browser/chunks/{tag-new-circle.svg-jsg1bGs0.js → tag-new-circle.svg-DE-VaLZU.js} +2 -2
  162. package/dist/browser/chunks/{travel-map-earth-globe.svg-ClbMiU-f.js → travel-map-earth-globe.svg-DLaOMzx6.js} +2 -2
  163. package/dist/browser/chunks/vendor-DWZAEyBy.js +306 -0
  164. package/dist/browser/standalone.esm.js +26 -24
  165. package/dist/browser/standalone.js +310 -311
  166. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js +1 -1
  167. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js.map +1 -1
  168. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.script.js +1 -1
  169. package/dist/components/AgentScalar/AgentScalarChatInterface.vue.script.js.map +1 -1
  170. package/dist/components/AgentScalar/AgentScalarDrawer.vue.d.ts.map +1 -1
  171. package/dist/components/AgentScalar/AgentScalarDrawer.vue.js +1 -1
  172. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js +1 -1
  173. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js.map +1 -1
  174. package/dist/components/AgentScalar/OpenMCPButton.vue.d.ts.map +1 -1
  175. package/dist/components/AgentScalar/OpenMCPButton.vue.js +1 -1
  176. package/dist/components/AgentScalar/OpenMCPButton.vue.js.map +1 -1
  177. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js +47 -32
  178. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js.map +1 -1
  179. package/dist/components/Anchor/Anchor.vue.d.ts.map +1 -1
  180. package/dist/components/Anchor/Anchor.vue.script.js +1 -1
  181. package/dist/components/Anchor/Anchor.vue.script.js.map +1 -1
  182. package/dist/components/Anchor/WithBreadcrumb.vue.script.js +2 -2
  183. package/dist/components/Anchor/WithBreadcrumb.vue.script.js.map +1 -1
  184. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  185. package/dist/components/ApiReference.vue.js +1 -1
  186. package/dist/components/ApiReference.vue.js.map +1 -1
  187. package/dist/components/ApiReference.vue.script.js +141 -33
  188. package/dist/components/ApiReference.vue.script.js.map +1 -1
  189. package/dist/components/Badge/Badge.vue.d.ts.map +1 -1
  190. package/dist/components/Badge/Badge.vue.js +1 -1
  191. package/dist/components/Badge/Badge.vue.js.map +1 -1
  192. package/dist/components/Badge/Badge.vue.script.js +9 -9
  193. package/dist/components/Badge/Badge.vue.script.js.map +1 -1
  194. package/dist/components/ClassicHeader.vue.js +1 -1
  195. package/dist/components/ClassicHeader.vue.js.map +1 -1
  196. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js +1 -1
  197. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js +1 -1
  198. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js.map +1 -1
  199. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js +1 -1
  200. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js.map +1 -1
  201. package/dist/components/Content/AsyncApi/Channel.vue.d.ts.map +1 -1
  202. package/dist/components/Content/AsyncApi/Channel.vue.js +1 -1
  203. package/dist/components/Content/AsyncApi/Channel.vue.script.js +1 -1
  204. package/dist/components/Content/AsyncApi/Channel.vue.script.js.map +1 -1
  205. package/dist/components/Content/AsyncApi/ChannelsList.vue.js +1 -1
  206. package/dist/components/Content/AsyncApi/ChannelsList.vue.script.js +1 -1
  207. package/dist/components/Content/AsyncApi/ChannelsList.vue.script.js.map +1 -1
  208. package/dist/components/Content/AsyncApi/Message.vue.d.ts.map +1 -1
  209. package/dist/components/Content/AsyncApi/Message.vue.js +1 -1
  210. package/dist/components/Content/AsyncApi/Message.vue.script.js +2 -2
  211. package/dist/components/Content/AsyncApi/Message.vue.script.js.map +1 -1
  212. package/dist/components/Content/AsyncApi/Operation.vue.d.ts.map +1 -1
  213. package/dist/components/Content/AsyncApi/Operation.vue.js +1 -1
  214. package/dist/components/Content/AsyncApi/Operation.vue.js.map +1 -1
  215. package/dist/components/Content/AsyncApi/Operation.vue.script.js +6 -1
  216. package/dist/components/Content/AsyncApi/Operation.vue.script.js.map +1 -1
  217. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.js.map +1 -1
  218. package/dist/components/Content/AsyncApi/helpers/async-api-render-options.js.map +1 -1
  219. package/dist/components/Content/AsyncApi/helpers/filter-children-by-type.js.map +1 -1
  220. package/dist/components/Content/AsyncApi/helpers/get-async-api-labels.js.map +1 -1
  221. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.d.ts +17 -0
  222. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.d.ts.map +1 -0
  223. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js +21 -0
  224. package/dist/components/Content/AsyncApi/helpers/get-async-api-required-security.js.map +1 -0
  225. package/dist/components/Content/AsyncApi/helpers/pick-heading.js.map +1 -1
  226. package/dist/components/Content/AsyncApi/helpers/resolve-async-api-nodes.js.map +1 -1
  227. package/dist/components/Content/Auth/Auth.vue.script.js +1 -1
  228. package/dist/components/Content/Auth/Auth.vue.script.js.map +1 -1
  229. package/dist/components/Content/Content.vue.script.js +1 -1
  230. package/dist/components/Content/Content.vue.script.js.map +1 -1
  231. package/dist/components/Content/Models/Model.vue.script.js +1 -1
  232. package/dist/components/Content/Models/Model.vue.script.js.map +1 -1
  233. package/dist/components/Content/Models/ModelTag.vue.d.ts.map +1 -1
  234. package/dist/components/Content/Models/ModelTag.vue.script.js +2 -2
  235. package/dist/components/Content/Models/ModelTag.vue.script.js.map +1 -1
  236. package/dist/components/Content/Models/components/ClassicLayout.vue.d.ts.map +1 -1
  237. package/dist/components/Content/Models/components/ClassicLayout.vue.js +1 -1
  238. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js +1 -1
  239. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js.map +1 -1
  240. package/dist/components/Content/Models/components/ModernLayout.vue.d.ts.map +1 -1
  241. package/dist/components/Content/Models/components/ModernLayout.vue.script.js +1 -1
  242. package/dist/components/Content/Models/components/ModernLayout.vue.script.js.map +1 -1
  243. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +1 -1
  244. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  245. package/dist/components/Content/Schema/LinkButton.vue.js +1 -1
  246. package/dist/components/Content/Schema/LinkButton.vue.js.map +1 -1
  247. package/dist/components/Content/Schema/RenderString.vue.script.js +1 -1
  248. package/dist/components/Content/Schema/RenderString.vue.script.js.map +1 -1
  249. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  250. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  251. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  252. package/dist/components/Content/Schema/Schema.vue.script.js +5 -13
  253. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  254. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  255. package/dist/components/Content/Schema/SchemaComposition.vue.js.map +1 -1
  256. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +69 -34
  257. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  258. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.js +1 -1
  259. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.script.js +1 -1
  260. package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.script.js.map +1 -1
  261. package/dist/components/Content/Schema/SchemaEnums.vue.d.ts.map +1 -1
  262. package/dist/components/Content/Schema/SchemaEnums.vue.js +1 -1
  263. package/dist/components/Content/Schema/SchemaEnums.vue.js.map +1 -1
  264. package/dist/components/Content/Schema/SchemaEnums.vue.script.js +16 -8
  265. package/dist/components/Content/Schema/SchemaEnums.vue.script.js.map +1 -1
  266. package/dist/components/Content/Schema/SchemaHeading.vue.js +1 -1
  267. package/dist/components/Content/Schema/SchemaHeading.vue.script.js +1 -1
  268. package/dist/components/Content/Schema/SchemaHeading.vue.script.js.map +1 -1
  269. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js +1 -1
  270. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js.map +1 -1
  271. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js +1 -1
  272. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js.map +1 -1
  273. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  274. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  275. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  276. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +4 -3
  277. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  278. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js +1 -1
  279. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js +1 -1
  280. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js.map +1 -1
  281. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.js +1 -1
  282. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.script.js +1 -1
  283. package/dist/components/Content/Schema/SchemaPropertyDetail.vue.script.js.map +1 -1
  284. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js +1 -1
  285. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js +1 -1
  286. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js.map +1 -1
  287. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  288. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +1 -1
  289. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js.map +1 -1
  290. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js +31 -21
  291. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js.map +1 -1
  292. package/dist/components/Content/Schema/helpers/dynamic-scope.js.map +1 -1
  293. package/dist/components/Content/Schema/helpers/format-example.js.map +1 -1
  294. package/dist/components/Content/Schema/helpers/format-value.js.map +1 -1
  295. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js.map +1 -1
  296. package/dist/components/Content/Schema/helpers/get-enum-values.js.map +1 -1
  297. package/dist/components/Content/Schema/helpers/get-property-description.js.map +1 -1
  298. package/dist/components/Content/Schema/helpers/get-ref-name.js.map +1 -1
  299. package/dist/components/Content/Schema/helpers/get-schema-type.js.map +1 -1
  300. package/dist/components/Content/Schema/helpers/has-complex-array-items.js.map +1 -1
  301. package/dist/components/Content/Schema/helpers/is-empty-schema-object.js.map +1 -1
  302. package/dist/components/Content/Schema/helpers/is-type-object.js.map +1 -1
  303. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +3 -3
  304. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js.map +1 -1
  305. package/dist/components/Content/Schema/helpers/optimize-value-for-display.d.ts.map +1 -1
  306. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js +1 -4
  307. package/dist/components/Content/Schema/helpers/optimize-value-for-display.js.map +1 -1
  308. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.d.ts +32 -0
  309. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.d.ts.map +1 -0
  310. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js +97 -0
  311. package/dist/components/Content/Schema/helpers/partition-all-of-compositions.js.map +1 -0
  312. package/dist/components/Content/Schema/helpers/schema-composition.js.map +1 -1
  313. package/dist/components/Content/Schema/helpers/schema-cycle.js.map +1 -1
  314. package/dist/components/Content/Schema/helpers/schema-name.js.map +1 -1
  315. package/dist/components/Content/Schema/helpers/should-display-description.js.map +1 -1
  316. package/dist/components/Content/Schema/helpers/should-display-heading.js.map +1 -1
  317. package/dist/components/Content/Schema/helpers/should-render-array-item-composition.js.map +1 -1
  318. package/dist/components/Content/Schema/helpers/sort-property-names.js.map +1 -1
  319. package/dist/components/Content/Tags/Tag.vue.script.js +1 -1
  320. package/dist/components/Content/Tags/Tag.vue.script.js.map +1 -1
  321. package/dist/components/Content/Tags/components/ClassicLayout.vue.d.ts.map +1 -1
  322. package/dist/components/Content/Tags/components/ClassicLayout.vue.js +1 -1
  323. package/dist/components/Content/Tags/components/ClassicLayout.vue.script.js +1 -1
  324. package/dist/components/Content/Tags/components/ClassicLayout.vue.script.js.map +1 -1
  325. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  326. package/dist/components/Content/Tags/components/ModernLayout.vue.js +1 -1
  327. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js +1 -1
  328. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js.map +1 -1
  329. package/dist/components/Content/Tags/components/TagSection.vue.d.ts.map +1 -1
  330. package/dist/components/Content/Tags/components/TagSection.vue.script.js +1 -1
  331. package/dist/components/Content/Tags/components/TagSection.vue.script.js.map +1 -1
  332. package/dist/components/GettingStarted.vue.d.ts.map +1 -1
  333. package/dist/components/GettingStarted.vue.js +1 -1
  334. package/dist/components/GettingStarted.vue.js.map +1 -1
  335. package/dist/components/GettingStarted.vue.script.js +4 -3
  336. package/dist/components/GettingStarted.vue.script.js.map +1 -1
  337. package/dist/components/HttpMethod/HttpMethod.vue.script.js +1 -1
  338. package/dist/components/HttpMethod/HttpMethod.vue.script.js.map +1 -1
  339. package/dist/components/IntersectionObserver.vue.script.js +10 -7
  340. package/dist/components/IntersectionObserver.vue.script.js.map +1 -1
  341. package/dist/components/Lazy/Lazy.vue.script.js +2 -2
  342. package/dist/components/Lazy/Lazy.vue.script.js.map +1 -1
  343. package/dist/components/LinkList/LinkList.vue.js +1 -1
  344. package/dist/components/LinkList/LinkList.vue.js.map +1 -1
  345. package/dist/components/LinkList/LinkList.vue.script.js +2 -2
  346. package/dist/components/LinkList/LinkList.vue.script.js.map +1 -1
  347. package/dist/components/MobileHeader.vue.d.ts.map +1 -1
  348. package/dist/components/MobileHeader.vue.script.js +4 -4
  349. package/dist/components/MobileHeader.vue.script.js.map +1 -1
  350. package/dist/components/OperationPath.vue.d.ts.map +1 -1
  351. package/dist/components/OperationPath.vue.js +1 -1
  352. package/dist/components/OperationPath.vue.script.js +1 -1
  353. package/dist/components/OperationPath.vue.script.js.map +1 -1
  354. package/dist/components/OperationsList/OperationsList.vue.js +1 -1
  355. package/dist/components/OperationsList/OperationsList.vue.script.js +1 -1
  356. package/dist/components/OperationsList/OperationsList.vue.script.js.map +1 -1
  357. package/dist/components/OperationsList/OperationsListItem.vue.js +1 -1
  358. package/dist/components/OperationsList/OperationsListItem.vue.script.js +1 -1
  359. package/dist/components/OperationsList/OperationsListItem.vue.script.js.map +1 -1
  360. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js +1 -1
  361. package/dist/components/RenderPlugins/RenderPluginView.vue.script.js.map +1 -1
  362. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js +1 -1
  363. package/dist/components/RenderPlugins/RenderPlugins.vue.script.js.map +1 -1
  364. package/dist/components/ScreenReader.vue.js +1 -1
  365. package/dist/components/ScreenReader.vue.script.js +2 -2
  366. package/dist/components/ScreenReader.vue.script.js.map +1 -1
  367. package/dist/components/Section/CompactSection.vue.d.ts.map +1 -1
  368. package/dist/components/Section/CompactSection.vue.js +1 -1
  369. package/dist/components/Section/CompactSection.vue.js.map +1 -1
  370. package/dist/components/Section/CompactSection.vue.script.js +22 -6
  371. package/dist/components/Section/CompactSection.vue.script.js.map +1 -1
  372. package/dist/components/Section/Section.vue.js +1 -1
  373. package/dist/components/Section/Section.vue.script.js +1 -1
  374. package/dist/components/Section/Section.vue.script.js.map +1 -1
  375. package/dist/components/Section/SectionAccordion.vue.d.ts.map +1 -1
  376. package/dist/components/Section/SectionAccordion.vue.js +1 -1
  377. package/dist/components/Section/SectionAccordion.vue.script.js +1 -1
  378. package/dist/components/Section/SectionAccordion.vue.script.js.map +1 -1
  379. package/dist/components/Section/SectionColumn.vue.js +1 -1
  380. package/dist/components/Section/SectionColumn.vue.js.map +1 -1
  381. package/dist/components/Section/SectionColumns.vue.js +1 -1
  382. package/dist/components/Section/SectionColumns.vue.js.map +1 -1
  383. package/dist/components/Section/SectionContainer.vue.js +1 -1
  384. package/dist/components/Section/SectionContainer.vue.script.js +2 -2
  385. package/dist/components/Section/SectionContainer.vue.script.js.map +1 -1
  386. package/dist/components/Section/SectionContainerAccordion.vue.d.ts.map +1 -1
  387. package/dist/components/Section/SectionContainerAccordion.vue.js +1 -1
  388. package/dist/components/Section/SectionContainerAccordion.vue.script.js +1 -1
  389. package/dist/components/Section/SectionContainerAccordion.vue.script.js.map +1 -1
  390. package/dist/components/Section/SectionContent.vue.js +1 -1
  391. package/dist/components/Section/SectionContent.vue.js.map +1 -1
  392. package/dist/components/Section/SectionHeader.vue.d.ts.map +1 -1
  393. package/dist/components/Section/SectionHeader.vue.js +1 -1
  394. package/dist/components/Section/SectionHeader.vue.js.map +1 -1
  395. package/dist/components/Section/SectionHeader.vue.script.js +3 -3
  396. package/dist/components/Section/SectionHeader.vue.script.js.map +1 -1
  397. package/dist/components/Section/SectionHeaderTag.vue.js +1 -1
  398. package/dist/components/Section/SectionHeaderTag.vue.script.js +1 -1
  399. package/dist/components/Section/SectionHeaderTag.vue.script.js.map +1 -1
  400. package/dist/components/SectionFlare/SectionFlare.vue.js +1 -1
  401. package/dist/components/SectionFlare/SectionFlare.vue.js.map +1 -1
  402. package/dist/components/ShowMoreButton.vue.js +1 -1
  403. package/dist/components/ShowMoreButton.vue.script.js +1 -1
  404. package/dist/components/ShowMoreButton.vue.script.js.map +1 -1
  405. package/dist/features/Operation/Operation.vue.script.js +2 -2
  406. package/dist/features/Operation/Operation.vue.script.js.map +1 -1
  407. package/dist/features/Operation/components/ContentTypeSelect.vue.d.ts.map +1 -1
  408. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js +2 -2
  409. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js.map +1 -1
  410. package/dist/features/Operation/components/Header.vue.script.js +1 -1
  411. package/dist/features/Operation/components/Header.vue.script.js.map +1 -1
  412. package/dist/features/Operation/components/Headers.vue.d.ts.map +1 -1
  413. package/dist/features/Operation/components/Headers.vue.js +1 -1
  414. package/dist/features/Operation/components/Headers.vue.script.js +1 -1
  415. package/dist/features/Operation/components/Headers.vue.script.js.map +1 -1
  416. package/dist/features/Operation/components/OperationParameters.vue.script.js +2 -2
  417. package/dist/features/Operation/components/OperationParameters.vue.script.js.map +1 -1
  418. package/dist/features/Operation/components/OperationResponses.vue.script.js +1 -1
  419. package/dist/features/Operation/components/OperationResponses.vue.script.js.map +1 -1
  420. package/dist/features/Operation/components/OperationScopes.vue.d.ts +8 -0
  421. package/dist/features/Operation/components/OperationScopes.vue.d.ts.map +1 -0
  422. package/dist/features/Operation/components/OperationScopes.vue.js +7 -0
  423. package/dist/features/Operation/components/OperationScopes.vue.js.map +1 -0
  424. package/dist/features/Operation/components/OperationScopes.vue.script.js +60 -0
  425. package/dist/features/Operation/components/OperationScopes.vue.script.js.map +1 -0
  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.js +1 -1
  429. package/dist/features/Operation/components/ParameterListItem.vue.script.js +1 -1
  430. package/dist/features/Operation/components/ParameterListItem.vue.script.js.map +1 -1
  431. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  432. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  433. package/dist/features/Operation/components/RequestBody.vue.script.js +2 -2
  434. package/dist/features/Operation/components/RequestBody.vue.script.js.map +1 -1
  435. package/dist/features/Operation/components/SecurityRequirementBadge.vue.d.ts.map +1 -1
  436. package/dist/features/Operation/components/SecurityRequirementBadge.vue.js.map +1 -1
  437. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js +90 -17
  438. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js.map +1 -1
  439. package/dist/features/Operation/components/SecurityRequirementBadgeScheme.vue.script.js +1 -1
  440. package/dist/features/Operation/components/SecurityRequirementBadgeScheme.vue.script.js.map +1 -1
  441. package/dist/features/Operation/components/callbacks/Callback.vue.js +1 -1
  442. package/dist/features/Operation/components/callbacks/Callback.vue.script.js +1 -1
  443. package/dist/features/Operation/components/callbacks/Callback.vue.script.js.map +1 -1
  444. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js +1 -1
  445. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js.map +1 -1
  446. package/dist/features/Operation/components/helpers/get-parameter-examples.js.map +1 -1
  447. package/dist/features/Operation/helpers/filter-selected-security.js.map +1 -1
  448. package/dist/features/Operation/helpers/flatten-deep-object-query-parameter.js.map +1 -1
  449. package/dist/features/Operation/helpers/get-required-security.d.ts +13 -0
  450. package/dist/features/Operation/helpers/get-required-security.d.ts.map +1 -1
  451. package/dist/features/Operation/helpers/get-required-security.js +22 -1
  452. package/dist/features/Operation/helpers/get-required-security.js.map +1 -1
  453. package/dist/features/Operation/helpers/operation-stability.js.map +1 -1
  454. package/dist/features/Operation/helpers/should-ignore-entity.js.map +1 -1
  455. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts +1 -1
  456. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts.map +1 -1
  457. package/dist/features/Operation/layouts/ClassicLayout.vue.js +1 -1
  458. package/dist/features/Operation/layouts/ClassicLayout.vue.js.map +1 -1
  459. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js +16 -7
  460. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js.map +1 -1
  461. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  462. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  463. package/dist/features/Operation/layouts/ModernLayout.vue.js.map +1 -1
  464. package/dist/features/Operation/layouts/ModernLayout.vue.script.js +3 -1
  465. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  466. package/dist/features/Operation/request-body-composition-index.js.map +1 -1
  467. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -1
  468. package/dist/features/Search/components/SearchButton.vue.script.js +1 -1
  469. package/dist/features/Search/components/SearchButton.vue.script.js.map +1 -1
  470. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -1
  471. package/dist/features/Search/components/SearchModal.vue.js +1 -1
  472. package/dist/features/Search/components/SearchModal.vue.script.js +1 -1
  473. package/dist/features/Search/components/SearchModal.vue.script.js.map +1 -1
  474. package/dist/features/Search/components/SearchResult.vue.d.ts.map +1 -1
  475. package/dist/features/Search/components/SearchResult.vue.script.js +1 -1
  476. package/dist/features/Search/components/SearchResult.vue.script.js.map +1 -1
  477. package/dist/features/Search/helpers/create-fuse-instance.js.map +1 -1
  478. package/dist/features/Search/helpers/create-search-index.js.map +1 -1
  479. package/dist/features/Search/hooks/useSearchIndex.js.map +1 -1
  480. package/dist/features/ask-agent-button/AskAgentButton.vue.js +1 -1
  481. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js +1 -1
  482. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js.map +1 -1
  483. package/dist/features/developer-tools/DeveloperTools.vue.script.js +2 -2
  484. package/dist/features/developer-tools/DeveloperTools.vue.script.js.map +1 -1
  485. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js +1 -1
  486. package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js.map +1 -1
  487. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js +1 -1
  488. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js.map +1 -1
  489. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.d.ts.map +1 -1
  490. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js.map +1 -1
  491. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js +3 -3
  492. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js.map +1 -1
  493. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.d.ts +2 -2
  494. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js +1 -1
  495. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js.map +1 -1
  496. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js +2 -2
  497. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js.map +1 -1
  498. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.d.ts.map +1 -1
  499. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js +4 -3
  500. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js.map +1 -1
  501. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.d.ts.map +1 -1
  502. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js.map +1 -1
  503. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js +2 -1
  504. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js.map +1 -1
  505. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.d.ts.map +1 -1
  506. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js +4 -3
  507. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js.map +1 -1
  508. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.d.ts.map +1 -1
  509. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js +1 -1
  510. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js.map +1 -1
  511. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js +1 -1
  512. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js.map +1 -1
  513. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js +2 -2
  514. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js.map +1 -1
  515. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js +1 -1
  516. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js.map +1 -1
  517. package/dist/features/example-responses/ExampleResponse.vue.js +1 -1
  518. package/dist/features/example-responses/ExampleResponse.vue.script.js +1 -1
  519. package/dist/features/example-responses/ExampleResponse.vue.script.js.map +1 -1
  520. package/dist/features/example-responses/ExampleResponseTab.vue.js +1 -1
  521. package/dist/features/example-responses/ExampleResponseTab.vue.script.js +1 -1
  522. package/dist/features/example-responses/ExampleResponseTab.vue.script.js.map +1 -1
  523. package/dist/features/example-responses/ExampleResponseTabList.vue.d.ts.map +1 -1
  524. package/dist/features/example-responses/ExampleResponseTabList.vue.js +1 -1
  525. package/dist/features/example-responses/ExampleResponseTabList.vue.script.js +1 -1
  526. package/dist/features/example-responses/ExampleResponseTabList.vue.script.js.map +1 -1
  527. package/dist/features/example-responses/ExampleResponses.vue.d.ts.map +1 -1
  528. package/dist/features/example-responses/ExampleResponses.vue.js +1 -1
  529. package/dist/features/example-responses/ExampleResponses.vue.script.js +1 -1
  530. package/dist/features/example-responses/ExampleResponses.vue.script.js.map +1 -1
  531. package/dist/features/example-responses/ExampleSchema.vue.script.js +1 -1
  532. package/dist/features/example-responses/ExampleSchema.vue.script.js.map +1 -1
  533. package/dist/features/example-responses/helpers/has-response-content.js.map +1 -1
  534. package/dist/features/example-responses/helpers/normalize-mime-type-object.js.map +1 -1
  535. package/dist/features/example-responses/helpers/normalize-mime-type.js.map +1 -1
  536. package/dist/features/external-docs/ExternalDocs.vue.d.ts.map +1 -1
  537. package/dist/features/external-docs/ExternalDocs.vue.js.map +1 -1
  538. package/dist/features/external-docs/ExternalDocs.vue.script.js +27 -15
  539. package/dist/features/external-docs/ExternalDocs.vue.script.js.map +1 -1
  540. package/dist/features/info-object/Contact.vue.d.ts.map +1 -1
  541. package/dist/features/info-object/Contact.vue.js.map +1 -1
  542. package/dist/features/info-object/Contact.vue.script.js +18 -12
  543. package/dist/features/info-object/Contact.vue.script.js.map +1 -1
  544. package/dist/features/info-object/InfoLink.vue.d.ts.map +1 -1
  545. package/dist/features/info-object/InfoLink.vue.js.map +1 -1
  546. package/dist/features/info-object/InfoLink.vue.script.js +23 -11
  547. package/dist/features/info-object/InfoLink.vue.script.js.map +1 -1
  548. package/dist/features/info-object/License.vue.d.ts.map +1 -1
  549. package/dist/features/info-object/License.vue.js.map +1 -1
  550. package/dist/features/info-object/License.vue.script.js +13 -7
  551. package/dist/features/info-object/License.vue.script.js.map +1 -1
  552. package/dist/features/info-object/TermsOfService.vue.d.ts.map +1 -1
  553. package/dist/features/info-object/TermsOfService.vue.js.map +1 -1
  554. package/dist/features/info-object/TermsOfService.vue.script.js +12 -6
  555. package/dist/features/info-object/TermsOfService.vue.script.js.map +1 -1
  556. package/dist/features/localization/locales/ar.d.ts +1 -0
  557. package/dist/features/localization/locales/ar.d.ts.map +1 -1
  558. package/dist/features/localization/locales/ar.js +2 -1
  559. package/dist/features/localization/locales/ar.js.map +1 -1
  560. package/dist/features/localization/locales/de.d.ts +1 -0
  561. package/dist/features/localization/locales/de.d.ts.map +1 -1
  562. package/dist/features/localization/locales/de.js +2 -1
  563. package/dist/features/localization/locales/de.js.map +1 -1
  564. package/dist/features/localization/locales/en.d.ts +1 -0
  565. package/dist/features/localization/locales/en.d.ts.map +1 -1
  566. package/dist/features/localization/locales/en.js +2 -1
  567. package/dist/features/localization/locales/en.js.map +1 -1
  568. package/dist/features/localization/locales/es.d.ts +1 -0
  569. package/dist/features/localization/locales/es.d.ts.map +1 -1
  570. package/dist/features/localization/locales/es.js +2 -1
  571. package/dist/features/localization/locales/es.js.map +1 -1
  572. package/dist/features/localization/locales/fr.d.ts +1 -0
  573. package/dist/features/localization/locales/fr.d.ts.map +1 -1
  574. package/dist/features/localization/locales/fr.js +2 -1
  575. package/dist/features/localization/locales/fr.js.map +1 -1
  576. package/dist/features/localization/locales/pt.d.ts +229 -0
  577. package/dist/features/localization/locales/pt.d.ts.map +1 -0
  578. package/dist/features/localization/locales/pt.js +227 -0
  579. package/dist/features/localization/locales/pt.js.map +1 -0
  580. package/dist/features/localization/locales/ru.d.ts +1 -0
  581. package/dist/features/localization/locales/ru.d.ts.map +1 -1
  582. package/dist/features/localization/locales/ru.js +2 -1
  583. package/dist/features/localization/locales/ru.js.map +1 -1
  584. package/dist/features/localization/locales/zh-cn.d.ts +1 -0
  585. package/dist/features/localization/locales/zh-cn.d.ts.map +1 -1
  586. package/dist/features/localization/locales/zh-cn.js +2 -1
  587. package/dist/features/localization/locales/zh-cn.js.map +1 -1
  588. package/dist/features/localization/translations.d.ts +235 -0
  589. package/dist/features/localization/translations.d.ts.map +1 -1
  590. package/dist/features/localization/translations.js +4 -2
  591. package/dist/features/localization/translations.js.map +1 -1
  592. package/dist/features/localization/use-localization.js.map +1 -1
  593. package/dist/features/multiple-documents/DocumentSelector.vue.d.ts.map +1 -1
  594. package/dist/features/multiple-documents/DocumentSelector.vue.script.js +1 -1
  595. package/dist/features/multiple-documents/DocumentSelector.vue.script.js.map +1 -1
  596. package/dist/features/specification-extension/SpecificationExtension.vue.script.js +1 -1
  597. package/dist/features/specification-extension/SpecificationExtension.vue.script.js.map +1 -1
  598. package/dist/features/specification-extension/helpers.js.map +1 -1
  599. package/dist/features/test-request-button/TestRequestButton.vue.js +1 -1
  600. package/dist/features/test-request-button/TestRequestButton.vue.script.js +1 -1
  601. package/dist/features/test-request-button/TestRequestButton.vue.script.js.map +1 -1
  602. package/dist/features/x-badges/XBadges.vue.d.ts.map +1 -1
  603. package/dist/features/x-badges/XBadges.vue.script.js +1 -1
  604. package/dist/features/x-badges/XBadges.vue.script.js.map +1 -1
  605. package/dist/helpers/color-mode.js.map +1 -1
  606. package/dist/helpers/download.js.map +1 -1
  607. package/dist/helpers/get-async-api-message-payload-schema.js.map +1 -1
  608. package/dist/helpers/get-async-api-model-schema.js.map +1 -1
  609. package/dist/helpers/id-routing.d.ts +18 -4
  610. package/dist/helpers/id-routing.d.ts.map +1 -1
  611. package/dist/helpers/id-routing.js +67 -20
  612. package/dist/helpers/id-routing.js.map +1 -1
  613. package/dist/helpers/is-introduction-entry.js.map +1 -1
  614. package/dist/helpers/lazy-bus.js.map +1 -1
  615. package/dist/helpers/load-from-perssistance.js.map +1 -1
  616. package/dist/helpers/map-config-plugins.js.map +1 -1
  617. package/dist/helpers/map-config-to-workspace-store.js.map +1 -1
  618. package/dist/helpers/normalize-configurations.js +1 -1
  619. package/dist/helpers/normalize-configurations.js.map +1 -1
  620. package/dist/helpers/openapi.d.ts +6 -1
  621. package/dist/helpers/openapi.d.ts.map +1 -1
  622. package/dist/helpers/openapi.js +37 -6
  623. package/dist/helpers/openapi.js.map +1 -1
  624. package/dist/helpers/safe-deep-clone.js.map +1 -1
  625. package/dist/helpers/storage.d.ts +21 -2
  626. package/dist/helpers/storage.d.ts.map +1 -1
  627. package/dist/helpers/storage.js +14 -0
  628. package/dist/helpers/storage.js.map +1 -1
  629. package/dist/helpers/upload-temp-document.js.map +1 -1
  630. package/dist/hooks/use-agent.js.map +1 -1
  631. package/dist/hooks/use-intersection.js.map +1 -1
  632. package/dist/plugins/hooks/usePluginManager.js.map +1 -1
  633. package/dist/plugins/persistence-plugin.js +6 -1
  634. package/dist/plugins/persistence-plugin.js.map +1 -1
  635. package/dist/plugins/plugin-manager.js +35 -0
  636. package/dist/plugins/plugin-manager.js.map +1 -1
  637. package/dist/plugins/posthog/index.js.map +1 -1
  638. package/dist/standalone/lib/html-api.d.ts.map +1 -1
  639. package/dist/standalone/lib/html-api.js +11 -4
  640. package/dist/standalone/lib/html-api.js.map +1 -1
  641. package/dist/standalone/lib/load-plugins-from-urls.d.ts +13 -0
  642. package/dist/standalone/lib/load-plugins-from-urls.d.ts.map +1 -0
  643. package/dist/standalone/lib/load-plugins-from-urls.js +60 -0
  644. package/dist/standalone/lib/load-plugins-from-urls.js.map +1 -0
  645. package/dist/style.css +1637 -1505
  646. package/dist/styles/print.css +118 -0
  647. package/dist/styles/tailwind.config.css +16 -0
  648. package/dist/vue-styles.css +1102 -1050
  649. package/package.json +29 -29
  650. package/dist/browser/chunks/AgentScalarChatInterface-YU9KKgvZ.js +0 -27
  651. package/dist/browser/chunks/ScalarTextInput.vue-B-Nhpn0q.js +0 -27
  652. package/dist/browser/chunks/browser-67K6wmG9.js +0 -129
  653. package/dist/browser/chunks/modal-BVUfMpuv.js +0 -15
  654. package/dist/browser/chunks/modal-WJ4Gcv8N.js +0 -99
  655. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +0 -17
  656. package/dist/browser/chunks/vendor-BqFs9NIb.js +0 -306
@@ -1 +1 @@
1
- {"version":3,"file":"ExampleSchema.vue.script.js","names":[],"sources":["../../../src/features/example-responses/ExampleSchema.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { getResolvedRefDeep } from '@scalar/blocks/code-example'\nimport { ScalarCodeBlock } from '@scalar/components/code-block'\nimport { ScalarVirtualCodeBlock } from '@scalar/components/virtual-code-block'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport type { ReferenceType } from '@scalar/workspace-store/schemas/v3.1/strict/reference'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/schema'\nimport { computed } from 'vue'\n\nconst { id, schema } = defineProps<{\n id: string\n schema: ReferenceType<SchemaObject>\n}>()\n\nconst schemaContent = computed(() => {\n if (!schema) {\n return undefined\n }\n\n return prettyPrintJson(getResolvedRefDeep(schema))\n})\n\nconst VIRTUALIZATION_THRESHOLD = 20_000\n\nconst shouldVirtualizeSchema = computed(() => {\n return (schemaContent.value?.length ?? 0) > VIRTUALIZATION_THRESHOLD\n})\n</script>\n\n<template>\n <ScalarCodeBlock\n v-if=\"!shouldVirtualizeSchema\"\n :id=\"id\"\n class=\"bg-b-2\"\n lang=\"json\"\n :prettyPrintedContent=\"schemaContent ?? ''\" />\n <ScalarVirtualCodeBlock\n v-else\n :id=\"id\"\n class=\"bg-b-2\"\n :content=\"schemaContent ?? ''\"\n lang=\"json\" />\n</template>\n"],"mappings":";;;;;;AAsBA,IAAM,2BAA2B;;;;;;;;EARjC,MAAM,gBAAgB,eAAe;AACnC,OAAI,CAAC,QAAA,OACH;AAGF,UAAO,gBAAgB,mBAAmB,QAAA,OAAO,CAAA;IAClD;EAID,MAAM,yBAAyB,eAAe;AAC5C,WAAQ,cAAc,OAAO,UAAU,KAAK;IAC7C;;WAKU,uBAAA,SAAA,WAAA,EADT,YAKgD,MAAA,gBAAA,EAAA;;IAH7C,IAAI,QAAA;IACL,OAAM;IACN,MAAK;IACJ,sBAAsB,cAAA,SAAa;gEACtC,YAKgB,MAAA,uBAAA,EAAA;;IAHb,IAAI,QAAA;IACL,OAAM;IACL,SAAS,cAAA,SAAa;IACvB,MAAK"}
1
+ {"version":3,"file":"ExampleSchema.vue.script.js","names":[],"sources":["../../../src/features/example-responses/ExampleSchema.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { getResolvedRefDeep } from '@scalar/blocks/code-example'\nimport { ScalarCodeBlock } from '@scalar/components/code-block'\nimport { ScalarVirtualCodeBlock } from '@scalar/components/virtual-code-block'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport type { ReferenceType } from '@scalar/workspace-store/schemas/v3.1/strict/reference'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/schema'\nimport { computed } from 'vue'\n\nconst { id, schema } = defineProps<{\n id: string\n schema: ReferenceType<SchemaObject>\n}>()\n\nconst schemaContent = computed(() => {\n if (!schema) {\n return undefined\n }\n\n return prettyPrintJson(getResolvedRefDeep(schema))\n})\n\nconst VIRTUALIZATION_THRESHOLD = 20_000\n\nconst shouldVirtualizeSchema = computed(() => {\n return (schemaContent.value?.length ?? 0) > VIRTUALIZATION_THRESHOLD\n})\n</script>\n\n<template>\n <ScalarCodeBlock\n v-if=\"!shouldVirtualizeSchema\"\n :id=\"id\"\n class=\"bg-b-2\"\n lang=\"json\"\n :prettyPrintedContent=\"schemaContent ?? ''\" />\n <ScalarVirtualCodeBlock\n v-else\n :id=\"id\"\n class=\"bg-b-2\"\n :content=\"schemaContent ?? ''\"\n lang=\"json\" />\n</template>\n"],"mappings":";;;;;;AAsBA,IAAM,2BAA2B;;;;;;;;EARjC,MAAM,gBAAgB,eAAe;GACnC,IAAI,CAAC,QAAA,QACH;GAGF,OAAO,gBAAgB,mBAAmB,QAAA,MAAM,CAAC;EACnD,CAAC;EAID,MAAM,yBAAyB,eAAe;GAC5C,QAAQ,cAAc,OAAO,UAAU,KAAK;EAC9C,CAAC;;WAKU,uBAAA,SAAA,UAAA,GADT,YAKgD,MAAA,eAAA,GAAA;;IAH7C,IAAI,QAAA;IACL,OAAM;IACN,MAAK;IACJ,sBAAsB,cAAA,SAAa;gEACtC,YAKgB,MAAA,sBAAA,GAAA;;IAHb,IAAI,QAAA;IACL,OAAM;IACL,SAAS,cAAA,SAAa;IACvB,MAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"has-response-content.js","names":[],"sources":["../../../../src/features/example-responses/helpers/has-response-content.ts"],"sourcesContent":["import { objectKeys } from '@scalar/helpers/object/object-keys'\nimport type { MediaTypeObject, ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { normalizeMimeTypeObject } from './normalize-mime-type-object'\n\n/**\n * Checks if a media type object has any displayable content.\n * This includes having a schema, a single example, or multiple examples.\n *\n * Note: We use explicit property checks for `example` because falsy values\n * like `0`, `false`, and `\"\"` are valid JSON examples that should be displayed.\n * We still treat `null` as \"no content\" since it explicitly indicates absence.\n */\nfunction hasMediaTypeContent(mediaType: MediaTypeObject | undefined): boolean {\n if (!mediaType) {\n return false\n }\n\n const hasSchema = Boolean(mediaType.schema)\n const hasExample = 'example' in mediaType && mediaType.example !== null\n const hasExamples = Boolean(mediaType.examples)\n\n return hasSchema || hasExample || hasExamples\n}\n\nfunction isResponseKey(responseKey: string): boolean {\n return responseKey === 'default' || /^[1-5][0-9]{2}$/.test(responseKey) || /^[1-5]XX$/.test(responseKey)\n}\n\n/**\n * Checks if a response object has body content (schema, example, or examples).\n * Looks through common media types in priority order.\n */\nexport function hasResponseContent(response: ResponseObject | undefined, responseKey?: string): boolean {\n if (responseKey !== undefined) {\n if (!isResponseKey(responseKey)) {\n return false\n }\n\n return Boolean(response)\n }\n\n const normalizedContent = normalizeMimeTypeObject(response?.content)\n const keys = objectKeys(normalizedContent ?? {})\n\n const mediaType =\n normalizedContent?.['application/json'] ??\n normalizedContent?.['application/xml'] ??\n normalizedContent?.['text/plain'] ??\n normalizedContent?.['text/html'] ??\n normalizedContent?.['*/*'] ??\n normalizedContent?.[keys[0] ?? '']\n\n return hasMediaTypeContent(mediaType)\n}\n"],"mappings":";;;;;;;;;;;AAaA,SAAS,oBAAoB,WAAiD;AAC5E,KAAI,CAAC,UACH,QAAO;CAGT,MAAM,YAAY,QAAQ,UAAU,OAAO;CAC3C,MAAM,aAAa,aAAa,aAAa,UAAU,YAAY;CACnE,MAAM,cAAc,QAAQ,UAAU,SAAS;AAE/C,QAAO,aAAa,cAAc;;AAGpC,SAAS,cAAc,aAA8B;AACnD,QAAO,gBAAgB,aAAa,kBAAkB,KAAK,YAAY,IAAI,YAAY,KAAK,YAAY;;;;;;AAO1G,SAAgB,mBAAmB,UAAsC,aAA+B;AACtG,KAAI,gBAAgB,KAAA,GAAW;AAC7B,MAAI,CAAC,cAAc,YAAY,CAC7B,QAAO;AAGT,SAAO,QAAQ,SAAS;;CAG1B,MAAM,oBAAoB,wBAAwB,UAAU,QAAQ;CACpE,MAAM,OAAO,WAAW,qBAAqB,EAAE,CAAC;AAUhD,QAAO,oBAPL,oBAAoB,uBACpB,oBAAoB,sBACpB,oBAAoB,iBACpB,oBAAoB,gBACpB,oBAAoB,UACpB,oBAAoB,KAAK,MAAM,IAEI"}
1
+ {"version":3,"file":"has-response-content.js","names":[],"sources":["../../../../src/features/example-responses/helpers/has-response-content.ts"],"sourcesContent":["import { objectKeys } from '@scalar/helpers/object/object-keys'\nimport type { MediaTypeObject, ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { normalizeMimeTypeObject } from './normalize-mime-type-object'\n\n/**\n * Checks if a media type object has any displayable content.\n * This includes having a schema, a single example, or multiple examples.\n *\n * Note: We use explicit property checks for `example` because falsy values\n * like `0`, `false`, and `\"\"` are valid JSON examples that should be displayed.\n * We still treat `null` as \"no content\" since it explicitly indicates absence.\n */\nfunction hasMediaTypeContent(mediaType: MediaTypeObject | undefined): boolean {\n if (!mediaType) {\n return false\n }\n\n const hasSchema = Boolean(mediaType.schema)\n const hasExample = 'example' in mediaType && mediaType.example !== null\n const hasExamples = Boolean(mediaType.examples)\n\n return hasSchema || hasExample || hasExamples\n}\n\nfunction isResponseKey(responseKey: string): boolean {\n return responseKey === 'default' || /^[1-5][0-9]{2}$/.test(responseKey) || /^[1-5]XX$/.test(responseKey)\n}\n\n/**\n * Checks if a response object has body content (schema, example, or examples).\n * Looks through common media types in priority order.\n */\nexport function hasResponseContent(response: ResponseObject | undefined, responseKey?: string): boolean {\n if (responseKey !== undefined) {\n if (!isResponseKey(responseKey)) {\n return false\n }\n\n return Boolean(response)\n }\n\n const normalizedContent = normalizeMimeTypeObject(response?.content)\n const keys = objectKeys(normalizedContent ?? {})\n\n const mediaType =\n normalizedContent?.['application/json'] ??\n normalizedContent?.['application/xml'] ??\n normalizedContent?.['text/plain'] ??\n normalizedContent?.['text/html'] ??\n normalizedContent?.['*/*'] ??\n normalizedContent?.[keys[0] ?? '']\n\n return hasMediaTypeContent(mediaType)\n}\n"],"mappings":";;;;;;;;;;;AAaA,SAAS,oBAAoB,WAAiD;CAC5E,IAAI,CAAC,WACH,OAAO;CAGT,MAAM,YAAY,QAAQ,UAAU,MAAM;CAC1C,MAAM,aAAa,aAAa,aAAa,UAAU,YAAY;CACnE,MAAM,cAAc,QAAQ,UAAU,QAAQ;CAE9C,OAAO,aAAa,cAAc;AACpC;AAEA,SAAS,cAAc,aAA8B;CACnD,OAAO,gBAAgB,aAAa,kBAAkB,KAAK,WAAW,KAAK,YAAY,KAAK,WAAW;AACzG;;;;;AAMA,SAAgB,mBAAmB,UAAsC,aAA+B;CACtG,IAAI,gBAAgB,KAAA,GAAW;EAC7B,IAAI,CAAC,cAAc,WAAW,GAC5B,OAAO;EAGT,OAAO,QAAQ,QAAQ;CACzB;CAEA,MAAM,oBAAoB,wBAAwB,UAAU,OAAO;CACnE,MAAM,OAAO,WAAW,qBAAqB,CAAC,CAAC;CAU/C,OAAO,oBAPL,oBAAoB,uBACpB,oBAAoB,sBACpB,oBAAoB,iBACpB,oBAAoB,gBACpB,oBAAoB,UACpB,oBAAoB,KAAK,MAAM,GAEG;AACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-mime-type-object.js","names":[],"sources":["../../../../src/features/example-responses/helpers/normalize-mime-type-object.ts"],"sourcesContent":["import type { ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { normalizeMimeType } from './normalize-mime-type'\n\n/**\n * Remove charset from content types\n *\n * Example: `application/json; charset=utf-8` -> `application/json`\n */\nexport function normalizeMimeTypeObject(content?: ResponseObject['content']): ResponseObject['content'] {\n if (!content) {\n return content\n }\n\n const newContent: ResponseObject['content'] = {\n ...content,\n }\n\n Object.entries(newContent).forEach(([key, value]) => {\n const normalizedKey = normalizeMimeType(key)\n if (normalizedKey) {\n newContent[normalizedKey] = value\n }\n })\n\n return newContent\n}\n"],"mappings":";;;;;;;AASA,SAAgB,wBAAwB,SAAgE;AACtG,KAAI,CAAC,QACH,QAAO;CAGT,MAAM,aAAwC,EAC5C,GAAG,SACJ;AAED,QAAO,QAAQ,WAAW,CAAC,SAAS,CAAC,KAAK,WAAW;EACnD,MAAM,gBAAgB,kBAAkB,IAAI;AAC5C,MAAI,cACF,YAAW,iBAAiB;GAE9B;AAEF,QAAO"}
1
+ {"version":3,"file":"normalize-mime-type-object.js","names":[],"sources":["../../../../src/features/example-responses/helpers/normalize-mime-type-object.ts"],"sourcesContent":["import type { ResponseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { normalizeMimeType } from './normalize-mime-type'\n\n/**\n * Remove charset from content types\n *\n * Example: `application/json; charset=utf-8` -> `application/json`\n */\nexport function normalizeMimeTypeObject(content?: ResponseObject['content']): ResponseObject['content'] {\n if (!content) {\n return content\n }\n\n const newContent: ResponseObject['content'] = {\n ...content,\n }\n\n Object.entries(newContent).forEach(([key, value]) => {\n const normalizedKey = normalizeMimeType(key)\n if (normalizedKey) {\n newContent[normalizedKey] = value\n }\n })\n\n return newContent\n}\n"],"mappings":";;;;;;;AASA,SAAgB,wBAAwB,SAAgE;CACtG,IAAI,CAAC,SACH,OAAO;CAGT,MAAM,aAAwC,EAC5C,GAAG,QACL;CAEA,OAAO,QAAQ,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EACnD,MAAM,gBAAgB,kBAAkB,GAAG;EAC3C,IAAI,eACF,WAAW,iBAAiB;CAEhC,CAAC;CAED,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-mime-type.js","names":[],"sources":["../../../../src/features/example-responses/helpers/normalize-mime-type.ts"],"sourcesContent":["import type { ContentType } from '@scalar/types/legacy'\n\n/**\n * Normalizes a MIME type to a standard format.\n *\n * Input: application/problem+json; charset=utf-8\n * Output: application/json\n */\nexport function normalizeMimeType(contentType: undefined): undefined\nexport function normalizeMimeType(contentType: string): ContentType\nexport function normalizeMimeType(contentType: string | undefined): ContentType | undefined {\n if (typeof contentType !== 'string') {\n return undefined\n }\n\n return (\n contentType\n // Remove '; charset=utf-8'\n .replace(/;.*$/, '')\n // Remove 'problem+' but keep vendor-specific vnd and fhir mime types\n .replace(/\\/(?!.*vnd\\.|fhir\\+).*\\+/, '/')\n // Remove whitespace\n .trim() as ContentType\n )\n}\n"],"mappings":";AAUA,SAAgB,kBAAkB,aAA0D;AAC1F,KAAI,OAAO,gBAAgB,SACzB;AAGF,QACE,YAEG,QAAQ,QAAQ,GAAG,CAEnB,QAAQ,4BAA4B,IAAI,CAExC,MAAM"}
1
+ {"version":3,"file":"normalize-mime-type.js","names":[],"sources":["../../../../src/features/example-responses/helpers/normalize-mime-type.ts"],"sourcesContent":["import type { ContentType } from '@scalar/types/legacy'\n\n/**\n * Normalizes a MIME type to a standard format.\n *\n * Input: application/problem+json; charset=utf-8\n * Output: application/json\n */\nexport function normalizeMimeType(contentType: undefined): undefined\nexport function normalizeMimeType(contentType: string): ContentType\nexport function normalizeMimeType(contentType: string | undefined): ContentType | undefined {\n if (typeof contentType !== 'string') {\n return undefined\n }\n\n return (\n contentType\n // Remove '; charset=utf-8'\n .replace(/;.*$/, '')\n // Remove 'problem+' but keep vendor-specific vnd and fhir mime types\n .replace(/\\/(?!.*vnd\\.|fhir\\+).*\\+/, '/')\n // Remove whitespace\n .trim() as ContentType\n )\n}\n"],"mappings":";AAUA,SAAgB,kBAAkB,aAA0D;CAC1F,IAAI,OAAO,gBAAgB,UACzB;CAGF,OACE,YAEG,QAAQ,QAAQ,EAAE,CAAC,CAEnB,QAAQ,4BAA4B,GAAG,CAAC,CAExC,KAAK;AAEZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalDocs.vue.d.ts","sourceRoot":"","sources":["../../../src/features/external-docs/ExternalDocs.vue"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAA;AAE/G,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,2BAA2B,CAAA;CACpC,CAAC;AAqFF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ExternalDocs.vue.d.ts","sourceRoot":"","sources":["../../../src/features/external-docs/ExternalDocs.vue"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAA;AAG/G,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,2BAA2B,CAAA;CACpC,CAAC;AA0GF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalDocs.vue.js","names":[],"sources":["../../../src/features/external-docs/ExternalDocs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconBook } from '@scalar/icons'\nimport type { ExternalDocumentationObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\ndefineProps<{\n value?: ExternalDocumentationObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :href=\"value.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconBook\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span\n class=\"ml-1 empty:hidden\"\n v-if=\"value.description\">\n {{ value.description }}\n </span>\n <span\n class=\"ml-1 empty:hidden\"\n v-else>\n {{ value.url }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ExternalDocs.vue.js","names":[],"sources":["../../../src/features/external-docs/ExternalDocs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconBook } from '@scalar/icons'\nimport type { ExternalDocumentationObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { value } = defineProps<{\n value?: ExternalDocumentationObject\n}>()\n\n/**\n * The external docs URL comes from the OpenAPI document, which is untrusted input, so a protocol\n * like `javascript:` would execute script on click. Fall back to the plain text label in that case.\n */\nconst url = computed(() => sanitizeUrl(value?.url))\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <component\n :is=\"url ? 'a' : 'span'\"\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"url\"\n :rel=\"url ? 'noopener noreferrer' : undefined\"\n :target=\"url ? '_blank' : undefined\">\n <ScalarIconBook\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span\n v-if=\"value.description\"\n class=\"ml-1 empty:hidden\">\n {{ value.description }}\n </span>\n <span\n v-else\n class=\"ml-1 empty:hidden\">\n {{ value.url }}\n </span>\n </component>\n </div>\n </template>\n</template>\n"],"mappings":""}
@@ -1,33 +1,45 @@
1
- import { createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
1
+ import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, openBlock, resolveDynamicComponent, toDisplayString, unref, withCtx } from "vue";
2
2
  import { ScalarIconBook } from "@scalar/icons";
3
+ import { sanitizeUrl } from "@scalar/helpers/url/is-safe-url";
3
4
  //#region src/features/external-docs/ExternalDocs.vue?vue&type=script&setup=true&lang.ts
4
5
  var _hoisted_1 = {
5
6
  key: 0,
6
- class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
7
+ class: "group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0"
7
8
  };
8
- var _hoisted_2 = ["href"];
9
- var _hoisted_3 = {
9
+ var _hoisted_2 = {
10
10
  key: 0,
11
11
  class: "ml-1 empty:hidden"
12
12
  };
13
- var _hoisted_4 = {
13
+ var _hoisted_3 = {
14
14
  key: 1,
15
15
  class: "ml-1 empty:hidden"
16
16
  };
17
- var ExternalDocs_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
17
+ var ExternalDocs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
18
18
  __name: "ExternalDocs",
19
19
  props: { value: {} },
20
20
  setup(__props) {
21
+ /**
22
+ * The external docs URL comes from the OpenAPI document, which is untrusted input, so a protocol
23
+ * like `javascript:` would execute script on click. Fall back to the plain text label in that case.
24
+ */
25
+ const url = computed(() => sanitizeUrl(__props.value?.url));
21
26
  return (_ctx, _cache) => {
22
- return __props.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("a", {
23
- href: __props.value.url,
24
- class: "text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none",
25
- target: "_blank",
26
- rel: "noopener noreferrer"
27
- }, [createVNode(unref(ScalarIconBook), {
28
- weight: "bold",
29
- class: "size-3 text-current"
30
- }), __props.value.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.value.description), 1)) : (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(__props.value.url), 1))], 8, _hoisted_2)])) : createCommentVNode("", true);
27
+ return __props.value ? (openBlock(), createElementBlock("div", _hoisted_1, [(openBlock(), createBlock(resolveDynamicComponent(url.value ? "a" : "span"), {
28
+ class: "text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0",
29
+ href: url.value,
30
+ rel: url.value ? "noopener noreferrer" : void 0,
31
+ target: url.value ? "_blank" : void 0
32
+ }, {
33
+ default: withCtx(() => [createVNode(unref(ScalarIconBook), {
34
+ class: "size-3 text-current",
35
+ weight: "bold"
36
+ }), __props.value.description ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.value.description), 1)) : (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.value.url), 1))]),
37
+ _: 1
38
+ }, 8, [
39
+ "href",
40
+ "rel",
41
+ "target"
42
+ ]))])) : createCommentVNode("", true);
31
43
  };
32
44
  }
33
45
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalDocs.vue.script.js","names":[],"sources":["../../../src/features/external-docs/ExternalDocs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconBook } from '@scalar/icons'\nimport type { ExternalDocumentationObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\ndefineProps<{\n value?: ExternalDocumentationObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :href=\"value.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconBook\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span\n class=\"ml-1 empty:hidden\"\n v-if=\"value.description\">\n {{ value.description }}\n </span>\n <span\n class=\"ml-1 empty:hidden\"\n v-else>\n {{ value.url }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;UAUkB,QAAA,SAAA,WAAA,EACd,mBAqBM,OArBN,YAqBM,CAnBJ,mBAkBI,KAAA;IAjBD,MAAM,QAAA,MAAM;IACb,OAAM;IACN,QAAO;IACP,KAAI;OACJ,YAEgC,MAAA,eAAA,EAAA;IAD9B,QAAO;IACP,OAAM;OAGA,QAAA,MAAM,eAAA,WAAA,EAFd,mBAIO,QAJP,YAIO,gBADF,QAAA,MAAM,YAAW,EAAA,EAAA,KAAA,WAAA,EAEtB,mBAIO,QAJP,YAIO,gBADF,QAAA,MAAM,IAAG,EAAA,EAAA,EAAA,EAAA,GAAA,WAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
1
+ {"version":3,"file":"ExternalDocs.vue.script.js","names":[],"sources":["../../../src/features/external-docs/ExternalDocs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconBook } from '@scalar/icons'\nimport type { ExternalDocumentationObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { value } = defineProps<{\n value?: ExternalDocumentationObject\n}>()\n\n/**\n * The external docs URL comes from the OpenAPI document, which is untrusted input, so a protocol\n * like `javascript:` would execute script on click. Fall back to the plain text label in that case.\n */\nconst url = computed(() => sanitizeUrl(value?.url))\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <component\n :is=\"url ? 'a' : 'span'\"\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"url\"\n :rel=\"url ? 'noopener noreferrer' : undefined\"\n :target=\"url ? '_blank' : undefined\">\n <ScalarIconBook\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span\n v-if=\"value.description\"\n class=\"ml-1 empty:hidden\">\n {{ value.description }}\n </span>\n <span\n v-else\n class=\"ml-1 empty:hidden\">\n {{ value.url }}\n </span>\n </component>\n </div>\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EAcA,MAAM,MAAM,eAAe,YAAY,QAAA,OAAO,GAAG,CAAC;;UAIhC,QAAA,SAAA,UAAA,GACd,mBAsBM,OAtBN,YAsBM,EAAA,UAAA,GApBJ,YAmBY,wBAlBL,IAAA,QAAG,MAAA,MAAA,GAAA;IACR,OAAM;IACL,MAAM,IAAA;IACN,KAAK,IAAA,QAAG,wBAA2B,KAAA;IACnC,QAAQ,IAAA,QAAG,WAAc,KAAA;;2BAGR,CAFlB,YAEkB,MAAA,cAAA,GAAA;KADhB,OAAM;KACN,QAAO;QAED,QAAA,MAAM,eAAA,UAAA,GADd,mBAIO,QAJP,YAIO,gBADF,QAAA,MAAM,WAAW,GAAA,CAAA,MAAA,UAAA,GAEtB,mBAIO,QAJP,YAIO,gBADF,QAAA,MAAM,GAAG,GAAA,CAAA,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Contact.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/Contact.vue"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAWjG,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAC;AAmHF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Contact.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/Contact.vue"],"names":[],"mappings":"AA0EA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAGjG,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAC;AA0IF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Contact.vue.js","names":[],"sources":["../../../src/features/info-object/Contact.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconEnvelopeSimple, ScalarIconLink } from '@scalar/icons'\nimport { cva } from '@scalar/use-hooks/useBindCx'\nimport type { ContactObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nconst variants = cva({\n base: 'text-c-1 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 group-last:mr-0 xl:border-none',\n variants: {\n link: {\n true: 'no-underline hover:bg-b-2',\n },\n },\n})\n\ndefineProps<{\n value?: ContactObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <!-- Each link gets its own wrapper so the dividers render between them -->\n <div\n v-if=\"value.email\"\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"`mailto:${value.email}`\">\n <ScalarIconEnvelopeSimple\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span class=\"ml-1 empty:hidden\">{{ value.name }}</span>\n </a>\n </div>\n <div\n v-if=\"value.url\"\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"value.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconLink\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <!-- Avoid repeating the name when the email link already shows it -->\n <span class=\"ml-1 empty:hidden\">{{\n value.email ? '' : value.name\n }}</span>\n </a>\n </div>\n <div\n v-else-if=\"!value.email && value.name\"\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <span :class=\"variants({ link: false })\">\n {{ value.name }}\n </span>\n </div>\n </template>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Contact.vue.js","names":[],"sources":["../../../src/features/info-object/Contact.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconEnvelopeSimple, ScalarIconLink } from '@scalar/icons'\nimport { cva } from '@scalar/use-hooks/useBindCx'\nimport type { ContactObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { value } = defineProps<{\n value?: ContactObject\n}>()\n\n/**\n * The contact URL comes from the OpenAPI document, which is untrusted input, so a protocol like\n * `javascript:` would execute script on click. Fall back to the plain text label in that case.\n */\nconst url = computed(() => sanitizeUrl(value?.url))\n\nconst variants = cva({\n base: 'text-c-1 mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 group-last:mr-0 narrow:border',\n variants: {\n link: {\n true: 'no-underline hover:bg-b-2',\n },\n },\n})\n</script>\n\n<template>\n <template v-if=\"value\">\n <!-- Each link gets its own wrapper so the dividers render between them -->\n <div\n v-if=\"value.email\"\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"`mailto:${value.email}`\">\n <ScalarIconEnvelopeSimple\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ value.name }}</span>\n </a>\n </div>\n <div\n v-if=\"url\"\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconLink\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <!-- Avoid repeating the name when the email link already shows it -->\n <span class=\"ml-1 empty:hidden\">{{\n value.email ? '' : value.name\n }}</span>\n </a>\n </div>\n <div\n v-else-if=\"!value.email && value.name\"\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <span :class=\"variants({ link: false })\">\n {{ value.name }}\n </span>\n </div>\n </template>\n</template>\n"],"mappings":""}
@@ -1,29 +1,35 @@
1
- import { Fragment, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref } from "vue";
1
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref } from "vue";
2
2
  import { ScalarIconEnvelopeSimple, ScalarIconLink } from "@scalar/icons";
3
+ import { sanitizeUrl } from "@scalar/helpers/url/is-safe-url";
3
4
  import { cva } from "@scalar/use-hooks/useBindCx";
4
5
  //#region src/features/info-object/Contact.vue?vue&type=script&setup=true&lang.ts
5
6
  var _hoisted_1 = {
6
7
  key: 0,
7
- class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
8
+ class: "group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0"
8
9
  };
9
10
  var _hoisted_2 = ["href"];
10
11
  var _hoisted_3 = { class: "ml-1 empty:hidden" };
11
12
  var _hoisted_4 = {
12
13
  key: 1,
13
- class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
14
+ class: "group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0"
14
15
  };
15
16
  var _hoisted_5 = ["href"];
16
17
  var _hoisted_6 = { class: "ml-1 empty:hidden" };
17
18
  var _hoisted_7 = {
18
19
  key: 2,
19
- class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
20
+ class: "group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0"
20
21
  };
21
- var Contact_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
22
+ var Contact_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
22
23
  __name: "Contact",
23
24
  props: { value: {} },
24
25
  setup(__props) {
26
+ /**
27
+ * The contact URL comes from the OpenAPI document, which is untrusted input, so a protocol like
28
+ * `javascript:` would execute script on click. Fall back to the plain text label in that case.
29
+ */
30
+ const url = computed(() => sanitizeUrl(__props.value?.url));
25
31
  const variants = cva({
26
- base: "text-c-1 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 group-last:mr-0 xl:border-none",
32
+ base: "text-c-1 mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 group-last:mr-0 narrow:border",
27
33
  variants: { link: { true: "no-underline hover:bg-b-2" } }
28
34
  });
29
35
  return (_ctx, _cache) => {
@@ -31,16 +37,16 @@ var Contact_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
31
37
  class: normalizeClass(unref(variants)({ link: true })),
32
38
  href: `mailto:${__props.value.email}`
33
39
  }, [createVNode(unref(ScalarIconEnvelopeSimple), {
34
- weight: "bold",
35
- class: "size-3 text-current"
36
- }), createElementVNode("span", _hoisted_3, toDisplayString(__props.value.name), 1)], 10, _hoisted_2)])) : createCommentVNode("", true), __props.value.url ? (openBlock(), createElementBlock("div", _hoisted_4, [createElementVNode("a", {
40
+ class: "size-3 text-current",
41
+ weight: "bold"
42
+ }), createElementVNode("span", _hoisted_3, toDisplayString(__props.value.name), 1)], 10, _hoisted_2)])) : createCommentVNode("", true), url.value ? (openBlock(), createElementBlock("div", _hoisted_4, [createElementVNode("a", {
37
43
  class: normalizeClass(unref(variants)({ link: true })),
38
- href: __props.value.url,
44
+ href: url.value,
39
45
  rel: "noopener noreferrer",
40
46
  target: "_blank"
41
47
  }, [createVNode(unref(ScalarIconLink), {
42
- weight: "bold",
43
- class: "size-3 text-current"
48
+ class: "size-3 text-current",
49
+ weight: "bold"
44
50
  }), createElementVNode("span", _hoisted_6, toDisplayString(__props.value.email ? "" : __props.value.name), 1)], 10, _hoisted_5)])) : !__props.value.email && __props.value.name ? (openBlock(), createElementBlock("div", _hoisted_7, [createElementVNode("span", { class: normalizeClass(unref(variants)({ link: false })) }, toDisplayString(__props.value.name), 3)])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true);
45
51
  };
46
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Contact.vue.script.js","names":[],"sources":["../../../src/features/info-object/Contact.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconEnvelopeSimple, ScalarIconLink } from '@scalar/icons'\nimport { cva } from '@scalar/use-hooks/useBindCx'\nimport type { ContactObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nconst variants = cva({\n base: 'text-c-1 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 group-last:mr-0 xl:border-none',\n variants: {\n link: {\n true: 'no-underline hover:bg-b-2',\n },\n },\n})\n\ndefineProps<{\n value?: ContactObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <!-- Each link gets its own wrapper so the dividers render between them -->\n <div\n v-if=\"value.email\"\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"`mailto:${value.email}`\">\n <ScalarIconEnvelopeSimple\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span class=\"ml-1 empty:hidden\">{{ value.name }}</span>\n </a>\n </div>\n <div\n v-if=\"value.url\"\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"value.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconLink\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <!-- Avoid repeating the name when the email link already shows it -->\n <span class=\"ml-1 empty:hidden\">{{\n value.email ? '' : value.name\n }}</span>\n </a>\n </div>\n <div\n v-else-if=\"!value.email && value.name\"\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <span :class=\"variants({ link: false })\">\n {{ value.name }}\n </span>\n </div>\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EAKA,MAAM,WAAW,IAAI;GACnB,MAAM;GACN,UAAU,EACR,MAAM,EACJ,MAAM,6BACP,EACF;GACF,CAAA;;UAQiB,QAAA,SAAA,WAAA,EAAhB,mBAsCW,UAAA,EAAA,KAAA,GAAA,EAAA,CAnCD,QAAA,MAAM,SAAA,WAAA,EADd,mBAWM,OAXN,YAWM,CARJ,mBAOI,KAAA;IAND,OAAK,eAAE,MAAA,SAAQ,CAAA,EAAA,MAAA,MAAA,CAAA,CAAA;IACf,MAAI,UAAY,QAAA,MAAM;OACvB,YAEgC,MAAA,yBAAA,EAAA;IAD9B,QAAO;IACP,OAAM;OACR,mBAAuD,QAAvD,YAAuD,gBAApB,QAAA,MAAM,KAAI,EAAA,EAAA,CAAA,EAAA,IAAA,WAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,EAIzC,QAAA,MAAM,OAAA,WAAA,EADd,mBAgBM,OAhBN,YAgBM,CAbJ,mBAYI,KAAA;IAXD,OAAK,eAAE,MAAA,SAAQ,CAAA,EAAA,MAAA,MAAA,CAAA,CAAA;IACf,MAAM,QAAA,MAAM;IACb,KAAI;IACJ,QAAO;OACP,YAEgC,MAAA,eAAA,EAAA;IAD9B,QAAO;IACP,OAAM;OAER,mBAES,QAFT,YAES,gBADP,QAAA,MAAM,QAAK,KAAQ,QAAA,MAAM,KAAI,EAAA,EAAA,CAAA,EAAA,IAAA,WAAA,CAAA,CAAA,IAAA,CAKrB,QAAA,MAAM,SAAS,QAAA,MAAM,QAAA,WAAA,EADnC,mBAMM,OANN,YAMM,CAHJ,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,SAAQ,CAAA,EAAA,MAAA,OAAA,CAAA,CAAA,EAAA,EAAA,gBACjB,QAAA,MAAM,KAAI,EAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,EAAA,GAAA,IAAA,mBAAA,IAAA,KAAA"}
1
+ {"version":3,"file":"Contact.vue.script.js","names":[],"sources":["../../../src/features/info-object/Contact.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconEnvelopeSimple, ScalarIconLink } from '@scalar/icons'\nimport { cva } from '@scalar/use-hooks/useBindCx'\nimport type { ContactObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { value } = defineProps<{\n value?: ContactObject\n}>()\n\n/**\n * The contact URL comes from the OpenAPI document, which is untrusted input, so a protocol like\n * `javascript:` would execute script on click. Fall back to the plain text label in that case.\n */\nconst url = computed(() => sanitizeUrl(value?.url))\n\nconst variants = cva({\n base: 'text-c-1 mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 group-last:mr-0 narrow:border',\n variants: {\n link: {\n true: 'no-underline hover:bg-b-2',\n },\n },\n})\n</script>\n\n<template>\n <template v-if=\"value\">\n <!-- Each link gets its own wrapper so the dividers render between them -->\n <div\n v-if=\"value.email\"\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"`mailto:${value.email}`\">\n <ScalarIconEnvelopeSimple\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ value.name }}</span>\n </a>\n </div>\n <div\n v-if=\"url\"\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n :class=\"variants({ link: true })\"\n :href=\"url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconLink\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <!-- Avoid repeating the name when the email link already shows it -->\n <span class=\"ml-1 empty:hidden\">{{\n value.email ? '' : value.name\n }}</span>\n </a>\n </div>\n <div\n v-else-if=\"!value.email && value.name\"\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <span :class=\"variants({ link: false })\">\n {{ value.name }}\n </span>\n </div>\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeA,MAAM,MAAM,eAAe,YAAY,QAAA,OAAO,GAAG,CAAC;EAElD,MAAM,WAAW,IAAI;GACnB,MAAM;GACN,UAAU,EACR,MAAM,EACJ,MAAM,4BACR,EACF;EACF,CAAC;;UAIiB,QAAA,SAAA,UAAA,GAAhB,mBAsCW,UAAA,EAAA,KAAA,EAAA,GAAA,CAnCD,QAAA,MAAM,SAAA,UAAA,GADd,mBAWM,OAXN,YAWM,CARJ,mBAOI,KAAA;IAND,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAA,EAAA,MAAA,KAAA,CAAA,CAAA;IACf,MAAI,UAAY,QAAA,MAAM;OACvB,YAEkB,MAAA,wBAAA,GAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAAuD,QAAvD,YAAuD,gBAApB,QAAA,MAAM,IAAI,GAAA,CAAA,CAAA,GAAA,IAAA,UAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,GAIzC,IAAA,SAAA,UAAA,GADR,mBAgBM,OAhBN,YAgBM,CAbJ,mBAYI,KAAA;IAXD,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAA,EAAA,MAAA,KAAA,CAAA,CAAA;IACf,MAAM,IAAA;IACP,KAAI;IACJ,QAAO;OACP,YAEkB,MAAA,cAAA,GAAA;IADhB,OAAM;IACN,QAAO;OAET,mBAES,QAFT,YAES,gBADP,QAAA,MAAM,QAAK,KAAQ,QAAA,MAAM,IAAI,GAAA,CAAA,CAAA,GAAA,IAAA,UAAA,CAAA,CAAA,KAAA,CAKrB,QAAA,MAAM,SAAS,QAAA,MAAM,QAAA,UAAA,GADnC,mBAMM,OANN,YAMM,CAHJ,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAA,EAAA,MAAA,MAAA,CAAA,CAAA,EAAA,GAAA,gBACjB,QAAA,MAAM,IAAI,GAAA,CAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,GAAA,EAAA,KAAA,mBAAA,IAAA,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"InfoLink.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/InfoLink.vue"],"names":[],"mappings":"AA6BA,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ,CAAC;AAyEF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"InfoLink.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/InfoLink.vue"],"names":[],"mappings":"AA+CA,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ,CAAC;AA2GF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InfoLink.vue.js","names":[],"sources":["../../../src/features/info-object/InfoLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconLink } from '@scalar/icons'\n\ndefineProps<{\n name: string\n url: string\n}>()\n</script>\n\n<template>\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n :href=\"url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconLink\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span class=\"ml-1 empty:hidden\">{{ name }}</span>\n </a>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"InfoLink.vue.js","names":[],"sources":["../../../src/features/info-object/InfoLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconLink } from '@scalar/icons'\nimport { computed } from 'vue'\n\nconst { url } = defineProps<{\n name: string\n url: string\n}>()\n\n/**\n * The link URL comes from the `x-scalar-links` extension of the OpenAPI document, which is\n * untrusted input, so a protocol like `javascript:` would execute script on click. Fall back to\n * the plain text label in that case.\n */\nconst safeUrl = computed(() => sanitizeUrl(url))\n</script>\n\n<template>\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n v-if=\"safeUrl\"\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"safeUrl\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconLink\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ name }}</span>\n </a>\n <template v-else>\n <ScalarIconLink\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ name }}</span>\n </template>\n </div>\n</template>\n"],"mappings":""}
@@ -1,26 +1,38 @@
1
- import { createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
1
+ import { Fragment, computed, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
2
2
  import { ScalarIconLink } from "@scalar/icons";
3
+ import { sanitizeUrl } from "@scalar/helpers/url/is-safe-url";
3
4
  //#region src/features/info-object/InfoLink.vue?vue&type=script&setup=true&lang.ts
4
- var _hoisted_1 = { class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto" };
5
+ var _hoisted_1 = { class: "group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0" };
5
6
  var _hoisted_2 = ["href"];
6
7
  var _hoisted_3 = { class: "ml-1 empty:hidden" };
7
- var InfoLink_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ var _hoisted_4 = { class: "ml-1 empty:hidden" };
9
+ var InfoLink_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
8
10
  __name: "InfoLink",
9
11
  props: {
10
12
  name: {},
11
13
  url: {}
12
14
  },
13
15
  setup(__props) {
16
+ /**
17
+ * The link URL comes from the `x-scalar-links` extension of the OpenAPI document, which is
18
+ * untrusted input, so a protocol like `javascript:` would execute script on click. Fall back to
19
+ * the plain text label in that case.
20
+ */
21
+ const safeUrl = computed(() => sanitizeUrl(__props.url));
14
22
  return (_ctx, _cache) => {
15
- return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("a", {
16
- class: "text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none",
17
- href: __props.url,
18
- target: "_blank",
19
- rel: "noopener noreferrer"
23
+ return openBlock(), createElementBlock("div", _hoisted_1, [safeUrl.value ? (openBlock(), createElementBlock("a", {
24
+ key: 0,
25
+ class: "text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0",
26
+ href: safeUrl.value,
27
+ rel: "noopener noreferrer",
28
+ target: "_blank"
20
29
  }, [createVNode(unref(ScalarIconLink), {
21
- weight: "bold",
22
- class: "size-3 text-current"
23
- }), createElementVNode("span", _hoisted_3, toDisplayString(__props.name), 1)], 8, _hoisted_2)]);
30
+ class: "size-3 text-current",
31
+ weight: "bold"
32
+ }), createElementVNode("span", _hoisted_3, toDisplayString(__props.name), 1)], 8, _hoisted_2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(unref(ScalarIconLink), {
33
+ class: "size-3 text-current",
34
+ weight: "bold"
35
+ }), createElementVNode("span", _hoisted_4, toDisplayString(__props.name), 1)], 64))]);
24
36
  };
25
37
  }
26
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"InfoLink.vue.script.js","names":[],"sources":["../../../src/features/info-object/InfoLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconLink } from '@scalar/icons'\n\ndefineProps<{\n name: string\n url: string\n}>()\n</script>\n\n<template>\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n :href=\"url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconLink\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span class=\"ml-1 empty:hidden\">{{ name }}</span>\n </a>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;uBAUE,mBAYM,OAZN,YAYM,CAVJ,mBASI,KAAA;IARF,OAAM;IACL,MAAM,QAAA;IACP,QAAO;IACP,KAAI;OACJ,YAEgC,MAAA,eAAA,EAAA;IAD9B,QAAO;IACP,OAAM;OACR,mBAAiD,QAAjD,YAAiD,gBAAd,QAAA,KAAI,EAAA,EAAA,CAAA,EAAA,GAAA,WAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"InfoLink.vue.script.js","names":[],"sources":["../../../src/features/info-object/InfoLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconLink } from '@scalar/icons'\nimport { computed } from 'vue'\n\nconst { url } = defineProps<{\n name: string\n url: string\n}>()\n\n/**\n * The link URL comes from the `x-scalar-links` extension of the OpenAPI document, which is\n * untrusted input, so a protocol like `javascript:` would execute script on click. Fall back to\n * the plain text label in that case.\n */\nconst safeUrl = computed(() => sanitizeUrl(url))\n</script>\n\n<template>\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n v-if=\"safeUrl\"\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"safeUrl\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconLink\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ name }}</span>\n </a>\n <template v-else>\n <ScalarIconLink\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ name }}</span>\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAeA,MAAM,UAAU,eAAe,YAAY,QAAA,GAAG,CAAC;;uBAI7C,mBAmBM,OAnBN,YAmBM,CAhBI,QAAA,SAAA,UAAA,GADR,mBAUI,KAAA;;IARF,OAAM;IACL,MAAM,QAAA;IACP,KAAI;IACJ,QAAO;OACP,YAEkB,MAAA,cAAA,GAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAAiD,QAAjD,YAAiD,gBAAd,QAAA,IAAI,GAAA,CAAA,CAAA,GAAA,GAAA,UAAA,MAAA,UAAA,GAEzC,mBAKW,UAAA,EAAA,KAAA,EAAA,GAAA,CAJT,YAEkB,MAAA,cAAA,GAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAAiD,QAAjD,YAAiD,gBAAd,QAAA,IAAI,GAAA,CAAA,CAAA,GAAA,EAAA,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"License.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/License.vue"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAEjG,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,aAAa,GAAG,qBAAqB,CAAA;CAC9C,CAAC;AAoGF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"License.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/License.vue"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAGjG,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,aAAa,GAAG,qBAAqB,CAAA;CAC9C,CAAC;AA+GF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"License.vue.js","names":[],"sources":["../../../src/features/info-object/License.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconGavel } from '@scalar/icons'\nimport type { AsyncApiLicenseObject } from '@scalar/types/asyncapi/3.1'\nimport type { LicenseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\ndefineProps<{\n value?: LicenseObject | AsyncApiLicenseObject\n}>()\n</script>\n\n<template>\n <div\n class=\"group flex h-fit items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n v-if=\"value?.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n :href=\"value.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{\n value?.name || ('identifier' in value && value.identifier) || value.url\n }}</span>\n </a>\n <template v-else>\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ value?.name }}</span>\n </template>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"License.vue.js","names":[],"sources":["../../../src/features/info-object/License.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconGavel } from '@scalar/icons'\nimport type { AsyncApiLicenseObject } from '@scalar/types/asyncapi/3.1'\nimport type { LicenseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { value } = defineProps<{\n value?: LicenseObject | AsyncApiLicenseObject\n}>()\n\n/**\n * The license URL comes from the OpenAPI document, which is untrusted input, so a protocol like\n * `javascript:` would execute script on click. Fall back to the plain text label in that case.\n */\nconst url = computed(() => sanitizeUrl(value?.url))\n</script>\n\n<template>\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex h-fit items-center border-r first:ml-auto last:border-r-0\">\n <a\n v-if=\"url\"\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{\n value?.name ||\n (value && 'identifier' in value && value.identifier) ||\n url\n }}</span>\n </a>\n <template v-else>\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ value?.name }}</span>\n </template>\n </div>\n</template>\n"],"mappings":""}
@@ -1,25 +1,31 @@
1
- import { Fragment, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
1
+ import { Fragment, computed, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
2
2
  import { ScalarIconGavel } from "@scalar/icons";
3
+ import { sanitizeUrl } from "@scalar/helpers/url/is-safe-url";
3
4
  //#region src/features/info-object/License.vue?vue&type=script&setup=true&lang.ts
4
- var _hoisted_1 = { class: "group flex h-fit items-center last:border-r-0 xl:border-r xl:first:ml-auto" };
5
+ var _hoisted_1 = { class: "group narrow:border-r-0 narrow:first:ml-0 flex h-fit items-center border-r first:ml-auto last:border-r-0" };
5
6
  var _hoisted_2 = ["href"];
6
7
  var _hoisted_3 = { class: "ml-1 empty:hidden" };
7
8
  var _hoisted_4 = { class: "ml-1 empty:hidden" };
8
- var License_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
9
+ var License_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
10
  __name: "License",
10
11
  props: { value: {} },
11
12
  setup(__props) {
13
+ /**
14
+ * The license URL comes from the OpenAPI document, which is untrusted input, so a protocol like
15
+ * `javascript:` would execute script on click. Fall back to the plain text label in that case.
16
+ */
17
+ const url = computed(() => sanitizeUrl(__props.value?.url));
12
18
  return (_ctx, _cache) => {
13
- return openBlock(), createElementBlock("div", _hoisted_1, [__props.value?.url ? (openBlock(), createElementBlock("a", {
19
+ return openBlock(), createElementBlock("div", _hoisted_1, [url.value ? (openBlock(), createElementBlock("a", {
14
20
  key: 0,
15
- class: "text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none",
16
- href: __props.value.url,
21
+ class: "text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0",
22
+ href: url.value,
17
23
  rel: "noopener noreferrer",
18
24
  target: "_blank"
19
25
  }, [createVNode(unref(ScalarIconGavel), {
20
26
  class: "size-3 text-current",
21
27
  weight: "bold"
22
- }), createElementVNode("span", _hoisted_3, toDisplayString(__props.value?.name || "identifier" in __props.value && __props.value.identifier || __props.value.url), 1)], 8, _hoisted_2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(unref(ScalarIconGavel), {
28
+ }), createElementVNode("span", _hoisted_3, toDisplayString(__props.value?.name || __props.value && "identifier" in __props.value && __props.value.identifier || url.value), 1)], 8, _hoisted_2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(unref(ScalarIconGavel), {
23
29
  class: "size-3 text-current",
24
30
  weight: "bold"
25
31
  }), createElementVNode("span", _hoisted_4, toDisplayString(__props.value?.name), 1)], 64))]);
@@ -1 +1 @@
1
- {"version":3,"file":"License.vue.script.js","names":[],"sources":["../../../src/features/info-object/License.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconGavel } from '@scalar/icons'\nimport type { AsyncApiLicenseObject } from '@scalar/types/asyncapi/3.1'\nimport type { LicenseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\ndefineProps<{\n value?: LicenseObject | AsyncApiLicenseObject\n}>()\n</script>\n\n<template>\n <div\n class=\"group flex h-fit items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n v-if=\"value?.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n :href=\"value.url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{\n value?.name || ('identifier' in value && value.identifier) || value.url\n }}</span>\n </a>\n <template v-else>\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ value?.name }}</span>\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;uBAWE,mBAqBM,OArBN,YAqBM,CAlBI,QAAA,OAAO,OAAA,WAAA,EADf,mBAYI,KAAA;;IAVF,OAAM;IACL,MAAM,QAAA,MAAM;IACb,KAAI;IACJ,QAAO;OACP,YAEkB,MAAA,gBAAA,EAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAES,QAFT,YAES,gBADP,QAAA,OAAO,QAAI,gBAAqB,QAAA,SAAS,QAAA,MAAM,cAAe,QAAA,MAAM,IAAG,EAAA,EAAA,CAAA,EAAA,GAAA,WAAA,KAAA,WAAA,EAG3E,mBAKW,UAAA,EAAA,KAAA,GAAA,EAAA,CAJT,YAEkB,MAAA,gBAAA,EAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAAwD,QAAxD,YAAwD,gBAArB,QAAA,OAAO,KAAI,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA"}
1
+ {"version":3,"file":"License.vue.script.js","names":[],"sources":["../../../src/features/info-object/License.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconGavel } from '@scalar/icons'\nimport type { AsyncApiLicenseObject } from '@scalar/types/asyncapi/3.1'\nimport type { LicenseObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { value } = defineProps<{\n value?: LicenseObject | AsyncApiLicenseObject\n}>()\n\n/**\n * The license URL comes from the OpenAPI document, which is untrusted input, so a protocol like\n * `javascript:` would execute script on click. Fall back to the plain text label in that case.\n */\nconst url = computed(() => sanitizeUrl(value?.url))\n</script>\n\n<template>\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex h-fit items-center border-r first:ml-auto last:border-r-0\">\n <a\n v-if=\"url\"\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{\n value?.name ||\n (value && 'identifier' in value && value.identifier) ||\n url\n }}</span>\n </a>\n <template v-else>\n <ScalarIconGavel\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">{{ value?.name }}</span>\n </template>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAeA,MAAM,MAAM,eAAe,YAAY,QAAA,OAAO,GAAG,CAAC;;uBAIhD,mBAuBM,OAvBN,YAuBM,CApBI,IAAA,SAAA,UAAA,GADR,mBAcI,KAAA;;IAZF,OAAM;IACL,MAAM,IAAA;IACP,KAAI;IACJ,QAAO;OACP,YAEkB,MAAA,eAAA,GAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAIS,QAJT,YAIS,gBAHP,QAAA,OAAO,QAAiB,QAAA,SAAK,gBAAoB,QAAA,SAAS,QAAA,MAAM,cAAuB,IAAA,KAAG,GAAA,CAAA,CAAA,GAAA,GAAA,UAAA,MAAA,UAAA,GAK9F,mBAKW,UAAA,EAAA,KAAA,EAAA,GAAA,CAJT,YAEkB,MAAA,eAAA,GAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAAwD,QAAxD,YAAwD,gBAArB,QAAA,OAAO,IAAI,GAAA,CAAA,CAAA,GAAA,EAAA,EAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TermsOfService.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/TermsOfService.vue"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8DAA8D,CAAA;AAI9F,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;CACrC,CAAC;AA6EF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"TermsOfService.vue.d.ts","sourceRoot":"","sources":["../../../src/features/info-object/TermsOfService.vue"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8DAA8D,CAAA;AAK9F,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;CACrC,CAAC;AAsFF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TermsOfService.vue.js","names":[],"sources":["../../../src/features/info-object/TermsOfService.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconScroll } from '@scalar/icons'\nimport type { InfoObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { useLocalization } from '@/features/localization'\n\ndefineProps<{\n value?: InfoObject['termsOfService']\n}>()\nconst { translate } = useLocalization()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n :href=\"value\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconScroll\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">\n {{ translate('info.termsOfService') }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"TermsOfService.vue.js","names":[],"sources":["../../../src/features/info-object/TermsOfService.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconScroll } from '@scalar/icons'\nimport type { InfoObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\n\nconst { value } = defineProps<{\n value?: InfoObject['termsOfService']\n}>()\nconst { translate } = useLocalization()\n\n/**\n * The terms of service URL comes from the OpenAPI document, which is untrusted input, so a\n * protocol like `javascript:` would execute script on click. Hide the link in that case.\n */\nconst url = computed(() => sanitizeUrl(value))\n</script>\n\n<template>\n <template v-if=\"url\">\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconScroll\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">\n {{ translate('info.termsOfService') }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":""}
@@ -1,22 +1,28 @@
1
1
  import { useLocalization } from "../localization/use-localization.js";
2
- import { createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
2
+ import { computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, toDisplayString, unref } from "vue";
3
3
  import { ScalarIconScroll } from "@scalar/icons";
4
+ import { sanitizeUrl } from "@scalar/helpers/url/is-safe-url";
4
5
  //#region src/features/info-object/TermsOfService.vue?vue&type=script&setup=true&lang.ts
5
6
  var _hoisted_1 = {
6
7
  key: 0,
7
- class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
8
+ class: "group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0"
8
9
  };
9
10
  var _hoisted_2 = ["href"];
10
11
  var _hoisted_3 = { class: "ml-1 empty:hidden" };
11
- var TermsOfService_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ var TermsOfService_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
12
13
  __name: "TermsOfService",
13
14
  props: { value: {} },
14
15
  setup(__props) {
15
16
  const { translate } = useLocalization();
17
+ /**
18
+ * The terms of service URL comes from the OpenAPI document, which is untrusted input, so a
19
+ * protocol like `javascript:` would execute script on click. Hide the link in that case.
20
+ */
21
+ const url = computed(() => sanitizeUrl(__props.value));
16
22
  return (_ctx, _cache) => {
17
- return __props.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("a", {
18
- class: "text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none",
19
- href: __props.value,
23
+ return url.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("a", {
24
+ class: "text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0",
25
+ href: url.value,
20
26
  rel: "noopener noreferrer",
21
27
  target: "_blank"
22
28
  }, [createVNode(unref(ScalarIconScroll), {
@@ -1 +1 @@
1
- {"version":3,"file":"TermsOfService.vue.script.js","names":[],"sources":["../../../src/features/info-object/TermsOfService.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconScroll } from '@scalar/icons'\nimport type { InfoObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\n\nimport { useLocalization } from '@/features/localization'\n\ndefineProps<{\n value?: InfoObject['termsOfService']\n}>()\nconst { translate } = useLocalization()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n :href=\"value\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconScroll\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">\n {{ translate('info.termsOfService') }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EASA,MAAM,EAAE,cAAc,iBAAgB;;UAIpB,QAAA,SAAA,WAAA,EACd,mBAcM,OAdN,YAcM,CAZJ,mBAWI,KAAA;IAVF,OAAM;IACL,MAAM,QAAA;IACP,KAAI;IACJ,QAAO;OACP,YAEkB,MAAA,iBAAA,EAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAEO,QAFP,YAEO,gBADF,MAAA,UAAS,CAAA,sBAAA,CAAA,EAAA,EAAA,CAAA,EAAA,GAAA,WAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
1
+ {"version":3,"file":"TermsOfService.vue.script.js","names":[],"sources":["../../../src/features/info-object/TermsOfService.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { sanitizeUrl } from '@scalar/helpers/url/is-safe-url'\nimport { ScalarIconScroll } from '@scalar/icons'\nimport type { InfoObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { useLocalization } from '@/features/localization'\n\nconst { value } = defineProps<{\n value?: InfoObject['termsOfService']\n}>()\nconst { translate } = useLocalization()\n\n/**\n * The terms of service URL comes from the OpenAPI document, which is untrusted input, so a\n * protocol like `javascript:` would execute script on click. Hide the link in that case.\n */\nconst url = computed(() => sanitizeUrl(value))\n</script>\n\n<template>\n <template v-if=\"url\">\n <div\n class=\"group narrow:border-r-0 narrow:first:ml-0 flex items-center border-r first:ml-auto last:border-r-0\">\n <a\n class=\"text-c-1 hover:bg-b-2 narrow:border mr-2 flex min-h-7 min-w-7 items-center rounded-lg px-2 py-1 no-underline group-last:mr-0\"\n :href=\"url\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <ScalarIconScroll\n class=\"size-3 text-current\"\n weight=\"bold\" />\n <span class=\"ml-1 empty:hidden\">\n {{ translate('info.termsOfService') }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAWA,MAAM,EAAE,cAAc,gBAAgB;;;;;EAMtC,MAAM,MAAM,eAAe,YAAY,QAAA,KAAK,CAAC;;UAI3B,IAAA,SAAA,UAAA,GACd,mBAcM,OAdN,YAcM,CAZJ,mBAWI,KAAA;IAVF,OAAM;IACL,MAAM,IAAA;IACP,KAAI;IACJ,QAAO;OACP,YAEkB,MAAA,gBAAA,GAAA;IADhB,OAAM;IACN,QAAO;OACT,mBAEO,QAFP,YAEO,gBADF,MAAA,SAAA,CAAS,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA,UAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA"}
@@ -223,6 +223,7 @@ export declare const ar: {
223
223
  oneOf: string;
224
224
  required: string;
225
225
  requires: string;
226
+ scopes: string;
226
227
  };
227
228
  };
228
229
  //# sourceMappingURL=ar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../../src/features/localization/locales/ar.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmOqB,CAAA"}
1
+ {"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../../src/features/localization/locales/ar.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoOqB,CAAA"}
@@ -217,7 +217,8 @@ var ar = {
217
217
  optional: "المصادقة اختيارية",
218
218
  oneOf: "واحد من:",
219
219
  required: "المصادقة مطلوبة",
220
- requires: "يتطلب"
220
+ requires: "يتطلب",
221
+ scopes: "نطاقات OAuth"
221
222
  }
222
223
  };
223
224
  //#endregion