@scalar/api-reference 1.62.0 → 1.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/browser/chunks/{AgentScalarChatInterface-C3QiXv0S.js → AgentScalarChatInterface-D7J_MHKY.js} +4 -4
  3. package/dist/browser/chunks/ScalarTextInput.vue-Fb0snAee.js +27 -0
  4. package/dist/browser/chunks/basic-shape-diamond.svg-BTEOT1FL.js +1 -1
  5. package/dist/browser/chunks/basic-shape-hexagon.svg-BSPzaCgF.js +1 -1
  6. package/dist/browser/chunks/basic-shape-primary-circle-ellipse-round.svg-DKmZ8UUU.js +1 -1
  7. package/dist/browser/chunks/basic-shape-primary-square-rectangle.svg-n2YRykHD.js +1 -1
  8. package/dist/browser/chunks/basic-shape-shield.svg-Bec9cJDA.js +1 -1
  9. package/dist/browser/chunks/browser-67K6wmG9.js +1 -1
  10. package/dist/browser/chunks/computer-device-desktop-monitor.svg-m6j893Hb.js +1 -1
  11. package/dist/browser/chunks/computer-device-desktop.svg-Dk1VVO7k.js +1 -1
  12. package/dist/browser/chunks/computer-device-laptop.svg-BNGVUCYS.js +1 -1
  13. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung-back.svg-CC4UUTFw.js +1 -1
  14. package/dist/browser/chunks/computer-device-mobile-phone-android-samsung.svg-D8ExpMpL.js +1 -1
  15. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x-back.svg-CLm7sgMM.js +1 -1
  16. package/dist/browser/chunks/computer-device-mobile-phone-iphone-x.svg-Xrttg6_7.js +1 -1
  17. package/dist/browser/chunks/computer-device-mobile-tablet-touch.svg-DQ2oTvOG.js +1 -1
  18. package/dist/browser/chunks/computer-device-mobile-tablet.svg-DCr0XlRc.js +1 -1
  19. package/dist/browser/chunks/computer-device-network-ethernet-cat6.svg-AK9l0iOl.js +1 -1
  20. package/dist/browser/chunks/computer-device-network-lan-www.svg-gUIdFBlE.js +1 -1
  21. package/dist/browser/chunks/computer-device-network-wifi-connection.svg-Be-EMm4e.js +1 -1
  22. package/dist/browser/chunks/computer-device-network-wifi-router.svg-Dc2VzyqK.js +1 -1
  23. package/dist/browser/chunks/ecology-science-erlenmeyer-flask.svg-DHgy7Jfd.js +1 -1
  24. package/dist/browser/chunks/image-flash-lightning.svg-EETR_y1q.js +1 -1
  25. package/dist/browser/chunks/image-picture-flower.svg-DN1AYzJU.js +1 -1
  26. package/dist/browser/chunks/interface-alert-exclamation-diamond.svg-C5NozMV_.js +1 -1
  27. package/dist/browser/chunks/interface-alert-exclamation-triangle-warning.svg-DaAg2fF5.js +1 -1
  28. package/dist/browser/chunks/interface-alert-information-circle.svg-ckkkt9Mv.js +1 -1
  29. package/dist/browser/chunks/interface-award-crown.svg-pjvn9hY-.js +1 -1
  30. package/dist/browser/chunks/interface-bookmark-tag.svg-r2r-lQq4.js +1 -1
  31. package/dist/browser/chunks/interface-bookmark.svg-BK9HKQBT.js +1 -1
  32. package/dist/browser/chunks/interface-calendar-date-one.svg-DNnF0M1I.js +1 -1
  33. package/dist/browser/chunks/interface-content-book-open-pages.svg-CQj_w9Vp.js +1 -1
  34. package/dist/browser/chunks/interface-content-book-page.svg-DppoeJRe.js +1 -1
  35. package/dist/browser/chunks/interface-content-file.svg-CvcD7OiY.js +1 -1
  36. package/dist/browser/chunks/interface-content-folder.svg-BmtS5I9A.js +1 -1
  37. package/dist/browser/chunks/interface-copy-clipboard.svg-Be6EI50X.js +1 -1
  38. package/dist/browser/chunks/interface-edit-attachment.svg-G5TKzpWX.js +1 -1
  39. package/dist/browser/chunks/interface-edit-binocular.svg-jzL-DvGB.js +1 -1
  40. package/dist/browser/chunks/interface-edit-magic-wand.svg-BOTlymvp.js +1 -1
  41. package/dist/browser/chunks/interface-edit-tool-paint-roller.svg-s9dwryx7.js +1 -1
  42. package/dist/browser/chunks/interface-edit-tool-pencil.svg-C7v0dbB3.js +1 -1
  43. package/dist/browser/chunks/interface-favorite-award.svg-CYHUgUG0.js +1 -1
  44. package/dist/browser/chunks/interface-favorite-flag.svg-C10zlKOb.js +1 -1
  45. package/dist/browser/chunks/interface-favorite-heart.svg-eoduXxlz.js +1 -1
  46. package/dist/browser/chunks/interface-favorite-star.svg-BSmxJetr.js +1 -1
  47. package/dist/browser/chunks/interface-favorite-stars-sparkles.svg-JTFLj3Ls.js +1 -1
  48. package/dist/browser/chunks/interface-hierarchy-flowchart.svg-Cg_Wy0kN.js +1 -1
  49. package/dist/browser/chunks/interface-home-house.svg-DytoGRnv.js +1 -1
  50. package/dist/browser/chunks/interface-hyperlink.svg-CuEfmmQI.js +1 -1
  51. package/dist/browser/chunks/interface-lighting-brightness.svg-DSK0h_Pa.js +1 -1
  52. package/dist/browser/chunks/interface-lock-closed.svg-Cn6TaLYv.js +1 -1
  53. package/dist/browser/chunks/interface-lock-open-unlock.svg-CVkG5-9W.js +1 -1
  54. package/dist/browser/chunks/interface-login-key.svg-y-cwwXjN.js +1 -1
  55. package/dist/browser/chunks/interface-search.svg-S-puVFJB.js +1 -1
  56. package/dist/browser/chunks/interface-setting-cog.svg-CTH4_lLg.js +1 -1
  57. package/dist/browser/chunks/interface-share-megaphone-bullhorn.svg-Pbp39MyC.js +1 -1
  58. package/dist/browser/chunks/interface-share-rocket.svg-BgCsIRZO.js +1 -1
  59. package/dist/browser/chunks/interface-share-satellite.svg-DAMN9d5G.js +1 -1
  60. package/dist/browser/chunks/interface-share-space-ship.svg-Dt-Mejxk.js +1 -1
  61. package/dist/browser/chunks/interface-share.svg-vFYTXSti.js +1 -1
  62. package/dist/browser/chunks/interface-signal-square.svg-DNG4LpAe.js +1 -1
  63. package/dist/browser/chunks/interface-time-clock-circle.svg-Bpz-nLxo.js +1 -1
  64. package/dist/browser/chunks/interface-time-hour-glass.svg-D7agfKsH.js +1 -1
  65. package/dist/browser/chunks/interface-users-multiple.svg-CkPJBBnG.js +1 -1
  66. package/dist/browser/chunks/interface-weather-moon.svg-CaTZFMPO.js +1 -1
  67. package/dist/browser/chunks/mail-chat-bubble-square.svg-DC8RIihp.js +1 -1
  68. package/dist/browser/chunks/mail-send-email-paper-airplane.svg-D8OLs9jz.js +1 -1
  69. package/dist/browser/chunks/mail-send-envelope.svg-CV33h5Sx.js +1 -1
  70. package/dist/browser/chunks/modal-BLBi4S4R.js +99 -0
  71. package/dist/browser/chunks/{modal-CMytT4BZ.js → modal-BlpWsFBT.js} +2 -2
  72. package/dist/browser/chunks/money-cashier-receipt.svg-CJL8C2gs.js +1 -1
  73. package/dist/browser/chunks/money-currency-dollar-pay.svg-VdBplCTx.js +1 -1
  74. package/dist/browser/chunks/money-graph-arrow-increase.svg-DcRov3zk.js +1 -1
  75. package/dist/browser/chunks/money-graph-bar-chart-increase.svg-Cc7KxjX-.js +1 -1
  76. package/dist/browser/chunks/nature-ecology-leaf.svg-DR3cTZxt.js +1 -1
  77. package/dist/browser/chunks/phone-telephone.svg-DyY0gUlk.js +1 -1
  78. package/dist/browser/chunks/programming-bug.svg-BHLT-Qhp.js +1 -1
  79. package/dist/browser/chunks/programming-cloud.svg-B6YW33ba.js +1 -1
  80. package/dist/browser/chunks/programming-computer-database-server.svg-B6o5Sdn-.js +1 -1
  81. package/dist/browser/chunks/programming-computer-database.svg-Cl7OVtpJ.js +1 -1
  82. package/dist/browser/chunks/programming-module-four-layout.svg-BQrerL1x.js +1 -1
  83. package/dist/browser/chunks/programming-module-three.svg-B2KTQzBM.js +1 -1
  84. package/dist/browser/chunks/programming-module.svg-CiID7kPm.js +1 -1
  85. package/dist/browser/chunks/programming-script-code.svg-D1M5rtkN.js +1 -1
  86. package/dist/browser/chunks/runtime-core.esm-bundler-Byrbbu5Q.js +1 -1
  87. package/dist/browser/chunks/shopping-cart.svg-BEegiIR9.js +1 -1
  88. package/dist/browser/chunks/shopping-gift-present.svg-BUHwuLix.js +1 -1
  89. package/dist/browser/chunks/shopping-shipping-box-parcel-package.svg-D6fxWdYx.js +1 -1
  90. package/dist/browser/chunks/tag-new-circle.svg-jsg1bGs0.js +1 -1
  91. package/dist/browser/chunks/travel-map-earth-globe.svg-ClbMiU-f.js +1 -1
  92. package/dist/browser/chunks/{vendor-BPQqqkn-.js → vendor-DHN5fsxL.js} +116 -116
  93. package/dist/browser/standalone.esm.js +20 -20
  94. package/dist/browser/standalone.js +245 -245
  95. package/dist/components/ApiReference.vue.script.js +1 -1
  96. package/dist/components/Content/Schema/Schema.vue.d.ts.map +1 -1
  97. package/dist/components/Content/Schema/Schema.vue.js +1 -1
  98. package/dist/components/Content/Schema/Schema.vue.js.map +1 -1
  99. package/dist/components/Content/Schema/Schema.vue.script.js +93 -12
  100. package/dist/components/Content/Schema/Schema.vue.script.js.map +1 -1
  101. package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
  102. package/dist/components/Content/Schema/SchemaProperty.vue.js +1 -1
  103. package/dist/components/Content/Schema/SchemaProperty.vue.js.map +1 -1
  104. package/dist/components/Content/Schema/SchemaProperty.vue.script.js +38 -9
  105. package/dist/components/Content/Schema/SchemaProperty.vue.script.js.map +1 -1
  106. package/dist/components/Content/Schema/SchemaPropertyHeading.vue.script.js +1 -1
  107. package/dist/components/Content/Schema/helpers/dynamic-scope.d.ts +27 -0
  108. package/dist/components/Content/Schema/helpers/dynamic-scope.d.ts.map +1 -0
  109. package/dist/components/Content/Schema/helpers/dynamic-scope.js +35 -0
  110. package/dist/components/Content/Schema/helpers/dynamic-scope.js.map +1 -0
  111. package/dist/components/Content/Schema/helpers/get-compositions-to-render.d.ts +10 -0
  112. package/dist/components/Content/Schema/helpers/get-compositions-to-render.d.ts.map +1 -1
  113. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js +11 -2
  114. package/dist/components/Content/Schema/helpers/get-compositions-to-render.js.map +1 -1
  115. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +9 -2
  116. package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js.map +1 -1
  117. package/dist/features/Operation/components/RequestBody.vue.d.ts.map +1 -1
  118. package/dist/features/Operation/components/RequestBody.vue.js +1 -1
  119. package/dist/features/Operation/components/RequestBody.vue.js.map +1 -1
  120. package/dist/features/Operation/components/RequestBody.vue.script.js +3 -1
  121. package/dist/features/Operation/components/RequestBody.vue.script.js.map +1 -1
  122. package/dist/features/Operation/layouts/ModernLayout.vue.script.js.map +1 -1
  123. package/dist/style.css +78 -78
  124. package/dist/vue-styles.css +71 -71
  125. package/package.json +13 -13
  126. package/dist/browser/chunks/ScalarTextInput.vue-CysYmeeN.js +0 -27
  127. package/dist/browser/chunks/modal-wI0tG53V.js +0 -99
@@ -1,7 +1,8 @@
1
1
  import { useLocalization } from "../../localization/use-localization.js";
2
+ import { inferDiscriminatorMappingComposition } from "../../../components/Content/Schema/helpers/get-compositions-to-render.js";
2
3
  import { isTypeObject } from "../../../components/Content/Schema/helpers/is-type-object.js";
3
- import { reduceNamesToObject, sortPropertyNames } from "../../../components/Content/Schema/helpers/sort-property-names.js";
4
4
  import { getModelNameFromSchema } from "../../../components/Content/Schema/helpers/schema-name.js";
5
+ import { reduceNamesToObject, sortPropertyNames } from "../../../components/Content/Schema/helpers/sort-property-names.js";
5
6
  import LinkButton_default from "../../../components/Content/Schema/LinkButton.vue.js";
6
7
  import Schema_default from "../../../components/Content/Schema/Schema.vue.js";
7
8
  import ContentTypeSelect_default from "./ContentTypeSelect.vue.js";
@@ -69,6 +70,7 @@ var RequestBody_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ de
69
70
  */
70
71
  const partitionedSchema = computed(() => {
71
72
  if (!schema.value || !isTypeObject(schema.value)) return null;
73
+ if (inferDiscriminatorMappingComposition(schema.value, __props.document)) return null;
72
74
  const sortedNames = sortPropertyNames(schema.value, schema.value.discriminator, {
73
75
  hideReadOnly: true,
74
76
  orderSchemaPropertiesBy: __props.options.orderSchemaPropertiesBy,
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBody.vue.script.js","names":[],"sources":["../../../../src/features/Operation/components/RequestBody.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n OpenApiDocument,\n RequestBodyObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { Schema } from '@/components/Content/Schema'\nimport { isTypeObject } from '@/components/Content/Schema/helpers/is-type-object'\nimport { getModelNameFromSchema } from '@/components/Content/Schema/helpers/schema-name'\nimport {\n reduceNamesToObject,\n sortPropertyNames,\n} from '@/components/Content/Schema/helpers/sort-property-names'\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport ContentTypeSelect from './ContentTypeSelect.vue'\n\nconst { requestBody, options, document } = defineProps<{\n breadcrumb?: string[]\n requestBody?: RequestBodyObject\n eventBus: WorkspaceEventBus | null\n /** The document the request body belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n options: {\n orderRequiredPropertiesFirst: boolean | undefined\n orderSchemaPropertiesBy: 'alpha' | 'preserve' | undefined\n hideModels: boolean | undefined\n expandAllSchemaProperties: boolean | undefined\n }\n}>()\nconst { translate } = useLocalization()\n\n/**\n * The maximum number of properties to show in the request body schema.\n */\nconst MAX_VISIBLE_PROPERTIES = 12\n\nconst availableContentTypes = computed(() =>\n Object.keys(requestBody?.content ?? {}),\n)\n\nconst selectedContentType = defineModel<string>('selectedContentType', {\n default: 'application/json',\n})\n\nif (requestBody?.content) {\n if (availableContentTypes.value[0]) {\n selectedContentType.value = availableContentTypes.value[0]\n }\n}\n\n/** Raw schema (possibly with $ref) for the selected content type */\nconst rawSchema = computed(\n () => requestBody?.content?.[selectedContentType.value]?.schema,\n)\n\nconst schema = computed(() => getResolvedRef(rawSchema.value))\n\n/** When the schema is a $ref, preserve its name so the UI can show the ref name instead of just the type. */\nconst modelLink = computed(\n () => (rawSchema.value && getModelNameFromSchema(rawSchema.value)) ?? null,\n)\n\n/**\n * Splits schema properties into visible and collapsed sections when there are more than 12 properties.\n * Returns null for schemas with fewer properties or non-object schemas.\n */\nconst partitionedSchema = computed(() => {\n // Early return if not an object schema\n if (!schema.value || !isTypeObject(schema.value)) {\n return null\n }\n\n // Lets sort the names first\n const sortedNames = sortPropertyNames(\n schema.value,\n schema.value.discriminator,\n {\n hideReadOnly: true,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n },\n )\n\n if (sortedNames.length <= MAX_VISIBLE_PROPERTIES) {\n return null\n }\n\n // Destructure everything except properties\n const { properties, ...schemaMetadata } = schema.value\n if (!properties) {\n return null\n }\n\n return {\n visibleProperties: {\n ...schemaMetadata,\n properties: reduceNamesToObject(\n sortedNames.slice(0, MAX_VISIBLE_PROPERTIES),\n properties,\n ),\n },\n collapsedProperties: {\n ...schemaMetadata,\n properties: reduceNamesToObject(\n sortedNames.slice(MAX_VISIBLE_PROPERTIES),\n properties,\n ),\n },\n }\n})\n\n/**\n * We don't want to render the request body if its completely empty\n * @example\n * {\n * \"content\": {},\n * }\n */\nconst shouldRenderRequestBody = computed(\n () =>\n Object.keys(requestBody?.content ?? {}).length > 0 ||\n requestBody?.description ||\n requestBody?.required,\n)\n</script>\n<template>\n <div\n v-if=\"requestBody && shouldRenderRequestBody\"\n :aria-label=\"translate('operation.requestBody')\"\n class=\"request-body\"\n role=\"group\">\n <div class=\"request-body-header\">\n <div class=\"request-body-title\">\n <slot name=\"title\" />\n <span\n v-if=\"modelLink\"\n class=\"text-c-2 text-xs leading-none font-normal\"\n data-testid=\"request-body-schema-name\">\n <span class=\"text-c-3 mx-1.5\">·</span>\n <LinkButton\n v-if=\"eventBus && modelLink.schemaKey\"\n @click=\"\n 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 </span>\n </div>\n <div class=\"flex items-center gap-2\">\n <div\n v-if=\"requestBody.required\"\n class=\"request-body-required\">\n {{ translate('common.required') }}\n </div>\n <ContentTypeSelect\n v-model=\"selectedContentType\"\n :content=\"requestBody.content\" />\n </div>\n <div\n v-if=\"requestBody.description\"\n class=\"request-body-description\">\n <ScalarMarkdown :value=\"requestBody.description\" />\n </div>\n </div>\n\n <!-- For over 12 properties we want to show 12 and collapse the rest -->\n <div\n v-if=\"partitionedSchema\"\n class=\"request-body-schema\">\n <Schema\n :breadcrumb\n compact\n :compositionPath=\"['requestBody']\"\n :eventBus=\"eventBus\"\n :name=\"translate('operation.requestBody')\"\n noncollapsible\n :options=\"{\n hideReadOnly: true,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n expandAllSchemaProperties: options.expandAllSchemaProperties,\n document,\n }\"\n :schema=\"partitionedSchema.visibleProperties\"\n schemaContext=\"requestBody\" />\n\n <Schema\n additionalProperties\n :breadcrumb\n compact\n :compositionPath=\"['requestBody']\"\n :eventBus=\"eventBus\"\n hideDescription\n :name=\"translate('operation.requestBody')\"\n :options=\"{\n hideReadOnly: true,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n expandAllSchemaProperties: options.expandAllSchemaProperties,\n document,\n }\"\n :schema=\"partitionedSchema.collapsedProperties\"\n schemaContext=\"requestBody\" />\n </div>\n\n <!-- Show em all 12 and under -->\n <div\n v-else-if=\"schema\"\n class=\"request-body-schema\">\n <Schema\n :breadcrumb\n compact\n :compositionPath=\"['requestBody']\"\n :eventBus=\"eventBus\"\n :hideReadOnly=\"true\"\n :name=\"translate('operation.requestBody')\"\n noncollapsible\n :options=\"{\n hideReadOnly: true,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n expandAllSchemaProperties: options.expandAllSchemaProperties,\n document,\n }\"\n :schema=\"schema\"\n schemaContext=\"requestBody\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.request-body {\n margin-top: 24px;\n}\n.request-body-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 12px;\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n flex-flow: wrap;\n}\n.request-body-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: var(--scalar-font-size-2);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n.request-body-required {\n font-size: var(--scalar-micro);\n color: var(--scalar-color-orange);\n font-weight: normal;\n border-radius: 16px;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n padding: 2px 8px;\n height: 20px;\n}\n.request-body-description {\n margin-top: 6px;\n font-size: var(--scalar-small);\n width: 100%;\n}\n\n.request-body-header\n + .request-body-schema:has(> .schema-card > .schema-card-description),\n.request-body-header\n + .request-body-schema:has(\n > .schema-card > .schema-properties > * > .property--level-0\n ) {\n /** Add a bit of space between the heading border and the schema description or properties */\n padding-top: 8px;\n}\n.request-body-description :deep(.markdown) * {\n color: var(--scalar-color-2) !important;\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"RequestBody.vue.script.js","names":[],"sources":["../../../../src/features/Operation/components/RequestBody.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type {\n OpenApiDocument,\n RequestBodyObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nimport { Schema } from '@/components/Content/Schema'\nimport { inferDiscriminatorMappingComposition } from '@/components/Content/Schema/helpers/get-compositions-to-render'\nimport { isTypeObject } from '@/components/Content/Schema/helpers/is-type-object'\nimport { getModelNameFromSchema } from '@/components/Content/Schema/helpers/schema-name'\nimport {\n reduceNamesToObject,\n sortPropertyNames,\n} from '@/components/Content/Schema/helpers/sort-property-names'\nimport LinkButton from '@/components/Content/Schema/LinkButton.vue'\nimport { useLocalization } from '@/features/localization'\n\nimport ContentTypeSelect from './ContentTypeSelect.vue'\n\nconst { requestBody, options, document } = defineProps<{\n breadcrumb?: string[]\n requestBody?: RequestBodyObject\n eventBus: WorkspaceEventBus | null\n /** The document the request body belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n options: {\n orderRequiredPropertiesFirst: boolean | undefined\n orderSchemaPropertiesBy: 'alpha' | 'preserve' | undefined\n hideModels: boolean | undefined\n expandAllSchemaProperties: boolean | undefined\n }\n}>()\nconst { translate } = useLocalization()\n\n/**\n * The maximum number of properties to show in the request body schema.\n */\nconst MAX_VISIBLE_PROPERTIES = 12\n\nconst availableContentTypes = computed(() =>\n Object.keys(requestBody?.content ?? {}),\n)\n\nconst selectedContentType = defineModel<string>('selectedContentType', {\n default: 'application/json',\n})\n\nif (requestBody?.content) {\n if (availableContentTypes.value[0]) {\n selectedContentType.value = availableContentTypes.value[0]\n }\n}\n\n/** Raw schema (possibly with $ref) for the selected content type */\nconst rawSchema = computed(\n () => requestBody?.content?.[selectedContentType.value]?.schema,\n)\n\nconst schema = computed(() => getResolvedRef(rawSchema.value))\n\n/** When the schema is a $ref, preserve its name so the UI can show the ref name instead of just the type. */\nconst modelLink = computed(\n () => (rawSchema.value && getModelNameFromSchema(rawSchema.value)) ?? null,\n)\n\n/**\n * Splits schema properties into visible and collapsed sections when there are more than 12 properties.\n * Returns null for schemas with fewer properties or non-object schemas.\n */\nconst partitionedSchema = computed(() => {\n // Early return if not an object schema\n if (!schema.value || !isTypeObject(schema.value)) {\n return null\n }\n\n // A schema whose variants are inferred from a `discriminator.mapping` renders\n // as a single variant selector, not a flat property list. Splitting it would\n // duplicate that selector across the visible and collapsed blocks, so we keep\n // it whole. See https://github.com/scalar/scalar/issues/7472\n if (inferDiscriminatorMappingComposition(schema.value, document)) {\n return null\n }\n\n // Lets sort the names first\n const sortedNames = sortPropertyNames(\n schema.value,\n schema.value.discriminator,\n {\n hideReadOnly: true,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n },\n )\n\n if (sortedNames.length <= MAX_VISIBLE_PROPERTIES) {\n return null\n }\n\n // Destructure everything except properties\n const { properties, ...schemaMetadata } = schema.value\n if (!properties) {\n return null\n }\n\n return {\n visibleProperties: {\n ...schemaMetadata,\n properties: reduceNamesToObject(\n sortedNames.slice(0, MAX_VISIBLE_PROPERTIES),\n properties,\n ),\n },\n collapsedProperties: {\n ...schemaMetadata,\n properties: reduceNamesToObject(\n sortedNames.slice(MAX_VISIBLE_PROPERTIES),\n properties,\n ),\n },\n }\n})\n\n/**\n * We don't want to render the request body if its completely empty\n * @example\n * {\n * \"content\": {},\n * }\n */\nconst shouldRenderRequestBody = computed(\n () =>\n Object.keys(requestBody?.content ?? {}).length > 0 ||\n requestBody?.description ||\n requestBody?.required,\n)\n</script>\n<template>\n <div\n v-if=\"requestBody && shouldRenderRequestBody\"\n :aria-label=\"translate('operation.requestBody')\"\n class=\"request-body\"\n role=\"group\">\n <div class=\"request-body-header\">\n <div class=\"request-body-title\">\n <slot name=\"title\" />\n <span\n v-if=\"modelLink\"\n class=\"text-c-2 text-xs leading-none font-normal\"\n data-testid=\"request-body-schema-name\">\n <span class=\"text-c-3 mx-1.5\">·</span>\n <LinkButton\n v-if=\"eventBus && modelLink.schemaKey\"\n @click=\"\n 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 </span>\n </div>\n <div class=\"flex items-center gap-2\">\n <div\n v-if=\"requestBody.required\"\n class=\"request-body-required\">\n {{ translate('common.required') }}\n </div>\n <ContentTypeSelect\n v-model=\"selectedContentType\"\n :content=\"requestBody.content\" />\n </div>\n <div\n v-if=\"requestBody.description\"\n class=\"request-body-description\">\n <ScalarMarkdown :value=\"requestBody.description\" />\n </div>\n </div>\n\n <!-- For over 12 properties we want to show 12 and collapse the rest -->\n <div\n v-if=\"partitionedSchema\"\n class=\"request-body-schema\">\n <Schema\n :breadcrumb\n compact\n :compositionPath=\"['requestBody']\"\n :eventBus=\"eventBus\"\n :name=\"translate('operation.requestBody')\"\n noncollapsible\n :options=\"{\n hideReadOnly: true,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n expandAllSchemaProperties: options.expandAllSchemaProperties,\n document,\n }\"\n :schema=\"partitionedSchema.visibleProperties\"\n schemaContext=\"requestBody\" />\n\n <Schema\n additionalProperties\n :breadcrumb\n compact\n :compositionPath=\"['requestBody']\"\n :eventBus=\"eventBus\"\n hideDescription\n :name=\"translate('operation.requestBody')\"\n :options=\"{\n hideReadOnly: true,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n expandAllSchemaProperties: options.expandAllSchemaProperties,\n document,\n }\"\n :schema=\"partitionedSchema.collapsedProperties\"\n schemaContext=\"requestBody\" />\n </div>\n\n <!-- Show em all 12 and under -->\n <div\n v-else-if=\"schema\"\n class=\"request-body-schema\">\n <Schema\n :breadcrumb\n compact\n :compositionPath=\"['requestBody']\"\n :eventBus=\"eventBus\"\n :hideReadOnly=\"true\"\n :name=\"translate('operation.requestBody')\"\n noncollapsible\n :options=\"{\n hideReadOnly: true,\n orderRequiredPropertiesFirst: options.orderRequiredPropertiesFirst,\n orderSchemaPropertiesBy: options.orderSchemaPropertiesBy,\n expandAllSchemaProperties: options.expandAllSchemaProperties,\n document,\n }\"\n :schema=\"schema\"\n schemaContext=\"requestBody\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.request-body {\n margin-top: 24px;\n}\n.request-body-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 12px;\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n flex-flow: wrap;\n}\n.request-body-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: var(--scalar-font-size-2);\n font-weight: var(--scalar-semibold);\n color: var(--scalar-color-1);\n}\n.request-body-required {\n font-size: var(--scalar-micro);\n color: var(--scalar-color-orange);\n font-weight: normal;\n border-radius: 16px;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n padding: 2px 8px;\n height: 20px;\n}\n.request-body-description {\n margin-top: 6px;\n font-size: var(--scalar-small);\n width: 100%;\n}\n\n.request-body-header\n + .request-body-schema:has(> .schema-card > .schema-card-description),\n.request-body-header\n + .request-body-schema:has(\n > .schema-card > .schema-properties > * > .property--level-0\n ) {\n /** Add a bit of space between the heading border and the schema description or properties */\n padding-top: 8px;\n}\n.request-body-description :deep(.markdown) * {\n color: var(--scalar-color-2) !important;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,IAAM,yBAAyB;;;;;;;;;;;;;;;EAL/B,MAAM,EAAE,cAAc,iBAAgB;;;;EAOtC,MAAM,wBAAwB,eAC5B,OAAO,KAAK,QAAA,aAAa,WAAW,EAAE,CAAC,CACzC;EAEA,MAAM,sBAAsB,SAAmB,SAAC,sBAE/C;AAED,MAAI,QAAA,aAAa;OACX,sBAAsB,MAAM,GAC9B,qBAAoB,QAAQ,sBAAsB,MAAM;;;EAK5D,MAAM,YAAY,eACV,QAAA,aAAa,UAAU,oBAAoB,QAAQ,OAC3D;EAEA,MAAM,SAAS,eAAe,eAAe,UAAU,MAAM,CAAA;;EAG7D,MAAM,YAAY,gBACT,UAAU,SAAS,uBAAuB,UAAU,MAAM,KAAK,KACxE;;;;;EAMA,MAAM,oBAAoB,eAAe;AAEvC,OAAI,CAAC,OAAO,SAAS,CAAC,aAAa,OAAO,MAAM,CAC9C,QAAO;AAOT,OAAI,qCAAqC,OAAO,OAAO,QAAA,SAAS,CAC9D,QAAO;GAIT,MAAM,cAAc,kBAClB,OAAO,OACP,OAAO,MAAM,eACb;IACE,cAAc;IACd,yBAAyB,QAAA,QAAQ;IACjC,8BAA8B,QAAA,QAAQ;IACvC,CACH;AAEA,OAAI,YAAY,UAAU,uBACxB,QAAO;GAIT,MAAM,EAAE,YAAY,GAAG,mBAAmB,OAAO;AACjD,OAAI,CAAC,WACH,QAAO;AAGT,UAAO;IACL,mBAAmB;KACjB,GAAG;KACH,YAAY,oBACV,YAAY,MAAM,GAAG,uBAAuB,EAC5C,WACD;KACF;IACD,qBAAqB;KACnB,GAAG;KACH,YAAY,oBACV,YAAY,MAAM,uBAAuB,EACzC,WACD;KACF;IACH;IACD;;;;;;;;EASD,MAAM,0BAA0B,eAE5B,OAAO,KAAK,QAAA,aAAa,WAAW,EAAE,CAAC,CAAC,SAAS,KACjD,QAAA,aAAa,eACb,QAAA,aAAa,SACjB;;UAIU,QAAA,eAAe,wBAAA,SAAA,WAAA,EADvB,mBAwGM,OAAA;;IAtGH,cAAY,MAAA,UAAS,CAAA,wBAAA;IACtB,OAAM;IACN,MAAK;OACL,mBAmCM,OAnCN,YAmCM;IAlCJ,mBAkBM,OAlBN,YAkBM,CAjBJ,WAAqB,KAAA,QAAA,SAAA,EAAA,EAAA,KAAA,GAAA,KAAA,EAEb,UAAA,SAAA,WAAA,EADR,mBAeO,QAfP,YAeO,CAAA,OAAA,OAAA,OAAA,KAXL,mBAAsC,QAAA,EAAhC,OAAM,mBAAiB,EAAC,KAAC,GAAA,GAEvB,QAAA,YAAY,UAAA,MAAU,aAAA,WAAA,EAD9B,YAQa,oBAAA;;KANV,SAAK,OAAA,OAAA,OAAA,MAAA,WAAiB,QAAA,SAAS,KAAI,2BAAA,EAAA,MAAoD,UAAA,MAAU,WAAA,CAAA;;4BAK7E,CAAA,gBAAA,gBAAlB,UAAA,MAAU,MAAK,EAAA,EAAA,CAAA,CAAA;;wBAEpB,mBAAiD,UAAA,EAAA,KAAA,GAAA,EAAA,CAAA,gBAAA,gBAA7B,UAAA,MAAU,MAAK,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA;IAGvC,mBASM,OATN,YASM,CAPI,QAAA,YAAY,YAAA,WAAA,EADpB,mBAIM,OAJN,YAIM,gBADD,MAAA,UAAS,CAAA,kBAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,EAEd,YAEmC,2BAAA;iBADxB,oBAAA;sFAAmB,QAAA;KAC3B,SAAS,QAAA,YAAY;;IAGlB,QAAA,YAAY,eAAA,WAAA,EADpB,mBAIM,OAJN,YAIM,CADJ,YAAmD,MAAA,eAAA,EAAA,EAAlC,OAAO,QAAA,YAAY,aAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;OAMhC,kBAAA,SAAA,WAAA,EADR,mBAqCM,OArCN,YAqCM,CAlCJ,YAegC,MAAA,eAAA,EAAA;IAd7B,YAAA,QAAA;IACD,SAAA;IACC,iBAAiB,CAAA,cAAe;IAChC,UAAU,QAAA;IACV,MAAM,MAAA,UAAS,CAAA,wBAAA;IAChB,gBAAA;IACC,SAAO;;mCAA0E,QAAA,QAAQ;8BAAiE,QAAA,QAAQ;gCAA8D,QAAA,QAAQ;eAAqC,QAAA;;IAO7Q,QAAQ,kBAAA,MAAkB;IAC3B,eAAc;;;;;;;OAEhB,YAgBgC,MAAA,eAAA,EAAA;IAf9B,sBAAA;IACC,YAAA,QAAA;IACD,SAAA;IACC,iBAAiB,CAAA,cAAe;IAChC,UAAU,QAAA;IACX,iBAAA;IACC,MAAM,MAAA,UAAS,CAAA,wBAAA;IACf,SAAO;;mCAA0E,QAAA,QAAQ;8BAAiE,QAAA,QAAQ;gCAA8D,QAAA,QAAQ;eAAqC,QAAA;;IAO7Q,QAAQ,kBAAA,MAAkB;IAC3B,eAAc;;;;;;;WAKL,OAAA,SAAA,WAAA,EADb,mBAoBM,OApBN,YAoBM,CAjBJ,YAgBgC,MAAA,eAAA,EAAA;IAf7B,YAAA,QAAA;IACD,SAAA;IACC,iBAAiB,CAAA,cAAe;IAChC,UAAU,QAAA;IACV,cAAc;IACd,MAAM,MAAA,UAAS,CAAA,wBAAA;IAChB,gBAAA;IACC,SAAO;;mCAA0E,QAAA,QAAQ;8BAAiE,QAAA,QAAQ;gCAA8D,QAAA,QAAQ;eAAqC,QAAA;;IAO7Q,QAAQ,OAAA;IACT,eAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModernLayout.vue.script.js","names":[],"sources":["../../../../src/features/Operation/layouts/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CodeExample } from '@scalar/blocks/code-example'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { ScalarIconWebhooksLogo } from '@scalar/icons'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, provide, ref, useId } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Badge } from '@/components/Badge'\nimport { LinkList } from '@/components/LinkList'\nimport OperationPath from '@/components/OperationPath.vue'\nimport { Section, SectionContent, SectionHeaderTag } from '@/components/Section'\nimport AskAgentButton from '@/features/ask-agent-button/AskAgentButton.vue'\nimport { ExampleResponses } from '@/features/example-responses'\nimport { ExternalDocs } from '@/features/external-docs'\nimport { useLocalization } from '@/features/localization'\nimport Callbacks from '@/features/Operation/components/callbacks/Callbacks.vue'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport SecurityRequirementBadge from '@/features/Operation/components/SecurityRequirementBadge.vue'\nimport type { RequiredSecurity } from '@/features/Operation/helpers/get-required-security'\nimport {\n getOperationStability,\n getOperationStabilityColor,\n isOperationDeprecated,\n} from '@/features/Operation/helpers/operation-stability'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\nimport {\n REQUEST_BODY_COMPOSITION_INDEX_SYMBOL,\n type RequestBodyCompositionSelection,\n} from '@/features/Operation/request-body-composition-index'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport SpecificationExtension from '@/features/specification-extension/SpecificationExtension.vue'\nimport { TestRequestButton } from '@/features/test-request-button'\nimport { XBadges } from '@/features/x-badges'\n\nconst {\n clientOptions,\n document,\n eventBus,\n isWebhook,\n method,\n operation,\n options,\n path,\n requiredSecurity,\n selectedServer,\n selectedSecuritySchemes,\n selectedClient,\n selectedExample,\n} = defineProps<\n Omit<\n OperationProps,\n | 'document'\n | 'pathValue'\n | 'server'\n | 'isCollapsed'\n | 'securitySchemes'\n | 'authStore'\n > & {\n /** Operation object with path params */\n operation: OperationObject\n /** The selected server for the operation */\n selectedServer: ServerObject | null\n /** The selected security schemes for the operation */\n selectedSecuritySchemes: SecuritySchemeObjectSecret[]\n /** Required/optional security state for the badge next to the path */\n requiredSecurity: RequiredSecurity\n /** The document the operation belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n }\n>()\nconst { translate } = useLocalization()\n\nconst operationTitle = computed(() => operation.summary || path || '')\n\nconst labelId = useId()\n\nconst operationExtensions = computed(() => getXKeysFromObject(operation))\n\n/** Track the selected request body content type so the code sample stays in sync */\nconst selectedRequestBodyContentType = ref<string | undefined>()\n\n/** Selected request body oneOf/anyOf variants; synced with schema dropdowns and code sample */\nconst requestBodyCompositionSelection = ref<RequestBodyCompositionSelection>({})\n\nconst requestBodyCompositionSelectionForCodeSample = computed(\n (): RequestBodyCompositionSelection => ({\n ...requestBodyCompositionSelection.value,\n }),\n)\n\nconst requestBodyCompositionSelectionKey = computed(() =>\n JSON.stringify(requestBodyCompositionSelectionForCodeSample.value),\n)\n\nprovide(REQUEST_BODY_COMPOSITION_INDEX_SYMBOL, requestBodyCompositionSelection)\n</script>\n\n<template>\n <Section\n :id=\"id\"\n :aria-labelledby=\"labelId\"\n :label=\"operationTitle\"\n tabindex=\"-1\"\n @intersecting=\"() => eventBus?.emit('intersecting:nav-item', { id })\">\n <SectionContent>\n <!-- Badges -->\n <div class=\"flex flex-row justify-between gap-1\">\n <!-- Left -->\n <div class=\"flex gap-1\">\n <!-- Operation ID -->\n <Badge v-if=\"options?.showOperationId && operation.operationId\">\n {{ operation.operationId }}\n </Badge>\n <!-- Stability badge -->\n <Badge\n v-if=\"getOperationStability(operation)\"\n class=\"capitalize\"\n :class=\"getOperationStabilityColor(operation)\">\n {{ getOperationStability(operation) }}\n </Badge>\n <!-- Webhook badge -->\n <Badge\n v-if=\"isWebhook\"\n class=\"font-code text-green flex w-fit items-center justify-center gap-1\">\n <ScalarIconWebhooksLogo weight=\"bold\" />\n {{ translate('operation.webhook') }}\n </Badge>\n <!-- x-badges before -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"before\" />\n </div>\n <!-- Right -->\n <div class=\"flex gap-1\">\n <!-- x-badges after -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"after\" />\n </div>\n </div>\n <div class=\"operation-layout\">\n <!-- Title -->\n <div\n class=\"operation-title\"\n :class=\"isOperationDeprecated(operation) && 'deprecated'\">\n <Anchor\n @copyAnchorUrl=\"() => eventBus?.emit('copy-url:nav-item', { id })\">\n <SectionHeaderTag\n :id=\"labelId\"\n :level=\"3\">\n {{ operationTitle }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <!-- Required auth badge -->\n <div class=\"operation-auth\">\n <SecurityRequirementBadge :requiredSecurity />\n </div>\n\n <!-- Description -->\n <div class=\"operation-description\">\n <SpecificationExtension :value=\"operationExtensions\" />\n <ScalarMarkdown\n :anchorPrefix=\"id\"\n :aria-label=\"translate('common.description')\"\n role=\"group\"\n transformType=\"heading\"\n :value=\"operation.description\"\n withAnchors\n withImages />\n </div>\n\n <!--\n Parameters, request body, responses and callbacks.\n\n This block is kept before the examples in source order on purpose: the\n request body schema (via SchemaComposition) seeds the shared\n requestBodyCompositionSelection on mount, which drives the\n CodeExample's :key. Mounting the details first means the code\n sample reads the final key on its first render and is never remounted —\n a remount would reset the selected client and tear down an open client\n picker. The grid (see grid-template-areas below) still paints the\n examples on the right, independent of this source order.\n -->\n <div class=\"operation-details\">\n <OperationParameters\n v-model:selectedContentType=\"selectedRequestBodyContentType\"\n :breadcrumb=\"[id]\"\n :document\n :eventBus\n :options\n :parameters=\"operation.parameters\"\n :requestBody=\"getResolvedRef(operation.requestBody)\" />\n <OperationResponses\n :breadcrumb=\"[id]\"\n :collapsableItems=\"!options.expandAllResponses\"\n :document\n :eventBus\n :options\n :responses=\"operation.responses\" />\n\n <!-- Callbacks -->\n <ScalarErrorBoundary>\n <Callbacks\n v-if=\"operation.callbacks\"\n :callbacks=\"operation.callbacks\"\n class=\"mt-6\"\n :document\n :eventBus\n :options\n :path />\n </ScalarErrorBoundary>\n </div>\n\n <!-- Example request and responses -->\n <div class=\"examples\">\n <!-- External Docs -->\n <LinkList v-if=\"operation.externalDocs\">\n <ExternalDocs :value=\"operation.externalDocs\" />\n </LinkList>\n\n <!-- New Example Request -->\n <ScalarErrorBoundary>\n <CodeExample\n :key=\"requestBodyCompositionSelectionKey\"\n :clientOptions\n :eventBus\n fallback\n :isWebhook\n :method\n :operation\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \"\n :securitySchemes=\"selectedSecuritySchemes\"\n :selectedClient\n :selectedContentType=\"selectedRequestBodyContentType\"\n :selectedExample\n :selectedServer>\n <template #header>\n <OperationPath\n class=\"font-code text-c-2 [&_em]:text-c-1 min-w-0 [&_em]:not-italic\"\n :deprecated=\"operation?.deprecated\"\n :path=\"path\" />\n </template>\n <template\n v-if=\"!isWebhook\"\n #footer=\"{ exampleName }\">\n <div class=\"flex\">\n <AskAgentButton />\n <TestRequestButton\n v-if=\"!options.hideTestRequestButton\"\n :id\n :eventBus\n :exampleName\n :method\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \" />\n </div>\n </template>\n </CodeExample>\n </ScalarErrorBoundary>\n\n <ScalarErrorBoundary>\n <ExampleResponses\n v-if=\"operation.responses\"\n :eventBus\n :responses=\"operation.responses\"\n :selectedExample\n style=\"margin-top: 12px\" />\n </ScalarErrorBoundary>\n </div>\n </div>\n </SectionContent>\n </Section>\n</template>\n\n<style scoped>\n/*\n * The operation is a single grid so the request example can sit beside the\n * details on wide screens, then be lifted directly under the description when\n * the layout collapses (see the container query below). Vertical rhythm comes\n * from element margins rather than row-gap, because the details block carries\n * its own leading margin (mt-6) that already spaces it from whatever precedes\n * it — a row-gap would double that gap.\n */\n.operation-layout {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto 1fr;\n grid-template-areas:\n 'heading badge'\n 'description examples'\n 'details examples';\n column-gap: 48px;\n row-gap: 0;\n}\n\n.operation-title {\n grid-area: heading;\n margin-bottom: 12px;\n\n /* Mirror the shared section header typography (see SectionHeader.vue) */\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n color: var(--scalar-color-1);\n line-height: 1.45;\n}\n\n.operation-auth {\n grid-area: badge;\n justify-self: end;\n align-self: start;\n}\n\n.operation-description {\n grid-area: description;\n min-width: 0;\n}\n\n.operation-details {\n grid-area: details;\n min-width: 0;\n}\n\n.examples {\n grid-area: examples;\n align-self: start;\n min-width: 0;\n\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n\n.examples > * {\n max-height: calc((var(--refs-viewport-height) - 60px) / 2);\n position: relative;\n}\n\n.examples > *:first-of-type:last-of-type {\n max-height: calc((var(--refs-viewport-height) - 60px));\n}\n\n/*\n * Don't constrain card height on mobile\n * (or zoomed in screens)\n */\n@media (max-width: 600px) {\n .examples > * {\n max-height: unset;\n }\n}\n\n.deprecated * {\n text-decoration: line-through;\n}\n\n/*\n * On narrow containers the layout collapses to a single column: the request\n * example is lifted directly under the description, and the auth badge becomes\n * an eyebrow above the title.\n */\n@container narrow-references-container (max-width: 900px) {\n .operation-layout {\n grid-template-columns: 1fr;\n grid-template-areas:\n 'badge'\n 'heading'\n 'description'\n 'examples'\n 'details';\n column-gap: 0;\n }\n\n .operation-auth {\n justify-self: start;\n margin-bottom: 4px;\n }\n\n .operation-title {\n margin-bottom: 24px;\n }\n\n .operation-description {\n margin-bottom: 24px;\n }\n\n /* Don't make the examples sticky on narrow viewports */\n .examples {\n position: static;\n }\n}\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModernLayout.vue.script.js","names":[],"sources":["../../../../src/features/Operation/layouts/ModernLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CodeExample } from '@scalar/blocks/code-example'\nimport { ScalarErrorBoundary } from '@scalar/components/error-boundary'\nimport { ScalarMarkdown } from '@scalar/components/markdown'\nimport { ScalarIconWebhooksLogo } from '@scalar/icons'\nimport { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref'\nimport type { SecuritySchemeObjectSecret } from '@scalar/workspace-store/request-example'\nimport type {\n OpenApiDocument,\n OperationObject,\n ServerObject,\n} from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed, provide, ref, useId } from 'vue'\n\nimport { Anchor } from '@/components/Anchor'\nimport { Badge } from '@/components/Badge'\nimport { LinkList } from '@/components/LinkList'\nimport OperationPath from '@/components/OperationPath.vue'\nimport { Section, SectionContent, SectionHeaderTag } from '@/components/Section'\nimport AskAgentButton from '@/features/ask-agent-button/AskAgentButton.vue'\nimport { ExampleResponses } from '@/features/example-responses'\nimport { ExternalDocs } from '@/features/external-docs'\nimport { useLocalization } from '@/features/localization'\nimport Callbacks from '@/features/Operation/components/callbacks/Callbacks.vue'\nimport OperationParameters from '@/features/Operation/components/OperationParameters.vue'\nimport OperationResponses from '@/features/Operation/components/OperationResponses.vue'\nimport SecurityRequirementBadge from '@/features/Operation/components/SecurityRequirementBadge.vue'\nimport type { RequiredSecurity } from '@/features/Operation/helpers/get-required-security'\nimport {\n getOperationStability,\n getOperationStabilityColor,\n isOperationDeprecated,\n} from '@/features/Operation/helpers/operation-stability'\nimport type { OperationProps } from '@/features/Operation/Operation.vue'\nimport {\n REQUEST_BODY_COMPOSITION_INDEX_SYMBOL,\n type RequestBodyCompositionSelection,\n} from '@/features/Operation/request-body-composition-index'\nimport { getXKeysFromObject } from '@/features/specification-extension'\nimport SpecificationExtension from '@/features/specification-extension/SpecificationExtension.vue'\nimport { TestRequestButton } from '@/features/test-request-button'\nimport { XBadges } from '@/features/x-badges'\n\nconst {\n clientOptions,\n document,\n eventBus,\n isWebhook,\n method,\n operation,\n options,\n path,\n requiredSecurity,\n selectedServer,\n selectedSecuritySchemes,\n selectedClient,\n selectedExample,\n} = defineProps<\n Omit<\n OperationProps,\n | 'document'\n | 'pathValue'\n | 'server'\n | 'isCollapsed'\n | 'securitySchemes'\n | 'authStore'\n > & {\n /** Operation object with path params */\n operation: OperationObject\n /** The selected server for the operation */\n selectedServer: ServerObject | null\n /** The selected security schemes for the operation */\n selectedSecuritySchemes: SecuritySchemeObjectSecret[]\n /** Required/optional security state for the badge next to the path */\n requiredSecurity: RequiredSecurity\n /** The document the operation belongs to, used to resolve schema references for display */\n document?: OpenApiDocument\n }\n>()\nconst { translate } = useLocalization()\n\nconst operationTitle = computed(() => operation.summary || path || '')\n\nconst labelId = useId()\n\nconst operationExtensions = computed(() => getXKeysFromObject(operation))\n\n/** Track the selected request body content type so the code sample stays in sync */\nconst selectedRequestBodyContentType = ref<string | undefined>()\n\n/** Selected request body oneOf/anyOf variants; synced with schema dropdowns and code sample */\nconst requestBodyCompositionSelection = ref<RequestBodyCompositionSelection>({})\n\nconst requestBodyCompositionSelectionForCodeSample = computed(\n (): RequestBodyCompositionSelection => ({\n ...requestBodyCompositionSelection.value,\n }),\n)\n\nconst requestBodyCompositionSelectionKey = computed(() =>\n JSON.stringify(requestBodyCompositionSelectionForCodeSample.value),\n)\n\nprovide(REQUEST_BODY_COMPOSITION_INDEX_SYMBOL, requestBodyCompositionSelection)\n</script>\n\n<template>\n <Section\n :id=\"id\"\n :aria-labelledby=\"labelId\"\n :label=\"operationTitle\"\n tabindex=\"-1\"\n @intersecting=\"() => eventBus?.emit('intersecting:nav-item', { id })\">\n <SectionContent>\n <!-- Badges -->\n <div class=\"flex flex-row justify-between gap-1\">\n <!-- Left -->\n <div class=\"flex gap-1\">\n <!-- Operation ID -->\n <Badge v-if=\"options?.showOperationId && operation.operationId\">\n {{ operation.operationId }}\n </Badge>\n <!-- Stability badge -->\n <Badge\n v-if=\"getOperationStability(operation)\"\n class=\"capitalize\"\n :class=\"getOperationStabilityColor(operation)\">\n {{ getOperationStability(operation) }}\n </Badge>\n <!-- Webhook badge -->\n <Badge\n v-if=\"isWebhook\"\n class=\"font-code text-green flex w-fit items-center justify-center gap-1\">\n <ScalarIconWebhooksLogo weight=\"bold\" />\n {{ translate('operation.webhook') }}\n </Badge>\n <!-- x-badges before -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"before\" />\n </div>\n <!-- Right -->\n <div class=\"flex gap-1\">\n <!-- x-badges after -->\n <XBadges\n :badges=\"operation['x-badges']\"\n position=\"after\" />\n </div>\n </div>\n <div class=\"operation-layout\">\n <!-- Title -->\n <div\n class=\"operation-title\"\n :class=\"isOperationDeprecated(operation) && 'deprecated'\">\n <Anchor\n @copyAnchorUrl=\"() => eventBus?.emit('copy-url:nav-item', { id })\">\n <SectionHeaderTag\n :id=\"labelId\"\n :level=\"3\">\n {{ operationTitle }}\n </SectionHeaderTag>\n </Anchor>\n </div>\n\n <!-- Required auth badge -->\n <div class=\"operation-auth\">\n <SecurityRequirementBadge :requiredSecurity />\n </div>\n\n <!-- Description -->\n <div class=\"operation-description\">\n <SpecificationExtension :value=\"operationExtensions\" />\n <ScalarMarkdown\n :anchorPrefix=\"id\"\n :aria-label=\"translate('common.description')\"\n role=\"group\"\n transformType=\"heading\"\n :value=\"operation.description\"\n withAnchors\n withImages />\n </div>\n\n <!--\n Parameters, request body, responses and callbacks.\n\n This block is kept before the examples in source order on purpose: the\n request body schema (via SchemaComposition) seeds the shared\n requestBodyCompositionSelection on mount, which drives the\n CodeExample's :key. Mounting the details first means the code\n sample reads the final key on its first render and is never remounted —\n a remount would reset the selected client and tear down an open client\n picker. The grid (see grid-template-areas below) still paints the\n examples on the right, independent of this source order.\n -->\n <div class=\"operation-details\">\n <OperationParameters\n v-model:selectedContentType=\"selectedRequestBodyContentType\"\n :breadcrumb=\"[id]\"\n :document\n :eventBus\n :options\n :parameters=\"operation.parameters\"\n :requestBody=\"getResolvedRef(operation.requestBody)\" />\n <OperationResponses\n :breadcrumb=\"[id]\"\n :collapsableItems=\"!options.expandAllResponses\"\n :document\n :eventBus\n :options\n :responses=\"operation.responses\" />\n\n <!-- Callbacks -->\n <ScalarErrorBoundary>\n <Callbacks\n v-if=\"operation.callbacks\"\n :callbacks=\"operation.callbacks\"\n class=\"mt-6\"\n :document\n :eventBus\n :options\n :path />\n </ScalarErrorBoundary>\n </div>\n\n <!-- Example request and responses -->\n <div class=\"examples\">\n <!-- External Docs -->\n <LinkList v-if=\"operation.externalDocs\">\n <ExternalDocs :value=\"operation.externalDocs\" />\n </LinkList>\n\n <!-- New Example Request -->\n <ScalarErrorBoundary>\n <CodeExample\n :key=\"requestBodyCompositionSelectionKey\"\n :clientOptions\n :eventBus\n fallback\n :isWebhook\n :method\n :operation\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \"\n :securitySchemes=\"selectedSecuritySchemes\"\n :selectedClient\n :selectedContentType=\"selectedRequestBodyContentType\"\n :selectedExample\n :selectedServer>\n <template #header>\n <OperationPath\n class=\"font-code text-c-2 [&_em]:text-c-1 min-w-0 [&_em]:not-italic\"\n :deprecated=\"operation?.deprecated\"\n :path=\"path\" />\n </template>\n <template\n v-if=\"!isWebhook\"\n #footer=\"{ exampleName }\">\n <div class=\"flex\">\n <AskAgentButton />\n <TestRequestButton\n v-if=\"!options.hideTestRequestButton\"\n :id\n :eventBus\n :exampleName\n :method\n :path\n :requestBodyCompositionSelection=\"\n requestBodyCompositionSelectionForCodeSample\n \" />\n </div>\n </template>\n </CodeExample>\n </ScalarErrorBoundary>\n\n <ScalarErrorBoundary>\n <ExampleResponses\n v-if=\"operation.responses\"\n :eventBus\n :responses=\"operation.responses\"\n :selectedExample\n style=\"margin-top: 12px\" />\n </ScalarErrorBoundary>\n </div>\n </div>\n </SectionContent>\n </Section>\n</template>\n\n<style scoped>\n/*\n * The operation is a single grid so the request example can sit beside the\n * details on wide screens, then be lifted directly under the description when\n * the layout collapses (see the container query below). Vertical rhythm comes\n * from element margins rather than row-gap, because the details block carries\n * its own leading margin (mt-6) that already spaces it from whatever precedes\n * it — a row-gap would double that gap.\n */\n.operation-layout {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto 1fr;\n grid-template-areas:\n 'heading badge'\n 'description examples'\n 'details examples';\n column-gap: 48px;\n row-gap: 0;\n}\n\n.operation-title {\n grid-area: heading;\n margin-bottom: 12px;\n\n /* Mirror the shared section header typography (see SectionHeader.vue) */\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n color: var(--scalar-color-1);\n line-height: 1.45;\n}\n\n.operation-auth {\n grid-area: badge;\n justify-self: end;\n align-self: start;\n}\n\n.operation-description {\n grid-area: description;\n min-width: 0;\n}\n\n.operation-details {\n grid-area: details;\n min-width: 0;\n}\n\n.examples {\n grid-area: examples;\n align-self: start;\n min-width: 0;\n\n position: sticky;\n top: calc(var(--refs-viewport-offset) + 24px);\n}\n\n.examples > * {\n max-height: calc((var(--refs-viewport-height) - 60px) / 2);\n position: relative;\n}\n\n.examples > *:first-of-type:last-of-type {\n max-height: calc((var(--refs-viewport-height) - 60px));\n}\n\n/*\n * Don't constrain card height on mobile\n * (or zoomed in screens)\n */\n@media (max-width: 600px) {\n .examples > * {\n max-height: unset;\n }\n}\n\n.deprecated * {\n text-decoration: line-through;\n}\n\n/*\n * On narrow containers the layout collapses to a single column: the request\n * example is lifted directly under the description, and the auth badge becomes\n * an eyebrow above the title.\n */\n@container narrow-references-container (max-width: 900px) {\n .operation-layout {\n grid-template-columns: 1fr;\n grid-template-areas:\n 'badge'\n 'heading'\n 'description'\n 'examples'\n 'details';\n column-gap: 0;\n }\n\n .operation-auth {\n justify-self: start;\n margin-bottom: 4px;\n }\n\n .operation-title {\n margin-bottom: 24px;\n }\n\n .operation-description {\n margin-bottom: 24px;\n }\n\n /* Don't make the examples sticky on narrow viewports */\n .examples {\n position: static;\n }\n}\n</style>\n"],"mappings":"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"}
package/dist/style.css CHANGED
@@ -2851,18 +2851,18 @@ input[data-v-a6f4752a]::placeholder {
2851
2851
  display: flex;
2852
2852
  }
2853
2853
 
2854
- .request-card[data-v-b977c9e1] {
2854
+ .request-card[data-v-e8761738] {
2855
2855
  color: var(--scalar-color-1);
2856
2856
  font-size: var(--scalar-font-size-3);
2857
2857
  }
2858
2858
 
2859
- .request-method[data-v-b977c9e1] {
2859
+ .request-method[data-v-e8761738] {
2860
2860
  font-family: var(--scalar-font-code);
2861
2861
  text-transform: uppercase;
2862
2862
  margin-right: 6px;
2863
2863
  }
2864
2864
 
2865
- .request-card-footer[data-v-b977c9e1] {
2865
+ .request-card-footer[data-v-e8761738] {
2866
2866
  flex-shrink: 0;
2867
2867
  justify-content: flex-end;
2868
2868
  padding: 6px;
@@ -2870,19 +2870,19 @@ input[data-v-a6f4752a]::placeholder {
2870
2870
  position: relative;
2871
2871
  }
2872
2872
 
2873
- .request-card-footer-addon[data-v-b977c9e1] {
2873
+ .request-card-footer-addon[data-v-e8761738] {
2874
2874
  flex: 1;
2875
2875
  align-items: center;
2876
2876
  min-width: 0;
2877
2877
  display: flex;
2878
2878
  }
2879
2879
 
2880
- .request-editor-section[data-v-b977c9e1] {
2880
+ .request-editor-section[data-v-e8761738] {
2881
2881
  flex: 1;
2882
2882
  display: flex;
2883
2883
  }
2884
2884
 
2885
- .request-card-simple[data-v-b977c9e1] {
2885
+ .request-card-simple[data-v-e8761738] {
2886
2886
  font-size: var(--scalar-small);
2887
2887
  justify-content: space-between;
2888
2888
  align-items: center;
@@ -2890,7 +2890,7 @@ input[data-v-a6f4752a]::placeholder {
2890
2890
  display: flex;
2891
2891
  }
2892
2892
 
2893
- .code-snippet[data-v-b977c9e1] {
2893
+ .code-snippet[data-v-e8761738] {
2894
2894
  flex-direction: column;
2895
2895
  width: 100%;
2896
2896
  display: flex;
@@ -10040,7 +10040,7 @@ code.property-detail-value[data-v-1295f965] {
10040
10040
  text-decoration: line-through;
10041
10041
  }
10042
10042
 
10043
- .property[data-v-f14a8d89] {
10043
+ .property[data-v-3bdda27e] {
10044
10044
  color: var(--scalar-color-1);
10045
10045
  display: flex;
10046
10046
  flex-direction: column;
@@ -10050,7 +10050,7 @@ code.property-detail-value[data-v-1295f965] {
10050
10050
  }
10051
10051
 
10052
10052
  /** Remove top padding for top level schema card */
10053
- .property.property--level-0[data-v-f14a8d89]:has(
10053
+ .property.property--level-0[data-v-3bdda27e]:has(
10054
10054
  > .property-rule
10055
10055
  > .schema-card
10056
10056
  > .schema-properties.schema-properties-open
@@ -10059,25 +10059,25 @@ code.property-detail-value[data-v-1295f965] {
10059
10059
  ) {
10060
10060
  padding-top: 0;
10061
10061
  }
10062
- .property--compact.property--level-0[data-v-f14a8d89],
10063
- .property--compact.property--level-1[data-v-f14a8d89] {
10062
+ .property--compact.property--level-0[data-v-3bdda27e],
10063
+ .property--compact.property--level-1[data-v-3bdda27e] {
10064
10064
  padding: 10px 0;
10065
10065
  }
10066
- .composition-panel .property.property.property.property--level-0[data-v-f14a8d89] {
10066
+ .composition-panel .property.property.property.property--level-0[data-v-3bdda27e] {
10067
10067
  padding: 0px;
10068
10068
  }
10069
10069
  .property--compact.property--level-0
10070
10070
  .composition-panel
10071
- .property--compact.property--level-1[data-v-f14a8d89] {
10071
+ .property--compact.property--level-1[data-v-3bdda27e] {
10072
10072
  padding: 8px;
10073
10073
  }
10074
10074
 
10075
10075
  /* if a property doesn't have a heading, remove the top padding */
10076
- .property[data-v-f14a8d89]:has(> .property-rule:nth-of-type(1)):not(.property--compact) {
10076
+ .property[data-v-3bdda27e]:has(> .property-rule:nth-of-type(1)):not(.property--compact) {
10077
10077
  padding-top: 8px;
10078
10078
  padding-bottom: 8px;
10079
10079
  }
10080
- .property--deprecated[data-v-f14a8d89] {
10080
+ .property--deprecated[data-v-3bdda27e] {
10081
10081
  background: repeating-linear-gradient(
10082
10082
  -45deg,
10083
10083
  var(--scalar-background-2) 0,
@@ -10087,49 +10087,49 @@ code.property-detail-value[data-v-1295f965] {
10087
10087
  );
10088
10088
  background-size: 100%;
10089
10089
  }
10090
- .property--deprecated[data-v-f14a8d89] > * {
10090
+ .property--deprecated[data-v-3bdda27e] > * {
10091
10091
  opacity: 0.75;
10092
10092
  }
10093
- .property-description[data-v-f14a8d89] {
10093
+ .property-description[data-v-3bdda27e] {
10094
10094
  margin-top: 6px;
10095
10095
  line-height: 1.4;
10096
10096
  font-size: var(--scalar-small);
10097
10097
  }
10098
- .property-description[data-v-f14a8d89]:has(+ .property-rule) {
10098
+ .property-description[data-v-3bdda27e]:has(+ .property-rule) {
10099
10099
  margin-bottom: 9px;
10100
10100
  }
10101
- [data-v-f14a8d89] .property-description * {
10101
+ [data-v-3bdda27e] .property-description * {
10102
10102
  color: var(--scalar-color-2) !important;
10103
10103
  }
10104
- .property[data-v-f14a8d89]:not(:last-of-type) {
10104
+ .property[data-v-3bdda27e]:not(:last-of-type) {
10105
10105
  border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);
10106
10106
  }
10107
- .property-description + .children[data-v-f14a8d89],
10108
- .children + .property-rule[data-v-f14a8d89] {
10107
+ .property-description + .children[data-v-3bdda27e],
10108
+ .children + .property-rule[data-v-3bdda27e] {
10109
10109
  margin-top: 9px;
10110
10110
  }
10111
- .children[data-v-f14a8d89] {
10111
+ .children[data-v-3bdda27e] {
10112
10112
  display: flex;
10113
10113
  flex-direction: column;
10114
10114
  }
10115
- .children .property--compact.property--level-1[data-v-f14a8d89] {
10115
+ .children .property--compact.property--level-1[data-v-3bdda27e] {
10116
10116
  padding: 12px;
10117
10117
  }
10118
- .property-example-value[data-v-f14a8d89] {
10118
+ .property-example-value[data-v-3bdda27e] {
10119
10119
  all: unset;
10120
10120
  font-family: var(--scalar-font-code);
10121
10121
  padding: 6px;
10122
10122
  border-top: var(--scalar-border-width) solid var(--scalar-border-color);
10123
10123
  }
10124
- .property-rule[data-v-f14a8d89] {
10124
+ .property-rule[data-v-3bdda27e] {
10125
10125
  border-radius: var(--scalar-radius-lg);
10126
10126
  display: flex;
10127
10127
  flex-direction: column;
10128
10128
  }
10129
- .property--level-2[data-v-f14a8d89] .relative > button {
10129
+ .property--level-2[data-v-3bdda27e] .relative > button {
10130
10130
  left: -2rem;
10131
10131
  }
10132
- .property-rule[data-v-f14a8d89]
10132
+ .property-rule[data-v-3bdda27e]
10133
10133
 
10134
10134
  .composition-panel
10135
10135
  .schema-card--level-1
@@ -10137,7 +10137,7 @@ code.property-detail-value[data-v-1295f965] {
10137
10137
  {
10138
10138
  border-radius: 0 0 var(--scalar-radius-lg) var(--scalar-radius-lg);
10139
10139
  }
10140
- .property-rule[data-v-f14a8d89]
10140
+ .property-rule[data-v-3bdda27e]
10141
10141
  .composition-panel > .schema-card > .schema-card-description {
10142
10142
  padding: 10px;
10143
10143
  border-left: var(--scalar-border-width) solid var(--scalar-border-color);
@@ -10146,29 +10146,29 @@ code.property-detail-value[data-v-1295f965] {
10146
10146
  margin-top: 0;
10147
10147
  }
10148
10148
  }
10149
- .property-example[data-v-f14a8d89] {
10149
+ .property-example[data-v-3bdda27e] {
10150
10150
  background: transparent;
10151
10151
  border: none;
10152
10152
  display: flex;
10153
10153
  flex-direction: row;
10154
10154
  gap: 8px;
10155
10155
  }
10156
- .property-example-label[data-v-f14a8d89],
10157
- .property-example-value[data-v-f14a8d89] {
10156
+ .property-example-label[data-v-3bdda27e],
10157
+ .property-example-value[data-v-3bdda27e] {
10158
10158
  padding: 3px 0 0 0;
10159
10159
  }
10160
- .property-example-value[data-v-f14a8d89] {
10160
+ .property-example-value[data-v-3bdda27e] {
10161
10161
  background: var(--scalar-background-2);
10162
10162
  border-top: 0;
10163
10163
  border-radius: var(--scalar-radius);
10164
10164
  padding: 3px 4px;
10165
10165
  }
10166
- .property-name[data-v-f14a8d89] {
10166
+ .property-name[data-v-3bdda27e] {
10167
10167
  font-family: var(--scalar-font-code);
10168
10168
  font-weight: var(--scalar-semibold);
10169
10169
  }
10170
- .property-name-additional-properties[data-v-f14a8d89]::before,
10171
- .property-name-pattern-properties[data-v-f14a8d89]::before {
10170
+ .property-name-additional-properties[data-v-3bdda27e]::before,
10171
+ .property-name-pattern-properties[data-v-3bdda27e]::before {
10172
10172
  text-transform: uppercase;
10173
10173
  font-size: var(--scalar-micro);
10174
10174
  display: inline-block;
@@ -10179,11 +10179,11 @@ code.property-detail-value[data-v-1295f965] {
10179
10179
  background-color: var(--scalar-background-2);
10180
10180
  margin-right: 4px;
10181
10181
  }
10182
- .property-name-pattern-properties[data-v-f14a8d89]::before {
10182
+ .property-name-pattern-properties[data-v-3bdda27e]::before {
10183
10183
  content: 'regex';
10184
10184
  }
10185
- .property-name-additional-properties[data-v-f14a8d89],
10186
- .property-name-pattern-properties[data-v-f14a8d89] {
10185
+ .property-name-additional-properties[data-v-3bdda27e],
10186
+ .property-name-pattern-properties[data-v-3bdda27e] {
10187
10187
  border: 1px dashed var(--scalar-border-color);
10188
10188
  color: var(--scalar-color-accent);
10189
10189
  display: inline-block;
@@ -10191,14 +10191,14 @@ code.property-detail-value[data-v-1295f965] {
10191
10191
  border-radius: var(--scalar-radius);
10192
10192
  }
10193
10193
 
10194
- .error[data-v-b482770e] {
10194
+ .error[data-v-e811e294] {
10195
10195
  background-color: var(--scalar-color-red);
10196
10196
  }
10197
- .schema-card[data-v-b482770e] {
10197
+ .schema-card[data-v-e811e294] {
10198
10198
  font-size: var(--scalar-font-size-4);
10199
10199
  color: var(--scalar-color-1);
10200
10200
  }
10201
- .schema-card-title[data-v-b482770e] {
10201
+ .schema-card-title[data-v-e811e294] {
10202
10202
  height: var(--schema-title-height);
10203
10203
 
10204
10204
  padding: 6px 8px;
@@ -10212,48 +10212,48 @@ code.property-detail-value[data-v-1295f965] {
10212
10212
  font-size: var(--scalar-mini);
10213
10213
  border-bottom: var(--scalar-border-width) solid transparent;
10214
10214
  }
10215
- button.schema-card-title[data-v-b482770e] {
10215
+ button.schema-card-title[data-v-e811e294] {
10216
10216
  cursor: pointer;
10217
10217
  }
10218
- button.schema-card-title[data-v-b482770e]:hover {
10218
+ button.schema-card-title[data-v-e811e294]:hover {
10219
10219
  color: var(--scalar-color-1);
10220
10220
  }
10221
- .schema-card-title-icon--open[data-v-b482770e] {
10221
+ .schema-card-title-icon--open[data-v-e811e294] {
10222
10222
  transform: rotate(45deg);
10223
10223
  }
10224
- .schema-properties-open > .schema-card-title[data-v-b482770e] {
10224
+ .schema-properties-open > .schema-card-title[data-v-e811e294] {
10225
10225
  border-bottom-left-radius: 0;
10226
10226
  border-bottom-right-radius: 0;
10227
10227
  border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);
10228
10228
  }
10229
- .schema-properties-open > .schema-properties[data-v-b482770e] {
10229
+ .schema-properties-open > .schema-properties[data-v-e811e294] {
10230
10230
  width: fit-content;
10231
10231
  }
10232
- .schema-card-description[data-v-b482770e] {
10232
+ .schema-card-description[data-v-e811e294] {
10233
10233
  color: var(--scalar-color-2);
10234
10234
  }
10235
- .schema-card-description + .schema-properties[data-v-b482770e] {
10235
+ .schema-card-description + .schema-properties[data-v-e811e294] {
10236
10236
  width: fit-content;
10237
10237
  }
10238
- .schema-card-description + .schema-properties[data-v-b482770e] {
10238
+ .schema-card-description + .schema-properties[data-v-e811e294] {
10239
10239
  margin-top: 8px;
10240
10240
  }
10241
10241
  .schema-card--level-0:nth-of-type(1)
10242
- > .schema-card-description[data-v-b482770e]:has(+ .schema-properties) {
10242
+ > .schema-card-description[data-v-e811e294]:has(+ .schema-properties) {
10243
10243
  margin-bottom: -8px;
10244
10244
  padding-bottom: 8px;
10245
10245
  border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);
10246
10246
  }
10247
10247
  .schema-card--level-0
10248
10248
  ~ .schema-card--level-0
10249
- > .schema-card-description[data-v-b482770e]:has(+ .schema-properties) {
10249
+ > .schema-card-description[data-v-e811e294]:has(+ .schema-properties) {
10250
10250
  padding-top: 8px;
10251
10251
  }
10252
- .schema-properties-open.schema-properties[data-v-b482770e],
10253
- .schema-properties-open > .schema-card--open[data-v-b482770e] {
10252
+ .schema-properties-open.schema-properties[data-v-e811e294],
10253
+ .schema-properties-open > .schema-card--open[data-v-e811e294] {
10254
10254
  width: 100%;
10255
10255
  }
10256
- .schema-properties[data-v-b482770e] {
10256
+ .schema-properties[data-v-e811e294] {
10257
10257
  display: flex;
10258
10258
  flex-direction: column;
10259
10259
 
@@ -10261,63 +10261,63 @@ button.schema-card-title[data-v-b482770e]:hover {
10261
10261
  border-radius: var(--scalar-radius-lg);
10262
10262
  width: fit-content;
10263
10263
  }
10264
- .schema-properties-name[data-v-b482770e] {
10264
+ .schema-properties-name[data-v-e811e294] {
10265
10265
  width: 100%;
10266
10266
  }
10267
- .schema-properties .schema-properties[data-v-b482770e] {
10267
+ .schema-properties .schema-properties[data-v-e811e294] {
10268
10268
  border-radius: 13.5px;
10269
10269
  }
10270
- .schema-properties .schema-properties.schema-properties-open[data-v-b482770e] {
10270
+ .schema-properties .schema-properties.schema-properties-open[data-v-e811e294] {
10271
10271
  border-radius: var(--scalar-radius-lg);
10272
10272
  }
10273
- .schema-properties-open[data-v-b482770e] {
10273
+ .schema-properties-open[data-v-e811e294] {
10274
10274
  width: 100%;
10275
10275
  }
10276
- .schema-card--compact[data-v-b482770e] {
10276
+ .schema-card--compact[data-v-e811e294] {
10277
10277
  align-self: flex-start;
10278
10278
  }
10279
- .schema-card--compact.schema-card--open[data-v-b482770e] {
10279
+ .schema-card--compact.schema-card--open[data-v-e811e294] {
10280
10280
  align-self: initial;
10281
10281
  }
10282
- .schema-card-title--compact[data-v-b482770e] {
10282
+ .schema-card-title--compact[data-v-e811e294] {
10283
10283
  color: var(--scalar-color-2);
10284
10284
  padding: 6px 10px 6px 8px;
10285
10285
  height: auto;
10286
10286
  border-bottom: none;
10287
10287
  }
10288
- .schema-card-title--compact > .schema-card-title-icon[data-v-b482770e] {
10288
+ .schema-card-title--compact > .schema-card-title-icon[data-v-e811e294] {
10289
10289
  margin: 0;
10290
10290
  }
10291
- .schema-card-title--compact > .schema-card-title-icon--open[data-v-b482770e] {
10291
+ .schema-card-title--compact > .schema-card-title-icon--open[data-v-e811e294] {
10292
10292
  transform: rotate(45deg);
10293
10293
  }
10294
- .schema-properties-open > .schema-card-title--compact[data-v-b482770e] {
10294
+ .schema-properties-open > .schema-card-title--compact[data-v-e811e294] {
10295
10295
  position: static;
10296
10296
  }
10297
10297
  .property--level-0
10298
10298
  > .schema-properties
10299
10299
  > .schema-card--level-0
10300
- > .schema-properties[data-v-b482770e] {
10300
+ > .schema-properties[data-v-e811e294] {
10301
10301
  border: none;
10302
10302
  }
10303
10303
  .property--level-0
10304
10304
  .schema-card--level-0:not(.schema-card--compact)
10305
- .property--level-1[data-v-b482770e] {
10305
+ .property--level-1[data-v-e811e294] {
10306
10306
  padding: 0 0 8px;
10307
10307
  }
10308
10308
  :not(.composition-panel)
10309
10309
  > .schema-card--compact.schema-card--level-0
10310
- > .schema-properties[data-v-b482770e] {
10310
+ > .schema-properties[data-v-e811e294] {
10311
10311
  border: none;
10312
10312
  }
10313
- [data-v-b482770e] .schema-card-description p {
10313
+ [data-v-e811e294] .schema-card-description p {
10314
10314
  font-size: var(--scalar-small, var(--scalar-paragraph));
10315
10315
  color: var(--scalar-color-2);
10316
10316
  margin-bottom: 0;
10317
10317
  display: block;
10318
10318
  margin-bottom: 6px;
10319
10319
  }
10320
- .children .schema-card-description[data-v-b482770e]:first-of-type {
10320
+ .children .schema-card-description[data-v-e811e294]:first-of-type {
10321
10321
  padding-top: 0;
10322
10322
  }
10323
10323
 
@@ -10881,10 +10881,10 @@ button.headers-card-title[data-v-b7ba0e6f]:hover {
10881
10881
  text-decoration: line-through;
10882
10882
  }
10883
10883
 
10884
- .request-body[data-v-6092df54] {
10884
+ .request-body[data-v-96399c9a] {
10885
10885
  margin-top: 24px;
10886
10886
  }
10887
- .request-body-header[data-v-6092df54] {
10887
+ .request-body-header[data-v-96399c9a] {
10888
10888
  display: flex;
10889
10889
  align-items: center;
10890
10890
  justify-content: space-between;
@@ -10892,7 +10892,7 @@ button.headers-card-title[data-v-b7ba0e6f]:hover {
10892
10892
  border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);
10893
10893
  flex-flow: wrap;
10894
10894
  }
10895
- .request-body-title[data-v-6092df54] {
10895
+ .request-body-title[data-v-96399c9a] {
10896
10896
  display: flex;
10897
10897
  align-items: center;
10898
10898
  gap: 8px;
@@ -10900,7 +10900,7 @@ button.headers-card-title[data-v-b7ba0e6f]:hover {
10900
10900
  font-weight: var(--scalar-semibold);
10901
10901
  color: var(--scalar-color-1);
10902
10902
  }
10903
- .request-body-required[data-v-6092df54] {
10903
+ .request-body-required[data-v-96399c9a] {
10904
10904
  font-size: var(--scalar-micro);
10905
10905
  color: var(--scalar-color-orange);
10906
10906
  font-weight: normal;
@@ -10909,21 +10909,21 @@ button.headers-card-title[data-v-b7ba0e6f]:hover {
10909
10909
  padding: 2px 8px;
10910
10910
  height: 20px;
10911
10911
  }
10912
- .request-body-description[data-v-6092df54] {
10912
+ .request-body-description[data-v-96399c9a] {
10913
10913
  margin-top: 6px;
10914
10914
  font-size: var(--scalar-small);
10915
10915
  width: 100%;
10916
10916
  }
10917
10917
  .request-body-header
10918
- + .request-body-schema[data-v-6092df54]:has(> .schema-card > .schema-card-description),
10918
+ + .request-body-schema[data-v-96399c9a]:has(> .schema-card > .schema-card-description),
10919
10919
  .request-body-header
10920
- + .request-body-schema[data-v-6092df54]:has(
10920
+ + .request-body-schema[data-v-96399c9a]:has(
10921
10921
  > .schema-card > .schema-properties > * > .property--level-0
10922
10922
  ) {
10923
10923
  /** Add a bit of space between the heading border and the schema description or properties */
10924
10924
  padding-top: 8px;
10925
10925
  }
10926
- .request-body-description[data-v-6092df54] .markdown * {
10926
+ .request-body-description[data-v-96399c9a] .markdown * {
10927
10927
  color: var(--scalar-color-2) !important;
10928
10928
  }
10929
10929