@scalar/api-reference 1.49.0 → 1.49.2
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 +14 -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-DAm6yQX0.js +1373 -0
- package/dist/MobileHeader-DAm6yQX0.js.map +1 -0
- package/dist/Operation-CvpVIkc3.js +3829 -0
- package/dist/Operation-CvpVIkc3.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 +40799 -34683
- 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/Badge/index.d.ts +1 -1
- package/dist/components/Content/Auth/index.d.ts +1 -1
- package/dist/components/Content/Models/index.d.ts +2 -2
- 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/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/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/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/ParameterListItem.vue.d.ts.map +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/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/index.d.ts +8 -8
- package/dist/helpers/index.js +3 -24
- 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-DJwsRvMU.js +1686 -0
- package/dist/src-DJwsRvMU.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 +6714 -7276
- 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 -742
- 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 -171
- 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 -76
- 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 -146
- 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 -236
- 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 -56
- 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 -106
- 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 -51
- 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 -109
- package/dist/helpers/lazy-bus.js +0 -195
- 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,19 @@
|
|
|
1
1
|
# @scalar/api-reference
|
|
2
2
|
|
|
3
|
+
## 1.49.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#8509](https://github.com/scalar/scalar/pull/8509): fix: show falsy example values (false, 0) in schema property headings
|
|
8
|
+
- [#8514](https://github.com/scalar/scalar/pull/8514): fix: invalid markup breaks ssr
|
|
9
|
+
|
|
10
|
+
## 1.49.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#8466](https://github.com/scalar/scalar/pull/8466): chore: new build pipeline
|
|
15
|
+
- [#8479](https://github.com/scalar/scalar/pull/8479): fix: render schema property examples when values are falsy
|
|
16
|
+
|
|
3
17
|
## 1.49.0
|
|
4
18
|
|
|
5
19
|
### Minor 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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"}
|