@scalar/api-reference 1.61.0 → 1.62.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 (499) hide show
  1. package/CHANGELOG.md +23 -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.js.map +1 -1
  4. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js +8 -5
  5. package/dist/blocks/scalar-asyncapi-server-selector-block/components/AsyncApiServerSelector.vue.script.js.map +1 -1
  6. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  7. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.js.map +1 -1
  8. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js +11 -7
  9. package/dist/blocks/scalar-asyncapi-server-selector-block/components/Selector.vue.script.js.map +1 -1
  10. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.d.ts +36 -0
  11. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.d.ts.map +1 -0
  12. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.js +7 -0
  13. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.js.map +1 -0
  14. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.script.js +69 -0
  15. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/AsyncApiSidebarFilters.vue.script.js.map +1 -0
  16. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.d.ts +28 -0
  17. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.d.ts.map +1 -0
  18. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.js +7 -0
  19. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.js.map +1 -0
  20. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.script.js +62 -0
  21. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/components/SidebarFilter.vue.script.js.map +1 -0
  22. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/helpers/filter-async-api-navigation.d.ts +18 -0
  23. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/helpers/filter-async-api-navigation.d.ts.map +1 -0
  24. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/helpers/filter-async-api-navigation.js +59 -0
  25. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/helpers/filter-async-api-navigation.js.map +1 -0
  26. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/index.d.ts +3 -0
  27. package/dist/blocks/scalar-asyncapi-sidebar-filters-block/index.d.ts.map +1 -0
  28. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts +1 -1
  29. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.d.ts.map +1 -1
  30. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js +1 -1
  31. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js.map +1 -1
  32. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js +6 -3
  33. package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.script.js.map +1 -1
  34. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.d.ts +2 -2
  35. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.d.ts.map +1 -1
  36. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js +1 -1
  37. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js.map +1 -1
  38. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js +4 -2
  39. package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.script.js.map +1 -1
  40. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.d.ts +1 -1
  41. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.d.ts.map +1 -1
  42. package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.js.map +1 -1
  43. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.d.ts.map +1 -1
  44. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js +1 -1
  45. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js.map +1 -1
  46. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js +3 -1
  47. package/dist/blocks/scalar-info-block/components/DownloadLink.vue.script.js.map +1 -1
  48. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.d.ts.map +1 -1
  49. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.js.map +1 -1
  50. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.script.js +17 -3
  51. package/dist/blocks/scalar-info-block/components/InfoLinks.vue.script.js.map +1 -1
  52. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.d.ts.map +1 -1
  53. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +1 -1
  54. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js.map +1 -1
  55. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js +4 -2
  56. package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.script.js.map +1 -1
  57. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.d.ts.map +1 -1
  58. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js +1 -1
  59. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.js.map +1 -1
  60. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js +16 -12
  61. package/dist/blocks/scalar-sdk-installation-instructions/components/SdkInstallationInstructions.vue.script.js.map +1 -1
  62. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.d.ts.map +1 -1
  63. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.js.map +1 -1
  64. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js +11 -7
  65. package/dist/blocks/scalar-server-selector-block/components/Selector.vue.script.js.map +1 -1
  66. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.d.ts.map +1 -1
  67. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.js.map +1 -1
  68. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js +7 -4
  69. package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.script.js.map +1 -1
  70. package/dist/browser/chunks/AgentScalarChatInterface-C3QiXv0S.js +27 -0
  71. package/dist/browser/chunks/ScalarTextInput.vue-CysYmeeN.js +27 -0
  72. package/dist/browser/chunks/basic-shape-diamond.svg-BTEOT1FL.js +1 -1
  73. package/dist/browser/chunks/basic-shape-hexagon.svg-BSPzaCgF.js +1 -1
  74. package/dist/browser/chunks/basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js +1 -1
  75. package/dist/browser/chunks/basic-shape-primary-square-rectangle.svg-n2YRykHD.js +1 -1
  76. package/dist/browser/chunks/basic-shape-shield.svg-Bec9cJDA.js +1 -1
  77. package/dist/browser/chunks/browser-67K6wmG9.js +1 -1
  78. package/dist/browser/chunks/computer-device-desktop-monitor.svg-m6j893Hb.js +1 -1
  79. package/dist/browser/chunks/computer-device-desktop.svg-Dk1VVO7k.js +1 -1
  80. package/dist/browser/chunks/computer-device-laptop.svg-BNGVUCYS.js +1 -1
  81. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js +1 -1
  82. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js +1 -1
  83. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js +1 -1
  84. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js +1 -1
  85. package/dist/browser/chunks/computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js +1 -1
  86. package/dist/browser/chunks/computer-device-mobile-tablet.svg-DCr0XlRc.js +1 -1
  87. package/dist/browser/chunks/computer-device-network-ethernet-cat6.svg-AK9l0iOl.js +1 -1
  88. package/dist/browser/chunks/computer-device-network-lan-www.svg-gUIdFBlE.js +1 -1
  89. package/dist/browser/chunks/computer-device-network-wifi-connection.svg-Be-EMm4e.js +1 -1
  90. package/dist/browser/chunks/computer-device-network-wifi-router.svg-Dc2VzyqK.js +1 -1
  91. package/dist/browser/chunks/ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js +1 -1
  92. package/dist/browser/chunks/image-flash-lightning.svg-EETR_y1q.js +1 -1
  93. package/dist/browser/chunks/image-picture-flower.svg-DN1AYzJU.js +1 -1
  94. package/dist/browser/chunks/interface-alert-exclamation-diamond.svg-C5NozMV_.js +1 -1
  95. package/dist/browser/chunks/interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js +1 -1
  96. package/dist/browser/chunks/interface-alert-information-circle.svg-ckkkt9Mv.js +1 -1
  97. package/dist/browser/chunks/interface-award-crown.svg-pjvn9hY-.js +1 -1
  98. package/dist/browser/chunks/interface-bookmark-tag.svg-r2r-lQq4.js +1 -1
  99. package/dist/browser/chunks/interface-bookmark.svg-BK9HKQBT.js +1 -1
  100. package/dist/browser/chunks/interface-calendar-date-one.svg-DNnF0M1I.js +1 -1
  101. package/dist/browser/chunks/interface-content-book-open-pages.svg-CQj_w9Vp.js +1 -1
  102. package/dist/browser/chunks/interface-content-book-page.svg-DppoeJRe.js +1 -1
  103. package/dist/browser/chunks/interface-content-file.svg-CvcD7OiY.js +1 -1
  104. package/dist/browser/chunks/interface-content-folder.svg-BmtS5I9A.js +1 -1
  105. package/dist/browser/chunks/interface-copy-clipboard.svg-Be6EI50X.js +1 -1
  106. package/dist/browser/chunks/interface-edit-attachment.svg-G5TKzpWX.js +1 -1
  107. package/dist/browser/chunks/interface-edit-binocular.svg-jzL-DvGB.js +1 -1
  108. package/dist/browser/chunks/interface-edit-magic-wand.svg-BOTlymvp.js +1 -1
  109. package/dist/browser/chunks/interface-edit-tool-paint-roller.svg-s9dwryx7.js +1 -1
  110. package/dist/browser/chunks/interface-edit-tool-pencil.svg-C7v0dbB3.js +1 -1
  111. package/dist/browser/chunks/interface-favorite-award.svg-CYHUgUG0.js +1 -1
  112. package/dist/browser/chunks/interface-favorite-flag.svg-C10zlKOb.js +1 -1
  113. package/dist/browser/chunks/interface-favorite-heart.svg-eoduXxlz.js +1 -1
  114. package/dist/browser/chunks/interface-favorite-star.svg-BSmxJetr.js +1 -1
  115. package/dist/browser/chunks/interface-favorite-stars-sparkles.svg-JTFLj3Ls.js +1 -1
  116. package/dist/browser/chunks/interface-hierarchy-flowchart.svg-Cg_Wy0kN.js +1 -1
  117. package/dist/browser/chunks/interface-home-house.svg-DytoGRnv.js +1 -1
  118. package/dist/browser/chunks/interface-hyperlink.svg-CuEfmmQI.js +1 -1
  119. package/dist/browser/chunks/interface-lighting-brightness.svg-DSK0h_Pa.js +1 -1
  120. package/dist/browser/chunks/interface-lock-closed.svg-Cn6TaLYv.js +1 -1
  121. package/dist/browser/chunks/interface-lock-open-unlock.svg-CVkG5-9W.js +1 -1
  122. package/dist/browser/chunks/interface-login-key.svg-y-cwwXjN.js +1 -1
  123. package/dist/browser/chunks/interface-search.svg-S-puVFJB.js +1 -1
  124. package/dist/browser/chunks/interface-setting-cog.svg-CTH4_lLg.js +1 -1
  125. package/dist/browser/chunks/interface-share-megaphone-bullhorn.svg-Pbp39MyC.js +1 -1
  126. package/dist/browser/chunks/interface-share-rocket.svg-BgCsIRZO.js +1 -1
  127. package/dist/browser/chunks/interface-share-satellite.svg-DAMN9d5G.js +1 -1
  128. package/dist/browser/chunks/interface-share-space-ship.svg-Dt-Mejxk.js +1 -1
  129. package/dist/browser/chunks/interface-share.svg-vFYTXSti.js +1 -1
  130. package/dist/browser/chunks/interface-signal-square.svg-DNG4LpAe.js +1 -1
  131. package/dist/browser/chunks/interface-time-clock-circle.svg-Bpz-nLxo.js +1 -1
  132. package/dist/browser/chunks/interface-time-hour-glass.svg-D7agfKsH.js +1 -1
  133. package/dist/browser/chunks/interface-users-multiple.svg-CkPJBBnG.js +1 -1
  134. package/dist/browser/chunks/interface-weather-moon.svg-CaTZFMPO.js +1 -1
  135. package/dist/browser/chunks/mail-chat-bubble-square.svg-DC8RIihp.js +1 -1
  136. package/dist/browser/chunks/mail-send-email-paper-airplane.svg-D8OLs9jz.js +1 -1
  137. package/dist/browser/chunks/mail-send-envelope.svg-CV33h5Sx.js +1 -1
  138. package/dist/browser/chunks/{modal-CKthJJWy.js → modal-CMytT4BZ.js} +2 -2
  139. package/dist/browser/chunks/modal-wI0tG53V.js +99 -0
  140. package/dist/browser/chunks/money-cashier-receipt.svg-CJL8C2gs.js +1 -1
  141. package/dist/browser/chunks/money-currency-dollar-pay.svg-VdBplCTx.js +1 -1
  142. package/dist/browser/chunks/money-graph-arrow-increase.svg-DcRov3zk.js +1 -1
  143. package/dist/browser/chunks/money-graph-bar-chart-increase.svg-Cc7KxjX-.js +1 -1
  144. package/dist/browser/chunks/nature-ecology-leaf.svg-DR3cTZxt.js +1 -1
  145. package/dist/browser/chunks/phone-telephone.svg-DyY0gUlk.js +1 -1
  146. package/dist/browser/chunks/programming-bug.svg-BHLT-Qhp.js +1 -1
  147. package/dist/browser/chunks/programming-cloud.svg-B6YW33ba.js +1 -1
  148. package/dist/browser/chunks/programming-computer-database-server.svg-B6o5Sdn-.js +1 -1
  149. package/dist/browser/chunks/programming-computer-database.svg-Cl7OVtpJ.js +1 -1
  150. package/dist/browser/chunks/programming-module-four-layout.svg-BQrerL1x.js +1 -1
  151. package/dist/browser/chunks/programming-module-three.svg-B2KTQzBM.js +1 -1
  152. package/dist/browser/chunks/programming-module.svg-CiID7kPm.js +1 -1
  153. package/dist/browser/chunks/programming-script-code.svg-D1M5rtkN.js +1 -1
  154. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +1 -1
  155. package/dist/browser/chunks/shopping-cart.svg-BEegiIR9.js +1 -1
  156. package/dist/browser/chunks/shopping-gift-present.svg-BUHwuLix.js +1 -1
  157. package/dist/browser/chunks/shopping-shipping-box-parcel-package.svg-D6fxWdYx.js +1 -1
  158. package/dist/browser/chunks/tag-new-circle.svg-jsg1bGs0.js +1 -1
  159. package/dist/browser/chunks/travel-map-earth-globe.svg-ClbMiU-f.js +1 -1
  160. package/dist/browser/chunks/vendor-BPQqqkn-.js +306 -0
  161. package/dist/browser/standalone.esm.js +20 -20
  162. package/dist/browser/standalone.js +292 -292
  163. package/dist/components/AgentScalar/AgentScalarButton.vue.d.ts.map +1 -1
  164. package/dist/components/AgentScalar/AgentScalarButton.vue.js.map +1 -1
  165. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js +4 -2
  166. package/dist/components/AgentScalar/AgentScalarButton.vue.script.js.map +1 -1
  167. package/dist/components/AgentScalar/AgentScalarDrawer.vue.d.ts.map +1 -1
  168. package/dist/components/AgentScalar/AgentScalarDrawer.vue.js +1 -1
  169. package/dist/components/AgentScalar/AgentScalarDrawer.vue.js.map +1 -1
  170. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js +4 -2
  171. package/dist/components/AgentScalar/AgentScalarDrawer.vue.script.js.map +1 -1
  172. package/dist/components/AgentScalar/OpenMCPButton.vue.d.ts.map +1 -1
  173. package/dist/components/AgentScalar/OpenMCPButton.vue.js +1 -1
  174. package/dist/components/AgentScalar/OpenMCPButton.vue.js.map +1 -1
  175. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js +8 -6
  176. package/dist/components/AgentScalar/OpenMCPButton.vue.script.js.map +1 -1
  177. package/dist/components/Anchor/Anchor.vue.d.ts.map +1 -1
  178. package/dist/components/Anchor/Anchor.vue.js.map +1 -1
  179. package/dist/components/Anchor/Anchor.vue.script.js +5 -3
  180. package/dist/components/Anchor/Anchor.vue.script.js.map +1 -1
  181. package/dist/components/Anchor/WithBreadcrumb.vue.d.ts +1 -3
  182. package/dist/components/Anchor/WithBreadcrumb.vue.d.ts.map +1 -1
  183. package/dist/components/Anchor/WithBreadcrumb.vue.js.map +1 -1
  184. package/dist/components/Anchor/WithBreadcrumb.vue.script.js +6 -2
  185. package/dist/components/Anchor/WithBreadcrumb.vue.script.js.map +1 -1
  186. package/dist/components/ApiReference.vue.d.ts.map +1 -1
  187. package/dist/components/ApiReference.vue.js +1 -1
  188. package/dist/components/ApiReference.vue.js.map +1 -1
  189. package/dist/components/ApiReference.vue.script.js +172 -43
  190. package/dist/components/ApiReference.vue.script.js.map +1 -1
  191. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.d.ts.map +1 -1
  192. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js +1 -1
  193. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.js.map +1 -1
  194. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js +6 -2
  195. package/dist/components/Content/AsyncApi/AsyncApiLabels.vue.script.js.map +1 -1
  196. package/dist/components/Content/AsyncApi/Message.vue.script.js +1 -1
  197. package/dist/components/Content/Auth/Auth.vue.d.ts.map +1 -1
  198. package/dist/components/Content/Auth/Auth.vue.js.map +1 -1
  199. package/dist/components/Content/Auth/Auth.vue.script.js +5 -2
  200. package/dist/components/Content/Auth/Auth.vue.script.js.map +1 -1
  201. package/dist/components/Content/Content.vue.d.ts +1 -0
  202. package/dist/components/Content/Content.vue.d.ts.map +1 -1
  203. package/dist/components/Content/Content.vue.js.map +1 -1
  204. package/dist/components/Content/Content.vue.script.js +4 -1
  205. package/dist/components/Content/Content.vue.script.js.map +1 -1
  206. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts +3 -1
  207. package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
  208. package/dist/components/Content/Operations/TraversedEntry.vue.js.map +1 -1
  209. package/dist/components/Content/Operations/TraversedEntry.vue.script.js +9 -0
  210. package/dist/components/Content/Operations/TraversedEntry.vue.script.js.map +1 -1
  211. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  212. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  213. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  214. package/dist/components/Content/Schema/Schema.vue.script.js +8 -5
  215. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  216. package/dist/components/Content/Schema/SchemaComposition.vue.d.ts.map +1 -1
  217. package/dist/components/Content/Schema/SchemaComposition.vue.js.map +1 -1
  218. package/dist/components/Content/Schema/SchemaComposition.vue.script.js +9 -11
  219. package/dist/components/Content/Schema/SchemaComposition.vue.script.js.map +1 -1
  220. package/dist/components/Content/Schema/SchemaEnums.vue.d.ts.map +1 -1
  221. package/dist/components/Content/Schema/SchemaEnums.vue.js +1 -1
  222. package/dist/components/Content/Schema/SchemaEnums.vue.js.map +1 -1
  223. package/dist/components/Content/Schema/SchemaEnums.vue.script.js +4 -2
  224. package/dist/components/Content/Schema/SchemaEnums.vue.script.js.map +1 -1
  225. package/dist/components/Content/Schema/SchemaHeading.vue.d.ts.map +1 -1
  226. package/dist/components/Content/Schema/SchemaHeading.vue.js +1 -1
  227. package/dist/components/Content/Schema/SchemaHeading.vue.js.map +1 -1
  228. package/dist/components/Content/Schema/SchemaHeading.vue.script.js +5 -3
  229. package/dist/components/Content/Schema/SchemaHeading.vue.script.js.map +1 -1
  230. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.js.map +1 -1
  231. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js +1 -1
  232. package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.script.js.map +1 -1
  233. package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts.map +1 -1
  234. package/dist/components/Content/Schema/SchemaObjectProperties.vue.js.map +1 -1
  235. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js +12 -0
  236. package/dist/components/Content/Schema/SchemaObjectProperties.vue.script.js.map +1 -1
  237. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +3 -1
  238. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  239. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  240. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  241. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +3 -0
  242. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  243. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.d.ts.map +1 -1
  244. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js +1 -1
  245. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js.map +1 -1
  246. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js +8 -5
  247. package/dist/components/Content/Schema/SchemaPropertyDefault.vue.script.js.map +1 -1
  248. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.d.ts.map +1 -1
  249. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js +1 -1
  250. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js.map +1 -1
  251. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js +5 -3
  252. package/dist/components/Content/Schema/SchemaPropertyExamples.vue.script.js.map +1 -1
  253. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts +3 -1
  254. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
  255. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +1 -1
  256. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js.map +1 -1
  257. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js +47 -22
  258. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js.map +1 -1
  259. package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
  260. package/dist/components/Content/Tags/components/ModernLayout.vue.js +1 -1
  261. package/dist/components/Content/Tags/components/ModernLayout.vue.js.map +1 -1
  262. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js +3 -1
  263. package/dist/components/Content/Tags/components/ModernLayout.vue.script.js.map +1 -1
  264. package/dist/components/Content/Tags/components/TagSection.vue.d.ts.map +1 -1
  265. package/dist/components/Content/Tags/components/TagSection.vue.js.map +1 -1
  266. package/dist/components/Content/Tags/components/TagSection.vue.script.js +3 -1
  267. package/dist/components/Content/Tags/components/TagSection.vue.script.js.map +1 -1
  268. package/dist/components/GettingStarted.vue.d.ts.map +1 -1
  269. package/dist/components/GettingStarted.vue.js +1 -1
  270. package/dist/components/GettingStarted.vue.js.map +1 -1
  271. package/dist/components/GettingStarted.vue.script.js +58 -21
  272. package/dist/components/GettingStarted.vue.script.js.map +1 -1
  273. package/dist/components/MobileHeader.vue.d.ts.map +1 -1
  274. package/dist/components/MobileHeader.vue.js.map +1 -1
  275. package/dist/components/MobileHeader.vue.script.js +3 -1
  276. package/dist/components/MobileHeader.vue.script.js.map +1 -1
  277. package/dist/components/OperationsList/OperationsList.vue.d.ts.map +1 -1
  278. package/dist/components/OperationsList/OperationsList.vue.js +1 -1
  279. package/dist/components/OperationsList/OperationsList.vue.js.map +1 -1
  280. package/dist/components/OperationsList/OperationsList.vue.script.js +4 -2
  281. package/dist/components/OperationsList/OperationsList.vue.script.js.map +1 -1
  282. package/dist/components/ShowMoreButton.vue.d.ts.map +1 -1
  283. package/dist/components/ShowMoreButton.vue.js +1 -1
  284. package/dist/components/ShowMoreButton.vue.js.map +1 -1
  285. package/dist/components/ShowMoreButton.vue.script.js +4 -2
  286. package/dist/components/ShowMoreButton.vue.script.js.map +1 -1
  287. package/dist/features/Operation/Operation.vue.d.ts +3 -1
  288. package/dist/features/Operation/Operation.vue.d.ts.map +1 -1
  289. package/dist/features/Operation/Operation.vue.js.map +1 -1
  290. package/dist/features/Operation/Operation.vue.script.js +6 -1
  291. package/dist/features/Operation/Operation.vue.script.js.map +1 -1
  292. package/dist/features/Operation/components/ContentTypeSelect.vue.d.ts.map +1 -1
  293. package/dist/features/Operation/components/ContentTypeSelect.vue.js.map +1 -1
  294. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js +4 -2
  295. package/dist/features/Operation/components/ContentTypeSelect.vue.script.js.map +1 -1
  296. package/dist/features/Operation/components/Headers.vue.d.ts.map +1 -1
  297. package/dist/features/Operation/components/Headers.vue.js +1 -1
  298. package/dist/features/Operation/components/Headers.vue.js.map +1 -1
  299. package/dist/features/Operation/components/Headers.vue.script.js +8 -6
  300. package/dist/features/Operation/components/Headers.vue.script.js.map +1 -1
  301. package/dist/features/Operation/components/OperationParameters.vue.d.ts.map +1 -1
  302. package/dist/features/Operation/components/OperationParameters.vue.js.map +1 -1
  303. package/dist/features/Operation/components/OperationParameters.vue.script.js +8 -6
  304. package/dist/features/Operation/components/OperationParameters.vue.script.js.map +1 -1
  305. package/dist/features/Operation/components/OperationResponses.vue.d.ts.map +1 -1
  306. package/dist/features/Operation/components/OperationResponses.vue.js.map +1 -1
  307. package/dist/features/Operation/components/OperationResponses.vue.script.js +10 -7
  308. package/dist/features/Operation/components/OperationResponses.vue.script.js.map +1 -1
  309. package/dist/features/Operation/components/ParameterListItem.vue.script.js +1 -1
  310. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  311. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  312. package/dist/features/Operation/components/RequestBody.vue.js.map +1 -1
  313. package/dist/features/Operation/components/RequestBody.vue.script.js +18 -13
  314. package/dist/features/Operation/components/RequestBody.vue.script.js.map +1 -1
  315. package/dist/features/Operation/components/SecurityRequirementBadge.vue.d.ts.map +1 -1
  316. package/dist/features/Operation/components/SecurityRequirementBadge.vue.js.map +1 -1
  317. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js +5 -3
  318. package/dist/features/Operation/components/SecurityRequirementBadge.vue.script.js.map +1 -1
  319. package/dist/features/Operation/components/callbacks/Callbacks.vue.d.ts.map +1 -1
  320. package/dist/features/Operation/components/callbacks/Callbacks.vue.js.map +1 -1
  321. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js +11 -8
  322. package/dist/features/Operation/components/callbacks/Callbacks.vue.script.js.map +1 -1
  323. package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts.map +1 -1
  324. package/dist/features/Operation/layouts/ClassicLayout.vue.js +1 -1
  325. package/dist/features/Operation/layouts/ClassicLayout.vue.js.map +1 -1
  326. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js +37 -17
  327. package/dist/features/Operation/layouts/ClassicLayout.vue.script.js.map +1 -1
  328. package/dist/features/Operation/layouts/ModernLayout.vue.d.ts.map +1 -1
  329. package/dist/features/Operation/layouts/ModernLayout.vue.js +1 -1
  330. package/dist/features/Operation/layouts/ModernLayout.vue.js.map +1 -1
  331. package/dist/features/Operation/layouts/ModernLayout.vue.script.js +22 -7
  332. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  333. package/dist/features/Search/components/SearchButton.vue.d.ts.map +1 -1
  334. package/dist/features/Search/components/SearchButton.vue.js.map +1 -1
  335. package/dist/features/Search/components/SearchButton.vue.script.js +15 -8
  336. package/dist/features/Search/components/SearchButton.vue.script.js.map +1 -1
  337. package/dist/features/Search/components/SearchModal.vue.d.ts.map +1 -1
  338. package/dist/features/Search/components/SearchModal.vue.js +1 -1
  339. package/dist/features/Search/components/SearchModal.vue.js.map +1 -1
  340. package/dist/features/Search/components/SearchModal.vue.script.js +29 -10
  341. package/dist/features/Search/components/SearchModal.vue.script.js.map +1 -1
  342. package/dist/features/Search/components/SearchResult.vue.d.ts.map +1 -1
  343. package/dist/features/Search/components/SearchResult.vue.js.map +1 -1
  344. package/dist/features/Search/components/SearchResult.vue.script.js +12 -8
  345. package/dist/features/Search/components/SearchResult.vue.script.js.map +1 -1
  346. package/dist/features/Search/helpers/create-search-index.d.ts +8 -0
  347. package/dist/features/Search/helpers/create-search-index.d.ts.map +1 -1
  348. package/dist/features/Search/helpers/create-search-index.js +18 -9
  349. package/dist/features/Search/helpers/create-search-index.js.map +1 -1
  350. package/dist/features/Search/hooks/useSearchIndex.d.ts +7 -1
  351. package/dist/features/Search/hooks/useSearchIndex.d.ts.map +1 -1
  352. package/dist/features/Search/hooks/useSearchIndex.js +11 -2
  353. package/dist/features/Search/hooks/useSearchIndex.js.map +1 -1
  354. package/dist/features/ask-agent-button/AskAgentButton.vue.d.ts.map +1 -1
  355. package/dist/features/ask-agent-button/AskAgentButton.vue.js +1 -1
  356. package/dist/features/ask-agent-button/AskAgentButton.vue.js.map +1 -1
  357. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js +10 -6
  358. package/dist/features/ask-agent-button/AskAgentButton.vue.script.js.map +1 -1
  359. package/dist/features/developer-tools/DeveloperTools.vue.d.ts.map +1 -1
  360. package/dist/features/developer-tools/DeveloperTools.vue.js.map +1 -1
  361. package/dist/features/developer-tools/DeveloperTools.vue.script.js +10 -8
  362. package/dist/features/developer-tools/DeveloperTools.vue.script.js.map +1 -1
  363. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.d.ts.map +1 -1
  364. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.js.map +1 -1
  365. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js +11 -11
  366. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.script.js.map +1 -1
  367. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.d.ts.map +1 -1
  368. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js.map +1 -1
  369. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js +15 -11
  370. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.script.js.map +1 -1
  371. package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.script.js +1 -1
  372. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.d.ts +1 -3
  373. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.d.ts.map +1 -1
  374. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.js.map +1 -1
  375. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js +4 -6
  376. package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.script.js.map +1 -1
  377. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.d.ts.map +1 -1
  378. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.js.map +1 -1
  379. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js +6 -4
  380. package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.script.js.map +1 -1
  381. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.d.ts.map +1 -1
  382. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js.map +1 -1
  383. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js +23 -22
  384. package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.script.js.map +1 -1
  385. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.d.ts.map +1 -1
  386. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.js.map +1 -1
  387. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js +7 -5
  388. package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.script.js.map +1 -1
  389. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.d.ts.map +1 -1
  390. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.js.map +1 -1
  391. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js +9 -7
  392. package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.script.js.map +1 -1
  393. package/dist/features/developer-tools/components/DeployApiReference.vue.d.ts.map +1 -1
  394. package/dist/features/developer-tools/components/DeployApiReference.vue.js.map +1 -1
  395. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js +7 -4
  396. package/dist/features/developer-tools/components/DeployApiReference.vue.script.js.map +1 -1
  397. package/dist/features/developer-tools/components/ModifyConfiguration.vue.d.ts.map +1 -1
  398. package/dist/features/developer-tools/components/ModifyConfiguration.vue.js.map +1 -1
  399. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js +8 -6
  400. package/dist/features/developer-tools/components/ModifyConfiguration.vue.script.js.map +1 -1
  401. package/dist/features/developer-tools/components/ShareApiReference.vue.d.ts.map +1 -1
  402. package/dist/features/developer-tools/components/ShareApiReference.vue.js.map +1 -1
  403. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js +7 -4
  404. package/dist/features/developer-tools/components/ShareApiReference.vue.script.js.map +1 -1
  405. package/dist/features/example-responses/ExampleResponse.vue.d.ts.map +1 -1
  406. package/dist/features/example-responses/ExampleResponse.vue.js +1 -1
  407. package/dist/features/example-responses/ExampleResponse.vue.js.map +1 -1
  408. package/dist/features/example-responses/ExampleResponse.vue.script.js +5 -3
  409. package/dist/features/example-responses/ExampleResponse.vue.script.js.map +1 -1
  410. package/dist/features/example-responses/ExampleResponses.vue.d.ts +9 -0
  411. package/dist/features/example-responses/ExampleResponses.vue.d.ts.map +1 -1
  412. package/dist/features/example-responses/ExampleResponses.vue.js +1 -1
  413. package/dist/features/example-responses/ExampleResponses.vue.js.map +1 -1
  414. package/dist/features/example-responses/ExampleResponses.vue.script.js +42 -23
  415. package/dist/features/example-responses/ExampleResponses.vue.script.js.map +1 -1
  416. package/dist/features/example-responses/ExampleSchema.vue.js.map +1 -1
  417. package/dist/features/example-responses/ExampleSchema.vue.script.js +1 -1
  418. package/dist/features/example-responses/ExampleSchema.vue.script.js.map +1 -1
  419. package/dist/features/info-object/Contact.vue.d.ts.map +1 -1
  420. package/dist/features/info-object/Contact.vue.js.map +1 -1
  421. package/dist/features/info-object/Contact.vue.script.js +14 -11
  422. package/dist/features/info-object/Contact.vue.script.js.map +1 -1
  423. package/dist/features/info-object/InfoLink.vue.d.ts +8 -0
  424. package/dist/features/info-object/InfoLink.vue.d.ts.map +1 -0
  425. package/dist/features/info-object/InfoLink.vue.js +7 -0
  426. package/dist/features/info-object/InfoLink.vue.js.map +1 -0
  427. package/dist/features/info-object/InfoLink.vue.script.js +30 -0
  428. package/dist/features/info-object/InfoLink.vue.script.js.map +1 -0
  429. package/dist/features/info-object/TermsOfService.vue.d.ts.map +1 -1
  430. package/dist/features/info-object/TermsOfService.vue.js.map +1 -1
  431. package/dist/features/info-object/TermsOfService.vue.script.js +9 -6
  432. package/dist/features/info-object/TermsOfService.vue.script.js.map +1 -1
  433. package/dist/features/info-object/index.d.ts +1 -0
  434. package/dist/features/info-object/index.d.ts.map +1 -1
  435. package/dist/features/localization/index.d.ts +2 -0
  436. package/dist/features/localization/index.d.ts.map +1 -0
  437. package/dist/features/localization/locales/ar.d.ts +227 -0
  438. package/dist/features/localization/locales/ar.d.ts.map +1 -0
  439. package/dist/features/localization/locales/ar.js +225 -0
  440. package/dist/features/localization/locales/ar.js.map +1 -0
  441. package/dist/features/localization/locales/de.d.ts +227 -0
  442. package/dist/features/localization/locales/de.d.ts.map +1 -0
  443. package/dist/features/localization/locales/de.js +225 -0
  444. package/dist/features/localization/locales/de.js.map +1 -0
  445. package/dist/features/localization/locales/en.d.ts +227 -0
  446. package/dist/features/localization/locales/en.d.ts.map +1 -0
  447. package/dist/features/localization/locales/en.js +225 -0
  448. package/dist/features/localization/locales/en.js.map +1 -0
  449. package/dist/features/localization/locales/es.d.ts +227 -0
  450. package/dist/features/localization/locales/es.d.ts.map +1 -0
  451. package/dist/features/localization/locales/es.js +225 -0
  452. package/dist/features/localization/locales/es.js.map +1 -0
  453. package/dist/features/localization/locales/fr.d.ts +227 -0
  454. package/dist/features/localization/locales/fr.d.ts.map +1 -0
  455. package/dist/features/localization/locales/fr.js +225 -0
  456. package/dist/features/localization/locales/fr.js.map +1 -0
  457. package/dist/features/localization/locales/ru.d.ts +227 -0
  458. package/dist/features/localization/locales/ru.d.ts.map +1 -0
  459. package/dist/features/localization/locales/ru.js +225 -0
  460. package/dist/features/localization/locales/ru.js.map +1 -0
  461. package/dist/features/localization/locales/zh-cn.d.ts +227 -0
  462. package/dist/features/localization/locales/zh-cn.d.ts.map +1 -0
  463. package/dist/features/localization/locales/zh-cn.js +225 -0
  464. package/dist/features/localization/locales/zh-cn.js.map +1 -0
  465. package/dist/features/localization/translations.d.ts +1588 -0
  466. package/dist/features/localization/translations.d.ts.map +1 -0
  467. package/dist/features/localization/translations.js +27 -0
  468. package/dist/features/localization/translations.js.map +1 -0
  469. package/dist/features/localization/use-localization.d.ts +18 -0
  470. package/dist/features/localization/use-localization.d.ts.map +1 -0
  471. package/dist/features/localization/use-localization.js +58 -0
  472. package/dist/features/localization/use-localization.js.map +1 -0
  473. package/dist/features/multiple-documents/DocumentSelector.vue.script.js +1 -1
  474. package/dist/features/test-request-button/TestRequestButton.vue.d.ts.map +1 -1
  475. package/dist/features/test-request-button/TestRequestButton.vue.js +1 -1
  476. package/dist/features/test-request-button/TestRequestButton.vue.js.map +1 -1
  477. package/dist/features/test-request-button/TestRequestButton.vue.script.js +3 -1
  478. package/dist/features/test-request-button/TestRequestButton.vue.script.js.map +1 -1
  479. package/dist/helpers/is-introduction-entry.d.ts +16 -0
  480. package/dist/helpers/is-introduction-entry.d.ts.map +1 -0
  481. package/dist/helpers/is-introduction-entry.js +17 -0
  482. package/dist/helpers/is-introduction-entry.js.map +1 -0
  483. package/dist/helpers/load-from-perssistance.js +1 -1
  484. package/dist/helpers/load-from-perssistance.js.map +1 -1
  485. package/dist/helpers/map-config-to-workspace-store.js +1 -1
  486. package/dist/helpers/map-config-to-workspace-store.js.map +1 -1
  487. package/dist/helpers/storage.d.ts +14 -14
  488. package/dist/style.css +446 -434
  489. package/dist/styles/tailwind.config.css +1 -0
  490. package/dist/vue-styles.css +383 -380
  491. package/package.json +18 -17
  492. package/dist/browser/chunks/AgentScalarChatInterface-BhUn0w1j.js +0 -27
  493. package/dist/browser/chunks/ScalarTextInput.vue-BUzf4Z_k.js +0 -27
  494. package/dist/browser/chunks/modal-CZI71Aau.js +0 -99
  495. package/dist/browser/chunks/vendor-BeJNu9KM.js +0 -306
  496. package/dist/features/Operation/helpers/get-first-server.d.ts +0 -9
  497. package/dist/features/Operation/helpers/get-first-server.d.ts.map +0 -1
  498. package/dist/features/Operation/helpers/get-first-server.js +0 -27
  499. package/dist/features/Operation/helpers/get-first-server.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaPropertyExamples.vue.script.js","names":[],"sources":["../../../../src/components/Content/Schema/SchemaPropertyExamples.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { isObject } from '@scalar/helpers/object/is-object'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { computed } from 'vue'\n\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\n\nimport { formatExample } from './helpers/format-example'\n\nconst { examples, example } = defineProps<{\n examples?: unknown\n example?: unknown\n}>()\n\nconst { copyToClipboard } = useClipboard()\n\n// `null` is a meaningful example value for nullable schemas, so only treat\n// `undefined` as \"not provided\".\nconst hasSingleExample = computed(() => example !== undefined)\n\nconst normalizedExamples = computed<Record<string, unknown>>(() => {\n if (examples && typeof examples === 'object') {\n return examples as Record<string, unknown>\n }\n\n return {}\n})\n\nconst hasMultipleExamples = computed(\n () => Object.keys(normalizedExamples.value).length > 0,\n)\n\nconst multipleExamplesLabel = computed(() =>\n Object.keys(normalizedExamples.value).length === 1 ? 'Example' : 'Examples',\n)\n\n/**\n * Unwrap an OpenAPI 3 Example Object (`{ value, externalValue, summary, description }`)\n * to the actual sample. Plain values pass through untouched.\n */\nfunction unwrapExampleObject(value: unknown): unknown {\n if (isObject(value)) {\n if ('value' in value) {\n return value.value\n }\n if ('externalValue' in value) {\n return (value as { externalValue: unknown }).externalValue\n }\n }\n return value\n}\n</script>\n<template>\n <!-- single example (deprecated) -->\n <template v-if=\"hasSingleExample\">\n <div class=\"property-example\">\n <LinkButton class=\"decoration-dotted\">Example</LinkButton>\n <div class=\"property-example-value-list\">\n <button\n class=\"property-example-value group\"\n type=\"button\"\n @click=\"copyToClipboard(formatExample(example))\">\n <span>\n {{ formatExample(example) }}\n </span>\n <ScalarIcon\n class=\"group-hover:text-c-1 text-c-3 ml-auto min-h-3 min-w-3\"\n icon=\"Clipboard\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n </template>\n\n <!-- multiple examples -->\n <template v-if=\"hasMultipleExamples\">\n <div class=\"property-example\">\n <LinkButton class=\"decoration-dotted\">\n {{ multipleExamplesLabel }}\n </LinkButton>\n <div class=\"property-example-value-list\">\n <button\n v-for=\"(ex, key) in normalizedExamples\"\n :key=\"key\"\n class=\"property-example-value group\"\n type=\"button\"\n @click=\"copyToClipboard(formatExample(unwrapExampleObject(ex)))\">\n <span>{{ formatExample(unwrapExampleObject(ex)) }} </span>\n <ScalarIcon\n class=\"text-c-3 group-hover:text-c-1 ml-auto min-h-3 min-w-3\"\n icon=\"Clipboard\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n </template>\n</template>\n\n<style scoped>\n@reference \"../../../style.css\";\n\n.property-example {\n display: flex;\n flex-direction: column;\n font-size: var(--scalar-mini);\n position: relative;\n}\n.property-example:hover:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 20px;\n border-radius: var(--scalar-radius);\n}\n.property-example-value {\n font-family: var(--scalar-font-code);\n display: flex;\n gap: 8px;\n align-items: center;\n width: 100%;\n padding: 6px;\n}\n.property-example-value span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.property-example-value :deep(svg) {\n color: var(--scalar-color-3);\n}\n\n.property-example-value:hover :deep(svg) {\n color: var(--scalar-color-1);\n}\n\n.property-example-value {\n background: var(--scalar-background-2);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius);\n}\n.property-example-value-list {\n position: absolute;\n top: 18px;\n left: 50%;\n transform: translate3d(-50%, 0, 0);\n overflow: auto;\n background-color: var(--scalar-background-1);\n box-shadow: var(--scalar-shadow-1);\n border-radius: var(--scalar-radius-lg);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n padding: 9px;\n min-width: 200px;\n max-width: 300px;\n flex-direction: column;\n gap: 3px;\n display: none;\n @apply z-context;\n}\n.property-example:hover .property-example-value-list,\n.property-example:focus-within .property-example-value-list {\n display: flex;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAeA,MAAM,EAAE,oBAAoB,cAAa;EAIzC,MAAM,mBAAmB,eAAe,QAAA,YAAY,KAAA,EAAS;EAE7D,MAAM,qBAAqB,eAAwC;AACjE,OAAI,QAAA,YAAY,OAAO,QAAA,aAAa,SAClC,QAAO,QAAA;AAGT,UAAO,EAAC;IACT;EAED,MAAM,sBAAsB,eACpB,OAAO,KAAK,mBAAmB,MAAM,CAAC,SAAS,EACvD;EAEA,MAAM,wBAAwB,eAC5B,OAAO,KAAK,mBAAmB,MAAM,CAAC,WAAW,IAAI,YAAY,WACnE;;;;;EAMA,SAAS,oBAAoB,OAAyB;AACpD,OAAI,SAAS,MAAM,EAAE;AACnB,QAAI,WAAW,MACb,QAAO,MAAM;AAEf,QAAI,mBAAmB,MACrB,QAAQ,MAAqC;;AAGjD,UAAO;;;2DAKS,iBAAA,SAAA,WAAA,EACd,mBAgBM,OAhBN,YAgBM,CAfJ,YAA0D,oBAAA,EAA9C,OAAM,qBAAmB,EAAA;2BAAQ,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAAP,WAAO,GAAA,CAAA,EAAA,CAAA;;OAC7C,mBAaM,OAbN,YAaM,CAZJ,mBAWS,UAAA;IAVP,OAAM;IACN,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,gBAAe,CAAC,MAAA,cAAa,CAAC,QAAA,QAAO,CAAA;OAC7C,mBAEO,QAAA,MAAA,gBADF,MAAA,cAAa,CAAC,QAAA,QAAO,CAAA,EAAA,EAAA,EAE1B,YAGc,MAAA,WAAA,EAAA;IAFZ,OAAM;IACN,MAAK;IACL,MAAK;6CAOC,oBAAA,SAAA,WAAA,EACd,mBAkBM,OAlBN,YAkBM,CAjBJ,YAEa,oBAAA,EAFD,OAAM,qBAAmB,EAAA;2BACR,CAAA,gBAAA,gBAAxB,sBAAA,MAAqB,EAAA,EAAA,CAAA,CAAA;;OAE1B,mBAaM,OAbN,YAaM,EAAA,UAAA,KAAA,EAZJ,mBAWS,UAAA,MAAA,WAVa,mBAAA,QAAZ,IAAI,QAAG;wBADjB,mBAWS,UAAA;KATD;KACN,OAAM;KACN,MAAK;KACJ,UAAK,WAAE,MAAA,gBAAe,CAAC,MAAA,cAAa,CAAC,oBAAoB,GAAE,CAAA,CAAA;QAC5D,mBAA0D,QAAA,MAAA,gBAAjD,MAAA,cAAa,CAAC,oBAAoB,GAAE,CAAA,CAAA,EAAA,EAAA,EAC7C,YAGc,MAAA,WAAA,EAAA;KAFZ,OAAM;KACN,MAAK;KACL,MAAK"}
1
+ {"version":3,"file":"SchemaPropertyExamples.vue.script.js","names":[],"sources":["../../../../src/components/Content/Schema/SchemaPropertyExamples.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIcon } from '@scalar/components/icon'\nimport { isObject } from '@scalar/helpers/object/is-object'\nimport { useClipboard } from '@scalar/use-hooks/useClipboard'\nimport { computed } from 'vue'\n\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport { formatExample } from './helpers/format-example'\n\nconst { examples, example } = defineProps<{\n examples?: unknown\n example?: unknown\n}>()\n\nconst { copyToClipboard } = useClipboard()\nconst { translate } = useLocalization()\n\n// `null` is a meaningful example value for nullable schemas, so only treat\n// `undefined` as \"not provided\".\nconst hasSingleExample = computed(() => example !== undefined)\n\nconst normalizedExamples = computed<Record<string, unknown>>(() => {\n if (examples && typeof examples === 'object') {\n return examples as Record<string, unknown>\n }\n\n return {}\n})\n\nconst hasMultipleExamples = computed(\n () => Object.keys(normalizedExamples.value).length > 0,\n)\n\nconst multipleExamplesLabel = computed(() =>\n Object.keys(normalizedExamples.value).length === 1\n ? translate('schema.example')\n : translate('schema.examples'),\n)\n\n/**\n * Unwrap an OpenAPI 3 Example Object (`{ value, externalValue, summary, description }`)\n * to the actual sample. Plain values pass through untouched.\n */\nfunction unwrapExampleObject(value: unknown): unknown {\n if (isObject(value)) {\n if ('value' in value) {\n return value.value\n }\n if ('externalValue' in value) {\n return (value as { externalValue: unknown }).externalValue\n }\n }\n return value\n}\n</script>\n<template>\n <!-- single example (deprecated) -->\n <template v-if=\"hasSingleExample\">\n <div class=\"property-example\">\n <LinkButton class=\"decoration-dotted\">\n {{ translate('schema.example') }}\n </LinkButton>\n <div class=\"property-example-value-list\">\n <button\n class=\"property-example-value group\"\n type=\"button\"\n @click=\"copyToClipboard(formatExample(example))\">\n <span>\n {{ formatExample(example) }}\n </span>\n <ScalarIcon\n class=\"group-hover:text-c-1 text-c-3 ml-auto min-h-3 min-w-3\"\n icon=\"Clipboard\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n </template>\n\n <!-- multiple examples -->\n <template v-if=\"hasMultipleExamples\">\n <div class=\"property-example\">\n <LinkButton class=\"decoration-dotted\">\n {{ multipleExamplesLabel }}\n </LinkButton>\n <div class=\"property-example-value-list\">\n <button\n v-for=\"(ex, key) in normalizedExamples\"\n :key=\"key\"\n class=\"property-example-value group\"\n type=\"button\"\n @click=\"copyToClipboard(formatExample(unwrapExampleObject(ex)))\">\n <span>{{ formatExample(unwrapExampleObject(ex)) }} </span>\n <ScalarIcon\n class=\"text-c-3 group-hover:text-c-1 ml-auto min-h-3 min-w-3\"\n icon=\"Clipboard\"\n size=\"xs\" />\n </button>\n </div>\n </div>\n </template>\n</template>\n\n<style scoped>\n@reference \"../../../style.css\";\n\n.property-example {\n display: flex;\n flex-direction: column;\n font-size: var(--scalar-mini);\n position: relative;\n}\n.property-example:hover:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 20px;\n border-radius: var(--scalar-radius);\n}\n.property-example-value {\n font-family: var(--scalar-font-code);\n display: flex;\n gap: 8px;\n align-items: center;\n width: 100%;\n padding: 6px;\n}\n.property-example-value span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.property-example-value :deep(svg) {\n color: var(--scalar-color-3);\n}\n\n.property-example-value:hover :deep(svg) {\n color: var(--scalar-color-1);\n}\n\n.property-example-value {\n background: var(--scalar-background-2);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius);\n}\n.property-example-value-list {\n position: absolute;\n top: 18px;\n left: 50%;\n transform: translate3d(-50%, 0, 0);\n overflow: auto;\n background-color: var(--scalar-background-1);\n box-shadow: var(--scalar-shadow-1);\n border-radius: var(--scalar-radius-lg);\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n padding: 9px;\n min-width: 200px;\n max-width: 300px;\n flex-direction: column;\n gap: 3px;\n display: none;\n @apply z-context;\n}\n.property-example:hover .property-example-value-list,\n.property-example:focus-within .property-example-value-list {\n display: flex;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA,MAAM,EAAE,oBAAoB,cAAa;EACzC,MAAM,EAAE,cAAc,iBAAgB;EAItC,MAAM,mBAAmB,eAAe,QAAA,YAAY,KAAA,EAAS;EAE7D,MAAM,qBAAqB,eAAwC;AACjE,OAAI,QAAA,YAAY,OAAO,QAAA,aAAa,SAClC,QAAO,QAAA;AAGT,UAAO,EAAC;IACT;EAED,MAAM,sBAAsB,eACpB,OAAO,KAAK,mBAAmB,MAAM,CAAC,SAAS,EACvD;EAEA,MAAM,wBAAwB,eAC5B,OAAO,KAAK,mBAAmB,MAAM,CAAC,WAAW,IAC7C,UAAU,iBAAgB,GAC1B,UAAU,kBAAkB,CAClC;;;;;EAMA,SAAS,oBAAoB,OAAyB;AACpD,OAAI,SAAS,MAAM,EAAE;AACnB,QAAI,WAAW,MACb,QAAO,MAAM;AAEf,QAAI,mBAAmB,MACrB,QAAQ,MAAqC;;AAGjD,UAAO;;;2DAKS,iBAAA,SAAA,WAAA,EACd,mBAkBM,OAlBN,YAkBM,CAjBJ,YAEa,oBAAA,EAFD,OAAM,qBAAmB,EAAA;2BACF,CAAA,gBAAA,gBAA9B,MAAA,UAAS,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;OAEd,mBAaM,OAbN,YAaM,CAZJ,mBAWS,UAAA;IAVP,OAAM;IACN,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,gBAAe,CAAC,MAAA,cAAa,CAAC,QAAA,QAAO,CAAA;OAC7C,mBAEO,QAAA,MAAA,gBADF,MAAA,cAAa,CAAC,QAAA,QAAO,CAAA,EAAA,EAAA,EAE1B,YAGc,MAAA,WAAA,EAAA;IAFZ,OAAM;IACN,MAAK;IACL,MAAK;6CAOC,oBAAA,SAAA,WAAA,EACd,mBAkBM,OAlBN,YAkBM,CAjBJ,YAEa,oBAAA,EAFD,OAAM,qBAAmB,EAAA;2BACR,CAAA,gBAAA,gBAAxB,sBAAA,MAAqB,EAAA,EAAA,CAAA,CAAA;;OAE1B,mBAaM,OAbN,YAaM,EAAA,UAAA,KAAA,EAZJ,mBAWS,UAAA,MAAA,WAVa,mBAAA,QAAZ,IAAI,QAAG;wBADjB,mBAWS,UAAA;KATD;KACN,OAAM;KACN,MAAK;KACJ,UAAK,WAAE,MAAA,gBAAe,CAAC,MAAA,cAAa,CAAC,oBAAoB,GAAE,CAAA,CAAA;QAC5D,mBAA0D,QAAA,MAAA,gBAAjD,MAAA,cAAa,CAAC,oBAAoB,GAAE,CAAA,CAAA,EAAA,EAAA,EAC7C,YAGc,MAAA,WAAA,EAAA;KAFZ,OAAM;KACN,MAAK;KACL,MAAK"}
@@ -10,6 +10,8 @@ type __VLS_Props = {
10
10
  hideModelNames?: boolean;
11
11
  /** When the schema was resolved from a $ref, pass the ref name so it displays as e.g. "Data" instead of "object". */
12
12
  modelName?: string | null;
13
+ /** Resolved propertyNames schema, used to surface key constraints like `format` for additional properties. */
14
+ propertyNames?: SchemaObject;
13
15
  eventBus?: WorkspaceEventBus | null;
14
16
  };
15
17
  declare var __VLS_1: {};
@@ -17,8 +19,8 @@ type __VLS_Slots = {} & {
17
19
  name?: (props: typeof __VLS_1) => any;
18
20
  };
19
21
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
20
- eventBus: WorkspaceEventBus | null;
21
22
  required: boolean;
23
+ eventBus: WorkspaceEventBus | null;
22
24
  hideModelNames: boolean;
23
25
  isDiscriminator: boolean;
24
26
  withExamples: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaPropertyHeading.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/Schema/SchemaPropertyHeading.vue"],"names":[],"mappings":"AA2cA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAmBhG,KAAK,WAAW,GAAG;IACf,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qHAAqH;IACrH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACpC,CAAC;AAsiBJ,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK5C,QAAA,MAAM,UAAU;cA9iBD,iBAAiB,GAAG,IAAI;cANxB,OAAO;oBAGD,OAAO;qBAJN,OAAO;kBAGV,OAAO;6EAqjBxB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"SchemaPropertyHeading.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Content/Schema/SchemaPropertyHeading.vue"],"names":[],"mappings":"AAifA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAoBhG,KAAK,WAAW,GAAG;IACf,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,qHAAqH;IACrH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,8GAA8G;IAC9G,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACpC,CAAC;AA8lBJ,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK5C,QAAA,MAAM,UAAU;cA9mBD,OAAO;cAQP,iBAAiB,GAAG,IAAI;oBALlB,OAAO;qBAJN,OAAO;kBAGV,OAAO;6EA+mBxB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
2
2
  import SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default from "./SchemaPropertyHeading.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/Content/Schema/SchemaPropertyHeading.vue
5
- var SchemaPropertyHeading_default = /* @__PURE__ */ _plugin_vue_export_helper_default(SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e4c4fffd"]]);
5
+ var SchemaPropertyHeading_default = /* @__PURE__ */ _plugin_vue_export_helper_default(SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-18714eaa"]]);
6
6
  //#endregion
7
7
  export { SchemaPropertyHeading_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaPropertyHeading.vue.js","names":[],"sources":["../../../../src/components/Content/Schema/SchemaPropertyHeading.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport {\n isArraySchema,\n isNumberSchema,\n isStringSchema,\n} from '@scalar/workspace-store/schemas/v3.1/strict/type-guards'\nimport { computed, toRef } from 'vue'\n\nimport { Badge } from '@/components/Badge'\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport ScreenReader from '@/components/ScreenReader.vue'\n\nimport { getSchemaType } from './helpers/get-schema-type'\nimport { getModelNameFromSchema } from './helpers/schema-name'\nimport RenderString from './RenderString.vue'\nimport SchemaPropertyDefault from './SchemaPropertyDefault.vue'\nimport SchemaPropertyDetail from './SchemaPropertyDetail.vue'\nimport SchemaPropertyExamples from './SchemaPropertyExamples.vue'\n\nconst props = withDefaults(\n defineProps<{\n value: SchemaObject | undefined\n enum?: boolean\n isDiscriminator?: boolean\n required?: boolean\n additional?: boolean\n withExamples?: boolean\n hideModelNames?: boolean\n /** When the schema was resolved from a $ref, pass the ref name so it displays as e.g. \"Data\" instead of \"object\". */\n modelName?: string | null\n eventBus?: WorkspaceEventBus | null\n }>(),\n {\n isDiscriminator: false,\n required: false,\n withExamples: true,\n hideModelNames: false,\n eventBus: null,\n },\n)\n\n// Convert to reactive refs for composables\nconst valueRef = toRef(props, 'value')\n\nconst constValue = computed(() => {\n if (!valueRef.value) {\n return undefined\n }\n\n const schema = valueRef.value\n\n // Direct const value\n if (schema.const !== undefined) {\n return schema.const\n }\n\n // Single-item enum acts as const\n if (schema.enum?.length === 1) {\n return schema.enum[0]\n }\n\n // Check items for const values (for arrays)\n if (isArraySchema(schema) && schema.items) {\n const items = resolve.schema(schema.items)\n\n if (isDefined(items.const)) {\n return items.const\n }\n\n if (items.enum?.length === 1) {\n return items.enum[0]\n }\n }\n\n return undefined\n})\n\nconst validationProperties = computed(() => {\n if (!valueRef.value) {\n return []\n }\n\n const schema = valueRef.value\n const properties = []\n\n // Array validation properties\n if (isArraySchema(schema)) {\n if (schema.minItems || schema.maxItems) {\n properties.push({\n key: 'array-range',\n value: `${schema.minItems || ''}…${schema.maxItems || ''}`,\n })\n }\n\n // Unique items\n if (schema.uniqueItems) {\n properties.push({\n key: 'unique-items',\n value: 'unique!',\n })\n }\n }\n\n // String length properties\n if (isStringSchema(schema)) {\n if (schema.minLength) {\n properties.push({\n key: 'min-length',\n prefix: 'min length: ',\n value: schema.minLength,\n })\n }\n\n if (schema.maxLength) {\n properties.push({\n key: 'max-length',\n prefix: 'max length: ',\n value: schema.maxLength,\n })\n }\n\n // Pattern\n if (schema.pattern) {\n properties.push({\n key: 'pattern',\n value: schema.pattern,\n code: true,\n truncate: true,\n })\n }\n }\n\n // Format\n if (isStringSchema(schema) || isNumberSchema(schema)) {\n if (schema.format) {\n properties.push({\n key: 'format',\n value: schema.format,\n truncate: true,\n })\n }\n }\n\n // Numeric validation properties\n if (isNumberSchema(schema)) {\n if (isDefined(schema.exclusiveMinimum)) {\n properties.push({\n key: 'exclusive-minimum',\n prefix: 'greater than: ',\n value: schema.exclusiveMinimum,\n })\n }\n\n if (isDefined(schema.minimum)) {\n properties.push({\n key: 'minimum',\n prefix: 'min: ',\n value: schema.minimum,\n })\n }\n\n if (isDefined(schema.exclusiveMaximum)) {\n properties.push({\n key: 'exclusive-maximum',\n prefix: 'less than: ',\n value: schema.exclusiveMaximum,\n })\n }\n\n if (isDefined(schema.maximum)) {\n properties.push({\n key: 'maximum',\n prefix: 'max: ',\n value: schema.maximum,\n })\n }\n\n if (isDefined(schema.multipleOf)) {\n properties.push({\n key: 'multiple-of',\n prefix: 'multiple of: ',\n value: schema.multipleOf,\n })\n }\n }\n\n return properties\n})\n\n/** Link data for navigating to the referenced model in the sidebar. */\nconst modelLink = computed(() => {\n if (!props.value) {\n return null\n }\n\n if (props.hideModelNames) {\n return null\n }\n\n if (props.modelName) {\n return { schemaKey: props.modelName, label: props.modelName }\n }\n\n const modelName = getModelNameFromSchema(props.value)\n if (modelName) {\n return { schemaKey: modelName.schemaKey, label: modelName.label }\n }\n\n if (isArraySchema(props.value) && props.value.items) {\n const itemName = getModelNameFromSchema(props.value.items)\n return itemName\n ? { schemaKey: itemName.schemaKey, label: `${itemName.label}[]` }\n : null\n }\n\n return null\n})\n\n/** Check if we should show the type information */\nconst shouldShowType = computed(() => {\n if (!props.value || !('type' in props.value)) {\n return false\n }\n\n // Always show type for arrays, even when items have const values\n if (props.value.type === 'array') {\n return true\n }\n\n // For non-arrays, only show if no const value at the schema level\n return !constValue.value\n})\n\n/** Get the display type */\nconst displayType = computed(() => {\n if (!props.value) {\n return ''\n }\n return getSchemaType(props.value)\n})\n\nconst exampleValue = computed(() => {\n // Treat only `undefined` as \"not set\" — `null` is a valid example value on a nullable schema.\n if (\n props.value &&\n 'example' in props.value &&\n props.value.example !== undefined\n ) {\n return props.value.example\n }\n\n if (props.value && isArraySchema(props.value)) {\n const itemsSchema = resolve.schema(props.value.items)\n if (\n itemsSchema &&\n 'example' in itemsSchema &&\n itemsSchema.example !== undefined\n ) {\n return itemsSchema.example\n }\n }\n\n return undefined\n})\n</script>\n<template>\n <div class=\"property-heading\">\n <div\n v-if=\"$slots.name\"\n class=\"property-name\"\n :class=\"{ deprecated: props.value?.deprecated }\">\n <slot name=\"name\" />\n </div>\n <div\n v-if=\"props.isDiscriminator\"\n class=\"property-discriminator\">\n Discriminator\n </div>\n <template v-if=\"props.value\">\n <!-- Type information -->\n <SchemaPropertyDetail\n v-if=\"shouldShowType\"\n truncate>\n <ScreenReader>Type: </ScreenReader>{{ displayType\n }}<template v-if=\"modelLink\">\n ·\n <LinkButton\n v-if=\"props.eventBus && modelLink.schemaKey\"\n @click=\"\n props.eventBus.emit('scroll-to:model-by-name', {\n name: modelLink.schemaKey,\n })\n \">\n {{ modelLink.label }}\n </LinkButton>\n <template v-else>{{ modelLink.label }}</template>\n </template>\n </SchemaPropertyDetail>\n\n <!-- Dynamic validation properties from composable -->\n <SchemaPropertyDetail\n v-for=\"property in validationProperties\"\n :key=\"property.key\"\n :code=\"property.code\"\n :truncate=\"property.truncate\">\n <ScreenReader v-if=\"property.key === 'format'\">Format:</ScreenReader>\n <ScreenReader v-else-if=\"property.key === 'pattern'\">\n Pattern:\n </ScreenReader>\n <template\n v-if=\"property.prefix\"\n #prefix>\n {{ property.prefix }}\n </template>\n {{ property.value }}\n </SchemaPropertyDetail>\n\n <!-- Enum indicator -->\n <SchemaPropertyDetail v-if=\"props.enum\">enum</SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.additional\"\n class=\"property-additional\">\n <template v-if=\"props.value?.['x-additionalPropertiesName']\">\n {{ props.value['x-additionalPropertiesName'] }}\n </template>\n <template v-else>additional properties</template>\n </div>\n <div\n v-if=\"props.value?.deprecated\"\n class=\"property-deprecated\">\n <Badge>deprecated</Badge>\n </div>\n <!-- Don't use `isDefined` here, we want to show `const` when the value is `null` -->\n <div\n v-if=\"constValue !== undefined\"\n class=\"property-const\">\n <SchemaPropertyDetail truncate>\n <template #prefix>const: </template>\n <RenderString :value=\"constValue\" />\n </SchemaPropertyDetail>\n </div>\n <template v-else>\n <!-- Shows only when a composition is used (so props.value?.type is undefined) -->\n <SchemaPropertyDetail v-if=\"(props.value as any)?.nullable === true\">\n nullable\n </SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.value?.writeOnly\"\n class=\"property-write-only\">\n write-only\n </div>\n <div\n v-else-if=\"props.value?.readOnly\"\n class=\"property-read-only\">\n read-only\n </div>\n <div\n v-if=\"props.required\"\n class=\"property-required\">\n required\n </div>\n <SchemaPropertyDefault :value=\"props.value?.default\" />\n <SchemaPropertyExamples\n v-if=\"props.withExamples\"\n :example=\"exampleValue\"\n :examples=\"props.value?.examples\" />\n </div>\n</template>\n<style scoped>\n.property-heading {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n row-gap: 9px;\n white-space: nowrap;\n}\n\n.property-heading:has(+ .children),\n.property-heading:has(+ .property-rule) {\n margin-bottom: 9px;\n}\n\n.property-heading > * {\n margin-right: 9px;\n}\n\n.property-heading:last-child {\n margin-right: 0;\n}\n\n.property-heading > .property-detail:not(:last-of-type) {\n margin-right: 0;\n}\n\n.property-name {\n max-width: 100%;\n font-family: var(--scalar-font-code);\n font-weight: var(--scalar-bold);\n font-size: var(--scalar-font-size-4);\n white-space: normal;\n overflow-wrap: break-word;\n}\n\n.property-additional {\n font-family: var(--scalar-font-code);\n}\n\n.property-required,\n.property-optional {\n color: var(--scalar-color-2);\n}\n\n.property-required {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-orange);\n}\n\n.property-read-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-blue);\n}\n\n.property-write-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-green);\n}\n\n.property-discriminator {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-purple);\n}\n\n.property-detail {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-2);\n display: flex;\n align-items: center;\n\n min-width: 0;\n}\n\n.property-const {\n color: var(--scalar-color-1);\n}\n\n.deprecated {\n text-decoration: line-through;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"SchemaPropertyHeading.vue.js","names":[],"sources":["../../../../src/components/Content/Schema/SchemaPropertyHeading.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport {\n isArraySchema,\n isNumberSchema,\n isStringSchema,\n} from '@scalar/workspace-store/schemas/v3.1/strict/type-guards'\nimport { computed, toRef } from 'vue'\n\nimport { Badge } from '@/components/Badge'\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport { getSchemaType } from './helpers/get-schema-type'\nimport { getModelNameFromSchema } from './helpers/schema-name'\nimport RenderString from './RenderString.vue'\nimport SchemaPropertyDefault from './SchemaPropertyDefault.vue'\nimport SchemaPropertyDetail from './SchemaPropertyDetail.vue'\nimport SchemaPropertyExamples from './SchemaPropertyExamples.vue'\n\nconst props = withDefaults(\n defineProps<{\n value: SchemaObject | undefined\n enum?: boolean\n isDiscriminator?: boolean\n required?: boolean\n additional?: boolean\n withExamples?: boolean\n hideModelNames?: boolean\n /** When the schema was resolved from a $ref, pass the ref name so it displays as e.g. \"Data\" instead of \"object\". */\n modelName?: string | null\n /** Resolved propertyNames schema, used to surface key constraints like `format` for additional properties. */\n propertyNames?: SchemaObject\n eventBus?: WorkspaceEventBus | null\n }>(),\n {\n isDiscriminator: false,\n required: false,\n withExamples: true,\n hideModelNames: false,\n eventBus: null,\n },\n)\nconst { translate } = useLocalization()\n\n// Convert to reactive refs for composables\nconst valueRef = toRef(props, 'value')\n\nconst constValue = computed(() => {\n if (!valueRef.value) {\n return undefined\n }\n\n const schema = valueRef.value\n\n // Direct const value\n if (schema.const !== undefined) {\n return schema.const\n }\n\n // Single-item enum acts as const\n if (schema.enum?.length === 1) {\n return schema.enum[0]\n }\n\n // Check items for const values (for arrays)\n if (isArraySchema(schema) && schema.items) {\n const items = resolve.schema(schema.items)\n\n if (isDefined(items.const)) {\n return items.const\n }\n\n if (items.enum?.length === 1) {\n return items.enum[0]\n }\n }\n\n return undefined\n})\n\nconst validationProperties = computed(() => {\n if (!valueRef.value) {\n return []\n }\n\n const schema = valueRef.value\n const properties = []\n\n // Array validation properties\n if (isArraySchema(schema)) {\n if (schema.minItems || schema.maxItems) {\n properties.push({\n key: 'array-range',\n value: `${schema.minItems || ''}…${schema.maxItems || ''}`,\n })\n }\n\n // Unique items\n if (schema.uniqueItems) {\n properties.push({\n key: 'unique-items',\n value: `${translate('common.unique')}!`,\n })\n }\n }\n\n // String length properties\n if (isStringSchema(schema)) {\n if (schema.minLength) {\n properties.push({\n key: 'min-length',\n prefix: `${translate('common.minLength')}: `,\n value: schema.minLength,\n })\n }\n\n if (schema.maxLength) {\n properties.push({\n key: 'max-length',\n prefix: `${translate('common.maxLength')}: `,\n value: schema.maxLength,\n })\n }\n\n // Pattern\n if (schema.pattern) {\n properties.push({\n key: 'pattern',\n value: schema.pattern,\n code: true,\n truncate: true,\n })\n }\n }\n\n // Format\n if (isStringSchema(schema) || isNumberSchema(schema)) {\n if (schema.format) {\n properties.push({\n key: 'format',\n value: schema.format,\n truncate: true,\n })\n }\n }\n\n // Numeric validation properties\n if (isNumberSchema(schema)) {\n if (isDefined(schema.exclusiveMinimum)) {\n properties.push({\n key: 'exclusive-minimum',\n prefix: `${translate('common.greaterThan')}: `,\n value: schema.exclusiveMinimum,\n })\n }\n\n if (isDefined(schema.minimum)) {\n properties.push({\n key: 'minimum',\n prefix: `${translate('common.min')}: `,\n value: schema.minimum,\n })\n }\n\n if (isDefined(schema.exclusiveMaximum)) {\n properties.push({\n key: 'exclusive-maximum',\n prefix: `${translate('common.lessThan')}: `,\n value: schema.exclusiveMaximum,\n })\n }\n\n if (isDefined(schema.maximum)) {\n properties.push({\n key: 'maximum',\n prefix: `${translate('common.max')}: `,\n value: schema.maximum,\n })\n }\n\n if (isDefined(schema.multipleOf)) {\n properties.push({\n key: 'multiple-of',\n prefix: `${translate('common.multipleOf')}: `,\n value: schema.multipleOf,\n })\n }\n }\n\n return properties\n})\n\n/** Link data for navigating to the referenced model in the sidebar. */\nconst modelLink = computed(() => {\n if (!props.value) {\n return null\n }\n\n if (props.hideModelNames) {\n return null\n }\n\n if (props.modelName) {\n return { schemaKey: props.modelName, label: props.modelName }\n }\n\n const modelName = getModelNameFromSchema(props.value)\n if (modelName) {\n return { schemaKey: modelName.schemaKey, label: modelName.label }\n }\n\n if (isArraySchema(props.value) && props.value.items) {\n const itemName = getModelNameFromSchema(props.value.items)\n return itemName\n ? { schemaKey: itemName.schemaKey, label: `${itemName.label}[]` }\n : null\n }\n\n return null\n})\n\n/** Check if we should show the type information */\nconst shouldShowType = computed(() => {\n if (!props.value || !('type' in props.value)) {\n return false\n }\n\n // Always show type for arrays, even when items have const values\n if (props.value.type === 'array') {\n return true\n }\n\n // For non-arrays, only show if no const value at the schema level\n return !constValue.value\n})\n\n/** Get the display type */\nconst displayType = computed(() => {\n if (!props.value) {\n return ''\n }\n return getSchemaType(props.value)\n})\n\n/**\n * Type and format of the property keys, derived from the propertyNames schema.\n *\n * For a map keyed by UUIDs this renders e.g. \"string · uuid\" so the key\n * constraints are not lost. Returns undefined when there is nothing to show.\n */\nconst propertyNamesDetail = computed(() => {\n const schema = props.propertyNames\n if (!schema) {\n return undefined\n }\n\n const parts = [getSchemaType(schema)]\n if ('format' in schema && typeof schema.format === 'string') {\n parts.push(schema.format)\n }\n\n const detail = parts.filter(Boolean).join(' · ')\n return detail.length > 0 ? detail : undefined\n})\n\nconst exampleValue = computed(() => {\n // Treat only `undefined` as \"not set\" — `null` is a valid example value on a nullable schema.\n if (\n props.value &&\n 'example' in props.value &&\n props.value.example !== undefined\n ) {\n return props.value.example\n }\n\n if (props.value && isArraySchema(props.value)) {\n const itemsSchema = resolve.schema(props.value.items)\n if (\n itemsSchema &&\n 'example' in itemsSchema &&\n itemsSchema.example !== undefined\n ) {\n return itemsSchema.example\n }\n }\n\n return undefined\n})\n</script>\n<template>\n <div class=\"property-heading\">\n <div\n v-if=\"$slots.name\"\n class=\"property-name\"\n :class=\"{ deprecated: props.value?.deprecated }\">\n <slot name=\"name\" />\n </div>\n <div\n v-if=\"props.isDiscriminator\"\n class=\"property-discriminator\">\n {{ translate('common.discriminator') }}\n </div>\n <template v-if=\"props.value\">\n <!-- Type information -->\n <SchemaPropertyDetail\n v-if=\"shouldShowType\"\n truncate>\n <ScreenReader>{{ translate('common.type') }}:</ScreenReader>\n {{ displayType }}\n <template v-if=\"modelLink\">\n ·\n <LinkButton\n v-if=\"props.eventBus && modelLink.schemaKey\"\n @click=\"\n props.eventBus.emit('scroll-to:model-by-name', {\n name: modelLink.schemaKey,\n })\n \">\n {{ modelLink.label }}\n </LinkButton>\n <template v-else>{{ modelLink.label }}</template>\n </template>\n </SchemaPropertyDetail>\n\n <!-- Key constraints from propertyNames (e.g. \"keys: string · uuid\") -->\n <SchemaPropertyDetail\n v-if=\"propertyNamesDetail\"\n truncate>\n <template #prefix>{{ translate('common.keys') }}:</template>\n {{ propertyNamesDetail }}\n </SchemaPropertyDetail>\n\n <!-- Dynamic validation properties from composable -->\n <SchemaPropertyDetail\n v-for=\"property in validationProperties\"\n :key=\"property.key\"\n :code=\"property.code\"\n :truncate=\"property.truncate\">\n <ScreenReader v-if=\"property.key === 'format'\">\n {{ translate('common.format') }}:\n </ScreenReader>\n <ScreenReader v-else-if=\"property.key === 'pattern'\">\n {{ translate('common.pattern') }}:\n </ScreenReader>\n <template\n v-if=\"property.prefix\"\n #prefix>\n {{ property.prefix }}\n </template>\n {{ property.value }}\n </SchemaPropertyDetail>\n\n <!-- Enum indicator -->\n <SchemaPropertyDetail v-if=\"props.enum\">\n {{ translate('common.enum') }}\n </SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.additional\"\n class=\"property-additional\">\n <template v-if=\"props.value?.['x-additionalPropertiesName']\">\n {{ props.value['x-additionalPropertiesName'] }}\n </template>\n <template v-else>{{ translate('common.additionalProperties') }}</template>\n </div>\n <div\n v-if=\"props.value?.deprecated\"\n class=\"property-deprecated\">\n <Badge>{{ translate('common.deprecated') }}</Badge>\n </div>\n <!-- Don't use `isDefined` here, we want to show `const` when the value is `null` -->\n <div\n v-if=\"constValue !== undefined\"\n class=\"property-const\">\n <SchemaPropertyDetail truncate>\n <template #prefix>{{ translate('common.const') }}: </template>\n <RenderString :value=\"constValue\" />\n </SchemaPropertyDetail>\n </div>\n <template v-else>\n <!-- Shows only when a composition is used (so props.value?.type is undefined) -->\n <SchemaPropertyDetail v-if=\"(props.value as any)?.nullable === true\">\n {{ translate('common.nullable') }}\n </SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.value?.writeOnly\"\n class=\"property-write-only\">\n {{ translate('common.writeOnly') }}\n </div>\n <div\n v-else-if=\"props.value?.readOnly\"\n class=\"property-read-only\">\n {{ translate('common.readOnly') }}\n </div>\n <div\n v-if=\"props.required\"\n class=\"property-required\">\n {{ translate('common.required') }}\n </div>\n <SchemaPropertyDefault :value=\"props.value?.default\" />\n <SchemaPropertyExamples\n v-if=\"props.withExamples\"\n :example=\"exampleValue\"\n :examples=\"props.value?.examples\" />\n </div>\n</template>\n<style scoped>\n.property-heading {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n row-gap: 9px;\n white-space: nowrap;\n}\n\n.property-heading:has(+ .children),\n.property-heading:has(+ .property-rule) {\n margin-bottom: 9px;\n}\n\n.property-heading > * {\n margin-right: 9px;\n}\n\n.property-heading:last-child {\n margin-right: 0;\n}\n\n.property-heading > .property-detail:not(:last-of-type) {\n margin-right: 0;\n}\n\n.property-name {\n max-width: 100%;\n font-family: var(--scalar-font-code);\n font-weight: var(--scalar-bold);\n font-size: var(--scalar-font-size-4);\n white-space: normal;\n overflow-wrap: break-word;\n}\n\n.property-additional {\n font-family: var(--scalar-font-code);\n}\n\n.property-required,\n.property-optional {\n color: var(--scalar-color-2);\n}\n\n.property-required {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-orange);\n}\n\n.property-read-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-blue);\n}\n\n.property-write-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-green);\n}\n\n.property-discriminator {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-purple);\n}\n\n.property-detail {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-2);\n display: flex;\n align-items: center;\n\n min-width: 0;\n}\n\n.property-const {\n color: var(--scalar-color-1);\n}\n\n.deprecated {\n text-decoration: line-through;\n}\n</style>\n"],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { useLocalization } from "../../../features/localization/use-localization.js";
1
2
  import Badge_default from "../../Badge/Badge.vue.js";
2
3
  import ScreenReader_default from "../../ScreenReader.vue.js";
3
4
  import { getSchemaType } from "./helpers/get-schema-type.js";
@@ -64,10 +65,12 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
64
65
  default: false
65
66
  },
66
67
  modelName: {},
68
+ propertyNames: {},
67
69
  eventBus: { default: null }
68
70
  },
69
71
  setup(__props) {
70
72
  const props = __props;
73
+ const { translate } = useLocalization();
71
74
  const valueRef = toRef(props, "value");
72
75
  const constValue = computed(() => {
73
76
  if (!valueRef.value) return;
@@ -91,18 +94,18 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
91
94
  });
92
95
  if (schema.uniqueItems) properties.push({
93
96
  key: "unique-items",
94
- value: "unique!"
97
+ value: `${translate("common.unique")}!`
95
98
  });
96
99
  }
97
100
  if (isStringSchema(schema)) {
98
101
  if (schema.minLength) properties.push({
99
102
  key: "min-length",
100
- prefix: "min length: ",
103
+ prefix: `${translate("common.minLength")}: `,
101
104
  value: schema.minLength
102
105
  });
103
106
  if (schema.maxLength) properties.push({
104
107
  key: "max-length",
105
- prefix: "max length: ",
108
+ prefix: `${translate("common.maxLength")}: `,
106
109
  value: schema.maxLength
107
110
  });
108
111
  if (schema.pattern) properties.push({
@@ -122,27 +125,27 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
122
125
  if (isNumberSchema(schema)) {
123
126
  if (isDefined(schema.exclusiveMinimum)) properties.push({
124
127
  key: "exclusive-minimum",
125
- prefix: "greater than: ",
128
+ prefix: `${translate("common.greaterThan")}: `,
126
129
  value: schema.exclusiveMinimum
127
130
  });
128
131
  if (isDefined(schema.minimum)) properties.push({
129
132
  key: "minimum",
130
- prefix: "min: ",
133
+ prefix: `${translate("common.min")}: `,
131
134
  value: schema.minimum
132
135
  });
133
136
  if (isDefined(schema.exclusiveMaximum)) properties.push({
134
137
  key: "exclusive-maximum",
135
- prefix: "less than: ",
138
+ prefix: `${translate("common.lessThan")}: `,
136
139
  value: schema.exclusiveMaximum
137
140
  });
138
141
  if (isDefined(schema.maximum)) properties.push({
139
142
  key: "maximum",
140
- prefix: "max: ",
143
+ prefix: `${translate("common.max")}: `,
141
144
  value: schema.maximum
142
145
  });
143
146
  if (isDefined(schema.multipleOf)) properties.push({
144
147
  key: "multiple-of",
145
- prefix: "multiple of: ",
148
+ prefix: `${translate("common.multipleOf")}: `,
146
149
  value: schema.multipleOf
147
150
  });
148
151
  }
@@ -181,6 +184,20 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
181
184
  if (!props.value) return "";
182
185
  return getSchemaType(props.value);
183
186
  });
187
+ /**
188
+ * Type and format of the property keys, derived from the propertyNames schema.
189
+ *
190
+ * For a map keyed by UUIDs this renders e.g. "string · uuid" so the key
191
+ * constraints are not lost. Returns undefined when there is nothing to show.
192
+ */
193
+ const propertyNamesDetail = computed(() => {
194
+ const schema = props.propertyNames;
195
+ if (!schema) return;
196
+ const parts = [getSchemaType(schema)];
197
+ if ("format" in schema && typeof schema.format === "string") parts.push(schema.format);
198
+ const detail = parts.filter(Boolean).join(" · ");
199
+ return detail.length > 0 ? detail : void 0;
200
+ });
184
201
  const exampleValue = computed(() => {
185
202
  if (props.value && "example" in props.value && props.value.example !== void 0) return props.value.example;
186
203
  if (props.value && isArraySchema(props.value)) {
@@ -194,7 +211,7 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
194
211
  key: 0,
195
212
  class: normalizeClass(["property-name", { deprecated: props.value?.deprecated }])
196
213
  }, [renderSlot(_ctx.$slots, "name", {}, void 0, true)], 2)) : createCommentVNode("", true),
197
- props.isDiscriminator ? (openBlock(), createElementBlock("div", _hoisted_2, " Discriminator ")) : createCommentVNode("", true),
214
+ props.isDiscriminator ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(unref(translate)("common.discriminator")), 1)) : createCommentVNode("", true),
198
215
  props.value ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
199
216
  shouldShowType.value ? (openBlock(), createBlock(SchemaPropertyDetail_default, {
200
217
  key: 0,
@@ -202,11 +219,11 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
202
219
  }, {
203
220
  default: withCtx(() => [
204
221
  createVNode(ScreenReader_default, null, {
205
- default: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("Type: ", -1)])]),
222
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.type")) + ":", 1)]),
206
223
  _: 1
207
224
  }),
208
- createTextVNode(toDisplayString(displayType.value), 1),
209
- modelLink.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[2] || (_cache[2] = createTextVNode(" · ", -1)), props.eventBus && modelLink.value.schemaKey ? (openBlock(), createBlock(LinkButton_default, {
225
+ createTextVNode(" " + toDisplayString(displayType.value) + " ", 1),
226
+ modelLink.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[1] || (_cache[1] = createTextVNode(" · ", -1)), props.eventBus && modelLink.value.schemaKey ? (openBlock(), createBlock(LinkButton_default, {
210
227
  key: 0,
211
228
  onClick: _cache[0] || (_cache[0] = ($event) => props.eventBus.emit("scroll-to:model-by-name", { name: modelLink.value.schemaKey }))
212
229
  }, {
@@ -216,6 +233,14 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
216
233
  ]),
217
234
  _: 1
218
235
  })) : createCommentVNode("", true),
236
+ propertyNamesDetail.value ? (openBlock(), createBlock(SchemaPropertyDetail_default, {
237
+ key: 1,
238
+ truncate: ""
239
+ }, {
240
+ prefix: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.keys")) + ":", 1)]),
241
+ default: withCtx(() => [createTextVNode(" " + toDisplayString(propertyNamesDetail.value), 1)]),
242
+ _: 1
243
+ })) : createCommentVNode("", true),
219
244
  (openBlock(true), createElementBlock(Fragment, null, renderList(validationProperties.value, (property) => {
220
245
  return openBlock(), createBlock(SchemaPropertyDetail_default, {
221
246
  key: property.key,
@@ -223,10 +248,10 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
223
248
  truncate: property.truncate
224
249
  }, createSlots({
225
250
  default: withCtx(() => [property.key === "format" ? (openBlock(), createBlock(ScreenReader_default, { key: 0 }, {
226
- default: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode("Format:", -1)])]),
251
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.format")) + ": ", 1)]),
227
252
  _: 1
228
253
  })) : property.key === "pattern" ? (openBlock(), createBlock(ScreenReader_default, { key: 1 }, {
229
- default: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode(" Pattern: ", -1)])]),
254
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.pattern")) + ": ", 1)]),
230
255
  _: 1
231
256
  })) : createCommentVNode("", true), createTextVNode(" " + toDisplayString(property.value), 1)]),
232
257
  _: 2
@@ -236,26 +261,26 @@ var SchemaPropertyHeading_vue_vue_type_script_setup_true_lang_default = /* @__PU
236
261
  key: "0"
237
262
  } : void 0]), 1032, ["code", "truncate"]);
238
263
  }), 128)),
239
- props.enum ? (openBlock(), createBlock(SchemaPropertyDetail_default, { key: 1 }, {
240
- default: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode("enum", -1)])]),
264
+ props.enum ? (openBlock(), createBlock(SchemaPropertyDetail_default, { key: 2 }, {
265
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.enum")), 1)]),
241
266
  _: 1
242
267
  })) : createCommentVNode("", true)
243
268
  ], 64)) : createCommentVNode("", true),
244
- props.additional ? (openBlock(), createElementBlock("div", _hoisted_3, [props.value?.["x-additionalPropertiesName"] ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(props.value["x-additionalPropertiesName"]), 1)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode("additional properties")], 64))])) : createCommentVNode("", true),
269
+ props.additional ? (openBlock(), createElementBlock("div", _hoisted_3, [props.value?.["x-additionalPropertiesName"] ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createTextVNode(toDisplayString(props.value["x-additionalPropertiesName"]), 1)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(unref(translate)("common.additionalProperties")), 1)], 64))])) : createCommentVNode("", true),
245
270
  props.value?.deprecated ? (openBlock(), createElementBlock("div", _hoisted_4, [createVNode(unref(Badge_default), null, {
246
- default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("deprecated", -1)])]),
271
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.deprecated")), 1)]),
247
272
  _: 1
248
273
  })])) : createCommentVNode("", true),
249
274
  constValue.value !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_5, [createVNode(SchemaPropertyDetail_default, { truncate: "" }, {
250
- prefix: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode("const: ", -1)])]),
275
+ prefix: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.const")) + ": ", 1)]),
251
276
  default: withCtx(() => [createVNode(RenderString_default, { value: constValue.value }, null, 8, ["value"])]),
252
277
  _: 1
253
278
  })])) : (openBlock(), createElementBlock(Fragment, { key: 6 }, [props.value?.nullable === true ? (openBlock(), createBlock(SchemaPropertyDetail_default, { key: 0 }, {
254
- default: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode(" nullable ", -1)])]),
279
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(translate)("common.nullable")), 1)]),
255
280
  _: 1
256
281
  })) : createCommentVNode("", true)], 64)),
257
- props.value?.writeOnly ? (openBlock(), createElementBlock("div", _hoisted_6, " write-only ")) : props.value?.readOnly ? (openBlock(), createElementBlock("div", _hoisted_7, " read-only ")) : createCommentVNode("", true),
258
- props.required ? (openBlock(), createElementBlock("div", _hoisted_8, " required ")) : createCommentVNode("", true),
282
+ props.value?.writeOnly ? (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(unref(translate)("common.writeOnly")), 1)) : props.value?.readOnly ? (openBlock(), createElementBlock("div", _hoisted_7, toDisplayString(unref(translate)("common.readOnly")), 1)) : createCommentVNode("", true),
283
+ props.required ? (openBlock(), createElementBlock("div", _hoisted_8, toDisplayString(unref(translate)("common.required")), 1)) : createCommentVNode("", true),
259
284
  createVNode(SchemaPropertyDefault_default, { value: props.value?.default }, null, 8, ["value"]),
260
285
  props.withExamples ? (openBlock(), createBlock(SchemaPropertyExamples_default, {
261
286
  key: 10,
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaPropertyHeading.vue.script.js","names":["$slots"],"sources":["../../../../src/components/Content/Schema/SchemaPropertyHeading.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport {\n isArraySchema,\n isNumberSchema,\n isStringSchema,\n} from '@scalar/workspace-store/schemas/v3.1/strict/type-guards'\nimport { computed, toRef } from 'vue'\n\nimport { Badge } from '@/components/Badge'\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport ScreenReader from '@/components/ScreenReader.vue'\n\nimport { getSchemaType } from './helpers/get-schema-type'\nimport { getModelNameFromSchema } from './helpers/schema-name'\nimport RenderString from './RenderString.vue'\nimport SchemaPropertyDefault from './SchemaPropertyDefault.vue'\nimport SchemaPropertyDetail from './SchemaPropertyDetail.vue'\nimport SchemaPropertyExamples from './SchemaPropertyExamples.vue'\n\nconst props = withDefaults(\n defineProps<{\n value: SchemaObject | undefined\n enum?: boolean\n isDiscriminator?: boolean\n required?: boolean\n additional?: boolean\n withExamples?: boolean\n hideModelNames?: boolean\n /** When the schema was resolved from a $ref, pass the ref name so it displays as e.g. \"Data\" instead of \"object\". */\n modelName?: string | null\n eventBus?: WorkspaceEventBus | null\n }>(),\n {\n isDiscriminator: false,\n required: false,\n withExamples: true,\n hideModelNames: false,\n eventBus: null,\n },\n)\n\n// Convert to reactive refs for composables\nconst valueRef = toRef(props, 'value')\n\nconst constValue = computed(() => {\n if (!valueRef.value) {\n return undefined\n }\n\n const schema = valueRef.value\n\n // Direct const value\n if (schema.const !== undefined) {\n return schema.const\n }\n\n // Single-item enum acts as const\n if (schema.enum?.length === 1) {\n return schema.enum[0]\n }\n\n // Check items for const values (for arrays)\n if (isArraySchema(schema) && schema.items) {\n const items = resolve.schema(schema.items)\n\n if (isDefined(items.const)) {\n return items.const\n }\n\n if (items.enum?.length === 1) {\n return items.enum[0]\n }\n }\n\n return undefined\n})\n\nconst validationProperties = computed(() => {\n if (!valueRef.value) {\n return []\n }\n\n const schema = valueRef.value\n const properties = []\n\n // Array validation properties\n if (isArraySchema(schema)) {\n if (schema.minItems || schema.maxItems) {\n properties.push({\n key: 'array-range',\n value: `${schema.minItems || ''}…${schema.maxItems || ''}`,\n })\n }\n\n // Unique items\n if (schema.uniqueItems) {\n properties.push({\n key: 'unique-items',\n value: 'unique!',\n })\n }\n }\n\n // String length properties\n if (isStringSchema(schema)) {\n if (schema.minLength) {\n properties.push({\n key: 'min-length',\n prefix: 'min length: ',\n value: schema.minLength,\n })\n }\n\n if (schema.maxLength) {\n properties.push({\n key: 'max-length',\n prefix: 'max length: ',\n value: schema.maxLength,\n })\n }\n\n // Pattern\n if (schema.pattern) {\n properties.push({\n key: 'pattern',\n value: schema.pattern,\n code: true,\n truncate: true,\n })\n }\n }\n\n // Format\n if (isStringSchema(schema) || isNumberSchema(schema)) {\n if (schema.format) {\n properties.push({\n key: 'format',\n value: schema.format,\n truncate: true,\n })\n }\n }\n\n // Numeric validation properties\n if (isNumberSchema(schema)) {\n if (isDefined(schema.exclusiveMinimum)) {\n properties.push({\n key: 'exclusive-minimum',\n prefix: 'greater than: ',\n value: schema.exclusiveMinimum,\n })\n }\n\n if (isDefined(schema.minimum)) {\n properties.push({\n key: 'minimum',\n prefix: 'min: ',\n value: schema.minimum,\n })\n }\n\n if (isDefined(schema.exclusiveMaximum)) {\n properties.push({\n key: 'exclusive-maximum',\n prefix: 'less than: ',\n value: schema.exclusiveMaximum,\n })\n }\n\n if (isDefined(schema.maximum)) {\n properties.push({\n key: 'maximum',\n prefix: 'max: ',\n value: schema.maximum,\n })\n }\n\n if (isDefined(schema.multipleOf)) {\n properties.push({\n key: 'multiple-of',\n prefix: 'multiple of: ',\n value: schema.multipleOf,\n })\n }\n }\n\n return properties\n})\n\n/** Link data for navigating to the referenced model in the sidebar. */\nconst modelLink = computed(() => {\n if (!props.value) {\n return null\n }\n\n if (props.hideModelNames) {\n return null\n }\n\n if (props.modelName) {\n return { schemaKey: props.modelName, label: props.modelName }\n }\n\n const modelName = getModelNameFromSchema(props.value)\n if (modelName) {\n return { schemaKey: modelName.schemaKey, label: modelName.label }\n }\n\n if (isArraySchema(props.value) && props.value.items) {\n const itemName = getModelNameFromSchema(props.value.items)\n return itemName\n ? { schemaKey: itemName.schemaKey, label: `${itemName.label}[]` }\n : null\n }\n\n return null\n})\n\n/** Check if we should show the type information */\nconst shouldShowType = computed(() => {\n if (!props.value || !('type' in props.value)) {\n return false\n }\n\n // Always show type for arrays, even when items have const values\n if (props.value.type === 'array') {\n return true\n }\n\n // For non-arrays, only show if no const value at the schema level\n return !constValue.value\n})\n\n/** Get the display type */\nconst displayType = computed(() => {\n if (!props.value) {\n return ''\n }\n return getSchemaType(props.value)\n})\n\nconst exampleValue = computed(() => {\n // Treat only `undefined` as \"not set\" — `null` is a valid example value on a nullable schema.\n if (\n props.value &&\n 'example' in props.value &&\n props.value.example !== undefined\n ) {\n return props.value.example\n }\n\n if (props.value && isArraySchema(props.value)) {\n const itemsSchema = resolve.schema(props.value.items)\n if (\n itemsSchema &&\n 'example' in itemsSchema &&\n itemsSchema.example !== undefined\n ) {\n return itemsSchema.example\n }\n }\n\n return undefined\n})\n</script>\n<template>\n <div class=\"property-heading\">\n <div\n v-if=\"$slots.name\"\n class=\"property-name\"\n :class=\"{ deprecated: props.value?.deprecated }\">\n <slot name=\"name\" />\n </div>\n <div\n v-if=\"props.isDiscriminator\"\n class=\"property-discriminator\">\n Discriminator\n </div>\n <template v-if=\"props.value\">\n <!-- Type information -->\n <SchemaPropertyDetail\n v-if=\"shouldShowType\"\n truncate>\n <ScreenReader>Type: </ScreenReader>{{ displayType\n }}<template v-if=\"modelLink\">\n ·\n <LinkButton\n v-if=\"props.eventBus && modelLink.schemaKey\"\n @click=\"\n props.eventBus.emit('scroll-to:model-by-name', {\n name: modelLink.schemaKey,\n })\n \">\n {{ modelLink.label }}\n </LinkButton>\n <template v-else>{{ modelLink.label }}</template>\n </template>\n </SchemaPropertyDetail>\n\n <!-- Dynamic validation properties from composable -->\n <SchemaPropertyDetail\n v-for=\"property in validationProperties\"\n :key=\"property.key\"\n :code=\"property.code\"\n :truncate=\"property.truncate\">\n <ScreenReader v-if=\"property.key === 'format'\">Format:</ScreenReader>\n <ScreenReader v-else-if=\"property.key === 'pattern'\">\n Pattern:\n </ScreenReader>\n <template\n v-if=\"property.prefix\"\n #prefix>\n {{ property.prefix }}\n </template>\n {{ property.value }}\n </SchemaPropertyDetail>\n\n <!-- Enum indicator -->\n <SchemaPropertyDetail v-if=\"props.enum\">enum</SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.additional\"\n class=\"property-additional\">\n <template v-if=\"props.value?.['x-additionalPropertiesName']\">\n {{ props.value['x-additionalPropertiesName'] }}\n </template>\n <template v-else>additional properties</template>\n </div>\n <div\n v-if=\"props.value?.deprecated\"\n class=\"property-deprecated\">\n <Badge>deprecated</Badge>\n </div>\n <!-- Don't use `isDefined` here, we want to show `const` when the value is `null` -->\n <div\n v-if=\"constValue !== undefined\"\n class=\"property-const\">\n <SchemaPropertyDetail truncate>\n <template #prefix>const: </template>\n <RenderString :value=\"constValue\" />\n </SchemaPropertyDetail>\n </div>\n <template v-else>\n <!-- Shows only when a composition is used (so props.value?.type is undefined) -->\n <SchemaPropertyDetail v-if=\"(props.value as any)?.nullable === true\">\n nullable\n </SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.value?.writeOnly\"\n class=\"property-write-only\">\n write-only\n </div>\n <div\n v-else-if=\"props.value?.readOnly\"\n class=\"property-read-only\">\n read-only\n </div>\n <div\n v-if=\"props.required\"\n class=\"property-required\">\n required\n </div>\n <SchemaPropertyDefault :value=\"props.value?.default\" />\n <SchemaPropertyExamples\n v-if=\"props.withExamples\"\n :example=\"exampleValue\"\n :examples=\"props.value?.examples\" />\n </div>\n</template>\n<style scoped>\n.property-heading {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n row-gap: 9px;\n white-space: nowrap;\n}\n\n.property-heading:has(+ .children),\n.property-heading:has(+ .property-rule) {\n margin-bottom: 9px;\n}\n\n.property-heading > * {\n margin-right: 9px;\n}\n\n.property-heading:last-child {\n margin-right: 0;\n}\n\n.property-heading > .property-detail:not(:last-of-type) {\n margin-right: 0;\n}\n\n.property-name {\n max-width: 100%;\n font-family: var(--scalar-font-code);\n font-weight: var(--scalar-bold);\n font-size: var(--scalar-font-size-4);\n white-space: normal;\n overflow-wrap: break-word;\n}\n\n.property-additional {\n font-family: var(--scalar-font-code);\n}\n\n.property-required,\n.property-optional {\n color: var(--scalar-color-2);\n}\n\n.property-required {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-orange);\n}\n\n.property-read-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-blue);\n}\n\n.property-write-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-green);\n}\n\n.property-discriminator {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-purple);\n}\n\n.property-detail {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-2);\n display: flex;\n align-items: center;\n\n min-width: 0;\n}\n\n.property-const {\n color: var(--scalar-color-1);\n}\n\n.deprecated {\n text-decoration: line-through;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaPropertyHeading.vue.script.js","names":["$slots"],"sources":["../../../../src/components/Content/Schema/SchemaPropertyHeading.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { isDefined } from '@scalar/helpers/array/is-defined'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { resolve } from '@scalar/workspace-store/resolve'\nimport type { SchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport {\n isArraySchema,\n isNumberSchema,\n isStringSchema,\n} from '@scalar/workspace-store/schemas/v3.1/strict/type-guards'\nimport { computed, toRef } from 'vue'\n\nimport { Badge } from '@/components/Badge'\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport { getSchemaType } from './helpers/get-schema-type'\nimport { getModelNameFromSchema } from './helpers/schema-name'\nimport RenderString from './RenderString.vue'\nimport SchemaPropertyDefault from './SchemaPropertyDefault.vue'\nimport SchemaPropertyDetail from './SchemaPropertyDetail.vue'\nimport SchemaPropertyExamples from './SchemaPropertyExamples.vue'\n\nconst props = withDefaults(\n defineProps<{\n value: SchemaObject | undefined\n enum?: boolean\n isDiscriminator?: boolean\n required?: boolean\n additional?: boolean\n withExamples?: boolean\n hideModelNames?: boolean\n /** When the schema was resolved from a $ref, pass the ref name so it displays as e.g. \"Data\" instead of \"object\". */\n modelName?: string | null\n /** Resolved propertyNames schema, used to surface key constraints like `format` for additional properties. */\n propertyNames?: SchemaObject\n eventBus?: WorkspaceEventBus | null\n }>(),\n {\n isDiscriminator: false,\n required: false,\n withExamples: true,\n hideModelNames: false,\n eventBus: null,\n },\n)\nconst { translate } = useLocalization()\n\n// Convert to reactive refs for composables\nconst valueRef = toRef(props, 'value')\n\nconst constValue = computed(() => {\n if (!valueRef.value) {\n return undefined\n }\n\n const schema = valueRef.value\n\n // Direct const value\n if (schema.const !== undefined) {\n return schema.const\n }\n\n // Single-item enum acts as const\n if (schema.enum?.length === 1) {\n return schema.enum[0]\n }\n\n // Check items for const values (for arrays)\n if (isArraySchema(schema) && schema.items) {\n const items = resolve.schema(schema.items)\n\n if (isDefined(items.const)) {\n return items.const\n }\n\n if (items.enum?.length === 1) {\n return items.enum[0]\n }\n }\n\n return undefined\n})\n\nconst validationProperties = computed(() => {\n if (!valueRef.value) {\n return []\n }\n\n const schema = valueRef.value\n const properties = []\n\n // Array validation properties\n if (isArraySchema(schema)) {\n if (schema.minItems || schema.maxItems) {\n properties.push({\n key: 'array-range',\n value: `${schema.minItems || ''}…${schema.maxItems || ''}`,\n })\n }\n\n // Unique items\n if (schema.uniqueItems) {\n properties.push({\n key: 'unique-items',\n value: `${translate('common.unique')}!`,\n })\n }\n }\n\n // String length properties\n if (isStringSchema(schema)) {\n if (schema.minLength) {\n properties.push({\n key: 'min-length',\n prefix: `${translate('common.minLength')}: `,\n value: schema.minLength,\n })\n }\n\n if (schema.maxLength) {\n properties.push({\n key: 'max-length',\n prefix: `${translate('common.maxLength')}: `,\n value: schema.maxLength,\n })\n }\n\n // Pattern\n if (schema.pattern) {\n properties.push({\n key: 'pattern',\n value: schema.pattern,\n code: true,\n truncate: true,\n })\n }\n }\n\n // Format\n if (isStringSchema(schema) || isNumberSchema(schema)) {\n if (schema.format) {\n properties.push({\n key: 'format',\n value: schema.format,\n truncate: true,\n })\n }\n }\n\n // Numeric validation properties\n if (isNumberSchema(schema)) {\n if (isDefined(schema.exclusiveMinimum)) {\n properties.push({\n key: 'exclusive-minimum',\n prefix: `${translate('common.greaterThan')}: `,\n value: schema.exclusiveMinimum,\n })\n }\n\n if (isDefined(schema.minimum)) {\n properties.push({\n key: 'minimum',\n prefix: `${translate('common.min')}: `,\n value: schema.minimum,\n })\n }\n\n if (isDefined(schema.exclusiveMaximum)) {\n properties.push({\n key: 'exclusive-maximum',\n prefix: `${translate('common.lessThan')}: `,\n value: schema.exclusiveMaximum,\n })\n }\n\n if (isDefined(schema.maximum)) {\n properties.push({\n key: 'maximum',\n prefix: `${translate('common.max')}: `,\n value: schema.maximum,\n })\n }\n\n if (isDefined(schema.multipleOf)) {\n properties.push({\n key: 'multiple-of',\n prefix: `${translate('common.multipleOf')}: `,\n value: schema.multipleOf,\n })\n }\n }\n\n return properties\n})\n\n/** Link data for navigating to the referenced model in the sidebar. */\nconst modelLink = computed(() => {\n if (!props.value) {\n return null\n }\n\n if (props.hideModelNames) {\n return null\n }\n\n if (props.modelName) {\n return { schemaKey: props.modelName, label: props.modelName }\n }\n\n const modelName = getModelNameFromSchema(props.value)\n if (modelName) {\n return { schemaKey: modelName.schemaKey, label: modelName.label }\n }\n\n if (isArraySchema(props.value) && props.value.items) {\n const itemName = getModelNameFromSchema(props.value.items)\n return itemName\n ? { schemaKey: itemName.schemaKey, label: `${itemName.label}[]` }\n : null\n }\n\n return null\n})\n\n/** Check if we should show the type information */\nconst shouldShowType = computed(() => {\n if (!props.value || !('type' in props.value)) {\n return false\n }\n\n // Always show type for arrays, even when items have const values\n if (props.value.type === 'array') {\n return true\n }\n\n // For non-arrays, only show if no const value at the schema level\n return !constValue.value\n})\n\n/** Get the display type */\nconst displayType = computed(() => {\n if (!props.value) {\n return ''\n }\n return getSchemaType(props.value)\n})\n\n/**\n * Type and format of the property keys, derived from the propertyNames schema.\n *\n * For a map keyed by UUIDs this renders e.g. \"string · uuid\" so the key\n * constraints are not lost. Returns undefined when there is nothing to show.\n */\nconst propertyNamesDetail = computed(() => {\n const schema = props.propertyNames\n if (!schema) {\n return undefined\n }\n\n const parts = [getSchemaType(schema)]\n if ('format' in schema && typeof schema.format === 'string') {\n parts.push(schema.format)\n }\n\n const detail = parts.filter(Boolean).join(' · ')\n return detail.length > 0 ? detail : undefined\n})\n\nconst exampleValue = computed(() => {\n // Treat only `undefined` as \"not set\" — `null` is a valid example value on a nullable schema.\n if (\n props.value &&\n 'example' in props.value &&\n props.value.example !== undefined\n ) {\n return props.value.example\n }\n\n if (props.value && isArraySchema(props.value)) {\n const itemsSchema = resolve.schema(props.value.items)\n if (\n itemsSchema &&\n 'example' in itemsSchema &&\n itemsSchema.example !== undefined\n ) {\n return itemsSchema.example\n }\n }\n\n return undefined\n})\n</script>\n<template>\n <div class=\"property-heading\">\n <div\n v-if=\"$slots.name\"\n class=\"property-name\"\n :class=\"{ deprecated: props.value?.deprecated }\">\n <slot name=\"name\" />\n </div>\n <div\n v-if=\"props.isDiscriminator\"\n class=\"property-discriminator\">\n {{ translate('common.discriminator') }}\n </div>\n <template v-if=\"props.value\">\n <!-- Type information -->\n <SchemaPropertyDetail\n v-if=\"shouldShowType\"\n truncate>\n <ScreenReader>{{ translate('common.type') }}:</ScreenReader>\n {{ displayType }}\n <template v-if=\"modelLink\">\n ·\n <LinkButton\n v-if=\"props.eventBus && modelLink.schemaKey\"\n @click=\"\n props.eventBus.emit('scroll-to:model-by-name', {\n name: modelLink.schemaKey,\n })\n \">\n {{ modelLink.label }}\n </LinkButton>\n <template v-else>{{ modelLink.label }}</template>\n </template>\n </SchemaPropertyDetail>\n\n <!-- Key constraints from propertyNames (e.g. \"keys: string · uuid\") -->\n <SchemaPropertyDetail\n v-if=\"propertyNamesDetail\"\n truncate>\n <template #prefix>{{ translate('common.keys') }}:</template>\n {{ propertyNamesDetail }}\n </SchemaPropertyDetail>\n\n <!-- Dynamic validation properties from composable -->\n <SchemaPropertyDetail\n v-for=\"property in validationProperties\"\n :key=\"property.key\"\n :code=\"property.code\"\n :truncate=\"property.truncate\">\n <ScreenReader v-if=\"property.key === 'format'\">\n {{ translate('common.format') }}:\n </ScreenReader>\n <ScreenReader v-else-if=\"property.key === 'pattern'\">\n {{ translate('common.pattern') }}:\n </ScreenReader>\n <template\n v-if=\"property.prefix\"\n #prefix>\n {{ property.prefix }}\n </template>\n {{ property.value }}\n </SchemaPropertyDetail>\n\n <!-- Enum indicator -->\n <SchemaPropertyDetail v-if=\"props.enum\">\n {{ translate('common.enum') }}\n </SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.additional\"\n class=\"property-additional\">\n <template v-if=\"props.value?.['x-additionalPropertiesName']\">\n {{ props.value['x-additionalPropertiesName'] }}\n </template>\n <template v-else>{{ translate('common.additionalProperties') }}</template>\n </div>\n <div\n v-if=\"props.value?.deprecated\"\n class=\"property-deprecated\">\n <Badge>{{ translate('common.deprecated') }}</Badge>\n </div>\n <!-- Don't use `isDefined` here, we want to show `const` when the value is `null` -->\n <div\n v-if=\"constValue !== undefined\"\n class=\"property-const\">\n <SchemaPropertyDetail truncate>\n <template #prefix>{{ translate('common.const') }}: </template>\n <RenderString :value=\"constValue\" />\n </SchemaPropertyDetail>\n </div>\n <template v-else>\n <!-- Shows only when a composition is used (so props.value?.type is undefined) -->\n <SchemaPropertyDetail v-if=\"(props.value as any)?.nullable === true\">\n {{ translate('common.nullable') }}\n </SchemaPropertyDetail>\n </template>\n <div\n v-if=\"props.value?.writeOnly\"\n class=\"property-write-only\">\n {{ translate('common.writeOnly') }}\n </div>\n <div\n v-else-if=\"props.value?.readOnly\"\n class=\"property-read-only\">\n {{ translate('common.readOnly') }}\n </div>\n <div\n v-if=\"props.required\"\n class=\"property-required\">\n {{ translate('common.required') }}\n </div>\n <SchemaPropertyDefault :value=\"props.value?.default\" />\n <SchemaPropertyExamples\n v-if=\"props.withExamples\"\n :example=\"exampleValue\"\n :examples=\"props.value?.examples\" />\n </div>\n</template>\n<style scoped>\n.property-heading {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n row-gap: 9px;\n white-space: nowrap;\n}\n\n.property-heading:has(+ .children),\n.property-heading:has(+ .property-rule) {\n margin-bottom: 9px;\n}\n\n.property-heading > * {\n margin-right: 9px;\n}\n\n.property-heading:last-child {\n margin-right: 0;\n}\n\n.property-heading > .property-detail:not(:last-of-type) {\n margin-right: 0;\n}\n\n.property-name {\n max-width: 100%;\n font-family: var(--scalar-font-code);\n font-weight: var(--scalar-bold);\n font-size: var(--scalar-font-size-4);\n white-space: normal;\n overflow-wrap: break-word;\n}\n\n.property-additional {\n font-family: var(--scalar-font-code);\n}\n\n.property-required,\n.property-optional {\n color: var(--scalar-color-2);\n}\n\n.property-required {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-orange);\n}\n\n.property-read-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-blue);\n}\n\n.property-write-only {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-green);\n}\n\n.property-discriminator {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-purple);\n}\n\n.property-detail {\n font-size: var(--scalar-mini);\n color: var(--scalar-color-2);\n display: flex;\n align-items: center;\n\n min-width: 0;\n}\n\n.property-const {\n color: var(--scalar-color-1);\n}\n\n.deprecated {\n text-decoration: line-through;\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModernLayout.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/Tags/components/ModernLayout.vue"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAQ9E,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACnC,CAAC;AAwGF,QAAA,IAAI,QAAQ,IAAY,CAAE;AAC1B,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ModernLayout.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/Tags/components/ModernLayout.vue"],"names":[],"mappings":"AAqEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAS9E,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACnC,CAAC;AA8GF,QAAA,IAAI,QAAQ,IAAY,CAAE;AAC1B,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_
2
2
  import ModernLayout_vue_vue_type_script_setup_true_lang_default from "./ModernLayout.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/Content/Tags/components/ModernLayout.vue
5
- var ModernLayout_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ModernLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5d1b311c"]]);
5
+ var ModernLayout_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ModernLayout_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-76bc20f3"]]);
6
6
  //#endregion
7
7
  export { ModernLayout_default as default };
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"ModernLayout.vue.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId } from 'vue'\n\nimport { SectionContainer } from '@/components/Section'\nimport ShowMoreButton from '@/components/ShowMoreButton.vue'\n\nimport TagSection from './TagSection.vue'\n\nconst { tag, moreThanOneTag } = defineProps<{\n tag: TraversedTag\n moreThanOneTag: boolean\n isCollapsed: boolean\n eventBus: WorkspaceEventBus | null\n}>()\n\nconst headerId = useId()\n\nconst moreThanOneDefaultTag = computed(\n () => moreThanOneTag || tag?.title !== 'default' || tag?.description !== '',\n)\n\nconst hasChildren = computed(() => (tag?.children?.length ?? 0) > 0)\n</script>\n\n<template>\n <SectionContainer\n :aria-labelledby=\"headerId\"\n class=\"tag-section-container\"\n role=\"region\">\n <TagSection\n v-if=\"moreThanOneDefaultTag\"\n :eventBus=\"eventBus\"\n :headerId=\"headerId\"\n :isCollapsed=\"isCollapsed\"\n :tag=\"tag\" />\n <ShowMoreButton\n v-if=\"isCollapsed && moreThanOneTag && hasChildren\"\n :id=\"tag.id\"\n :aria-label=\"`Show all ${tag.title} endpoints`\"\n @click=\"\n () => eventBus?.emit('toggle:nav-item', { id: tag.id, open: true })\n \" />\n\n <!-- Show slot when section is expanded or single-tag (inverse of ShowMoreButton visibility). -->\n <div\n v-if=\"!(isCollapsed && moreThanOneTag)\"\n class=\"contents divide-y\">\n <slot />\n </div>\n </SectionContainer>\n</template>\n\n<style scoped>\n.section-container {\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.section-container:has(.show-more) {\n background-color: color-mix(in srgb, var(--scalar-background-2), transparent);\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ModernLayout.vue.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId } from 'vue'\n\nimport { SectionContainer } from '@/components/Section'\nimport ShowMoreButton from '@/components/ShowMoreButton.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport TagSection from './TagSection.vue'\n\nconst { tag, moreThanOneTag } = defineProps<{\n tag: TraversedTag\n moreThanOneTag: boolean\n isCollapsed: boolean\n eventBus: WorkspaceEventBus | null\n}>()\nconst { translate } = useLocalization()\n\nconst headerId = useId()\n\nconst moreThanOneDefaultTag = computed(\n () => moreThanOneTag || tag?.title !== 'default' || tag?.description !== '',\n)\n\nconst hasChildren = computed(() => (tag?.children?.length ?? 0) > 0)\n</script>\n\n<template>\n <SectionContainer\n :aria-labelledby=\"headerId\"\n class=\"tag-section-container\"\n role=\"region\">\n <TagSection\n v-if=\"moreThanOneDefaultTag\"\n :eventBus=\"eventBus\"\n :headerId=\"headerId\"\n :isCollapsed=\"isCollapsed\"\n :tag=\"tag\" />\n <ShowMoreButton\n v-if=\"isCollapsed && moreThanOneTag && hasChildren\"\n :id=\"tag.id\"\n :aria-label=\"\n translate('navigation.showAllEndpoints', { name: tag.title })\n \"\n @click=\"\n () => eventBus?.emit('toggle:nav-item', { id: tag.id, open: true })\n \" />\n\n <!-- Show slot when section is expanded or single-tag (inverse of ShowMoreButton visibility). -->\n <div\n v-if=\"!(isCollapsed && moreThanOneTag)\"\n class=\"contents divide-y\">\n <slot />\n </div>\n </SectionContainer>\n</template>\n\n<style scoped>\n.section-container {\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.section-container:has(.show-more) {\n background-color: color-mix(in srgb, var(--scalar-background-2), transparent);\n}\n</style>\n"],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { useLocalization } from "../../../../features/localization/use-localization.js";
1
2
  import SectionContainer_default from "../../../Section/SectionContainer.vue.js";
2
3
  import ShowMoreButton_default from "../../../ShowMoreButton.vue.js";
3
4
  import TagSection_default from "./TagSection.vue.js";
@@ -16,6 +17,7 @@ var ModernLayout_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
16
17
  eventBus: {}
17
18
  },
18
19
  setup(__props) {
20
+ const { translate } = useLocalization();
19
21
  const headerId = useId();
20
22
  const moreThanOneDefaultTag = computed(() => __props.moreThanOneTag || __props.tag?.title !== "default" || __props.tag?.description !== "");
21
23
  const hasChildren = computed(() => (__props.tag?.children?.length ?? 0) > 0);
@@ -41,7 +43,7 @@ var ModernLayout_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
41
43
  __props.isCollapsed && __props.moreThanOneTag && hasChildren.value ? (openBlock(), createBlock(ShowMoreButton_default, {
42
44
  key: 1,
43
45
  id: __props.tag.id,
44
- "aria-label": `Show all ${__props.tag.title} endpoints`,
46
+ "aria-label": unref(translate)("navigation.showAllEndpoints", { name: __props.tag.title }),
45
47
  onClick: _cache[0] || (_cache[0] = () => __props.eventBus?.emit("toggle:nav-item", {
46
48
  id: __props.tag.id,
47
49
  open: true
@@ -1 +1 @@
1
- {"version":3,"file":"ModernLayout.vue.script.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId } from 'vue'\n\nimport { SectionContainer } from '@/components/Section'\nimport ShowMoreButton from '@/components/ShowMoreButton.vue'\n\nimport TagSection from './TagSection.vue'\n\nconst { tag, moreThanOneTag } = defineProps<{\n tag: TraversedTag\n moreThanOneTag: boolean\n isCollapsed: boolean\n eventBus: WorkspaceEventBus | null\n}>()\n\nconst headerId = useId()\n\nconst moreThanOneDefaultTag = computed(\n () => moreThanOneTag || tag?.title !== 'default' || tag?.description !== '',\n)\n\nconst hasChildren = computed(() => (tag?.children?.length ?? 0) > 0)\n</script>\n\n<template>\n <SectionContainer\n :aria-labelledby=\"headerId\"\n class=\"tag-section-container\"\n role=\"region\">\n <TagSection\n v-if=\"moreThanOneDefaultTag\"\n :eventBus=\"eventBus\"\n :headerId=\"headerId\"\n :isCollapsed=\"isCollapsed\"\n :tag=\"tag\" />\n <ShowMoreButton\n v-if=\"isCollapsed && moreThanOneTag && hasChildren\"\n :id=\"tag.id\"\n :aria-label=\"`Show all ${tag.title} endpoints`\"\n @click=\"\n () => eventBus?.emit('toggle:nav-item', { id: tag.id, open: true })\n \" />\n\n <!-- Show slot when section is expanded or single-tag (inverse of ShowMoreButton visibility). -->\n <div\n v-if=\"!(isCollapsed && moreThanOneTag)\"\n class=\"contents divide-y\">\n <slot />\n </div>\n </SectionContainer>\n</template>\n\n<style scoped>\n.section-container {\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.section-container:has(.show-more) {\n background-color: color-mix(in srgb, var(--scalar-background-2), transparent);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAiBA,MAAM,WAAW,OAAM;EAEvB,MAAM,wBAAwB,eACtB,QAAA,kBAAkB,QAAA,KAAK,UAAU,aAAa,QAAA,KAAK,gBAAgB,GAC3E;EAEA,MAAM,cAAc,gBAAgB,QAAA,KAAK,UAAU,UAAU,KAAK,EAAC;;uBAIjE,YAwBmB,MAAA,yBAAA,EAAA;IAvBhB,mBAAiB,MAAA,SAAQ;IAC1B,OAAM;IACN,MAAK;;2BAMU;KAJP,sBAAA,SAAA,WAAA,EADR,YAKe,oBAAA;;MAHZ,UAAU,QAAA;MACV,UAAU,MAAA,SAAQ;MAClB,aAAa,QAAA;MACb,KAAK,QAAA;;;;;;;KAEA,QAAA,eAAe,QAAA,kBAAkB,YAAA,SAAA,WAAA,EADzC,YAMM,wBAAA;;MAJH,IAAI,QAAA,IAAI;MACR,cAAU,YAAc,QAAA,IAAI,MAAK;MACjC,SAAK,OAAA,OAAA,OAAA,WAAiB,QAAA,UAAU,KAAI,mBAAA;OAAA,IAA0B,QAAA,IAAI;OAAE,MAAA;OAAA,CAAA;;OAM7D,QAAA,eAAe,QAAA,mBAAA,WAAA,EADzB,mBAIM,OAJN,YAIM,CADJ,WAAQ,KAAA,QAAA,WAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
1
+ {"version":3,"file":"ModernLayout.vue.script.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\nimport { computed, useId } from 'vue'\n\nimport { SectionContainer } from '@/components/Section'\nimport ShowMoreButton from '@/components/ShowMoreButton.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport TagSection from './TagSection.vue'\n\nconst { tag, moreThanOneTag } = defineProps<{\n tag: TraversedTag\n moreThanOneTag: boolean\n isCollapsed: boolean\n eventBus: WorkspaceEventBus | null\n}>()\nconst { translate } = useLocalization()\n\nconst headerId = useId()\n\nconst moreThanOneDefaultTag = computed(\n () => moreThanOneTag || tag?.title !== 'default' || tag?.description !== '',\n)\n\nconst hasChildren = computed(() => (tag?.children?.length ?? 0) > 0)\n</script>\n\n<template>\n <SectionContainer\n :aria-labelledby=\"headerId\"\n class=\"tag-section-container\"\n role=\"region\">\n <TagSection\n v-if=\"moreThanOneDefaultTag\"\n :eventBus=\"eventBus\"\n :headerId=\"headerId\"\n :isCollapsed=\"isCollapsed\"\n :tag=\"tag\" />\n <ShowMoreButton\n v-if=\"isCollapsed && moreThanOneTag && hasChildren\"\n :id=\"tag.id\"\n :aria-label=\"\n translate('navigation.showAllEndpoints', { name: tag.title })\n \"\n @click=\"\n () => eventBus?.emit('toggle:nav-item', { id: tag.id, open: true })\n \" />\n\n <!-- Show slot when section is expanded or single-tag (inverse of ShowMoreButton visibility). -->\n <div\n v-if=\"!(isCollapsed && moreThanOneTag)\"\n class=\"contents divide-y\">\n <slot />\n </div>\n </SectionContainer>\n</template>\n\n<style scoped>\n.section-container {\n border-top: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.section-container:has(.show-more) {\n background-color: color-mix(in srgb, var(--scalar-background-2), transparent);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAiBA,MAAM,EAAE,cAAc,iBAAgB;EAEtC,MAAM,WAAW,OAAM;EAEvB,MAAM,wBAAwB,eACtB,QAAA,kBAAkB,QAAA,KAAK,UAAU,aAAa,QAAA,KAAK,gBAAgB,GAC3E;EAEA,MAAM,cAAc,gBAAgB,QAAA,KAAK,UAAU,UAAU,KAAK,EAAC;;uBAIjE,YA0BmB,MAAA,yBAAA,EAAA;IAzBhB,mBAAiB,MAAA,SAAQ;IAC1B,OAAM;IACN,MAAK;;2BAMU;KAJP,sBAAA,SAAA,WAAA,EADR,YAKe,oBAAA;;MAHZ,UAAU,QAAA;MACV,UAAU,MAAA,SAAQ;MAClB,aAAa,QAAA;MACb,KAAK,QAAA;;;;;;;KAEA,QAAA,eAAe,QAAA,kBAAkB,YAAA,SAAA,WAAA,EADzC,YAQM,wBAAA;;MANH,IAAI,QAAA,IAAI;MACR,cAAqB,MAAA,UAAS,CAAA,+BAAA,EAAA,MAAwC,QAAA,IAAI,OAAK,CAAA;MAG/E,SAAK,OAAA,OAAA,OAAA,WAAiB,QAAA,UAAU,KAAI,mBAAA;OAAA,IAA0B,QAAA,IAAI;OAAE,MAAA;OAAA,CAAA;;OAM7D,QAAA,eAAe,QAAA,mBAAA,WAAA,EADzB,mBAIM,OAJN,YAIM,CADJ,WAAQ,KAAA,QAAA,WAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TagSection.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/Tags/components/TagSection.vue"],"names":[],"mappings":"AAoEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAe9E,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACnC,CAAC;AAgNF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"TagSection.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/Content/Tags/components/TagSection.vue"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AAgB9E,KAAK,WAAW,GAAG;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACnC,CAAC;AAmNF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TagSection.vue.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/TagSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\n\nimport { Anchor } from '@/components/Anchor'\nimport { OperationsList } from '@/components/OperationsList'\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nconst { tag, headerId, isCollapsed } = defineProps<{\n tag: TraversedTag\n headerId?: string\n isCollapsed?: boolean\n eventBus: WorkspaceEventBus | null\n}>()\n</script>\n<template>\n <Section\n v-if=\"tag\"\n :id=\"tag.id\"\n role=\"none\"\n @intersecting=\"\n () => eventBus?.emit('intersecting:nav-item', { id: tag.id })\n \">\n <SectionHeader>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: tag.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n :level=\"2\">\n {{ tag.title }}\n <ScreenReader v-if=\"isCollapsed\"> (Collapsed)</ScreenReader>\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <SectionContent>\n <SectionColumns>\n <SectionColumn>\n <ScalarMarkdown\n :clamp=\"isCollapsed ? 7 : undefined\"\n :value=\"tag?.description ?? ''\"\n withImages />\n </SectionColumn>\n <SectionColumn>\n <OperationsList\n :eventBus=\"eventBus\"\n :tag=\"tag\" />\n </SectionColumn>\n </SectionColumns>\n </SectionContent>\n <SpecificationExtension :value=\"tag.xKeys\" />\n </Section>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"TagSection.vue.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/TagSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\n\nimport { Anchor } from '@/components/Anchor'\nimport { OperationsList } from '@/components/OperationsList'\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { useLocalization } from '@/features/localization'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nconst { tag, headerId, isCollapsed } = defineProps<{\n tag: TraversedTag\n headerId?: string\n isCollapsed?: boolean\n eventBus: WorkspaceEventBus | null\n}>()\nconst { translate } = useLocalization()\n</script>\n<template>\n <Section\n v-if=\"tag\"\n :id=\"tag.id\"\n role=\"none\"\n @intersecting=\"\n () => eventBus?.emit('intersecting:nav-item', { id: tag.id })\n \">\n <SectionHeader>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: tag.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n :level=\"2\">\n {{ tag.title }}\n <ScreenReader v-if=\"isCollapsed\">\n ({{ translate('navigation.collapsed') }})\n </ScreenReader>\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <SectionContent>\n <SectionColumns>\n <SectionColumn>\n <ScalarMarkdown\n :clamp=\"isCollapsed ? 7 : undefined\"\n :value=\"tag?.description ?? ''\"\n withImages />\n </SectionColumn>\n <SectionColumn>\n <OperationsList\n :eventBus=\"eventBus\"\n :tag=\"tag\" />\n </SectionColumn>\n </SectionColumns>\n </SectionContent>\n <SpecificationExtension :value=\"tag.xKeys\" />\n </Section>\n</template>\n"],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { useLocalization } from "../../../../features/localization/use-localization.js";
1
2
  import Section_default from "../../../Section/Section.vue.js";
2
3
  import SectionColumn_default from "../../../Section/SectionColumn.vue.js";
3
4
  import SectionColumns_default from "../../../Section/SectionColumns.vue.js";
@@ -20,6 +21,7 @@ var TagSection_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
20
21
  eventBus: {}
21
22
  },
22
23
  setup(__props) {
24
+ const { translate } = useLocalization();
23
25
  return (_ctx, _cache) => {
24
26
  return __props.tag ? (openBlock(), createBlock(unref(Section_default), {
25
27
  key: 0,
@@ -35,7 +37,7 @@ var TagSection_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
35
37
  level: 2
36
38
  }, {
37
39
  default: withCtx(() => [createTextVNode(toDisplayString(__props.tag.title) + " ", 1), __props.isCollapsed ? (openBlock(), createBlock(ScreenReader_default, { key: 0 }, {
38
- default: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode(" (Collapsed)", -1)])]),
40
+ default: withCtx(() => [createTextVNode(" (" + toDisplayString(unref(translate)("navigation.collapsed")) + ") ", 1)]),
39
41
  _: 1
40
42
  })) : createCommentVNode("", true)]),
41
43
  _: 1
@@ -1 +1 @@
1
- {"version":3,"file":"TagSection.vue.script.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/TagSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\n\nimport { Anchor } from '@/components/Anchor'\nimport { OperationsList } from '@/components/OperationsList'\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nconst { tag, headerId, isCollapsed } = defineProps<{\n tag: TraversedTag\n headerId?: string\n isCollapsed?: boolean\n eventBus: WorkspaceEventBus | null\n}>()\n</script>\n<template>\n <Section\n v-if=\"tag\"\n :id=\"tag.id\"\n role=\"none\"\n @intersecting=\"\n () => eventBus?.emit('intersecting:nav-item', { id: tag.id })\n \">\n <SectionHeader>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: tag.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n :level=\"2\">\n {{ tag.title }}\n <ScreenReader v-if=\"isCollapsed\"> (Collapsed)</ScreenReader>\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <SectionContent>\n <SectionColumns>\n <SectionColumn>\n <ScalarMarkdown\n :clamp=\"isCollapsed ? 7 : undefined\"\n :value=\"tag?.description ?? ''\"\n withImages />\n </SectionColumn>\n <SectionColumn>\n <OperationsList\n :eventBus=\"eventBus\"\n :tag=\"tag\" />\n </SectionColumn>\n </SectionColumns>\n </SectionContent>\n <SpecificationExtension :value=\"tag.xKeys\" />\n </Section>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;UA2BU,QAAA,OAAA,WAAA,EADR,YAoCU,MAAA,gBAAA,EAAA;;IAlCP,IAAI,QAAA,IAAI;IACT,MAAK;IACJ,gBAAY,OAAA,OAAA,OAAA,WAAe,QAAA,UAAU,KAAI,yBAAA,EAAA,IAAgC,QAAA,IAAI,IAAE,CAAA;;2BAehE;KAZhB,YAYgB,MAAA,sBAAA,EAAA,MAAA;6BADL,CAVT,YAUS,MAAA,eAAA,EAAA,EATN,iBAAa,OAAA,OAAA,OAAA,WAAmB,QAAA,UAAU,KAAI,qBAAA,EAAA,IAA4B,QAAA,IAAI,IAAE,CAAA,GAAA,EAAA;8BAQ9D,CALnB,YAKmB,MAAA,yBAAA,EAAA;QAJhB,IAAI,QAAA;QACJ,OAAO;;+BACO,CAAA,gBAAA,gBAAZ,QAAA,IAAI,MAAK,GAAG,KACf,EAAA,EAAoB,QAAA,eAAA,WAAA,EAApB,YAA4D,sBAAA,EAAA,KAAA,GAAA,EAAA;gCAAf,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAAA,gBAAZ,gBAAY,GAAA,CAAA,EAAA,CAAA;;;;;;;;;KAInD,YAciB,MAAA,uBAAA,EAAA,MAAA;6BADE,CAZjB,YAYiB,MAAA,uBAAA,EAAA,MAAA;8BANC,CALhB,YAKgB,MAAA,sBAAA,EAAA,MAAA;+BADC,CAHf,YAGe,MAAA,eAAA,EAAA;SAFZ,OAAO,QAAA,cAAW,IAAO,KAAA;SACzB,OAAO,QAAA,KAAK,eAAW;SACxB,YAAA;;;WAEJ,YAIgB,MAAA,sBAAA,EAAA,MAAA;+BADC,CAFf,YAEe,MAAA,uBAAA,EAAA;SADZ,UAAU,QAAA;SACV,KAAK,QAAA;;;;;;;;KAId,YAA6C,MAAA,+BAAA,EAAA,EAApB,OAAO,QAAA,IAAI,OAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA"}
1
+ {"version":3,"file":"TagSection.vue.script.js","names":[],"sources":["../../../../../src/components/Content/Tags/components/TagSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { TraversedTag } from '@scalar/workspace-store/schemas/navigation'\n\nimport { Anchor } from '@/components/Anchor'\nimport { OperationsList } from '@/components/OperationsList'\nimport ScreenReader from '@/components/ScreenReader.vue'\nimport {\n Section,\n SectionColumn,\n SectionColumns,\n SectionContent,\n SectionHeader,\n SectionHeaderTag,\n} from '@/components/Section'\nimport { useLocalization } from '@/features/localization'\nimport { SpecificationExtension } from '@/features/specification-extension'\n\nconst { tag, headerId, isCollapsed } = defineProps<{\n tag: TraversedTag\n headerId?: string\n isCollapsed?: boolean\n eventBus: WorkspaceEventBus | null\n}>()\nconst { translate } = useLocalization()\n</script>\n<template>\n <Section\n v-if=\"tag\"\n :id=\"tag.id\"\n role=\"none\"\n @intersecting=\"\n () => eventBus?.emit('intersecting:nav-item', { id: tag.id })\n \">\n <SectionHeader>\n <Anchor\n @copyAnchorUrl=\"\n () => eventBus?.emit('copy-url:nav-item', { id: tag.id })\n \">\n <SectionHeaderTag\n :id=\"headerId\"\n :level=\"2\">\n {{ tag.title }}\n <ScreenReader v-if=\"isCollapsed\">\n ({{ translate('navigation.collapsed') }})\n </ScreenReader>\n </SectionHeaderTag>\n </Anchor>\n </SectionHeader>\n <SectionContent>\n <SectionColumns>\n <SectionColumn>\n <ScalarMarkdown\n :clamp=\"isCollapsed ? 7 : undefined\"\n :value=\"tag?.description ?? ''\"\n withImages />\n </SectionColumn>\n <SectionColumn>\n <OperationsList\n :eventBus=\"eventBus\"\n :tag=\"tag\" />\n </SectionColumn>\n </SectionColumns>\n </SectionContent>\n <SpecificationExtension :value=\"tag.xKeys\" />\n </Section>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAyBA,MAAM,EAAE,cAAc,iBAAgB;;UAI5B,QAAA,OAAA,WAAA,EADR,YAsCU,MAAA,gBAAA,EAAA;;IApCP,IAAI,QAAA,IAAI;IACT,MAAK;IACJ,gBAAY,OAAA,OAAA,OAAA,WAAe,QAAA,UAAU,KAAI,yBAAA,EAAA,IAAgC,QAAA,IAAI,IAAE,CAAA;;2BAiBhE;KAdhB,YAcgB,MAAA,sBAAA,EAAA,MAAA;6BADL,CAZT,YAYS,MAAA,eAAA,EAAA,EAXN,iBAAa,OAAA,OAAA,OAAA,WAAmB,QAAA,UAAU,KAAI,qBAAA,EAAA,IAA4B,QAAA,IAAI,IAAE,CAAA,GAAA,EAAA;8BAU9D,CAPnB,YAOmB,MAAA,yBAAA,EAAA;QANhB,IAAI,QAAA;QACJ,OAAO;;+BACO,CAAA,gBAAA,gBAAZ,QAAA,IAAI,MAAK,GAAG,KACf,EAAA,EAAoB,QAAA,eAAA,WAAA,EAApB,YAEe,sBAAA,EAAA,KAAA,GAAA,EAAA;gCADZ,CAAA,gBAD8B,OAC9B,gBAAG,MAAA,UAAS,CAAA,uBAAA,CAAA,GAA2B,MAC1C,EAAA,CAAA,CAAA;;;;;;;;;KAIN,YAciB,MAAA,uBAAA,EAAA,MAAA;6BADE,CAZjB,YAYiB,MAAA,uBAAA,EAAA,MAAA;8BANC,CALhB,YAKgB,MAAA,sBAAA,EAAA,MAAA;+BADC,CAHf,YAGe,MAAA,eAAA,EAAA;SAFZ,OAAO,QAAA,cAAW,IAAO,KAAA;SACzB,OAAO,QAAA,KAAK,eAAW;SACxB,YAAA;;;WAEJ,YAIgB,MAAA,sBAAA,EAAA,MAAA;+BADC,CAFf,YAEe,MAAA,uBAAA,EAAA;SADZ,UAAU,QAAA;SACV,KAAK,QAAA;;;;;;;;KAId,YAA6C,MAAA,+BAAA,EAAA,EAApB,OAAO,QAAA,IAAI,OAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"GettingStarted.vue.d.ts","sourceRoot":"","sources":["../../src/components/GettingStarted.vue"],"names":[],"mappings":"AA6cA,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE1D,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAA;CACf,CAAC;AA+YF,QAAA,MAAM,YAAY;;YA3YwB,OAAO;eAAS,MAAM;;;;;;;YAAtB,OAAO;eAAS,MAAM;;;;;kFA8Y9D,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"GettingStarted.vue.d.ts","sourceRoot":"","sources":["../../src/components/GettingStarted.vue"],"names":[],"mappings":"AAsdA,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI1D,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAA;CACf,CAAC;AAoaF,QAAA,MAAM,YAAY;;YAjawB,OAAO;eAAS,MAAM;;;;;;;YAAtB,OAAO;eAAS,MAAM;;;;;kFAoa9D,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -2,7 +2,7 @@ import _plugin_vue_export_helper_default from "../_virtual/_plugin-vue_export-he
2
2
  import GettingStarted_vue_vue_type_script_setup_true_lang_default from "./GettingStarted.vue.script.js";
3
3
  /* empty css */
4
4
  //#region src/components/GettingStarted.vue
5
- var GettingStarted_default = /* @__PURE__ */ _plugin_vue_export_helper_default(GettingStarted_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-68d4d91b"]]);
5
+ var GettingStarted_default = /* @__PURE__ */ _plugin_vue_export_helper_default(GettingStarted_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-c592502d"]]);
6
6
  //#endregion
7
7
  export { GettingStarted_default as default };
8
8