@scalar/api-reference 1.48.8 → 1.49.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.
- package/CHANGELOG.md +40 -0
- package/dist/AgentScalarChatInterface-MUbtSqMw.js +41 -0
- package/dist/AgentScalarChatInterface-MUbtSqMw.js.map +1 -0
- package/dist/ExternalDocs-phu7GxpZ.js +272 -0
- package/dist/ExternalDocs-phu7GxpZ.js.map +1 -0
- package/dist/MobileHeader-B71jYJdT.js +1373 -0
- package/dist/MobileHeader-B71jYJdT.js.map +1 -0
- package/dist/Operation-CixLVfKd.js +3827 -0
- package/dist/Operation-CixLVfKd.js.map +1 -0
- package/dist/SearchButton-xzhIpMCZ.js +621 -0
- package/dist/SearchButton-xzhIpMCZ.js.map +1 -0
- package/dist/ServerSelector-5y29y2BJ.js +852 -0
- package/dist/ServerSelector-5y29y2BJ.js.map +1 -0
- package/dist/blocks/index.js +3 -10
- package/dist/blocks/scalar-client-selector-block/index.d.ts +1 -1
- package/dist/blocks/scalar-info-block/index.d.ts +2 -2
- package/dist/blocks/scalar-server-selector-block/index.d.ts +1 -1
- package/dist/browser/standalone.js +40748 -34662
- package/dist/browser/webpack-stats.json +1 -1
- package/dist/components/AgentScalar/index.d.ts +3 -3
- package/dist/components/Anchor/index.d.ts +2 -2
- package/dist/components/ApiReference.vue.d.ts.map +1 -1
- package/dist/components/Badge/index.d.ts +1 -1
- package/dist/components/Content/Auth/index.d.ts +1 -1
- package/dist/components/Content/Content.vue.d.ts +2 -4
- package/dist/components/Content/Content.vue.d.ts.map +1 -1
- package/dist/components/Content/Models/ModelTag.vue.d.ts +3 -3
- package/dist/components/Content/Models/ModelTag.vue.d.ts.map +1 -1
- package/dist/components/Content/Models/index.d.ts +2 -2
- package/dist/components/Content/Operations/TraversedEntry.vue.d.ts.map +1 -1
- package/dist/components/Content/Schema/Schema.vue.d.ts +1 -1
- package/dist/components/Content/Schema/SchemaComposition.vue.d.ts +2 -2
- package/dist/components/Content/Schema/SchemaObjectProperties.vue.d.ts +1 -1
- package/dist/components/Content/Schema/SchemaProperty.vue.d.ts +1 -1
- package/dist/components/Content/Schema/SchemaProperty.vue.d.ts.map +1 -1
- package/dist/components/Content/Schema/SchemaPropertyExamples.vue.d.ts.map +1 -1
- package/dist/components/Content/Schema/SchemaPropertyHeading.vue.d.ts.map +1 -1
- package/dist/components/Content/Schema/helpers/get-compositions-to-render.d.ts +1 -1
- package/dist/components/Content/Schema/index.d.ts +4 -4
- package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts +2 -2
- package/dist/components/Content/Tags/components/ModernLayout.vue.d.ts.map +1 -1
- package/dist/components/Content/Tags/index.d.ts +1 -1
- package/dist/components/Content/index.d.ts +2 -2
- package/dist/components/HttpMethod/index.d.ts +1 -1
- package/dist/components/Lazy/Lazy.vue.d.ts +3 -0
- package/dist/components/Lazy/Lazy.vue.d.ts.map +1 -1
- package/dist/components/LinkList/index.d.ts +1 -1
- package/dist/components/OperationsList/index.d.ts +1 -1
- package/dist/components/RenderPlugins/index.d.ts +1 -1
- package/dist/components/Section/index.d.ts +10 -10
- package/dist/components/SectionFlare/index.d.ts +1 -1
- package/dist/components/index.d.ts +5 -5
- package/dist/components/index.js +102 -42
- package/dist/components/index.js.map +1 -0
- package/dist/features/Operation/components/OperationParameters.vue.d.ts +1 -1
- package/dist/features/Operation/components/OperationResponses.vue.d.ts +1 -1
- package/dist/features/Operation/components/ParameterList.vue.d.ts +1 -1
- package/dist/features/Operation/components/ParameterListItem.vue.d.ts +1 -1
- package/dist/features/Operation/components/callbacks/Callback.vue.d.ts +1 -1
- package/dist/features/Operation/components/callbacks/Callbacks.vue.d.ts +1 -1
- package/dist/features/Operation/index.d.ts +1 -1
- package/dist/features/Operation/layouts/ClassicLayout.vue.d.ts +1 -1
- package/dist/features/Operation/layouts/ModernLayout.vue.d.ts +1 -1
- package/dist/features/Search/components/SearchResult.vue.d.ts +1 -1
- package/dist/features/Search/helpers/create-fuse-instance.d.ts +1 -1
- package/dist/features/Search/helpers/create-search-index.d.ts +1 -1
- package/dist/features/Search/index.d.ts +2 -2
- package/dist/features/Search/types.d.ts +1 -1
- package/dist/features/ask-agent-button/AskAgentButton.vue.d.ts.map +1 -1
- package/dist/features/developer-tools/index.d.ts +1 -1
- package/dist/features/example-responses/index.d.ts +1 -1
- package/dist/features/external-docs/index.d.ts +1 -1
- package/dist/features/index.d.ts +2 -2
- package/dist/features/index.js +4 -10
- package/dist/features/info-object/index.d.ts +3 -3
- package/dist/features/specification-extension/index.d.ts +2 -2
- package/dist/features/test-request-button/index.d.ts +1 -1
- package/dist/features/x-badges/index.d.ts +1 -1
- package/dist/helpers/download.d.ts +1 -1
- package/dist/helpers/download.d.ts.map +1 -1
- package/dist/helpers/id-routing.d.ts +4 -0
- package/dist/helpers/id-routing.d.ts.map +1 -1
- package/dist/helpers/index.d.ts +8 -8
- package/dist/helpers/index.js +3 -24
- package/dist/helpers/lazy-bus.d.ts +19 -19
- package/dist/helpers/lazy-bus.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +3 -8
- package/dist/index.d.ts +5 -5
- package/dist/index.js +7 -14
- package/dist/lazy-bus-CV8Ox5hD.js +333 -0
- package/dist/lazy-bus-CV8Ox5hD.js.map +1 -0
- package/dist/normalize-configurations-DcVpOEjD.js +232 -0
- package/dist/normalize-configurations-DcVpOEjD.js.map +1 -0
- package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
- package/dist/plugins/index.d.ts +3 -3
- package/dist/plugins/index.js +2 -9
- package/dist/plugins-4EyiUD_A.js +80 -0
- package/dist/plugins-4EyiUD_A.js.map +1 -0
- package/dist/src-DqcYVBWI.js +1686 -0
- package/dist/src-DqcYVBWI.js.map +1 -0
- package/dist/ssr.d.ts +2 -2
- package/dist/ssr.js +7 -14
- package/dist/storage--3JuzjCI.js +42 -0
- package/dist/storage--3JuzjCI.js.map +1 -0
- package/dist/style.css +6840 -7397
- package/dist/urls-gPTXGgbj.js +17 -0
- package/dist/urls-gPTXGgbj.js.map +1 -0
- package/dist/use-agent-Bnm1de0n.js +60 -0
- package/dist/use-agent-Bnm1de0n.js.map +1 -0
- package/dist/use-intersection-8QqPi2O-.js +24 -0
- package/dist/use-intersection-8QqPi2O-.js.map +1 -0
- package/package.json +25 -27
- package/dist/_virtual/_plugin-vue_export-helper.js +0 -10
- package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue.js +0 -7
- package/dist/blocks/scalar-client-selector-block/components/ClientDropdown.vue2.js +0 -123
- package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue.js +0 -7
- package/dist/blocks/scalar-client-selector-block/components/ClientSelector.vue2.js +0 -142
- package/dist/blocks/scalar-client-selector-block/helpers/featured-clients.js +0 -24
- package/dist/blocks/scalar-info-block/components/DownloadLink.vue.js +0 -7
- package/dist/blocks/scalar-info-block/components/DownloadLink.vue2.js +0 -63
- package/dist/blocks/scalar-info-block/components/InfoBlock.vue.js +0 -59
- package/dist/blocks/scalar-info-block/components/InfoBlock.vue2.js +0 -4
- package/dist/blocks/scalar-info-block/components/InfoDescription.vue.js +0 -7
- package/dist/blocks/scalar-info-block/components/InfoDescription.vue2.js +0 -70
- package/dist/blocks/scalar-info-block/components/InfoLinks.vue.js +0 -38
- package/dist/blocks/scalar-info-block/components/InfoLinks.vue2.js +0 -4
- package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue.js +0 -38
- package/dist/blocks/scalar-info-block/components/InfoMarkdownSection.vue2.js +0 -4
- package/dist/blocks/scalar-info-block/components/InfoVersion.vue.js +0 -28
- package/dist/blocks/scalar-info-block/components/InfoVersion.vue2.js +0 -4
- package/dist/blocks/scalar-info-block/components/IntroductionCard.vue.js +0 -7
- package/dist/blocks/scalar-info-block/components/IntroductionCard.vue2.js +0 -19
- package/dist/blocks/scalar-info-block/components/IntroductionCardItem.vue.js +0 -14
- package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue.js +0 -7
- package/dist/blocks/scalar-info-block/components/IntroductionLayout.vue2.js +0 -112
- package/dist/blocks/scalar-info-block/components/OpenApiVersion.vue.js +0 -21
- package/dist/blocks/scalar-info-block/components/OpenApiVersion.vue2.js +0 -4
- package/dist/blocks/scalar-server-selector-block/components/Selector.vue.js +0 -76
- package/dist/blocks/scalar-server-selector-block/components/Selector.vue2.js +0 -4
- package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue.js +0 -72
- package/dist/blocks/scalar-server-selector-block/components/ServerSelector.vue2.js +0 -4
- package/dist/components/AgentScalar/AgentScalarButton.vue.js +0 -22
- package/dist/components/AgentScalar/AgentScalarButton.vue2.js +0 -4
- package/dist/components/AgentScalar/AgentScalarChatInterface.vue.js +0 -4
- package/dist/components/AgentScalar/AgentScalarChatInterface.vue2.js +0 -29
- package/dist/components/AgentScalar/AgentScalarDrawer.vue.js +0 -7
- package/dist/components/AgentScalar/AgentScalarDrawer.vue2.js +0 -78
- package/dist/components/AgentScalar/OpenMCPButton.vue.js +0 -7
- package/dist/components/AgentScalar/OpenMCPButton.vue2.js +0 -191
- package/dist/components/Anchor/Anchor.vue.js +0 -51
- package/dist/components/Anchor/Anchor.vue2.js +0 -4
- package/dist/components/Anchor/WithBreadcrumb.vue.js +0 -41
- package/dist/components/Anchor/WithBreadcrumb.vue2.js +0 -4
- package/dist/components/ApiReference.vue.js +0 -10
- package/dist/components/ApiReference.vue2.js +0 -744
- package/dist/components/Badge/Badge.vue.js +0 -7
- package/dist/components/Badge/Badge.vue2.js +0 -26
- package/dist/components/ClassicHeader.vue.js +0 -21
- package/dist/components/Content/Auth/Auth.vue.js +0 -77
- package/dist/components/Content/Auth/Auth.vue2.js +0 -4
- package/dist/components/Content/Auth/helpers/get-default-security.js +0 -55
- package/dist/components/Content/Content.vue.js +0 -177
- package/dist/components/Content/Content.vue3.js +0 -5
- package/dist/components/Content/Models/Model.vue.js +0 -47
- package/dist/components/Content/Models/Model.vue2.js +0 -4
- package/dist/components/Content/Models/ModelTag.vue.js +0 -82
- package/dist/components/Content/Models/ModelTag.vue2.js +0 -4
- package/dist/components/Content/Models/components/ClassicLayout.vue.js +0 -7
- package/dist/components/Content/Models/components/ClassicLayout.vue2.js +0 -78
- package/dist/components/Content/Models/components/ModernLayout.vue.js +0 -61
- package/dist/components/Content/Models/components/ModernLayout.vue2.js +0 -4
- package/dist/components/Content/Operations/TraversedEntry.vue.js +0 -145
- package/dist/components/Content/Operations/TraversedEntry.vue2.js +0 -4
- package/dist/components/Content/Schema/RenderString.vue.js +0 -27
- package/dist/components/Content/Schema/RenderString.vue2.js +0 -4
- package/dist/components/Content/Schema/Schema.vue.js +0 -7
- package/dist/components/Content/Schema/Schema.vue2.js +0 -193
- package/dist/components/Content/Schema/SchemaComposition.vue.js +0 -120
- package/dist/components/Content/Schema/SchemaComposition.vue2.js +0 -4
- package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaEnumPropertyItem.vue2.js +0 -36
- package/dist/components/Content/Schema/SchemaEnums.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaEnums.vue2.js +0 -112
- package/dist/components/Content/Schema/SchemaHeading.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaHeading.vue2.js +0 -61
- package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue.js +0 -66
- package/dist/components/Content/Schema/SchemaObjectExampleCodeBlock.vue2.js +0 -4
- package/dist/components/Content/Schema/SchemaObjectProperties.vue.js +0 -120
- package/dist/components/Content/Schema/SchemaObjectProperties.vue2.js +0 -4
- package/dist/components/Content/Schema/SchemaProperty.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaProperty.vue2.js +0 -228
- package/dist/components/Content/Schema/SchemaPropertyDefault.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaPropertyDefault.vue2.js +0 -45
- package/dist/components/Content/Schema/SchemaPropertyDetail.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaPropertyDetail.vue2.js +0 -40
- package/dist/components/Content/Schema/SchemaPropertyExamples.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaPropertyExamples.vue2.js +0 -80
- package/dist/components/Content/Schema/SchemaPropertyHeading.vue.js +0 -7
- package/dist/components/Content/Schema/SchemaPropertyHeading.vue2.js +0 -318
- package/dist/components/Content/Schema/helpers/format-example.js +0 -41
- package/dist/components/Content/Schema/helpers/format-value.js +0 -35
- package/dist/components/Content/Schema/helpers/get-compositions-to-render.js +0 -31
- package/dist/components/Content/Schema/helpers/get-enum-values.js +0 -20
- package/dist/components/Content/Schema/helpers/get-property-description.js +0 -34
- package/dist/components/Content/Schema/helpers/get-ref-name.js +0 -14
- package/dist/components/Content/Schema/helpers/get-schema-type.js +0 -47
- package/dist/components/Content/Schema/helpers/has-complex-array-items.js +0 -48
- package/dist/components/Content/Schema/helpers/is-empty-schema-object.js +0 -13
- package/dist/components/Content/Schema/helpers/is-type-object.js +0 -27
- package/dist/components/Content/Schema/helpers/merge-all-of-schemas.js +0 -215
- package/dist/components/Content/Schema/helpers/optimize-value-for-display.js +0 -64
- package/dist/components/Content/Schema/helpers/schema-composition.js +0 -4
- package/dist/components/Content/Schema/helpers/schema-name.js +0 -24
- package/dist/components/Content/Schema/helpers/should-display-description.js +0 -12
- package/dist/components/Content/Schema/helpers/should-display-heading.js +0 -12
- package/dist/components/Content/Schema/helpers/should-render-array-item-composition.js +0 -15
- package/dist/components/Content/Schema/helpers/sort-property-names.js +0 -71
- package/dist/components/Content/Tags/Tag.vue.js +0 -46
- package/dist/components/Content/Tags/Tag.vue2.js +0 -4
- package/dist/components/Content/Tags/components/ClassicLayout.vue.js +0 -7
- package/dist/components/Content/Tags/components/ClassicLayout.vue2.js +0 -57
- package/dist/components/Content/Tags/components/ModernLayout.vue.js +0 -7
- package/dist/components/Content/Tags/components/ModernLayout.vue2.js +0 -64
- package/dist/components/Content/Tags/components/TagSection.vue.js +0 -100
- package/dist/components/Content/Tags/components/TagSection.vue2.js +0 -4
- package/dist/components/GettingStarted.vue.js +0 -7
- package/dist/components/GettingStarted.vue2.js +0 -82
- package/dist/components/HttpMethod/HttpMethod.vue.js +0 -34
- package/dist/components/HttpMethod/HttpMethod.vue2.js +0 -4
- package/dist/components/IntersectionObserver.vue.js +0 -55
- package/dist/components/IntersectionObserver.vue2.js +0 -4
- package/dist/components/Lazy/Lazy.vue.js +0 -17
- package/dist/components/Lazy/Lazy.vue2.js +0 -4
- package/dist/components/LinkList/LinkList.vue.js +0 -7
- package/dist/components/LinkList/LinkList.vue2.js +0 -48
- package/dist/components/LoadingSkeleton.vue.js +0 -7
- package/dist/components/LoadingSkeleton.vue2.js +0 -20
- package/dist/components/MobileHeader.vue.js +0 -62
- package/dist/components/MobileHeader.vue2.js +0 -4
- package/dist/components/OperationPath.vue.js +0 -7
- package/dist/components/OperationPath.vue2.js +0 -30
- package/dist/components/OperationsList/OperationsList.vue.js +0 -7
- package/dist/components/OperationsList/OperationsList.vue2.js +0 -61
- package/dist/components/OperationsList/OperationsListItem.vue.js +0 -7
- package/dist/components/OperationsList/OperationsListItem.vue2.js +0 -68
- package/dist/components/RenderPlugins/RenderPlugins.vue.js +0 -43
- package/dist/components/RenderPlugins/RenderPlugins.vue2.js +0 -4
- package/dist/components/ScreenReader.vue.js +0 -7
- package/dist/components/ScreenReader.vue2.js +0 -21
- package/dist/components/Section/CompactSection.vue.js +0 -7
- package/dist/components/Section/CompactSection.vue2.js +0 -60
- package/dist/components/Section/Section.vue.js +0 -7
- package/dist/components/Section/Section.vue2.js +0 -23
- package/dist/components/Section/SectionAccordion.vue.js +0 -7
- package/dist/components/Section/SectionAccordion.vue2.js +0 -76
- package/dist/components/Section/SectionColumn.vue.js +0 -14
- package/dist/components/Section/SectionColumns.vue.js +0 -14
- package/dist/components/Section/SectionContainer.vue.js +0 -7
- package/dist/components/Section/SectionContainer.vue2.js +0 -21
- package/dist/components/Section/SectionContainerAccordion.vue.js +0 -7
- package/dist/components/Section/SectionContainerAccordion.vue2.js +0 -54
- package/dist/components/Section/SectionContent.vue.js +0 -7
- package/dist/components/Section/SectionContent.vue2.js +0 -22
- package/dist/components/Section/SectionHeader.vue.js +0 -7
- package/dist/components/Section/SectionHeader.vue2.js +0 -26
- package/dist/components/Section/SectionHeaderTag.vue.js +0 -7
- package/dist/components/Section/SectionHeaderTag.vue2.js +0 -20
- package/dist/components/SectionFlare/SectionFlare.vue.js +0 -14
- package/dist/components/ShowMoreButton.vue.js +0 -7
- package/dist/components/ShowMoreButton.vue2.js +0 -23
- package/dist/consts/urls.js +0 -16
- package/dist/features/Operation/Operation.vue.js +0 -100
- package/dist/features/Operation/Operation.vue2.js +0 -4
- package/dist/features/Operation/components/ContentTypeSelect.vue.js +0 -88
- package/dist/features/Operation/components/ContentTypeSelect.vue2.js +0 -4
- package/dist/features/Operation/components/Header.vue.js +0 -33
- package/dist/features/Operation/components/Header.vue2.js +0 -4
- package/dist/features/Operation/components/Headers.vue.js +0 -7
- package/dist/features/Operation/components/Headers.vue2.js +0 -71
- package/dist/features/Operation/components/OperationParameters.vue.js +0 -92
- package/dist/features/Operation/components/OperationParameters.vue2.js +0 -4
- package/dist/features/Operation/components/OperationResponses.vue.js +0 -44
- package/dist/features/Operation/components/OperationResponses.vue2.js +0 -4
- package/dist/features/Operation/components/ParameterList.vue.js +0 -50
- package/dist/features/Operation/components/ParameterList.vue2.js +0 -4
- package/dist/features/Operation/components/ParameterListItem.vue.js +0 -7
- package/dist/features/Operation/components/ParameterListItem.vue2.js +0 -163
- package/dist/features/Operation/components/RequestBody.vue.js +0 -7
- package/dist/features/Operation/components/RequestBody.vue2.js +0 -164
- package/dist/features/Operation/components/callbacks/Callback.vue.js +0 -7
- package/dist/features/Operation/components/callbacks/Callback.vue2.js +0 -60
- package/dist/features/Operation/components/callbacks/Callbacks.vue.js +0 -63
- package/dist/features/Operation/components/callbacks/Callbacks.vue2.js +0 -4
- package/dist/features/Operation/helpers/filter-selected-security.js +0 -28
- package/dist/features/Operation/helpers/get-first-server.js +0 -25
- package/dist/features/Operation/layouts/ClassicLayout.vue.js +0 -7
- package/dist/features/Operation/layouts/ClassicLayout.vue2.js +0 -243
- package/dist/features/Operation/layouts/ModernLayout.vue.js +0 -7
- package/dist/features/Operation/layouts/ModernLayout.vue2.js +0 -256
- package/dist/features/Search/components/SearchButton.vue.js +0 -88
- package/dist/features/Search/components/SearchButton.vue2.js +0 -4
- package/dist/features/Search/components/SearchModal.vue.js +0 -7
- package/dist/features/Search/components/SearchModal.vue2.js +0 -120
- package/dist/features/Search/components/SearchResult.vue.js +0 -84
- package/dist/features/Search/components/SearchResult.vue2.js +0 -4
- package/dist/features/Search/helpers/create-fuse-instance.js +0 -43
- package/dist/features/Search/helpers/create-search-index.js +0 -119
- package/dist/features/Search/hooks/useSearchIndex.js +0 -33
- package/dist/features/ask-agent-button/AskAgentButton.vue.js +0 -7
- package/dist/features/ask-agent-button/AskAgentButton.vue2.js +0 -47
- package/dist/features/developer-tools/DeveloperTools.vue.js +0 -60
- package/dist/features/developer-tools/DeveloperTools.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarBlurb.vue.js +0 -13
- package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue.js +0 -33
- package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayout.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue.js +0 -138
- package/dist/features/developer-tools/components/ApiReferenceToolbarConfigLayoutOptions.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue.js +0 -66
- package/dist/features/developer-tools/components/ApiReferenceToolbarConfigTheme.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue.js +0 -54
- package/dist/features/developer-tools/components/ApiReferenceToolbarPopover.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue.js +0 -71
- package/dist/features/developer-tools/components/ApiReferenceToolbarRegisterButton.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue.js +0 -63
- package/dist/features/developer-tools/components/ApiReferenceToolbarShareRegister.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue.js +0 -73
- package/dist/features/developer-tools/components/ApiReferenceToolbarShareTemporary.vue2.js +0 -4
- package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue.js +0 -57
- package/dist/features/developer-tools/components/ApiReferenceToolbarTitle.vue2.js +0 -4
- package/dist/features/developer-tools/components/DeployApiReference.vue.js +0 -35
- package/dist/features/developer-tools/components/DeployApiReference.vue2.js +0 -4
- package/dist/features/developer-tools/components/ModifyConfiguration.vue.js +0 -103
- package/dist/features/developer-tools/components/ModifyConfiguration.vue2.js +0 -4
- package/dist/features/developer-tools/components/ShareApiReference.vue.js +0 -35
- package/dist/features/developer-tools/components/ShareApiReference.vue2.js +0 -4
- package/dist/features/example-responses/ExampleResponse.vue.js +0 -7
- package/dist/features/example-responses/ExampleResponse.vue2.js +0 -61
- package/dist/features/example-responses/ExampleResponseTab.vue.js +0 -7
- package/dist/features/example-responses/ExampleResponseTab.vue2.js +0 -25
- package/dist/features/example-responses/ExampleResponseTabList.vue.js +0 -7
- package/dist/features/example-responses/ExampleResponseTabList.vue2.js +0 -37
- package/dist/features/example-responses/ExampleResponses.vue.js +0 -7
- package/dist/features/example-responses/ExampleResponses.vue2.js +0 -181
- package/dist/features/example-responses/ExampleSchema.vue.js +0 -42
- package/dist/features/example-responses/ExampleSchema.vue2.js +0 -4
- package/dist/features/example-responses/has-response-content.js +0 -28
- package/dist/features/external-docs/ExternalDocs.vue.js +0 -42
- package/dist/features/external-docs/ExternalDocs.vue2.js +0 -4
- package/dist/features/info-object/Contact.vue.js +0 -46
- package/dist/features/info-object/Contact.vue2.js +0 -4
- package/dist/features/info-object/License.vue.js +0 -40
- package/dist/features/info-object/License.vue2.js +0 -4
- package/dist/features/info-object/TermsOfService.vue.js +0 -34
- package/dist/features/info-object/TermsOfService.vue2.js +0 -4
- package/dist/features/multiple-documents/DocumentSelector.vue.js +0 -54
- package/dist/features/multiple-documents/DocumentSelector.vue2.js +0 -4
- package/dist/features/specification-extension/SpecificationExtension.vue.js +0 -4
- package/dist/features/specification-extension/SpecificationExtension.vue2.js +0 -52
- package/dist/features/specification-extension/helpers.js +0 -9
- package/dist/features/test-request-button/TestRequestButton.vue.js +0 -7
- package/dist/features/test-request-button/TestRequestButton.vue2.js +0 -46
- package/dist/features/x-badges/XBadges.vue.js +0 -35
- package/dist/features/x-badges/XBadges.vue2.js +0 -4
- package/dist/helpers/color-mode.js +0 -9
- package/dist/helpers/download.js +0 -45
- package/dist/helpers/id-routing.js +0 -63
- package/dist/helpers/lazy-bus.js +0 -160
- package/dist/helpers/load-from-perssistance.js +0 -17
- package/dist/helpers/map-config-plugins.js +0 -27
- package/dist/helpers/map-config-to-workspace-store.js +0 -45
- package/dist/helpers/normalize-configurations.js +0 -69
- package/dist/helpers/openapi.js +0 -135
- package/dist/helpers/storage.js +0 -47
- package/dist/helpers/upload-temp-document.js +0 -24
- package/dist/hooks/use-agent.js +0 -42
- package/dist/hooks/use-intersection.js +0 -32
- package/dist/plugins/hooks/usePluginManager.js +0 -14
- package/dist/plugins/persistance-plugin.js +0 -48
- package/dist/plugins/plugin-manager.js +0 -39
- package/dist/standalone/lib/html-api.js +0 -81
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @scalar/api-reference
|
|
2
2
|
|
|
3
|
+
## 1.49.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#8466](https://github.com/scalar/scalar/pull/8466): chore: new build pipeline
|
|
8
|
+
- [#8479](https://github.com/scalar/scalar/pull/8479): fix: render schema property examples when values are falsy
|
|
9
|
+
|
|
10
|
+
## 1.49.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [#8409](https://github.com/scalar/scalar/pull/8409): feat: lazy rendering
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- [#8443](https://github.com/scalar/scalar/pull/8443): fix hash-prefixed basePath routing
|
|
19
|
+
- [#8467](https://github.com/scalar/scalar/pull/8467): feat(api-reference): improve Ask AI button consistency and a11y
|
|
20
|
+
- [#8442](https://github.com/scalar/scalar/pull/8442): fix object schema descriptions in parameter rendering
|
|
21
|
+
|
|
22
|
+
#### Updated Dependencies
|
|
23
|
+
|
|
24
|
+
- **@scalar/workspace-store@0.40.2**
|
|
25
|
+
- [#8468](https://github.com/scalar/scalar/pull/8468): fix: ignore response examples when generating navigation
|
|
26
|
+
|
|
27
|
+
- **@scalar/api-client@2.38.1**
|
|
28
|
+
- [#8468](https://github.com/scalar/scalar/pull/8468): fix: example extraction, environment navigation and general UI fixes
|
|
29
|
+
- [#8451](https://github.com/scalar/scalar/pull/8451): fix(api-client): default-close auth when not required
|
|
30
|
+
|
|
31
|
+
- **@scalar/openapi-parser@0.25.4**
|
|
32
|
+
- [#8448](https://github.com/scalar/scalar/pull/8448): fix parser validation for unused path parameters
|
|
33
|
+
|
|
34
|
+
- **@scalar/components@0.20.9**
|
|
35
|
+
- [#8453](https://github.com/scalar/scalar/pull/8453): refactor: remove @ts-expect-error from ScalarTextArea
|
|
36
|
+
|
|
37
|
+
- **@scalar/agent-chat@0.9.9**
|
|
38
|
+
|
|
39
|
+
- **@scalar/oas-utils@0.10.8**
|
|
40
|
+
|
|
41
|
+
- **@scalar/sidebar@0.8.9**
|
|
42
|
+
|
|
3
43
|
## 1.48.8
|
|
4
44
|
|
|
5
45
|
### Patch Changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { o as REGISTRY_URL, r as DASHBOARD_URL, t as API_BASE_URL } from "./urls-gPTXGgbj.js";
|
|
2
|
+
import { createBlock, defineComponent, openBlock, unref } from "vue";
|
|
3
|
+
import { Chat } from "@scalar/agent-chat";
|
|
4
|
+
//#endregion
|
|
5
|
+
//#region src/components/AgentScalar/AgentScalarChatInterface.vue
|
|
6
|
+
var AgentScalarChatInterface_default = /* @__PURE__ */ defineComponent({
|
|
7
|
+
__name: "AgentScalarChatInterface",
|
|
8
|
+
props: {
|
|
9
|
+
agentScalarConfiguration: {},
|
|
10
|
+
workspaceStore: {},
|
|
11
|
+
prefilledMessage: {}
|
|
12
|
+
},
|
|
13
|
+
setup(__props) {
|
|
14
|
+
return (_ctx, _cache) => {
|
|
15
|
+
return openBlock(), createBlock(unref(Chat), {
|
|
16
|
+
baseUrl: unref(API_BASE_URL),
|
|
17
|
+
dashboardUrl: unref(DASHBOARD_URL),
|
|
18
|
+
getActiveDocumentJson: () => __props.workspaceStore.exportActiveDocument("json"),
|
|
19
|
+
getAgentKey: __props.agentScalarConfiguration?.key ? () => __props.agentScalarConfiguration?.key ?? "" : void 0,
|
|
20
|
+
hideAddApi: __props.agentScalarConfiguration?.hideAddApi,
|
|
21
|
+
mode: __props.agentScalarConfiguration?.key ? "full" : "preview",
|
|
22
|
+
prefilledMessage: __props.prefilledMessage,
|
|
23
|
+
registryDocuments: [],
|
|
24
|
+
registryUrl: unref(REGISTRY_URL)
|
|
25
|
+
}, null, 8, [
|
|
26
|
+
"baseUrl",
|
|
27
|
+
"dashboardUrl",
|
|
28
|
+
"getActiveDocumentJson",
|
|
29
|
+
"getAgentKey",
|
|
30
|
+
"hideAddApi",
|
|
31
|
+
"mode",
|
|
32
|
+
"prefilledMessage",
|
|
33
|
+
"registryUrl"
|
|
34
|
+
]);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//#endregion
|
|
39
|
+
export { AgentScalarChatInterface_default as default };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=AgentScalarChatInterface-MUbtSqMw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentScalarChatInterface-MUbtSqMw.js","names":[],"sources":["../src/components/AgentScalar/AgentScalarChatInterface.vue","../src/components/AgentScalar/AgentScalarChatInterface.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Chat } from '@scalar/agent-chat'\nimport { type ApiReferenceConfigurationWithSource } from '@scalar/types/api-reference'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport type { Ref } from 'vue'\n\nimport { API_BASE_URL, DASHBOARD_URL, REGISTRY_URL } from '@/consts/urls'\n\nconst { agentScalarConfiguration, workspaceStore, prefilledMessage } =\n defineProps<{\n agentScalarConfiguration: ApiReferenceConfigurationWithSource['agent']\n workspaceStore: WorkspaceStore\n prefilledMessage?: Ref<string>\n }>()\n</script>\n\n<template>\n <Chat\n :baseUrl=\"API_BASE_URL\"\n :dashboardUrl=\"DASHBOARD_URL\"\n :getActiveDocumentJson=\"() => workspaceStore.exportActiveDocument('json')!\"\n :getAgentKey=\"\n agentScalarConfiguration?.key\n ? () => agentScalarConfiguration?.key ?? ''\n : undefined\n \"\n :hideAddApi=\"agentScalarConfiguration?.hideAddApi\"\n :mode=\"agentScalarConfiguration?.key ? 'full' : 'preview'\"\n :prefilledMessage=\"prefilledMessage\"\n :registryDocuments=\"[]\"\n :registryUrl=\"REGISTRY_URL\" />\n</template>\n","<script setup lang=\"ts\">\nimport { Chat } from '@scalar/agent-chat'\nimport { type ApiReferenceConfigurationWithSource } from '@scalar/types/api-reference'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport type { Ref } from 'vue'\n\nimport { API_BASE_URL, DASHBOARD_URL, REGISTRY_URL } from '@/consts/urls'\n\nconst { agentScalarConfiguration, workspaceStore, prefilledMessage } =\n defineProps<{\n agentScalarConfiguration: ApiReferenceConfigurationWithSource['agent']\n workspaceStore: WorkspaceStore\n prefilledMessage?: Ref<string>\n }>()\n</script>\n\n<template>\n <Chat\n :baseUrl=\"API_BASE_URL\"\n :dashboardUrl=\"DASHBOARD_URL\"\n :getActiveDocumentJson=\"() => workspaceStore.exportActiveDocument('json')!\"\n :getAgentKey=\"\n agentScalarConfiguration?.key\n ? () => agentScalarConfiguration?.key ?? ''\n : undefined\n \"\n :hideAddApi=\"agentScalarConfiguration?.hideAddApi\"\n :mode=\"agentScalarConfiguration?.key ? 'full' : 'preview'\"\n :prefilledMessage=\"prefilledMessage\"\n :registryDocuments=\"[]\"\n :registryUrl=\"REGISTRY_URL\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;uBCiBE,YAagC,MAAA,KAAA,EAAA;IAZ7B,SAAS,MAAA,aAAY;IACrB,cAAc,MAAA,cAAa;IAC3B,6BAA6B,QAAA,eAAe,qBAAoB,OAAA;IAChE,aAAoB,QAAA,0BAA0B,YAAoB,QAAA,0BAA0B,OAAG,KAAiB,KAAA;IAKhH,YAAY,QAAA,0BAA0B;IACtC,MAAM,QAAA,0BAA0B,MAAG,SAAA;IACnC,kBAAkB,QAAA;IAClB,mBAAmB,EAAE;IACrB,aAAa,MAAA,aAAY"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { t as useIntersection } from "./use-intersection-8QqPi2O-.js";
|
|
2
|
+
import { r as usePluginManager } from "./plugins-4EyiUD_A.js";
|
|
3
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, normalizeStyle, onMounted, onUnmounted, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, unref, useTemplateRef, withCtx } from "vue";
|
|
4
|
+
import { ScalarErrorBoundary } from "@scalar/components";
|
|
5
|
+
import { ScalarIconBook } from "@scalar/icons";
|
|
6
|
+
//#region \0plugin-vue:export-helper
|
|
7
|
+
var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
8
|
+
const target = sfc.__vccOpts || sfc;
|
|
9
|
+
for (const [key, val] of props) target[key] = val;
|
|
10
|
+
return target;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/components/Badge/Badge.vue
|
|
14
|
+
var Badge_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
15
|
+
__name: "Badge",
|
|
16
|
+
props: { color: {} },
|
|
17
|
+
setup(__props) {
|
|
18
|
+
const badgeStyle = computed(() => __props.color ? {
|
|
19
|
+
"--badge-background-color": __props.color,
|
|
20
|
+
"--badge-text-color": `color-mix(in srgb, ${__props.color}, black 40%)`
|
|
21
|
+
} : {});
|
|
22
|
+
return (_ctx, _cache) => {
|
|
23
|
+
return openBlock(), createElementBlock("div", {
|
|
24
|
+
class: "badge",
|
|
25
|
+
style: normalizeStyle(badgeStyle.value)
|
|
26
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 4);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}), [["__scopeId", "data-v-3dedb7e4"]]);
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/components/Section/Section.vue
|
|
32
|
+
var Section_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
33
|
+
__name: "Section",
|
|
34
|
+
emits: ["intersecting"],
|
|
35
|
+
setup(__props, { emit: __emit }) {
|
|
36
|
+
const emit = __emit;
|
|
37
|
+
const section = useTemplateRef("section");
|
|
38
|
+
useIntersection(section, () => emit("intersecting"));
|
|
39
|
+
return (_ctx, _cache) => {
|
|
40
|
+
return openBlock(), createElementBlock("section", {
|
|
41
|
+
ref_key: "section",
|
|
42
|
+
ref: section,
|
|
43
|
+
class: "section"
|
|
44
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}), [["__scopeId", "data-v-be4443e9"]]);
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/components/Section/SectionColumn.vue
|
|
50
|
+
var _sfc_main$1 = {};
|
|
51
|
+
var _hoisted_1$5 = { class: "section-column" };
|
|
52
|
+
function _sfc_render$1(_ctx, _cache) {
|
|
53
|
+
return openBlock(), createElementBlock("div", _hoisted_1$5, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]);
|
|
54
|
+
}
|
|
55
|
+
var SectionColumn_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-699c28e3"]]);
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/components/Section/SectionColumns.vue
|
|
58
|
+
var _sfc_main = {};
|
|
59
|
+
var _hoisted_1$4 = { class: "section-columns" };
|
|
60
|
+
function _sfc_render(_ctx, _cache) {
|
|
61
|
+
return openBlock(), createElementBlock("div", _hoisted_1$4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]);
|
|
62
|
+
}
|
|
63
|
+
var SectionColumns_default = /* @__PURE__ */ _plugin_vue_export_helper_default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8b9602bf"]]);
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/components/LoadingSkeleton.vue
|
|
66
|
+
var LoadingSkeleton_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
67
|
+
__name: "LoadingSkeleton",
|
|
68
|
+
props: { lines: { default: 1 } },
|
|
69
|
+
setup(__props) {
|
|
70
|
+
return (_ctx, _cache) => {
|
|
71
|
+
return openBlock(true), createElementBlock(Fragment, null, renderList([...Array(__props.lines).keys()], (idx) => {
|
|
72
|
+
return openBlock(), createElementBlock("div", {
|
|
73
|
+
key: idx,
|
|
74
|
+
class: normalizeClass(["loading", { "single-line": __props.lines === 1 }])
|
|
75
|
+
}, null, 2);
|
|
76
|
+
}), 128);
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}), [["__scopeId", "data-v-8e0226d7"]]);
|
|
80
|
+
//#endregion
|
|
81
|
+
//#region src/components/Section/SectionContent.vue?vue&type=script&setup=true&lang.ts
|
|
82
|
+
var _hoisted_1$3 = { class: "section-content" };
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/components/Section/SectionContent.vue
|
|
85
|
+
var SectionContent_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
86
|
+
__name: "SectionContent",
|
|
87
|
+
props: { loading: {
|
|
88
|
+
type: Boolean,
|
|
89
|
+
default: false
|
|
90
|
+
} },
|
|
91
|
+
setup(__props) {
|
|
92
|
+
return (_ctx, _cache) => {
|
|
93
|
+
return openBlock(), createElementBlock("div", _hoisted_1$3, [!__props.loading ? renderSlot(_ctx.$slots, "default", { key: 0 }, void 0, true) : (openBlock(), createBlock(LoadingSkeleton_default, {
|
|
94
|
+
key: 1,
|
|
95
|
+
lines: 8
|
|
96
|
+
}))]);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}), [["__scopeId", "data-v-9735459e"]]);
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/components/Section/SectionHeader.vue?vue&type=script&setup=true&lang.ts
|
|
102
|
+
var _hoisted_1$2 = { class: "section-header-wrapper xl:gap-12" };
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/components/Section/SectionHeader.vue
|
|
105
|
+
var SectionHeader_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
106
|
+
__name: "SectionHeader",
|
|
107
|
+
props: {
|
|
108
|
+
loading: { type: Boolean },
|
|
109
|
+
tight: { type: Boolean }
|
|
110
|
+
},
|
|
111
|
+
setup(__props) {
|
|
112
|
+
return (_ctx, _cache) => {
|
|
113
|
+
return openBlock(), createElementBlock("div", _hoisted_1$2, [__props.loading ? (openBlock(), createBlock(LoadingSkeleton_default, { key: 0 })) : (openBlock(), createElementBlock("div", {
|
|
114
|
+
key: 1,
|
|
115
|
+
class: normalizeClass(["section-header", { tight: __props.tight }])
|
|
116
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2)), _ctx.$slots.links ? renderSlot(_ctx.$slots, "links", { key: 2 }, void 0, true) : createCommentVNode("", true)]);
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}), [["__scopeId", "data-v-465a7a78"]]);
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/components/Section/SectionHeaderTag.vue
|
|
122
|
+
var SectionHeaderTag_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
123
|
+
__name: "SectionHeaderTag",
|
|
124
|
+
props: { level: { default: 1 } },
|
|
125
|
+
setup(__props) {
|
|
126
|
+
return (_ctx, _cache) => {
|
|
127
|
+
return openBlock(), createBlock(resolveDynamicComponent(`h${__props.level}`), { class: "section-header-label" }, {
|
|
128
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
|
|
129
|
+
_: 3
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}), [["__scopeId", "data-v-f1ac6c38"]]);
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/features/specification-extension/SpecificationExtension.vue?vue&type=script&setup=true&lang.ts
|
|
136
|
+
var _hoisted_1$1 = {
|
|
137
|
+
key: 0,
|
|
138
|
+
class: "text-base"
|
|
139
|
+
};
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/features/specification-extension/SpecificationExtension.vue
|
|
142
|
+
var SpecificationExtension_default = /* @__PURE__ */ defineComponent({
|
|
143
|
+
__name: "SpecificationExtension",
|
|
144
|
+
props: { value: {} },
|
|
145
|
+
setup(__props) {
|
|
146
|
+
const { getSpecificationExtensions } = usePluginManager();
|
|
147
|
+
/**
|
|
148
|
+
* Extract registered OpenAPI extension names
|
|
149
|
+
*/
|
|
150
|
+
function getCustomExtensionNames(value) {
|
|
151
|
+
return Object.keys(value ?? {}).filter((item) => item.startsWith("x-"));
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get the components for the specification extensions
|
|
155
|
+
*/
|
|
156
|
+
function getCustomOpenApiExtensionComponents(extensionNames) {
|
|
157
|
+
return extensionNames.flatMap((name) => getSpecificationExtensions(name)).filter((extension) => extension.component);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the names of custom extensions from the provided value.
|
|
161
|
+
*/
|
|
162
|
+
const customExtensionNames = computed(() => getCustomExtensionNames(__props.value));
|
|
163
|
+
/**
|
|
164
|
+
* Get the components for the custom extensions.
|
|
165
|
+
*/
|
|
166
|
+
const customExtensions = computed(() => getCustomOpenApiExtensionComponents(customExtensionNames.value));
|
|
167
|
+
return (_ctx, _cache) => {
|
|
168
|
+
return typeof __props.value === "object" && customExtensions.value.length ? (openBlock(), createElementBlock("div", _hoisted_1$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(customExtensions.value, (extension) => {
|
|
169
|
+
return openBlock(), createBlock(unref(ScalarErrorBoundary), null, {
|
|
170
|
+
default: withCtx(() => [extension.renderer ? (openBlock(), createBlock(resolveDynamicComponent(extension.renderer), mergeProps({
|
|
171
|
+
key: 0,
|
|
172
|
+
ref_for: true
|
|
173
|
+
}, {
|
|
174
|
+
[extension.name]: __props.value?.[extension.name],
|
|
175
|
+
component: extension.component
|
|
176
|
+
}), null, 16)) : (openBlock(), createBlock(resolveDynamicComponent(extension.component), mergeProps({
|
|
177
|
+
key: 1,
|
|
178
|
+
ref_for: true
|
|
179
|
+
}, { [extension.name]: __props.value?.[extension.name] }), null, 16))]),
|
|
180
|
+
_: 2
|
|
181
|
+
}, 1024);
|
|
182
|
+
}), 256))])) : createCommentVNode("", true);
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
//#endregion
|
|
187
|
+
//#region src/components/LinkList/LinkList.vue
|
|
188
|
+
var LinkList_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
189
|
+
__name: "LinkList",
|
|
190
|
+
setup(__props) {
|
|
191
|
+
const containerRef = ref();
|
|
192
|
+
/** Whether the container needs to scroll */
|
|
193
|
+
const needsScroll = ref(false);
|
|
194
|
+
/** Check if the container can scroll in either direction */
|
|
195
|
+
const checkScrollability = () => {
|
|
196
|
+
if (!containerRef.value) return;
|
|
197
|
+
const { scrollWidth, clientWidth } = containerRef.value;
|
|
198
|
+
needsScroll.value = scrollWidth > clientWidth;
|
|
199
|
+
};
|
|
200
|
+
/** MutationObserver to watch for changes in child elements */
|
|
201
|
+
let mutationObserver = null;
|
|
202
|
+
/**
|
|
203
|
+
* We use the mutation observer to watch for changes and check if we need to scroll,
|
|
204
|
+
* if we do need to scroll we apply the icons-only class to the container
|
|
205
|
+
*/
|
|
206
|
+
onMounted(() => {
|
|
207
|
+
checkScrollability();
|
|
208
|
+
window.addEventListener("resize", checkScrollability);
|
|
209
|
+
if (containerRef.value) {
|
|
210
|
+
mutationObserver = new MutationObserver(() => {
|
|
211
|
+
checkScrollability();
|
|
212
|
+
});
|
|
213
|
+
mutationObserver.observe(containerRef.value, {
|
|
214
|
+
childList: true,
|
|
215
|
+
subtree: true
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
onUnmounted(() => {
|
|
220
|
+
window.removeEventListener("resize", checkScrollability);
|
|
221
|
+
if (mutationObserver) {
|
|
222
|
+
mutationObserver.disconnect();
|
|
223
|
+
mutationObserver = null;
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
return (_ctx, _cache) => {
|
|
227
|
+
return openBlock(), createElementBlock("div", {
|
|
228
|
+
ref_key: "containerRef",
|
|
229
|
+
ref: containerRef,
|
|
230
|
+
class: normalizeClass([{ "icons-only": needsScroll.value }, "custom-scroll mb-3 flex h-auto min-h-8 max-w-full items-center gap-2 overflow-x-auto text-base whitespace-nowrap xl:mb-1.5"])
|
|
231
|
+
}, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 2);
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}), [["__scopeId", "data-v-b59b0acf"]]);
|
|
235
|
+
//#endregion
|
|
236
|
+
//#region src/features/external-docs/ExternalDocs.vue?vue&type=script&setup=true&lang.ts
|
|
237
|
+
var _hoisted_1 = {
|
|
238
|
+
key: 0,
|
|
239
|
+
class: "group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto"
|
|
240
|
+
};
|
|
241
|
+
var _hoisted_2 = ["href"];
|
|
242
|
+
var _hoisted_3 = {
|
|
243
|
+
key: 0,
|
|
244
|
+
class: "ml-1 empty:hidden"
|
|
245
|
+
};
|
|
246
|
+
var _hoisted_4 = {
|
|
247
|
+
key: 1,
|
|
248
|
+
class: "ml-1 empty:hidden"
|
|
249
|
+
};
|
|
250
|
+
//#endregion
|
|
251
|
+
//#region src/features/external-docs/ExternalDocs.vue
|
|
252
|
+
var ExternalDocs_default = /* @__PURE__ */ defineComponent({
|
|
253
|
+
__name: "ExternalDocs",
|
|
254
|
+
props: { value: {} },
|
|
255
|
+
setup(__props) {
|
|
256
|
+
return (_ctx, _cache) => {
|
|
257
|
+
return __props.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("a", {
|
|
258
|
+
href: __props.value.url,
|
|
259
|
+
class: "text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none",
|
|
260
|
+
target: "_blank",
|
|
261
|
+
rel: "noopener noreferrer"
|
|
262
|
+
}, [createVNode(unref(ScalarIconBook), {
|
|
263
|
+
weight: "bold",
|
|
264
|
+
class: "size-3 text-current"
|
|
265
|
+
}), __props.value.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.value.description), 1)) : (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(__props.value.url), 1))], 8, _hoisted_2)])) : createCommentVNode("", true);
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
//#endregion
|
|
270
|
+
export { SectionHeader_default as a, SectionColumn_default as c, _plugin_vue_export_helper_default as d, SectionHeaderTag_default as i, Section_default as l, LinkList_default as n, SectionContent_default as o, SpecificationExtension_default as r, SectionColumns_default as s, ExternalDocs_default as t, Badge_default as u };
|
|
271
|
+
|
|
272
|
+
//# sourceMappingURL=ExternalDocs-phu7GxpZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalDocs-phu7GxpZ.js","names":["$slots"],"sources":["../src/components/Badge/Badge.vue","../src/components/Badge/Badge.vue","../src/components/Section/Section.vue","../src/components/Section/Section.vue","../src/components/Section/SectionColumn.vue","../src/components/Section/SectionColumns.vue","../src/components/LoadingSkeleton.vue","../src/components/LoadingSkeleton.vue","../src/components/Section/SectionContent.vue","../src/components/Section/SectionContent.vue","../src/components/Section/SectionHeader.vue","../src/components/Section/SectionHeader.vue","../src/components/Section/SectionHeaderTag.vue","../src/components/Section/SectionHeaderTag.vue","../src/features/specification-extension/SpecificationExtension.vue","../src/features/specification-extension/SpecificationExtension.vue","../src/components/LinkList/LinkList.vue","../src/components/LinkList/LinkList.vue","../src/features/external-docs/ExternalDocs.vue","../src/features/external-docs/ExternalDocs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst { color } = defineProps<{\n color?: string\n}>()\n\nconst badgeStyle = computed(() =>\n color\n ? {\n '--badge-background-color': color,\n '--badge-text-color': `color-mix(in srgb, ${color}, black 40%)`,\n }\n : {},\n)\n</script>\n\n<template>\n <div\n class=\"badge\"\n :style=\"badgeStyle\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.badge {\n color: var(--badge-text-color, var(--scalar-color-2));\n font-size: var(--scalar-mini);\n background: var(--badge-background-color, var(--scalar-background-2));\n border: var(--scalar-border-width) solid\n var(--badge-border-color, var(--scalar-border-color));\n padding: 2px 6px;\n border-radius: 12px;\n display: inline-block;\n}\n.badge.text-orange {\n background: color-mix(in srgb, var(--scalar-color-orange), transparent 90%);\n border: transparent;\n}\n.badge.text-yellow {\n background: color-mix(in srgb, var(--scalar-color-yellow), transparent 90%);\n border: transparent;\n}\n.badge.text-red {\n background: color-mix(in srgb, var(--scalar-color-red), transparent 90%);\n border: transparent;\n}\n.badge.text-purple {\n background: color-mix(in srgb, var(--scalar-color-purple), transparent 90%);\n border: transparent;\n}\n.badge.text-green {\n background: color-mix(in srgb, var(--scalar-color-green), transparent 90%);\n border: transparent;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst { color } = defineProps<{\n color?: string\n}>()\n\nconst badgeStyle = computed(() =>\n color\n ? {\n '--badge-background-color': color,\n '--badge-text-color': `color-mix(in srgb, ${color}, black 40%)`,\n }\n : {},\n)\n</script>\n\n<template>\n <div\n class=\"badge\"\n :style=\"badgeStyle\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.badge {\n color: var(--badge-text-color, var(--scalar-color-2));\n font-size: var(--scalar-mini);\n background: var(--badge-background-color, var(--scalar-background-2));\n border: var(--scalar-border-width) solid\n var(--badge-border-color, var(--scalar-border-color));\n padding: 2px 6px;\n border-radius: 12px;\n display: inline-block;\n}\n.badge.text-orange {\n background: color-mix(in srgb, var(--scalar-color-orange), transparent 90%);\n border: transparent;\n}\n.badge.text-yellow {\n background: color-mix(in srgb, var(--scalar-color-yellow), transparent 90%);\n border: transparent;\n}\n.badge.text-red {\n background: color-mix(in srgb, var(--scalar-color-red), transparent 90%);\n border: transparent;\n}\n.badge.text-purple {\n background: color-mix(in srgb, var(--scalar-color-purple), transparent 90%);\n border: transparent;\n}\n.badge.text-green {\n background: color-mix(in srgb, var(--scalar-color-green), transparent 90%);\n border: transparent;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from 'vue'\n\nimport { useIntersection } from '@/hooks/use-intersection'\n\nconst emit = defineEmits<{\n (e: 'intersecting'): void\n}>()\n\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () => emit('intersecting'))\n</script>\n<template>\n <section\n ref=\"section\"\n class=\"section\">\n <slot />\n </section>\n</template>\n\n<style scoped>\n.section {\n position: relative;\n display: flex;\n flex-direction: column;\n\n max-width: var(--refs-content-max-width);\n margin: auto;\n\n padding: 90px 0;\n\n /* Offset by header height to line up scroll position */\n scroll-margin-top: var(--refs-viewport-offset);\n}\n.section:has(~ div.contents) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.references-classic .section {\n padding: 48px 0;\n gap: 24px;\n}\n@container narrow-references-container (max-width: 900px) {\n .references-classic .section,\n .section {\n padding: 48px 24px;\n }\n}\n.section:not(:last-of-type) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from 'vue'\n\nimport { useIntersection } from '@/hooks/use-intersection'\n\nconst emit = defineEmits<{\n (e: 'intersecting'): void\n}>()\n\nconst section = useTemplateRef<HTMLElement>('section')\n\nuseIntersection(section, () => emit('intersecting'))\n</script>\n<template>\n <section\n ref=\"section\"\n class=\"section\">\n <slot />\n </section>\n</template>\n\n<style scoped>\n.section {\n position: relative;\n display: flex;\n flex-direction: column;\n\n max-width: var(--refs-content-max-width);\n margin: auto;\n\n padding: 90px 0;\n\n /* Offset by header height to line up scroll position */\n scroll-margin-top: var(--refs-viewport-offset);\n}\n.section:has(~ div.contents) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n.references-classic .section {\n padding: 48px 0;\n gap: 24px;\n}\n@container narrow-references-container (max-width: 900px) {\n .references-classic .section,\n .section {\n padding: 48px 24px;\n }\n}\n.section:not(:last-of-type) {\n border-bottom: var(--scalar-border-width) solid var(--scalar-border-color);\n}\n</style>\n","<template>\n <div class=\"section-column\"><slot /></div>\n</template>\n\n<style scoped>\n.section-column {\n flex: 1;\n min-width: 0;\n}\n@container narrow-references-container (max-width: 900px) {\n .section-column:nth-of-type(2) {\n padding-top: 0;\n }\n}\n</style>\n","<template>\n <div class=\"section-columns\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.section-columns {\n display: flex;\n gap: 48px;\n}\n@container narrow-references-container (max-width: 900px) {\n .section-columns {\n flex-direction: column;\n gap: 24px;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(defineProps<{ lines?: number }>(), {\n lines: 1,\n})\n</script>\n\n<template>\n <div\n v-for=\"idx in [...Array(lines).keys()]\"\n :key=\"idx\"\n class=\"loading\"\n :class=\"{ 'single-line': lines === 1 }\" />\n</template>\n\n<style scoped>\n.loading {\n background: var(--scalar-background-3);\n animation: loading-skeleton 1.5s infinite alternate;\n border-radius: var(--scalar-radius-lg);\n min-height: 1.6em;\n margin: 0.6em 0;\n max-width: 100%;\n}\n.loading:first-of-type {\n min-height: 3em;\n margin-bottom: 24px;\n margin-top: 0;\n}\n.loading:last-of-type {\n width: 60%;\n}\n\n.loading.single-line {\n min-height: 3em;\n margin: 0.6em 0;\n max-width: 80%;\n}\n\n@keyframes loading-skeleton {\n from {\n opacity: 1;\n }\n to {\n opacity: 0.33;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(defineProps<{ lines?: number }>(), {\n lines: 1,\n})\n</script>\n\n<template>\n <div\n v-for=\"idx in [...Array(lines).keys()]\"\n :key=\"idx\"\n class=\"loading\"\n :class=\"{ 'single-line': lines === 1 }\" />\n</template>\n\n<style scoped>\n.loading {\n background: var(--scalar-background-3);\n animation: loading-skeleton 1.5s infinite alternate;\n border-radius: var(--scalar-radius-lg);\n min-height: 1.6em;\n margin: 0.6em 0;\n max-width: 100%;\n}\n.loading:first-of-type {\n min-height: 3em;\n margin-bottom: 24px;\n margin-top: 0;\n}\n.loading:last-of-type {\n width: 60%;\n}\n\n.loading.single-line {\n min-height: 3em;\n margin: 0.6em 0;\n max-width: 80%;\n}\n\n@keyframes loading-skeleton {\n from {\n opacity: 1;\n }\n to {\n opacity: 0.33;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\nwithDefaults(\n defineProps<{\n loading?: boolean\n }>(),\n {\n loading: false,\n },\n)\n</script>\n\n<template>\n <div class=\"section-content\">\n <slot v-if=\"!loading\" />\n <template v-else>\n <LoadingSkeleton :lines=\"8\" />\n </template>\n </div>\n</template>\n\n<style scoped>\n@container narrow-references-container (max-width: 900px) {\n .section-content--with-columns {\n flex-direction: column;\n gap: 24px;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\nwithDefaults(\n defineProps<{\n loading?: boolean\n }>(),\n {\n loading: false,\n },\n)\n</script>\n\n<template>\n <div class=\"section-content\">\n <slot v-if=\"!loading\" />\n <template v-else>\n <LoadingSkeleton :lines=\"8\" />\n </template>\n </div>\n</template>\n\n<style scoped>\n@container narrow-references-container (max-width: 900px) {\n .section-content--with-columns {\n flex-direction: column;\n gap: 24px;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\ndefineProps<{\n loading?: boolean\n tight?: boolean\n}>()\n</script>\n\n<template>\n <div class=\"section-header-wrapper xl:gap-12\">\n <LoadingSkeleton v-if=\"loading\" />\n <div\n v-else\n class=\"section-header\"\n :class=\"{ tight }\">\n <slot />\n </div>\n <slot\n v-if=\"$slots.links\"\n name=\"links\" />\n </div>\n</template>\n\n<style scoped>\n@reference \"@/style.css\";\n\n.section-header-wrapper {\n display: grid;\n grid-template-columns: 1fr;\n}\n\n@variant xl {\n .section-header-wrapper {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.section-header {\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n /* prettier-ignore */\n color: var(--scalar-color-1);\n word-wrap: break-word;\n line-height: 1.45;\n margin-top: 0;\n margin-bottom: 12px;\n}\n\n.section-header.tight {\n margin-bottom: 6px;\n}\n\n.section-header.loading {\n width: 80%;\n}\n</style>\n","<script setup lang=\"ts\">\nimport LoadingSkeleton from '../LoadingSkeleton.vue'\n\ndefineProps<{\n loading?: boolean\n tight?: boolean\n}>()\n</script>\n\n<template>\n <div class=\"section-header-wrapper xl:gap-12\">\n <LoadingSkeleton v-if=\"loading\" />\n <div\n v-else\n class=\"section-header\"\n :class=\"{ tight }\">\n <slot />\n </div>\n <slot\n v-if=\"$slots.links\"\n name=\"links\" />\n </div>\n</template>\n\n<style scoped>\n@reference \"@/style.css\";\n\n.section-header-wrapper {\n display: grid;\n grid-template-columns: 1fr;\n}\n\n@variant xl {\n .section-header-wrapper {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.section-header {\n font-size: var(--font-size, var(--scalar-heading-1));\n font-weight: var(--font-weight, var(--scalar-bold));\n /* prettier-ignore */\n color: var(--scalar-color-1);\n word-wrap: break-word;\n line-height: 1.45;\n margin-top: 0;\n margin-bottom: 12px;\n}\n\n.section-header.tight {\n margin-bottom: 6px;\n}\n\n.section-header.loading {\n width: 80%;\n}\n</style>\n","<script setup lang=\"ts\">\nconst { level = 1 } = defineProps<{ level?: 1 | 2 | 3 | 4 | 5 | 6 }>()\n</script>\n<template>\n <component\n :is=\"`h${level}`\"\n class=\"section-header-label\">\n <slot />\n </component>\n</template>\n<style scoped>\n.section-header-label {\n display: inline;\n}\n</style>\n","<script setup lang=\"ts\">\nconst { level = 1 } = defineProps<{ level?: 1 | 2 | 3 | 4 | 5 | 6 }>()\n</script>\n<template>\n <component\n :is=\"`h${level}`\"\n class=\"section-header-label\">\n <slot />\n </component>\n</template>\n<style scoped>\n.section-header-label {\n display: inline;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarErrorBoundary } from '@scalar/components'\nimport { computed } from 'vue'\n\nimport { usePluginManager } from '@/plugins'\n\nconst { value } = defineProps<{\n /**\n * Any value that can contain OpenAPI specification extensions.\n */\n value: Record<string, unknown> | undefined\n}>()\n\nconst { getSpecificationExtensions } = usePluginManager()\n\n/**\n * Extract registered OpenAPI extension names\n */\nfunction getCustomExtensionNames(\n value: Record<string, any> | undefined,\n): `x-${string}`[] {\n return Object.keys(value ?? {}).filter((item) =>\n item.startsWith('x-'),\n ) as `x-${string}`[]\n}\n\n/**\n * Get the components for the specification extensions\n */\nfunction getCustomOpenApiExtensionComponents(extensionNames: `x-${string}`[]) {\n return extensionNames\n .flatMap((name) => getSpecificationExtensions(name))\n .filter((extension) => extension.component)\n}\n\n/**\n * Get the names of custom extensions from the provided value.\n */\nconst customExtensionNames = computed(() => getCustomExtensionNames(value))\n\n/**\n * Get the components for the custom extensions.\n */\nconst customExtensions = computed(() =>\n getCustomOpenApiExtensionComponents(customExtensionNames.value),\n)\n</script>\n\n<template>\n <template v-if=\"typeof value === 'object' && customExtensions.length\">\n <div class=\"text-base\">\n <template v-for=\"extension in customExtensions\">\n <ScalarErrorBoundary>\n <template v-if=\"extension.renderer\">\n <!-- Custom rendering -->\n <component\n :is=\"extension.renderer\"\n v-bind=\"{\n [extension.name]: value?.[extension.name],\n component: extension.component,\n }\" />\n </template>\n <template v-else>\n <!-- Vue rendering -->\n <component\n :is=\"extension.component\"\n v-bind=\"{ [extension.name]: value?.[extension.name] }\" />\n </template>\n </ScalarErrorBoundary>\n </template>\n </div>\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarErrorBoundary } from '@scalar/components'\nimport { computed } from 'vue'\n\nimport { usePluginManager } from '@/plugins'\n\nconst { value } = defineProps<{\n /**\n * Any value that can contain OpenAPI specification extensions.\n */\n value: Record<string, unknown> | undefined\n}>()\n\nconst { getSpecificationExtensions } = usePluginManager()\n\n/**\n * Extract registered OpenAPI extension names\n */\nfunction getCustomExtensionNames(\n value: Record<string, any> | undefined,\n): `x-${string}`[] {\n return Object.keys(value ?? {}).filter((item) =>\n item.startsWith('x-'),\n ) as `x-${string}`[]\n}\n\n/**\n * Get the components for the specification extensions\n */\nfunction getCustomOpenApiExtensionComponents(extensionNames: `x-${string}`[]) {\n return extensionNames\n .flatMap((name) => getSpecificationExtensions(name))\n .filter((extension) => extension.component)\n}\n\n/**\n * Get the names of custom extensions from the provided value.\n */\nconst customExtensionNames = computed(() => getCustomExtensionNames(value))\n\n/**\n * Get the components for the custom extensions.\n */\nconst customExtensions = computed(() =>\n getCustomOpenApiExtensionComponents(customExtensionNames.value),\n)\n</script>\n\n<template>\n <template v-if=\"typeof value === 'object' && customExtensions.length\">\n <div class=\"text-base\">\n <template v-for=\"extension in customExtensions\">\n <ScalarErrorBoundary>\n <template v-if=\"extension.renderer\">\n <!-- Custom rendering -->\n <component\n :is=\"extension.renderer\"\n v-bind=\"{\n [extension.name]: value?.[extension.name],\n component: extension.component,\n }\" />\n </template>\n <template v-else>\n <!-- Vue rendering -->\n <component\n :is=\"extension.component\"\n v-bind=\"{ [extension.name]: value?.[extension.name] }\" />\n </template>\n </ScalarErrorBoundary>\n </template>\n </div>\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\n\nconst containerRef = ref<HTMLDivElement>()\n\n/** Whether the container needs to scroll */\nconst needsScroll = ref(false)\n\n/** Check if the container can scroll in either direction */\nconst checkScrollability = () => {\n if (!containerRef.value) {\n return\n }\n\n const { scrollWidth, clientWidth } = containerRef.value\n needsScroll.value = scrollWidth > clientWidth\n}\n\n/** MutationObserver to watch for changes in child elements */\nlet mutationObserver: MutationObserver | null = null\n\n/**\n * We use the mutation observer to watch for changes and check if we need to scroll,\n * if we do need to scroll we apply the icons-only class to the container\n */\nonMounted(() => {\n checkScrollability()\n\n // Re-check on window resize\n window.addEventListener('resize', checkScrollability)\n\n // Watch for changes in child elements\n if (containerRef.value) {\n mutationObserver = new MutationObserver(() => {\n checkScrollability()\n })\n\n mutationObserver.observe(containerRef.value, {\n childList: true,\n subtree: true,\n })\n }\n})\n\nonUnmounted(() => {\n // Clean up event listeners and observer\n window.removeEventListener('resize', checkScrollability)\n\n if (mutationObserver) {\n mutationObserver.disconnect()\n mutationObserver = null\n }\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n :class=\"{ 'icons-only': needsScroll }\"\n class=\"custom-scroll mb-3 flex h-auto min-h-8 max-w-full items-center gap-2 overflow-x-auto text-base whitespace-nowrap xl:mb-1.5\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.icons-only :deep(span) {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref } from 'vue'\n\nconst containerRef = ref<HTMLDivElement>()\n\n/** Whether the container needs to scroll */\nconst needsScroll = ref(false)\n\n/** Check if the container can scroll in either direction */\nconst checkScrollability = () => {\n if (!containerRef.value) {\n return\n }\n\n const { scrollWidth, clientWidth } = containerRef.value\n needsScroll.value = scrollWidth > clientWidth\n}\n\n/** MutationObserver to watch for changes in child elements */\nlet mutationObserver: MutationObserver | null = null\n\n/**\n * We use the mutation observer to watch for changes and check if we need to scroll,\n * if we do need to scroll we apply the icons-only class to the container\n */\nonMounted(() => {\n checkScrollability()\n\n // Re-check on window resize\n window.addEventListener('resize', checkScrollability)\n\n // Watch for changes in child elements\n if (containerRef.value) {\n mutationObserver = new MutationObserver(() => {\n checkScrollability()\n })\n\n mutationObserver.observe(containerRef.value, {\n childList: true,\n subtree: true,\n })\n }\n})\n\nonUnmounted(() => {\n // Clean up event listeners and observer\n window.removeEventListener('resize', checkScrollability)\n\n if (mutationObserver) {\n mutationObserver.disconnect()\n mutationObserver = null\n }\n})\n</script>\n\n<template>\n <div\n ref=\"containerRef\"\n :class=\"{ 'icons-only': needsScroll }\"\n class=\"custom-scroll mb-3 flex h-auto min-h-8 max-w-full items-center gap-2 overflow-x-auto text-base whitespace-nowrap xl:mb-1.5\">\n <slot />\n </div>\n</template>\n\n<style scoped>\n.icons-only :deep(span) {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ScalarIconBook } from '@scalar/icons'\nimport { type OpenAPIV3_1 } from '@scalar/openapi-types'\n\ndefineProps<{\n value?: OpenAPIV3_1.ExternalDocumentationObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :href=\"value.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconBook\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span\n class=\"ml-1 empty:hidden\"\n v-if=\"value.description\">\n {{ value.description }}\n </span>\n <span\n class=\"ml-1 empty:hidden\"\n v-else>\n {{ value.url }}\n </span>\n </a>\n </div>\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarIconBook } from '@scalar/icons'\nimport { type OpenAPIV3_1 } from '@scalar/openapi-types'\n\ndefineProps<{\n value?: OpenAPIV3_1.ExternalDocumentationObject\n}>()\n</script>\n\n<template>\n <template v-if=\"value\">\n <div\n class=\"group flex items-center last:border-r-0 xl:border-r xl:first:ml-auto\">\n <a\n :href=\"value.url\"\n class=\"text-c-1 hover:bg-b-2 mr-2 flex min-h-7 min-w-7 items-center rounded-lg border px-2 py-1 no-underline group-last:mr-0 xl:border-none\"\n target=\"_blank\"\n rel=\"noopener noreferrer\">\n <ScalarIconBook\n weight=\"bold\"\n class=\"size-3 text-current\" />\n <span\n class=\"ml-1 empty:hidden\"\n v-if=\"value.description\">\n {{ value.description }}\n </span>\n <span\n class=\"ml-1 empty:hidden\"\n v-else>\n {{ value.url }}\n </span>\n </a>\n </div>\n </template>\n</template>\n"],"mappings":"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"}
|