@scalar/api-reference 1.57.5 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/dist/blocks/index.d.ts +1 -0
  3. package/dist/blocks/index.d.ts.map +1 -1
  4. package/dist/blocks/index.js +2 -1
  5. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.d.ts +24 -0
  6. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.d.ts.map +1 -0
  7. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.js +7 -0
  8. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.js.map +1 -0
  9. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js +80 -0
  10. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js.map +1 -0
  11. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.d.ts +25 -0
  12. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.d.ts.map +1 -0
  13. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.js +7 -0
  14. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.js.map +1 -0
  15. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js +76 -0
  16. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js.map +1 -0
  17. package/dist/blocks/scalar-asyncapi-server-selector-block/index.d.ts +2 -0
  18. package/dist/blocks/scalar-asyncapi-server-selector-block/index.d.ts.map +1 -0
  19. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts +2 -3
  20. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts.map +1 -1
  21. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js +1 -1
  22. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js.map +1 -1
  23. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js.map +1 -1
  24. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.d.ts +2 -6
  25. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.d.ts.map +1 -1
  26. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js +1 -1
  27. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js.map +1 -1
  28. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js +26 -36
  29. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js.map +1 -1
  30. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.d.ts +1 -1
  31. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.d.ts.map +1 -1
  32. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.js.map +1 -1
  33. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.d.ts +9 -0
  34. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.d.ts.map +1 -0
  35. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js +9 -0
  36. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js.map +1 -0
  37. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js +225 -0
  38. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js.map +1 -0
  39. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.d.ts +4 -0
  40. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.d.ts.map +1 -0
  41. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.js +59 -0
  42. package/dist/blocks/scalar-sdk-installation-instructions/helpers/language-icon.js.map +1 -0
  43. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.d.ts +19 -0
  44. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.d.ts.map +1 -0
  45. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.js +19 -0
  46. package/dist/blocks/scalar-sdk-installation-instructions/helpers/renderable-sdks.js.map +1 -0
  47. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.d.ts +16 -0
  48. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.d.ts.map +1 -0
  49. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.js +29 -0
  50. package/dist/blocks/scalar-sdk-installation-instructions/helpers/visible-tab-count.js.map +1 -0
  51. package/dist/blocks/scalar-sdk-installation-instructions/index.d.ts +3 -0
  52. package/dist/blocks/scalar-sdk-installation-instructions/index.d.ts.map +1 -0
  53. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js +1 -1
  54. package/dist/browser/chunks/AgentScalarChatInterface-BXB1nZKJ.js +27 -0
  55. package/dist/browser/chunks/ScalarTextInput.vue-XkIzhvc0.js +27 -0
  56. package/dist/browser/chunks/basic-shape-diamond.svg-BTEOT1FL.js +15 -0
  57. package/dist/browser/chunks/basic-shape-hexagon.svg-BSPzaCgF.js +15 -0
  58. package/dist/browser/chunks/basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js +15 -0
  59. package/dist/browser/chunks/basic-shape-primary-square-rectangle.svg-n2YRykHD.js +15 -0
  60. package/dist/browser/chunks/basic-shape-shield.svg-Bec9cJDA.js +15 -0
  61. package/dist/browser/chunks/browser-67K6wmG9.js +129 -0
  62. package/dist/browser/chunks/computer-device-desktop-monitor.svg-m6j893Hb.js +15 -0
  63. package/dist/browser/chunks/computer-device-desktop.svg-Dk1VVO7k.js +15 -0
  64. package/dist/browser/chunks/computer-device-laptop.svg-BNGVUCYS.js +15 -0
  65. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js +15 -0
  66. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js +15 -0
  67. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js +15 -0
  68. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js +15 -0
  69. package/dist/browser/chunks/computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js +15 -0
  70. package/dist/browser/chunks/computer-device-mobile-tablet.svg-DCr0XlRc.js +15 -0
  71. package/dist/browser/chunks/computer-device-network-ethernet-cat6.svg-AK9l0iOl.js +15 -0
  72. package/dist/browser/chunks/computer-device-network-lan-www.svg-gUIdFBlE.js +15 -0
  73. package/dist/browser/chunks/computer-device-network-wifi-connection.svg-Be-EMm4e.js +15 -0
  74. package/dist/browser/chunks/computer-device-network-wifi-router.svg-Dc2VzyqK.js +15 -0
  75. package/dist/browser/chunks/ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js +15 -0
  76. package/dist/browser/chunks/image-flash-lightning.svg-EETR_y1q.js +15 -0
  77. package/dist/browser/chunks/image-picture-flower.svg-DN1AYzJU.js +15 -0
  78. package/dist/browser/chunks/interface-alert-exclamation-diamond.svg-C5NozMV_.js +15 -0
  79. package/dist/browser/chunks/interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js +15 -0
  80. package/dist/browser/chunks/interface-alert-information-circle.svg-ckkkt9Mv.js +15 -0
  81. package/dist/browser/chunks/interface-award-crown.svg-pjvn9hY-.js +15 -0
  82. package/dist/browser/chunks/interface-bookmark-tag.svg-r2r-lQq4.js +15 -0
  83. package/dist/browser/chunks/interface-bookmark.svg-BK9HKQBT.js +15 -0
  84. package/dist/browser/chunks/interface-calendar-date-one.svg-DNnF0M1I.js +15 -0
  85. package/dist/browser/chunks/interface-content-book-open-pages.svg-CQj_w9Vp.js +15 -0
  86. package/dist/browser/chunks/interface-content-book-page.svg-DppoeJRe.js +15 -0
  87. package/dist/browser/chunks/interface-content-file.svg-CvcD7OiY.js +15 -0
  88. package/dist/browser/chunks/interface-content-folder.svg-BmtS5I9A.js +15 -0
  89. package/dist/browser/chunks/interface-copy-clipboard.svg-Be6EI50X.js +15 -0
  90. package/dist/browser/chunks/interface-edit-attachment.svg-G5TKzpWX.js +15 -0
  91. package/dist/browser/chunks/interface-edit-binocular.svg-jzL-DvGB.js +15 -0
  92. package/dist/browser/chunks/interface-edit-magic-wand.svg-BOTlymvp.js +15 -0
  93. package/dist/browser/chunks/interface-edit-tool-paint-roller.svg-s9dwryx7.js +15 -0
  94. package/dist/browser/chunks/interface-edit-tool-pencil.svg-C7v0dbB3.js +15 -0
  95. package/dist/browser/chunks/interface-favorite-award.svg-CYHUgUG0.js +15 -0
  96. package/dist/browser/chunks/interface-favorite-flag.svg-C10zlKOb.js +15 -0
  97. package/dist/browser/chunks/interface-favorite-heart.svg-eoduXxlz.js +15 -0
  98. package/dist/browser/chunks/interface-favorite-star.svg-BSmxJetr.js +15 -0
  99. package/dist/browser/chunks/interface-favorite-stars-sparkles.svg-JTFLj3Ls.js +15 -0
  100. package/dist/browser/chunks/interface-hierarchy-flowchart.svg-Cg_Wy0kN.js +15 -0
  101. package/dist/browser/chunks/interface-home-house.svg-DytoGRnv.js +15 -0
  102. package/dist/browser/chunks/interface-hyperlink.svg-CuEfmmQI.js +15 -0
  103. package/dist/browser/chunks/interface-lighting-brightness.svg-DSK0h_Pa.js +15 -0
  104. package/dist/browser/chunks/interface-lock-closed.svg-Cn6TaLYv.js +15 -0
  105. package/dist/browser/chunks/interface-lock-open-unlock.svg-CVkG5-9W.js +15 -0
  106. package/dist/browser/chunks/interface-login-key.svg-y-cwwXjN.js +15 -0
  107. package/dist/browser/chunks/interface-search.svg-S-puVFJB.js +15 -0
  108. package/dist/browser/chunks/interface-setting-cog.svg-CTH4_lLg.js +15 -0
  109. package/dist/browser/chunks/interface-share-megaphone-bullhorn.svg-Pbp39MyC.js +15 -0
  110. package/dist/browser/chunks/interface-share-rocket.svg-BgCsIRZO.js +15 -0
  111. package/dist/browser/chunks/interface-share-satellite.svg-DAMN9d5G.js +15 -0
  112. package/dist/browser/chunks/interface-share-space-ship.svg-Dt-Mejxk.js +15 -0
  113. package/dist/browser/chunks/interface-share.svg-vFYTXSti.js +15 -0
  114. package/dist/browser/chunks/interface-signal-square.svg-DNG4LpAe.js +15 -0
  115. package/dist/browser/chunks/interface-time-clock-circle.svg-Bpz-nLxo.js +15 -0
  116. package/dist/browser/chunks/interface-time-hour-glass.svg-D7agfKsH.js +15 -0
  117. package/dist/browser/chunks/interface-users-multiple.svg-CkPJBBnG.js +15 -0
  118. package/dist/browser/chunks/interface-weather-moon.svg-CaTZFMPO.js +15 -0
  119. package/dist/browser/chunks/mail-chat-bubble-square.svg-DC8RIihp.js +15 -0
  120. package/dist/browser/chunks/mail-send-email-paper-airplane.svg-D8OLs9jz.js +15 -0
  121. package/dist/browser/chunks/mail-send-envelope.svg-CV33h5Sx.js +15 -0
  122. package/dist/browser/chunks/modal-Bp9V4D2s.js +66 -0
  123. package/dist/browser/chunks/modal-CtAiwzwH.js +15 -0
  124. package/dist/browser/chunks/money-cashier-receipt.svg-CJL8C2gs.js +15 -0
  125. package/dist/browser/chunks/money-currency-dollar-pay.svg-VdBplCTx.js +15 -0
  126. package/dist/browser/chunks/money-graph-arrow-increase.svg-DcRov3zk.js +15 -0
  127. package/dist/browser/chunks/money-graph-bar-chart-increase.svg-Cc7KxjX-.js +15 -0
  128. package/dist/browser/chunks/nature-ecology-leaf.svg-DR3cTZxt.js +15 -0
  129. package/dist/browser/chunks/phone-telephone.svg-DyY0gUlk.js +15 -0
  130. package/dist/browser/chunks/programming-bug.svg-BHLT-Qhp.js +15 -0
  131. package/dist/browser/chunks/programming-cloud.svg-B6YW33ba.js +15 -0
  132. package/dist/browser/chunks/programming-computer-database-server.svg-B6o5Sdn-.js +15 -0
  133. package/dist/browser/chunks/programming-computer-database.svg-Cl7OVtpJ.js +15 -0
  134. package/dist/browser/chunks/programming-module-four-layout.svg-BQrerL1x.js +15 -0
  135. package/dist/browser/chunks/programming-module-three.svg-B2KTQzBM.js +15 -0
  136. package/dist/browser/chunks/programming-module.svg-CiID7kPm.js +15 -0
  137. package/dist/browser/chunks/programming-script-code.svg-D1M5rtkN.js +15 -0
  138. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +17 -0
  139. package/dist/browser/chunks/shopping-cart.svg-BEegiIR9.js +15 -0
  140. package/dist/browser/chunks/shopping-gift-present.svg-BUHwuLix.js +15 -0
  141. package/dist/browser/chunks/shopping-shipping-box-parcel-package.svg-D6fxWdYx.js +15 -0
  142. package/dist/browser/chunks/tag-new-circle.svg-jsg1bGs0.js +15 -0
  143. package/dist/browser/chunks/travel-map-earth-globe.svg-ClbMiU-f.js +15 -0
  144. package/dist/browser/chunks/vendor-nugWm4eq.js +337 -0
  145. package/dist/browser/standalone.esm.js +1853 -0
  146. package/dist/browser/standalone.js +258 -255
  147. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  148. package/dist/components/ApiReference.vue.js +1 -1
  149. package/dist/components/ApiReference.vue.js.map +1 -1
  150. package/dist/components/ApiReference.vue.script.js +79 -28
  151. package/dist/components/ApiReference.vue.script.js.map +1 -1
  152. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.d.ts +16 -0
  153. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.d.ts.map +1 -0
  154. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.js +7 -0
  155. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.js.map +1 -0
  156. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js +166 -0
  157. package/dist/components/Content/AsyncApi/AsyncApiTraversedEntry.vue.script.js.map +1 -0
  158. package/dist/components/Content/AsyncApi/Channel.vue.d.ts +18 -0
  159. package/dist/components/Content/AsyncApi/Channel.vue.d.ts.map +1 -0
  160. package/dist/components/Content/AsyncApi/Channel.vue.js +9 -0
  161. package/dist/components/Content/AsyncApi/Channel.vue.js.map +1 -0
  162. package/dist/components/Content/AsyncApi/Channel.vue.script.js +148 -0
  163. package/dist/components/Content/AsyncApi/Channel.vue.script.js.map +1 -0
  164. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.d.ts +14 -0
  165. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.d.ts.map +1 -0
  166. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.js +34 -0
  167. package/dist/components/Content/AsyncApi/helpers/adapt-async-api-parameters.js.map +1 -0
  168. package/dist/components/Content/AsyncApi/index.d.ts +2 -0
  169. package/dist/components/Content/AsyncApi/index.d.ts.map +1 -0
  170. package/dist/components/Content/Auth/Auth.vue.d.ts +1 -1
  171. package/dist/components/Content/Auth/Auth.vue.d.ts.map +1 -1
  172. package/dist/components/Content/Auth/Auth.vue.js.map +1 -1
  173. package/dist/components/Content/Auth/Auth.vue.script.js +2 -0
  174. package/dist/components/Content/Auth/Auth.vue.script.js.map +1 -1
  175. package/dist/components/Content/Content.vue.d.ts +3 -3
  176. package/dist/components/Content/Content.vue.d.ts.map +1 -1
  177. package/dist/components/Content/Content.vue.js.map +1 -1
  178. package/dist/components/Content/Content.vue.script.js +69 -9
  179. package/dist/components/Content/Content.vue.script.js.map +1 -1
  180. package/dist/components/Content/Models/Model.vue.d.ts +4 -2
  181. package/dist/components/Content/Models/Model.vue.d.ts.map +1 -1
  182. package/dist/components/Content/Models/Model.vue.js.map +1 -1
  183. package/dist/components/Content/Models/Model.vue.script.js +6 -1
  184. package/dist/components/Content/Models/Model.vue.script.js.map +1 -1
  185. package/dist/components/Content/Models/ModelTag.vue.d.ts +2 -0
  186. package/dist/components/Content/Models/ModelTag.vue.d.ts.map +1 -1
  187. package/dist/components/Content/Models/ModelTag.vue.js.map +1 -1
  188. package/dist/components/Content/Models/ModelTag.vue.script.js +11 -12
  189. package/dist/components/Content/Models/ModelTag.vue.script.js.map +1 -1
  190. package/dist/components/Content/Models/components/ClassicLayout.vue.d.ts +4 -2
  191. package/dist/components/Content/Models/components/ClassicLayout.vue.d.ts.map +1 -1
  192. package/dist/components/Content/Models/components/ClassicLayout.vue.js +1 -1
  193. package/dist/components/Content/Models/components/ClassicLayout.vue.js.map +1 -1
  194. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js +9 -2
  195. package/dist/components/Content/Models/components/ClassicLayout.vue.script.js.map +1 -1
  196. package/dist/components/Content/Models/components/ModernLayout.vue.d.ts +4 -1
  197. package/dist/components/Content/Models/components/ModernLayout.vue.d.ts.map +1 -1
  198. package/dist/components/Content/Models/components/ModernLayout.vue.js.map +1 -1
  199. package/dist/components/Content/Models/components/ModernLayout.vue.script.js +5 -1
  200. package/dist/components/Content/Models/components/ModernLayout.vue.script.js.map +1 -1
  201. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts +1 -1
  202. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  203. package/dist/components/Content/Operations/TraversedEntry.vue.js.map +1 -1
  204. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +11 -4
  205. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  206. package/dist/components/Content/Schema/Schema.vue.d.ts +6 -0
  207. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  208. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  209. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  210. package/dist/components/Content/Schema/Schema.vue.script.js +32 -7
  211. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  212. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  213. package/dist/components/Content/Schema/SchemaComposition.vue.js.map +1 -1
  214. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +16 -3
  215. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  216. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js +1 -1
  217. package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts.map +1 -1
  218. package/dist/components/Content/Schema/SchemaObjectProperties.vue.js.map +1 -1
  219. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js +11 -6
  220. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js.map +1 -1
  221. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +2 -0
  222. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  223. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  224. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  225. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +17 -2
  226. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  227. package/dist/components/Content/Schema/helpers/get-compositions-to-render.d.ts +3 -2
  228. package/dist/components/Content/Schema/helpers/get-compositions-to-render.d.ts.map +1 -1
  229. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js +26 -1
  230. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js.map +1 -1
  231. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.d.ts +2 -1
  232. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.d.ts.map +1 -1
  233. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +40 -25
  234. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js.map +1 -1
  235. package/dist/components/Content/Schema/helpers/schema-cycle.d.ts +31 -0
  236. package/dist/components/Content/Schema/helpers/schema-cycle.d.ts.map +1 -0
  237. package/dist/components/Content/Schema/helpers/schema-cycle.js +39 -0
  238. package/dist/components/Content/Schema/helpers/schema-cycle.js.map +1 -0
  239. package/dist/components/Content/Schema/types.d.ts +10 -0
  240. package/dist/components/Content/Schema/types.d.ts.map +1 -1
  241. package/dist/components/index.js +1 -1
  242. package/dist/features/Operation/Operation.vue.d.ts +1 -1
  243. package/dist/features/Operation/Operation.vue.d.ts.map +1 -1
  244. package/dist/features/Operation/Operation.vue.js.map +1 -1
  245. package/dist/features/Operation/Operation.vue.script.js +4 -0
  246. package/dist/features/Operation/Operation.vue.script.js.map +1 -1
  247. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js +1 -1
  248. package/dist/features/Operation/components/Header.vue.d.ts +4 -1
  249. package/dist/features/Operation/components/Header.vue.d.ts.map +1 -1
  250. package/dist/features/Operation/components/Header.vue.js.map +1 -1
  251. package/dist/features/Operation/components/Header.vue.script.js +6 -2
  252. package/dist/features/Operation/components/Header.vue.script.js.map +1 -1
  253. package/dist/features/Operation/components/Headers.vue.d.ts +4 -1
  254. package/dist/features/Operation/components/Headers.vue.d.ts.map +1 -1
  255. package/dist/features/Operation/components/Headers.vue.js +1 -1
  256. package/dist/features/Operation/components/Headers.vue.js.map +1 -1
  257. package/dist/features/Operation/components/Headers.vue.script.js +10 -4
  258. package/dist/features/Operation/components/Headers.vue.script.js.map +1 -1
  259. package/dist/features/Operation/components/OperationParameters.vue.d.ts +4 -2
  260. package/dist/features/Operation/components/OperationParameters.vue.d.ts.map +1 -1
  261. package/dist/features/Operation/components/OperationParameters.vue.js.map +1 -1
  262. package/dist/features/Operation/components/OperationParameters.vue.script.js +12 -1
  263. package/dist/features/Operation/components/OperationParameters.vue.script.js.map +1 -1
  264. package/dist/features/Operation/components/OperationResponses.vue.d.ts +4 -2
  265. package/dist/features/Operation/components/OperationResponses.vue.d.ts.map +1 -1
  266. package/dist/features/Operation/components/OperationResponses.vue.js.map +1 -1
  267. package/dist/features/Operation/components/OperationResponses.vue.script.js +3 -0
  268. package/dist/features/Operation/components/OperationResponses.vue.script.js.map +1 -1
  269. package/dist/features/Operation/components/ParameterList.vue.d.ts +4 -2
  270. package/dist/features/Operation/components/ParameterList.vue.d.ts.map +1 -1
  271. package/dist/features/Operation/components/ParameterList.vue.js.map +1 -1
  272. package/dist/features/Operation/components/ParameterList.vue.script.js +3 -0
  273. package/dist/features/Operation/components/ParameterList.vue.script.js.map +1 -1
  274. package/dist/features/Operation/components/ParameterListItem.vue.d.ts +4 -2
  275. package/dist/features/Operation/components/ParameterListItem.vue.d.ts.map +1 -1
  276. package/dist/features/Operation/components/ParameterListItem.vue.js +1 -1
  277. package/dist/features/Operation/components/ParameterListItem.vue.js.map +1 -1
  278. package/dist/features/Operation/components/ParameterListItem.vue.script.js +8 -1
  279. package/dist/features/Operation/components/ParameterListItem.vue.script.js.map +1 -1
  280. package/dist/features/Operation/components/RequestBody.vue.d.ts +4 -1
  281. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  282. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  283. package/dist/features/Operation/components/RequestBody.vue.js.map +1 -1
  284. package/dist/features/Operation/components/RequestBody.vue.script.js +10 -3
  285. package/dist/features/Operation/components/RequestBody.vue.script.js.map +1 -1
  286. package/dist/features/Operation/components/callbacks/Callback.vue.d.ts +4 -2
  287. package/dist/features/Operation/components/callbacks/Callback.vue.d.ts.map +1 -1
  288. package/dist/features/Operation/components/callbacks/Callback.vue.js +1 -1
  289. package/dist/features/Operation/components/callbacks/Callback.vue.js.map +1 -1
  290. package/dist/features/Operation/components/callbacks/Callback.vue.script.js +5 -0
  291. package/dist/features/Operation/components/callbacks/Callback.vue.script.js.map +1 -1
  292. package/dist/features/Operation/components/callbacks/Callbacks.vue.d.ts +4 -2
  293. package/dist/features/Operation/components/callbacks/Callbacks.vue.d.ts.map +1 -1
  294. package/dist/features/Operation/components/callbacks/Callbacks.vue.js.map +1 -1
  295. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js +3 -0
  296. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js.map +1 -1
  297. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts +3 -1
  298. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts.map +1 -1
  299. package/dist/features/Operation/layouts/ClassicLayout.vue.js +1 -1
  300. package/dist/features/Operation/layouts/ClassicLayout.vue.js.map +1 -1
  301. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js +8 -1
  302. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js.map +1 -1
  303. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts +3 -1
  304. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  305. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  306. package/dist/features/Operation/layouts/ModernLayout.vue.js.map +1 -1
  307. package/dist/features/Operation/layouts/ModernLayout.vue.script.js +170 -176
  308. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  309. package/dist/features/Search/components/SearchButton.vue.d.ts +4 -1
  310. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -1
  311. package/dist/features/Search/components/SearchButton.vue.js.map +1 -1
  312. package/dist/features/Search/components/SearchButton.vue.script.js +20 -9
  313. package/dist/features/Search/components/SearchButton.vue.script.js.map +1 -1
  314. package/dist/features/Search/components/SearchModal.vue.d.ts +4 -1
  315. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -1
  316. package/dist/features/Search/components/SearchModal.vue.js +1 -1
  317. package/dist/features/Search/components/SearchModal.vue.js.map +1 -1
  318. package/dist/features/Search/components/SearchModal.vue.script.js +7 -5
  319. package/dist/features/Search/components/SearchModal.vue.script.js.map +1 -1
  320. package/dist/features/Search/components/SearchResult.vue.d.ts +2 -0
  321. package/dist/features/Search/components/SearchResult.vue.d.ts.map +1 -1
  322. package/dist/features/Search/components/SearchResult.vue.js.map +1 -1
  323. package/dist/features/Search/components/SearchResult.vue.script.js +8 -6
  324. package/dist/features/Search/components/SearchResult.vue.script.js.map +1 -1
  325. package/dist/features/Search/helpers/create-search-index.d.ts +9 -1
  326. package/dist/features/Search/helpers/create-search-index.d.ts.map +1 -1
  327. package/dist/features/Search/helpers/create-search-index.js +27 -8
  328. package/dist/features/Search/helpers/create-search-index.js.map +1 -1
  329. package/dist/features/Search/hooks/useSearchIndex.d.ts +4 -2
  330. package/dist/features/Search/hooks/useSearchIndex.d.ts.map +1 -1
  331. package/dist/features/Search/hooks/useSearchIndex.js +4 -3
  332. package/dist/features/Search/hooks/useSearchIndex.js.map +1 -1
  333. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.d.ts +1 -1
  334. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.d.ts.map +1 -1
  335. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js.map +1 -1
  336. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js +11 -9
  337. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js.map +1 -1
  338. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js +1 -1
  339. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.d.ts.map +1 -1
  340. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js.map +1 -1
  341. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js +9 -1
  342. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js.map +1 -1
  343. package/dist/features/example-responses/ExampleResponse.vue.d.ts.map +1 -1
  344. package/dist/features/example-responses/ExampleResponse.vue.js +1 -1
  345. package/dist/features/example-responses/ExampleResponse.vue.js.map +1 -1
  346. package/dist/features/example-responses/ExampleResponse.vue.script.js +6 -7
  347. package/dist/features/example-responses/ExampleResponse.vue.script.js.map +1 -1
  348. package/dist/features/example-responses/ExampleResponses.vue.script.js +1 -1
  349. package/dist/features/example-responses/ExampleSchema.vue.d.ts.map +1 -1
  350. package/dist/features/example-responses/ExampleSchema.vue.js.map +1 -1
  351. package/dist/features/example-responses/ExampleSchema.vue.script.js +6 -7
  352. package/dist/features/example-responses/ExampleSchema.vue.script.js.map +1 -1
  353. package/dist/features/info-object/Contact.vue.d.ts.map +1 -1
  354. package/dist/features/info-object/Contact.vue.js.map +1 -1
  355. package/dist/features/info-object/Contact.vue.script.js +15 -4
  356. package/dist/features/info-object/Contact.vue.script.js.map +1 -1
  357. package/dist/helpers/get-async-api-model-schema.d.ts +15 -0
  358. package/dist/helpers/get-async-api-model-schema.d.ts.map +1 -0
  359. package/dist/helpers/get-async-api-model-schema.js +32 -0
  360. package/dist/helpers/get-async-api-model-schema.js.map +1 -0
  361. package/dist/helpers/id-routing.d.ts +18 -0
  362. package/dist/helpers/id-routing.d.ts.map +1 -1
  363. package/dist/helpers/id-routing.js +41 -1
  364. package/dist/helpers/id-routing.js.map +1 -1
  365. package/dist/helpers/load-from-perssistance.d.ts +2 -1
  366. package/dist/helpers/load-from-perssistance.d.ts.map +1 -1
  367. package/dist/helpers/load-from-perssistance.js +4 -3
  368. package/dist/helpers/load-from-perssistance.js.map +1 -1
  369. package/dist/plugins/index.d.ts +1 -1
  370. package/dist/plugins/index.js +1 -1
  371. package/dist/plugins/{persistance-plugin.d.ts → persistence-plugin.d.ts} +2 -8
  372. package/dist/plugins/persistence-plugin.d.ts.map +1 -0
  373. package/dist/plugins/{persistance-plugin.js → persistence-plugin.js} +4 -13
  374. package/dist/plugins/persistence-plugin.js.map +1 -0
  375. package/dist/standalone/lib/html-api.d.ts.map +1 -1
  376. package/dist/standalone/lib/html-api.js +60 -2
  377. package/dist/standalone/lib/html-api.js.map +1 -1
  378. package/dist/standalone.esm.d.ts +4 -0
  379. package/dist/standalone.esm.d.ts.map +1 -0
  380. package/dist/style.css +665 -470
  381. package/dist/vue-styles.css +661 -463
  382. package/package.json +21 -19
  383. package/dist/browser/webpack-stats.json +0 -1
  384. package/dist/plugins/persistance-plugin.d.ts.map +0 -1
  385. package/dist/plugins/persistance-plugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"load-from-perssistance.d.ts","sourceRoot":"","sources":["../../src/helpers/load-from-perssistance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAIpE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,cAAc,KAAG,IAM7D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,cAAc,EAAE,MAAM,MAAM,KAAG,IAIzE,CAAA"}
1
+ {"version":3,"file":"load-from-perssistance.d.ts","sourceRoot":"","sources":["../../src/helpers/load-from-perssistance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAIpE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,cAAc,KAAG,IAM7D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,cAAc,EAAE,MAAM,MAAM,KAAG,IAIzE,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import { authStorage, clientStorage } from "./storage.js";
2
- import { isClient } from "@scalar/api-client/blocks/operation-code-sample";
2
+ import { isSelectedClient } from "@scalar/api-client/blocks/operation-code-sample";
3
3
  //#region src/helpers/load-from-perssistance.ts
4
4
  /**
5
5
  * Loads the default HTTP client from storage and applies it to the workspace.
6
- * Only updates if no default client is already set.
6
+ * Only updates if no default client is already set. Accepts both built-in client
7
+ * ids and custom sample ids (e.g. `custom/python`) so a custom selection persists.
7
8
  */
8
9
  var loadClientFromStorage = (store) => {
9
10
  const storedClient = clientStorage().get();
10
- if (isClient(storedClient) && !store.workspace["x-scalar-default-client"]) store.update("x-scalar-default-client", storedClient);
11
+ if (isSelectedClient(storedClient) && !store.workspace["x-scalar-default-client"]) store.update("x-scalar-default-client", storedClient);
11
12
  };
12
13
  /**
13
14
  * Loads the authentication data from storage and applies it to the workspace.
@@ -1 +1 @@
1
- {"version":3,"file":"load-from-perssistance.js","names":[],"sources":["../../src/helpers/load-from-perssistance.ts"],"sourcesContent":["import { isClient } from '@scalar/api-client/blocks/operation-code-sample'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\n\nimport { authStorage, clientStorage } from '@/helpers/storage'\n\n/**\n * Loads the default HTTP client from storage and applies it to the workspace.\n * Only updates if no default client is already set.\n */\nexport const loadClientFromStorage = (store: WorkspaceStore): void => {\n const storedClient = clientStorage().get()\n\n if (isClient(storedClient) && !store.workspace['x-scalar-default-client']) {\n store.update('x-scalar-default-client', storedClient)\n }\n}\n\n/**\n * Loads the authentication data from storage and applies it to the workspace.\n * Only updates if no authentication data is already set.\n */\nexport const loadAuthFromStorage = (store: WorkspaceStore, slug: string): void => {\n const authPersistence = authStorage()\n const auth = authPersistence.getAuth(slug)\n store.auth.load({ [slug]: auth })\n}\n"],"mappings":";;;;;;;AASA,IAAa,yBAAyB,UAAgC;CACpE,MAAM,eAAe,eAAe,CAAC,KAAK;AAE1C,KAAI,SAAS,aAAa,IAAI,CAAC,MAAM,UAAU,2BAC7C,OAAM,OAAO,2BAA2B,aAAa;;;;;;AAQzD,IAAa,uBAAuB,OAAuB,SAAuB;CAEhF,MAAM,OADkB,aAAa,CACR,QAAQ,KAAK;AAC1C,OAAM,KAAK,KAAK,GAAG,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"load-from-perssistance.js","names":[],"sources":["../../src/helpers/load-from-perssistance.ts"],"sourcesContent":["import { isSelectedClient } from '@scalar/api-client/blocks/operation-code-sample'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\n\nimport { authStorage, clientStorage } from '@/helpers/storage'\n\n/**\n * Loads the default HTTP client from storage and applies it to the workspace.\n * Only updates if no default client is already set. Accepts both built-in client\n * ids and custom sample ids (e.g. `custom/python`) so a custom selection persists.\n */\nexport const loadClientFromStorage = (store: WorkspaceStore): void => {\n const storedClient = clientStorage().get()\n\n if (isSelectedClient(storedClient) && !store.workspace['x-scalar-default-client']) {\n store.update('x-scalar-default-client', storedClient)\n }\n}\n\n/**\n * Loads the authentication data from storage and applies it to the workspace.\n * Only updates if no authentication data is already set.\n */\nexport const loadAuthFromStorage = (store: WorkspaceStore, slug: string): void => {\n const authPersistence = authStorage()\n const auth = authPersistence.getAuth(slug)\n store.auth.load({ [slug]: auth })\n}\n"],"mappings":";;;;;;;;AAUA,IAAa,yBAAyB,UAAgC;CACpE,MAAM,eAAe,eAAe,CAAC,KAAK;AAE1C,KAAI,iBAAiB,aAAa,IAAI,CAAC,MAAM,UAAU,2BACrD,OAAM,OAAO,2BAA2B,aAAa;;;;;;AAQzD,IAAa,uBAAuB,OAAuB,SAAuB;CAEhF,MAAM,OADkB,aAAa,CACR,QAAQ,KAAK;AAC1C,OAAM,KAAK,KAAK,GAAG,OAAO,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { PLUGIN_MANAGER_SYMBOL, usePluginManager } from '../plugins/hooks/usePluginManager.js';
2
2
  export { type ApiReferencePlugin, type PluginManager, createPluginManager, } from '../plugins/plugin-manager.js';
3
- export { persistencePlugin } from './persistance-plugin.js';
3
+ export { persistencePlugin } from './persistence-plugin.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import { createPluginManager } from "./plugin-manager.js";
2
2
  import { PLUGIN_MANAGER_SYMBOL, usePluginManager } from "./hooks/usePluginManager.js";
3
- import { persistencePlugin } from "./persistance-plugin.js";
3
+ import { persistencePlugin } from "./persistence-plugin.js";
4
4
  export { PLUGIN_MANAGER_SYMBOL, createPluginManager, persistencePlugin, usePluginManager };
@@ -2,16 +2,10 @@ import type { WorkspacePlugin } from '@scalar/workspace-store/workspace-plugin';
2
2
  /**
3
3
  * Plugin to persist workspace state changes with debounced writes.
4
4
  */
5
- export declare const persistencePlugin: ({ debounceDelay, maxWait, prefix, persistAuth, }: {
5
+ export declare const persistencePlugin: ({ debounceDelay, maxWait, persistAuth, }: {
6
6
  debounceDelay?: number;
7
7
  /** Maximum time in milliseconds to wait before forcing execution, even with continuous calls. */
8
8
  maxWait?: number;
9
- /**
10
- * Prefix to use for local storage keys.
11
- * This can be a string or a function returning a string.
12
- * For example, to persist data per document, use the document name as the prefix.
13
- */
14
- prefix?: string | (() => string);
15
9
  /**
16
10
  * Determines whether authentication details should be persisted.
17
11
  * Accepts a boolean or a function that returns a boolean.
@@ -19,4 +13,4 @@ export declare const persistencePlugin: ({ debounceDelay, maxWait, prefix, persi
19
13
  */
20
14
  persistAuth?: boolean | (() => boolean);
21
15
  }) => WorkspacePlugin;
22
- //# sourceMappingURL=persistance-plugin.d.ts.map
16
+ //# sourceMappingURL=persistence-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence-plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/persistence-plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAI/E;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,0CAI/B;IACD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAA;CACxC,KAAG,eA4CH,CAAA"}
@@ -1,25 +1,16 @@
1
1
  import { authStorage, clientStorage } from "../helpers/storage.js";
2
2
  import { debounce } from "@scalar/helpers/general/debounce";
3
- //#region src/plugins/persistance-plugin.ts
3
+ //#region src/plugins/persistence-plugin.ts
4
4
  /**
5
5
  * Plugin to persist workspace state changes with debounced writes.
6
6
  */
7
- var persistencePlugin = ({ debounceDelay = 500, maxWait = 1e4, prefix = "", persistAuth = false }) => {
7
+ var persistencePlugin = ({ debounceDelay = 500, maxWait = 1e4, persistAuth = false }) => {
8
8
  const { execute } = debounce({
9
9
  delay: debounceDelay,
10
10
  maxWait
11
11
  });
12
12
  const authPersistence = authStorage();
13
13
  const clientPersistence = clientStorage();
14
- /**
15
- * Resolves the prefix to use for local storage keys.
16
- * If 'prefix' is a string, returns it directly.
17
- * If 'prefix' is a function, calls and returns its value.
18
- */
19
- const getPrefix = () => {
20
- if (typeof prefix === "string") return prefix;
21
- return prefix();
22
- };
23
14
  const getPersistAuth = () => {
24
15
  if (typeof persistAuth === "function") return persistAuth();
25
16
  return persistAuth;
@@ -30,10 +21,10 @@ var persistencePlugin = ({ debounceDelay = 500, maxWait = 1e4, prefix = "", pers
30
21
  if (defaultClient !== void 0) execute("x-scalar-default-client", () => clientPersistence.set(defaultClient));
31
22
  return;
32
23
  }
33
- if (getPersistAuth() && event.type === "auth") execute("auth", () => authPersistence.setAuth(getPrefix(), event.value));
24
+ if (getPersistAuth() && event.type === "auth") execute(`auth-${event.documentName}`, () => authPersistence.setAuth(event.documentName, event.value));
34
25
  } } };
35
26
  };
36
27
  //#endregion
37
28
  export { persistencePlugin };
38
29
 
39
- //# sourceMappingURL=persistance-plugin.js.map
30
+ //# sourceMappingURL=persistence-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence-plugin.js","names":[],"sources":["../../src/plugins/persistence-plugin.ts"],"sourcesContent":["import { debounce } from '@scalar/helpers/general/debounce'\nimport type { WorkspacePlugin } from '@scalar/workspace-store/workspace-plugin'\n\nimport { authStorage, clientStorage } from '@/helpers/storage'\n\n/**\n * Plugin to persist workspace state changes with debounced writes.\n */\nexport const persistencePlugin = ({\n debounceDelay = 500,\n maxWait = 10000,\n persistAuth = false,\n}: {\n debounceDelay?: number\n /** Maximum time in milliseconds to wait before forcing execution, even with continuous calls. */\n maxWait?: number\n /**\n * Determines whether authentication details should be persisted.\n * Accepts a boolean or a function that returns a boolean.\n * Allows for conditional persistence logic, e.g., based on environment or user settings.\n */\n persistAuth?: boolean | (() => boolean)\n}): WorkspacePlugin => {\n // Debounced execute function for batching similar state changes\n const { execute } = debounce({ delay: debounceDelay, maxWait })\n const authPersistence = authStorage()\n const clientPersistence = clientStorage()\n\n const getPersistAuth = () => {\n if (typeof persistAuth === 'function') {\n return persistAuth()\n }\n\n return persistAuth\n }\n\n return {\n hooks: {\n /**\n * Handles all workspace state change events.\n * Each write is debounced by a key to prevent frequent writes for the same entity.\n */\n onWorkspaceStateChanges(event) {\n // If the event is for workspace meta data, debounce by workspaceId\n if (event.type === 'meta') {\n // Persist the meta fields\n const defaultClient = event.value['x-scalar-default-client']\n if (defaultClient !== undefined) {\n execute('x-scalar-default-client', () => clientPersistence.set(defaultClient))\n }\n return\n }\n\n // Persist auth and [server](TODO)\n // Use event.documentName as both the debounce key and the storage key so that\n // concurrent auth changes across multiple documents do not clobber each other and\n // the correct slug is used even when the active document has already changed.\n if (getPersistAuth() && event.type === 'auth') {\n execute(`auth-${event.documentName}`, () => authPersistence.setAuth(event.documentName, event.value))\n }\n\n // No action for other event types\n return\n },\n },\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAqB,EAChC,gBAAgB,KAChB,UAAU,KACV,cAAc,YAWO;CAErB,MAAM,EAAE,YAAY,SAAS;EAAE,OAAO;EAAe;EAAS,CAAC;CAC/D,MAAM,kBAAkB,aAAa;CACrC,MAAM,oBAAoB,eAAe;CAEzC,MAAM,uBAAuB;AAC3B,MAAI,OAAO,gBAAgB,WACzB,QAAO,aAAa;AAGtB,SAAO;;AAGT,QAAO,EACL,OAAO,EAKL,wBAAwB,OAAO;AAE7B,MAAI,MAAM,SAAS,QAAQ;GAEzB,MAAM,gBAAgB,MAAM,MAAM;AAClC,OAAI,kBAAkB,KAAA,EACpB,SAAQ,iCAAiC,kBAAkB,IAAI,cAAc,CAAC;AAEhF;;AAOF,MAAI,gBAAgB,IAAI,MAAM,SAAS,OACrC,SAAQ,QAAQ,MAAM,sBAAsB,gBAAgB,QAAQ,MAAM,cAAc,MAAM,MAAM,CAAC;IAM1G,EACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"html-api.d.ts","sourceRoot":"","sources":["../../../src/standalone/lib/html-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mCAAmC,EACnC,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AASpC;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,QAAQ,GAAG,mCAAmC,CA+GrG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,mCAAmC,QAiBnG;AAID,eAAO,MAAM,eAAe,GAAI,KAAK,QAAQ,EAAE,UAAU,OAAO,GAAG,IAAI,mBAatE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAuIhC,CAAA"}
1
+ {"version":3,"file":"html-api.d.ts","sourceRoot":"","sources":["../../../src/standalone/lib/html-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,mCAAmC,EACnC,kBAAkB,EACnB,MAAM,6BAA6B,CAAA;AAqEpC;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,QAAQ,GAAG,mCAAmC,CA+GrG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,mCAAmC,QAiBnG;AAID,eAAO,MAAM,eAAe,GAAI,KAAK,QAAQ,EAAE,UAAU,OAAO,GAAG,IAAI,mBAatE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAkJhC,CAAA"}
@@ -4,6 +4,56 @@ import "@scalar/schemas/api-reference";
4
4
  import { createHead } from "@unhead/vue/client";
5
5
  //#region src/standalone/lib/html-api.ts
6
6
  /**
7
+ * The id given to the standalone build's single injected `<style>` tag.
8
+ * Keep in sync with `vite.standalone.config.ts` and `vite.standalone.esm.config.ts`.
9
+ */
10
+ var STANDALONE_STYLE_ID = "scalar-style";
11
+ /**
12
+ * Per-document bookkeeping for the standalone build's injected styles.
13
+ *
14
+ * The CDN build injects all of its CSS into one `<style>` tag in `<head>`. Under
15
+ * SPA-style navigation (Turbo Drive, htmx boost, Astro view transitions) the host
16
+ * swaps the DOM without reloading the window, so those document-level styles
17
+ * (`@layer scalar-base`, the `:root` theme variables) would otherwise linger and
18
+ * bleed into the host app's next page. We reference-count the live instances and
19
+ * detach the styles when the last one is destroyed, re-attaching them when a new
20
+ * instance mounts so navigating back to the reference is still styled.
21
+ *
22
+ * State is keyed by document so the counter survives navigations (the JS context
23
+ * persists) while staying isolated per page.
24
+ */
25
+ var standaloneStyleState = /* @__PURE__ */ new WeakMap();
26
+ var getStandaloneStyleState = (doc) => {
27
+ const existing = standaloneStyleState.get(doc);
28
+ if (existing) return existing;
29
+ const state = {
30
+ count: 0,
31
+ detachedStyle: null
32
+ };
33
+ standaloneStyleState.set(doc, state);
34
+ return state;
35
+ };
36
+ /** Track a freshly mounted instance and restore previously detached styles. */
37
+ var retainStandaloneStyles = (doc) => {
38
+ const state = getStandaloneStyleState(doc);
39
+ state.count += 1;
40
+ if (state.detachedStyle && !doc.getElementById(STANDALONE_STYLE_ID)) {
41
+ doc.head.appendChild(state.detachedStyle);
42
+ state.detachedStyle = null;
43
+ }
44
+ };
45
+ /** Release an instance and detach the injected styles once the last one is gone. */
46
+ var releaseStandaloneStyles = (doc) => {
47
+ const state = getStandaloneStyleState(doc);
48
+ state.count = Math.max(0, state.count - 1);
49
+ if (state.count > 0) return;
50
+ const styleElement = doc.getElementById(STANDALONE_STYLE_ID);
51
+ if (styleElement instanceof HTMLStyleElement) {
52
+ state.detachedStyle = styleElement;
53
+ styleElement.remove();
54
+ }
55
+ };
56
+ /**
7
57
  * Create (and mount) a new Scalar API Reference
8
58
  *
9
59
  * @example createApiReference({ url: '/scalar.json' }).mount('#app')
@@ -21,8 +71,12 @@ var createApiReference = (elementOrSelectorOrConfig, optionalConfiguration) => {
21
71
  };
22
72
  const mountElement = optionalConfiguration ? typeof elementOrSelectorOrConfig === "string" ? document.querySelector(elementOrSelectorOrConfig) : elementOrSelectorOrConfig : null;
23
73
  let app = createReferenceApp(!!optionalConfiguration && !!mountElement && mountElement.children.length > 0);
24
- if (optionalConfiguration) if (mountElement) app.mount(mountElement);
25
- else console.error("Could not find a mount point for API References:", elementOrSelectorOrConfig);
74
+ let hasMounted = false;
75
+ if (optionalConfiguration) if (mountElement) {
76
+ app.mount(mountElement);
77
+ hasMounted = true;
78
+ retainStandaloneStyles(document);
79
+ } else console.error("Could not find a mount point for API References:", elementOrSelectorOrConfig);
26
80
  const abortController = new AbortController();
27
81
  const listenerOptions = {
28
82
  capture: false,
@@ -47,6 +101,10 @@ var createApiReference = (elementOrSelectorOrConfig, optionalConfiguration) => {
47
101
  abortController.abort();
48
102
  props.configuration = {};
49
103
  app.unmount();
104
+ if (hasMounted) {
105
+ hasMounted = false;
106
+ releaseStandaloneStyles(document);
107
+ }
50
108
  };
51
109
  /**
52
110
  * Allow user to destroy the API Reference
@@ -1 +1 @@
1
- {"version":3,"file":"html-api.js","names":[],"sources":["../../../src/standalone/lib/html-api.ts"],"sourcesContent":["import type {\n AnyApiReferenceConfiguration,\n ApiReferenceConfigurationWithSource,\n CreateApiReference,\n} from '@scalar/types/api-reference'\nimport { apiReferenceConfigurationWithSourceSchema } from '@scalar/schemas/api-reference'\nimport { createHead } from '@unhead/vue/client'\nimport { createApp, createSSRApp, h, reactive } from 'vue'\n\nimport { default as ApiReference } from '@/components/ApiReference.vue'\n\nconst getSpecScriptTag = (doc: Document) => doc.getElementById('api-reference')\n\n/**\n * Reading the configuration from the data-attributes.\n */\nexport function getConfigurationFromDataAttributes(doc: Document): ApiReferenceConfigurationWithSource {\n const specElement = doc.querySelector('[data-spec]')\n const specUrlElement = doc.querySelector('[data-spec-url]')\n const configurationScriptElement = doc.querySelector('#api-reference[data-configuration]')\n\n const getConfiguration = () => {\n // <script data-configuration=\"{ … }\" />\n if (configurationScriptElement) {\n const configurationFromElement = configurationScriptElement.getAttribute('data-configuration')\n\n if (configurationFromElement) {\n return {\n _integration: 'html',\n ...JSON.parse(configurationFromElement.split('&quot;').join('\"')),\n }\n }\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n }\n\n const getUrl = () => {\n // Let's first check if the user passed a spec URL in the configuration.\n if (getConfiguration().url) {\n return getConfiguration().url\n }\n\n if (getConfiguration().spec?.url) {\n return getConfiguration().spec?.url\n }\n\n // <script id=\"api-reference\" data-url=\"/scalar.json\" />\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const urlFromScriptTag = specScriptTag.getAttribute('data-url')?.trim()\n\n if (urlFromScriptTag) {\n return urlFromScriptTag\n }\n }\n\n // <div data-spec-url=\"/scalar.json\" />\n if (specUrlElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec-url] HTML API is deprecated. Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead.',\n )\n const urlFromSpecUrlElement = specUrlElement.getAttribute('data-spec-url')\n\n if (urlFromSpecUrlElement) {\n return urlFromSpecUrlElement\n }\n }\n\n return undefined\n }\n\n const getContent = (): string | undefined => {\n // <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const specFromScriptTag = specScriptTag.innerHTML?.trim()\n\n if (specFromScriptTag) {\n return specFromScriptTag\n }\n }\n\n // <div data-spec='{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}' />\n if (specElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec] HTML API is deprecated. Use the new <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script> API instead.',\n )\n const specFromSpecElement = specElement.getAttribute('data-spec')?.trim()\n\n if (specFromSpecElement) {\n return specFromSpecElement\n }\n }\n\n return undefined\n }\n\n const getProxyUrl = () => {\n // <script id=\"api-reference\" data-proxy-url=\"https://proxy.scalar.com\">…</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const proxyUrl = specScriptTag.getAttribute('data-proxy-url')\n\n if (proxyUrl) {\n return proxyUrl.trim()\n }\n }\n\n return undefined\n }\n\n // Ensure Reference Props are reactive\n if (!specUrlElement && !specElement && !getSpecScriptTag(doc)) {\n // Stay quiet.\n } else {\n const urlOrContent = getContent() ? { content: getContent() } : { url: getUrl() }\n\n return apiReferenceConfigurationWithSourceSchema({\n _integration: 'html',\n proxyUrl: getProxyUrl(),\n ...getConfiguration(),\n ...urlOrContent,\n })\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n}\n\n/**\n * Mount the Scalar API Reference on a given document.\n * Read the HTML data-attributes for configuration.\n */\nexport function findDataAttributes(doc: Document, configuration: ApiReferenceConfigurationWithSource) {\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specElement = doc.querySelector('[data-spec]')\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specUrlElement = doc.querySelector('[data-spec-url]')\n\n if (configuration?.darkMode) {\n doc.body?.classList.add('dark-mode')\n } else {\n doc.body?.classList.add('light-mode')\n }\n\n const container = createContainer(doc, specElement || specUrlElement)\n\n if (container) {\n createApiReference(container, configuration)\n }\n}\n\n// If it's a script tag, we can't mount the Vue.js app inside that tag.\n// We need to add a new container element before the script tag.\nexport const createContainer = (doc: Document, element?: Element | null) => {\n let _container: Element | null = null\n\n const specScriptTag = getSpecScriptTag(doc)\n\n if (specScriptTag) {\n _container = doc.createElement('div')\n specScriptTag?.parentNode?.insertBefore(_container, specScriptTag)\n } else if (element) {\n _container = element\n }\n\n return _container\n}\n\n/**\n * Create (and mount) a new Scalar API Reference\n *\n * @example createApiReference({ url: '/scalar.json' }).mount('#app')\n * @example createApiReference('#app', { url: '/scalar.json' })\n * @example createApiReference(document.getElementById('app'), { url: '/scalar.json' })\n */\nexport const createApiReference: CreateApiReference = (\n elementOrSelectorOrConfig,\n optionalConfiguration?: AnyApiReferenceConfiguration,\n) => {\n // Create an id prefix for useId so we don't have collisions with other Vue apps\n const idPrefix = 'scalar-refs'\n\n const props = reactive<{ configuration: AnyApiReferenceConfiguration }>({\n // Either the configuration will be the second argument or it MUST be the first (configuration only)\n configuration: optionalConfiguration ?? (elementOrSelectorOrConfig as AnyApiReferenceConfiguration) ?? {},\n })\n\n const createReferenceApp = (isSsr = false) => {\n const referenceApp = isSsr ? createSSRApp(() => h(ApiReference, props)) : createApp(() => h(ApiReference, props))\n\n // Meta tags, etc.\n referenceApp.use(createHead())\n referenceApp.config.idPrefix = idPrefix\n\n return referenceApp\n }\n\n // If we have an optional config, then we must mount the element immediately (not sure why type is not narrowing)\n const mountElement = optionalConfiguration\n ? typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n : null\n\n // Detect server-rendered content and use createSSRApp for hydration\n const shouldHydrate = !!optionalConfiguration && !!mountElement && mountElement.children.length > 0\n let app = createReferenceApp(shouldHydrate)\n\n if (optionalConfiguration) {\n if (mountElement) {\n app.mount(mountElement)\n } else {\n console.error('Could not find a mount point for API References:', elementOrSelectorOrConfig)\n }\n }\n\n // Tie the deprecated `document` listeners to an AbortController so `destroy`\n // can remove them all at once. Without this, every `createApiReference()`\n // call leaks three permanent listeners — visible during Astro view\n // transitions where each navigation creates a new instance.\n const abortController = new AbortController()\n const listenerOptions: AddEventListenerOptions = {\n capture: false,\n signal: abortController.signal,\n }\n\n /**\n * Reload the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:reload-references',\n () => {\n console.warn(\n 'scalar:reload-references event has been deprecated, please use the scalarInstance.app.mount method instead.',\n )\n if (!props.configuration) {\n return\n }\n\n // Snag the current element\n const currentElement =\n typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n\n if (!currentElement) {\n return\n }\n\n // Ensure we re-attach the element if it was unmounted\n if (currentElement && !document.body.contains(currentElement)) {\n document.body.appendChild(currentElement)\n }\n\n // Create a new Vue app instance\n app.unmount()\n app = createReferenceApp()\n app.mount(currentElement)\n },\n listenerOptions,\n )\n\n /** Destroy the current API Reference instance */\n const destroy = () => {\n abortController.abort()\n props.configuration = {}\n app.unmount()\n }\n\n /**\n * Allow user to destroy the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:destroy-references',\n () => {\n console.warn('scalar:destroy-references event has been deprecated, please use scalarInstance.destroy instead.')\n destroy()\n },\n listenerOptions,\n )\n\n /**\n * Allow user to update configuration\n * @deprecated\n */\n document.addEventListener(\n 'scalar:update-references-config',\n (ev) => {\n console.warn(\n 'scalar:update-references-config event has been deprecated, please use scalarInstance.updateConfiguration instead.',\n )\n if ('detail' in ev) {\n Object.assign(props, ev.detail)\n }\n },\n listenerOptions,\n )\n\n const instance = {\n app,\n getConfiguration: () => props.configuration ?? {},\n updateConfiguration: (newConfig: AnyApiReferenceConfiguration) => {\n props.configuration = newConfig\n },\n destroy,\n }\n\n return instance\n}\n"],"mappings":";;;;;;;;;;;;AAgLA,IAAa,sBACX,2BACA,0BACG;CAEH,MAAM,WAAW;CAEjB,MAAM,QAAQ,SAA0D,EAEtE,eAAe,yBAA0B,6BAA8D,EAAE,EAC1G,CAAC;CAEF,MAAM,sBAAsB,QAAQ,UAAU;EAC5C,MAAM,eAAe,QAAQ,mBAAmB,EAAE,sBAAc,MAAM,CAAC,GAAG,gBAAgB,EAAE,sBAAc,MAAM,CAAC;AAGjH,eAAa,IAAI,YAAY,CAAC;AAC9B,eAAa,OAAO,WAAW;AAE/B,SAAO;;CAIT,MAAM,eAAe,wBACjB,OAAO,8BAA8B,WACnC,SAAS,cAAc,0BAA0B,GAChD,4BACH;CAIJ,IAAI,MAAM,mBADY,CAAC,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,aAAa,SAAS,SAAS,EACvD;AAE3C,KAAI,sBACF,KAAI,aACF,KAAI,MAAM,aAAa;KAEvB,SAAQ,MAAM,oDAAoD,0BAA0B;CAQhG,MAAM,kBAAkB,IAAI,iBAAiB;CAC7C,MAAM,kBAA2C;EAC/C,SAAS;EACT,QAAQ,gBAAgB;EACzB;;;;;AAMD,UAAS,iBACP,kCACM;AACJ,UAAQ,KACN,8GACD;AACD,MAAI,CAAC,MAAM,cACT;EAIF,MAAM,iBACJ,OAAO,8BAA8B,WACjC,SAAS,cAAc,0BAA0B,GAChD;AAEP,MAAI,CAAC,eACH;AAIF,MAAI,kBAAkB,CAAC,SAAS,KAAK,SAAS,eAAe,CAC3D,UAAS,KAAK,YAAY,eAAe;AAI3C,MAAI,SAAS;AACb,QAAM,oBAAoB;AAC1B,MAAI,MAAM,eAAe;IAE3B,gBACD;;CAGD,MAAM,gBAAgB;AACpB,kBAAgB,OAAO;AACvB,QAAM,gBAAgB,EAAE;AACxB,MAAI,SAAS;;;;;;AAOf,UAAS,iBACP,mCACM;AACJ,UAAQ,KAAK,kGAAkG;AAC/G,WAAS;IAEX,gBACD;;;;;AAMD,UAAS,iBACP,oCACC,OAAO;AACN,UAAQ,KACN,oHACD;AACD,MAAI,YAAY,GACd,QAAO,OAAO,OAAO,GAAG,OAAO;IAGnC,gBACD;AAWD,QATiB;EACf;EACA,wBAAwB,MAAM,iBAAiB,EAAE;EACjD,sBAAsB,cAA4C;AAChE,SAAM,gBAAgB;;EAExB;EACD"}
1
+ {"version":3,"file":"html-api.js","names":[],"sources":["../../../src/standalone/lib/html-api.ts"],"sourcesContent":["import { apiReferenceConfigurationWithSourceSchema } from '@scalar/schemas/api-reference'\nimport type {\n AnyApiReferenceConfiguration,\n ApiReferenceConfigurationWithSource,\n CreateApiReference,\n} from '@scalar/types/api-reference'\nimport { createHead } from '@unhead/vue/client'\nimport { createApp, createSSRApp, h, reactive } from 'vue'\n\nimport { default as ApiReference } from '@/components/ApiReference.vue'\n\nconst getSpecScriptTag = (doc: Document) => doc.getElementById('api-reference')\n\n/**\n * The id given to the standalone build's single injected `<style>` tag.\n * Keep in sync with `vite.standalone.config.ts` and `vite.standalone.esm.config.ts`.\n */\nconst STANDALONE_STYLE_ID = 'scalar-style'\n\n/**\n * Per-document bookkeeping for the standalone build's injected styles.\n *\n * The CDN build injects all of its CSS into one `<style>` tag in `<head>`. Under\n * SPA-style navigation (Turbo Drive, htmx boost, Astro view transitions) the host\n * swaps the DOM without reloading the window, so those document-level styles\n * (`@layer scalar-base`, the `:root` theme variables) would otherwise linger and\n * bleed into the host app's next page. We reference-count the live instances and\n * detach the styles when the last one is destroyed, re-attaching them when a new\n * instance mounts so navigating back to the reference is still styled.\n *\n * State is keyed by document so the counter survives navigations (the JS context\n * persists) while staying isolated per page.\n */\nconst standaloneStyleState = new WeakMap<Document, { count: number; detachedStyle: HTMLStyleElement | null }>()\n\nconst getStandaloneStyleState = (doc: Document): { count: number; detachedStyle: HTMLStyleElement | null } => {\n const existing = standaloneStyleState.get(doc)\n if (existing) {\n return existing\n }\n\n const state = { count: 0, detachedStyle: null }\n standaloneStyleState.set(doc, state)\n\n return state\n}\n\n/** Track a freshly mounted instance and restore previously detached styles. */\nconst retainStandaloneStyles = (doc: Document): void => {\n const state = getStandaloneStyleState(doc)\n state.count += 1\n\n if (state.detachedStyle && !doc.getElementById(STANDALONE_STYLE_ID)) {\n doc.head.appendChild(state.detachedStyle)\n state.detachedStyle = null\n }\n}\n\n/** Release an instance and detach the injected styles once the last one is gone. */\nconst releaseStandaloneStyles = (doc: Document): void => {\n const state = getStandaloneStyleState(doc)\n state.count = Math.max(0, state.count - 1)\n\n if (state.count > 0) {\n return\n }\n\n const styleElement = doc.getElementById(STANDALONE_STYLE_ID)\n if (styleElement instanceof HTMLStyleElement) {\n state.detachedStyle = styleElement\n styleElement.remove()\n }\n}\n\n/**\n * Reading the configuration from the data-attributes.\n */\nexport function getConfigurationFromDataAttributes(doc: Document): ApiReferenceConfigurationWithSource {\n const specElement = doc.querySelector('[data-spec]')\n const specUrlElement = doc.querySelector('[data-spec-url]')\n const configurationScriptElement = doc.querySelector('#api-reference[data-configuration]')\n\n const getConfiguration = () => {\n // <script data-configuration=\"{ … }\" />\n if (configurationScriptElement) {\n const configurationFromElement = configurationScriptElement.getAttribute('data-configuration')\n\n if (configurationFromElement) {\n return {\n _integration: 'html',\n ...JSON.parse(configurationFromElement.split('&quot;').join('\"')),\n }\n }\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n }\n\n const getUrl = () => {\n // Let's first check if the user passed a spec URL in the configuration.\n if (getConfiguration().url) {\n return getConfiguration().url\n }\n\n if (getConfiguration().spec?.url) {\n return getConfiguration().spec?.url\n }\n\n // <script id=\"api-reference\" data-url=\"/scalar.json\" />\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const urlFromScriptTag = specScriptTag.getAttribute('data-url')?.trim()\n\n if (urlFromScriptTag) {\n return urlFromScriptTag\n }\n }\n\n // <div data-spec-url=\"/scalar.json\" />\n if (specUrlElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec-url] HTML API is deprecated. Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead.',\n )\n const urlFromSpecUrlElement = specUrlElement.getAttribute('data-spec-url')\n\n if (urlFromSpecUrlElement) {\n return urlFromSpecUrlElement\n }\n }\n\n return undefined\n }\n\n const getContent = (): string | undefined => {\n // <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const specFromScriptTag = specScriptTag.innerHTML?.trim()\n\n if (specFromScriptTag) {\n return specFromScriptTag\n }\n }\n\n // <div data-spec='{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}' />\n if (specElement) {\n console.warn(\n '[@scalar/api-reference] The [data-spec] HTML API is deprecated. Use the new <script id=\"api-reference\" type=\"application/json\">{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Example\"},\"paths\":{}}</script> API instead.',\n )\n const specFromSpecElement = specElement.getAttribute('data-spec')?.trim()\n\n if (specFromSpecElement) {\n return specFromSpecElement\n }\n }\n\n return undefined\n }\n\n const getProxyUrl = () => {\n // <script id=\"api-reference\" data-proxy-url=\"https://proxy.scalar.com\">…</script>\n const specScriptTag = getSpecScriptTag(doc)\n if (specScriptTag) {\n const proxyUrl = specScriptTag.getAttribute('data-proxy-url')\n\n if (proxyUrl) {\n return proxyUrl.trim()\n }\n }\n\n return undefined\n }\n\n // Ensure Reference Props are reactive\n if (!specUrlElement && !specElement && !getSpecScriptTag(doc)) {\n // Stay quiet.\n } else {\n const urlOrContent = getContent() ? { content: getContent() } : { url: getUrl() }\n\n return apiReferenceConfigurationWithSourceSchema({\n _integration: 'html',\n proxyUrl: getProxyUrl(),\n ...getConfiguration(),\n ...urlOrContent,\n })\n }\n\n return apiReferenceConfigurationWithSourceSchema({ _integration: 'html' })\n}\n\n/**\n * Mount the Scalar API Reference on a given document.\n * Read the HTML data-attributes for configuration.\n */\nexport function findDataAttributes(doc: Document, configuration: ApiReferenceConfigurationWithSource) {\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specElement = doc.querySelector('[data-spec]')\n /** @deprecated Use the new <script id=\"api-reference\" data-url=\"/scalar.json\" /> API instead. */\n const specUrlElement = doc.querySelector('[data-spec-url]')\n\n if (configuration?.darkMode) {\n doc.body?.classList.add('dark-mode')\n } else {\n doc.body?.classList.add('light-mode')\n }\n\n const container = createContainer(doc, specElement || specUrlElement)\n\n if (container) {\n createApiReference(container, configuration)\n }\n}\n\n// If it's a script tag, we can't mount the Vue.js app inside that tag.\n// We need to add a new container element before the script tag.\nexport const createContainer = (doc: Document, element?: Element | null) => {\n let _container: Element | null = null\n\n const specScriptTag = getSpecScriptTag(doc)\n\n if (specScriptTag) {\n _container = doc.createElement('div')\n specScriptTag?.parentNode?.insertBefore(_container, specScriptTag)\n } else if (element) {\n _container = element\n }\n\n return _container\n}\n\n/**\n * Create (and mount) a new Scalar API Reference\n *\n * @example createApiReference({ url: '/scalar.json' }).mount('#app')\n * @example createApiReference('#app', { url: '/scalar.json' })\n * @example createApiReference(document.getElementById('app'), { url: '/scalar.json' })\n */\nexport const createApiReference: CreateApiReference = (\n elementOrSelectorOrConfig,\n optionalConfiguration?: AnyApiReferenceConfiguration,\n) => {\n // Create an id prefix for useId so we don't have collisions with other Vue apps\n const idPrefix = 'scalar-refs'\n\n const props = reactive<{ configuration: AnyApiReferenceConfiguration }>({\n // Either the configuration will be the second argument or it MUST be the first (configuration only)\n configuration: optionalConfiguration ?? (elementOrSelectorOrConfig as AnyApiReferenceConfiguration) ?? {},\n })\n\n const createReferenceApp = (isSsr = false) => {\n const referenceApp = isSsr ? createSSRApp(() => h(ApiReference, props)) : createApp(() => h(ApiReference, props))\n\n // Meta tags, etc.\n referenceApp.use(createHead())\n referenceApp.config.idPrefix = idPrefix\n\n return referenceApp\n }\n\n // If we have an optional config, then we must mount the element immediately (not sure why type is not narrowing)\n const mountElement = optionalConfiguration\n ? typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n : null\n\n // Detect server-rendered content and use createSSRApp for hydration\n const shouldHydrate = !!optionalConfiguration && !!mountElement && mountElement.children.length > 0\n let app = createReferenceApp(shouldHydrate)\n\n // Track whether this instance mounted so `destroy` only releases the shared\n // standalone styles for instances that actually retained them.\n let hasMounted = false\n\n if (optionalConfiguration) {\n if (mountElement) {\n app.mount(mountElement)\n hasMounted = true\n retainStandaloneStyles(document)\n } else {\n console.error('Could not find a mount point for API References:', elementOrSelectorOrConfig)\n }\n }\n\n // Tie the deprecated `document` listeners to an AbortController so `destroy`\n // can remove them all at once. Without this, every `createApiReference()`\n // call leaks three permanent listeners — visible during Astro view\n // transitions where each navigation creates a new instance.\n const abortController = new AbortController()\n const listenerOptions: AddEventListenerOptions = {\n capture: false,\n signal: abortController.signal,\n }\n\n /**\n * Reload the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:reload-references',\n () => {\n console.warn(\n 'scalar:reload-references event has been deprecated, please use the scalarInstance.app.mount method instead.',\n )\n if (!props.configuration) {\n return\n }\n\n // Snag the current element\n const currentElement =\n typeof elementOrSelectorOrConfig === 'string'\n ? document.querySelector(elementOrSelectorOrConfig)\n : (elementOrSelectorOrConfig as Element)\n\n if (!currentElement) {\n return\n }\n\n // Ensure we re-attach the element if it was unmounted\n if (currentElement && !document.body.contains(currentElement)) {\n document.body.appendChild(currentElement)\n }\n\n // Create a new Vue app instance\n app.unmount()\n app = createReferenceApp()\n app.mount(currentElement)\n },\n listenerOptions,\n )\n\n /** Destroy the current API Reference instance */\n const destroy = () => {\n abortController.abort()\n props.configuration = {}\n app.unmount()\n\n if (hasMounted) {\n hasMounted = false\n releaseStandaloneStyles(document)\n }\n }\n\n /**\n * Allow user to destroy the API Reference\n * @deprecated\n */\n document.addEventListener(\n 'scalar:destroy-references',\n () => {\n console.warn('scalar:destroy-references event has been deprecated, please use scalarInstance.destroy instead.')\n destroy()\n },\n listenerOptions,\n )\n\n /**\n * Allow user to update configuration\n * @deprecated\n */\n document.addEventListener(\n 'scalar:update-references-config',\n (ev) => {\n console.warn(\n 'scalar:update-references-config event has been deprecated, please use scalarInstance.updateConfiguration instead.',\n )\n if ('detail' in ev) {\n Object.assign(props, ev.detail)\n }\n },\n listenerOptions,\n )\n\n const instance = {\n app,\n getConfiguration: () => props.configuration ?? {},\n updateConfiguration: (newConfig: AnyApiReferenceConfiguration) => {\n props.configuration = newConfig\n },\n destroy,\n }\n\n return instance\n}\n"],"mappings":";;;;;;;;;AAiBA,IAAM,sBAAsB;;;;;;;;;;;;;;;AAgB5B,IAAM,uCAAuB,IAAI,SAA8E;AAE/G,IAAM,2BAA2B,QAA6E;CAC5G,MAAM,WAAW,qBAAqB,IAAI,IAAI;AAC9C,KAAI,SACF,QAAO;CAGT,MAAM,QAAQ;EAAE,OAAO;EAAG,eAAe;EAAM;AAC/C,sBAAqB,IAAI,KAAK,MAAM;AAEpC,QAAO;;;AAIT,IAAM,0BAA0B,QAAwB;CACtD,MAAM,QAAQ,wBAAwB,IAAI;AAC1C,OAAM,SAAS;AAEf,KAAI,MAAM,iBAAiB,CAAC,IAAI,eAAe,oBAAoB,EAAE;AACnE,MAAI,KAAK,YAAY,MAAM,cAAc;AACzC,QAAM,gBAAgB;;;;AAK1B,IAAM,2BAA2B,QAAwB;CACvD,MAAM,QAAQ,wBAAwB,IAAI;AAC1C,OAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,QAAQ,EAAE;AAE1C,KAAI,MAAM,QAAQ,EAChB;CAGF,MAAM,eAAe,IAAI,eAAe,oBAAoB;AAC5D,KAAI,wBAAwB,kBAAkB;AAC5C,QAAM,gBAAgB;AACtB,eAAa,QAAQ;;;;;;;;;;AAuKzB,IAAa,sBACX,2BACA,0BACG;CAEH,MAAM,WAAW;CAEjB,MAAM,QAAQ,SAA0D,EAEtE,eAAe,yBAA0B,6BAA8D,EAAE,EAC1G,CAAC;CAEF,MAAM,sBAAsB,QAAQ,UAAU;EAC5C,MAAM,eAAe,QAAQ,mBAAmB,EAAE,sBAAc,MAAM,CAAC,GAAG,gBAAgB,EAAE,sBAAc,MAAM,CAAC;AAGjH,eAAa,IAAI,YAAY,CAAC;AAC9B,eAAa,OAAO,WAAW;AAE/B,SAAO;;CAIT,MAAM,eAAe,wBACjB,OAAO,8BAA8B,WACnC,SAAS,cAAc,0BAA0B,GAChD,4BACH;CAIJ,IAAI,MAAM,mBADY,CAAC,CAAC,yBAAyB,CAAC,CAAC,gBAAgB,aAAa,SAAS,SAAS,EACvD;CAI3C,IAAI,aAAa;AAEjB,KAAI,sBACF,KAAI,cAAc;AAChB,MAAI,MAAM,aAAa;AACvB,eAAa;AACb,yBAAuB,SAAS;OAEhC,SAAQ,MAAM,oDAAoD,0BAA0B;CAQhG,MAAM,kBAAkB,IAAI,iBAAiB;CAC7C,MAAM,kBAA2C;EAC/C,SAAS;EACT,QAAQ,gBAAgB;EACzB;;;;;AAMD,UAAS,iBACP,kCACM;AACJ,UAAQ,KACN,8GACD;AACD,MAAI,CAAC,MAAM,cACT;EAIF,MAAM,iBACJ,OAAO,8BAA8B,WACjC,SAAS,cAAc,0BAA0B,GAChD;AAEP,MAAI,CAAC,eACH;AAIF,MAAI,kBAAkB,CAAC,SAAS,KAAK,SAAS,eAAe,CAC3D,UAAS,KAAK,YAAY,eAAe;AAI3C,MAAI,SAAS;AACb,QAAM,oBAAoB;AAC1B,MAAI,MAAM,eAAe;IAE3B,gBACD;;CAGD,MAAM,gBAAgB;AACpB,kBAAgB,OAAO;AACvB,QAAM,gBAAgB,EAAE;AACxB,MAAI,SAAS;AAEb,MAAI,YAAY;AACd,gBAAa;AACb,2BAAwB,SAAS;;;;;;;AAQrC,UAAS,iBACP,mCACM;AACJ,UAAQ,KAAK,kGAAkG;AAC/G,WAAS;IAEX,gBACD;;;;;AAMD,UAAS,iBACP,oCACC,OAAO;AACN,UAAQ,KACN,oHACD;AACD,MAAI,YAAY,GACd,QAAO,OAAO,OAAO,GAAG,OAAO;IAGnC,gBACD;AAWD,QATiB;EACf;EACA,wBAAwB,MAAM,iBAAiB,EAAE;EACjD,sBAAsB,cAA4C;AAChE,SAAM,gBAAgB;;EAExB;EACD"}
@@ -0,0 +1,4 @@
1
+ import './style.css';
2
+ import { createApiReference } from './standalone/lib/html-api.js';
3
+ export { createApiReference };
4
+ //# sourceMappingURL=standalone.esm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone.esm.d.ts","sourceRoot":"","sources":["../src/standalone.esm.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAA0D,MAAM,2BAA2B,CAAA;AAStH,OAAO,EAAE,kBAAkB,EAAE,CAAA"}