zudoku 0.45.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +8 -2
- package/dist/app/main.js +4 -23
- package/dist/app/main.js.map +1 -1
- package/dist/config/config.d.ts +2 -2
- package/dist/config/file-exists.d.ts +1 -0
- package/dist/config/file-exists.js +5 -0
- package/dist/config/file-exists.js.map +1 -0
- package/dist/config/loader.d.ts +19 -4
- package/dist/config/loader.js +94 -14
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/validate.d.ts +3536 -743
- package/dist/config/validators/validate.js +396 -11
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/authentication/AuthenticationPlugin.d.ts +7 -2
- package/dist/lib/authentication/AuthenticationPlugin.js +13 -1
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +2 -4
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/clerk.js +62 -43
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +7 -12
- package/dist/lib/authentication/providers/openid.js +11 -22
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/providers/supabase.js +3 -5
- package/dist/lib/authentication/providers/supabase.js.map +1 -1
- package/dist/lib/components/Autocomplete.js +1 -1
- package/dist/lib/components/Banner.js +1 -1
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +1 -1
- package/dist/lib/components/Footer.js +5 -5
- package/dist/lib/components/Footer.js.map +1 -1
- package/dist/lib/components/Header.js +16 -8
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.js +6 -1
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/InlineCode.js +1 -1
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/Layout.js +2 -2
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Main.js +2 -2
- package/dist/lib/components/Main.js.map +1 -1
- package/dist/lib/components/Markdown.js +8 -3
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +3 -2
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +1 -1
- package/dist/lib/components/Pagination.js +1 -1
- package/dist/lib/components/Pagination.js.map +1 -1
- package/dist/lib/components/Search.js +1 -1
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/Slot.d.ts +17 -0
- package/dist/lib/components/Slot.js +24 -0
- package/dist/lib/components/Slot.js.map +1 -0
- package/dist/lib/components/Slot.test.js +168 -0
- package/dist/lib/components/Slot.test.js.map +1 -0
- package/dist/lib/components/TopNavigation.d.ts +1 -4
- package/dist/lib/components/TopNavigation.js +3 -11
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Zudoku.js +2 -2
- package/dist/lib/components/Zudoku.js.map +1 -1
- package/dist/lib/components/context/SlotProvider.d.ts +26 -0
- package/dist/lib/components/context/SlotProvider.js +83 -0
- package/dist/lib/components/context/SlotProvider.js.map +1 -0
- package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
- package/dist/lib/components/context/ZudokuProvider.js +2 -1
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +29 -23
- package/dist/lib/components/index.js +13 -7
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/PoweredByZudoku.js +1 -1
- package/dist/lib/components/navigation/Sidebar.js +3 -3
- package/dist/lib/components/navigation/Sidebar.js.map +1 -1
- package/dist/lib/components/navigation/SidebarBadge.js +1 -1
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js +3 -3
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +0 -5
- package/dist/lib/components/navigation/SidebarItem.js +19 -23
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.js +1 -1
- package/dist/lib/components/navigation/Toc.js +1 -1
- package/dist/lib/components/navigation/Toc.js.map +1 -1
- package/dist/lib/components/navigation/utils.d.ts +8 -0
- package/dist/lib/components/navigation/utils.js +34 -6
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +12 -8
- package/dist/lib/core/ZudokuContext.js +6 -5
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +5 -2
- package/dist/lib/core/plugins.js +1 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/errors/ErrorAlert.js +1 -1
- package/dist/lib/hooks/index.d.ts +19 -0
- package/dist/lib/hooks/index.js +11 -0
- package/dist/lib/hooks/index.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.js +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
- package/dist/lib/plugins/api-keys/CreateApiKey.js +8 -4
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +54 -23
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +18 -9
- package/dist/lib/plugins/api-keys/index.js +49 -34
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js +1 -1
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/index.d.ts +1 -1
- package/dist/lib/plugins/markdown/resolver.d.ts +1 -1
- package/dist/lib/plugins/markdown/resolver.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
- package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +1 -1
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +2 -3
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +5 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +2 -4
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +1 -4
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.js +6 -5
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js +8 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
- package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
- package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
- package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js +21 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Playground.js +2 -0
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
- package/dist/lib/plugins/openapi/playground/SubmitButton.js +7 -10
- package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +2 -2
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +2 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.js +3 -3
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/redirect/index.d.ts +1 -1
- package/dist/lib/ui/Badge.d.ts +2 -2
- package/dist/lib/ui/Badge.js +1 -1
- package/dist/lib/ui/Badge.js.map +1 -1
- package/dist/lib/ui/Button.d.ts +2 -2
- package/dist/lib/ui/Button.js +8 -6
- package/dist/lib/ui/Button.js.map +1 -1
- package/dist/lib/ui/Callout.js +1 -1
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Card.js +1 -1
- package/dist/lib/ui/Checkbox.js +1 -1
- package/dist/lib/ui/Checkbox.js.map +1 -1
- package/dist/lib/ui/Command.d.ts +2 -2
- package/dist/lib/ui/Command.js +3 -3
- package/dist/lib/ui/Command.js.map +1 -1
- package/dist/lib/ui/Dialog.js +1 -1
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/lib/ui/DropdownMenu.js +4 -4
- package/dist/lib/ui/DropdownMenu.js.map +1 -1
- package/dist/lib/ui/HoverCard.js +1 -1
- package/dist/lib/ui/HoverCard.js.map +1 -1
- package/dist/lib/ui/Input.js +1 -1
- package/dist/lib/ui/Input.js.map +1 -1
- package/dist/lib/ui/Popover.js +1 -1
- package/dist/lib/ui/Popover.js.map +1 -1
- package/dist/lib/ui/RadioGroup.js +1 -1
- package/dist/lib/ui/RadioGroup.js.map +1 -1
- package/dist/lib/ui/Select.js +2 -2
- package/dist/lib/ui/Select.js.map +1 -1
- package/dist/lib/ui/Slider.js +1 -1
- package/dist/lib/ui/Slider.js.map +1 -1
- package/dist/lib/ui/Switch.js +1 -1
- package/dist/lib/ui/Switch.js.map +1 -1
- package/dist/lib/ui/Tabs.js +2 -2
- package/dist/lib/ui/Tabs.js.map +1 -1
- package/dist/lib/ui/Textarea.js +1 -1
- package/dist/lib/ui/Textarea.js.map +1 -1
- package/dist/lib/ui/Toggle.js +1 -1
- package/dist/lib/ui/Toggle.js.map +1 -1
- package/dist/lib/ui/Tooltip.d.ts +2 -1
- package/dist/lib/ui/Tooltip.js +2 -1
- package/dist/lib/ui/Tooltip.js.map +1 -1
- package/dist/lib/util/useExposedProps.d.ts +8 -1
- package/dist/lib/util/useExposedProps.js.map +1 -1
- package/dist/vite/api/SchemaManager.js +16 -1
- package/dist/vite/api/SchemaManager.js.map +1 -1
- package/dist/vite/build.js +44 -6
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +2 -9
- package/dist/vite/config.js +6 -95
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +1 -1
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/css/plugin.d.ts +1 -2
- package/dist/vite/css/plugin.js +3 -2
- package/dist/vite/css/plugin.js.map +1 -1
- package/dist/vite/dev-server.d.ts +0 -1
- package/dist/vite/dev-server.js +10 -12
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/html.d.ts +2 -2
- package/dist/vite/html.js +5 -2
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/plugin-api-keys.d.ts +1 -2
- package/dist/vite/plugin-api-keys.js +9 -3
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +1 -2
- package/dist/vite/plugin-api.js +5 -4
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.d.ts +1 -2
- package/dist/vite/plugin-auth.js +3 -2
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-component.d.ts +1 -2
- package/dist/vite/plugin-component.js +3 -2
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.d.ts +1 -2
- package/dist/vite/plugin-config-reload.js +21 -22
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-config.d.ts +1 -2
- package/dist/vite/plugin-config.js +4 -3
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-configure-tailwind.d.ts +2 -0
- package/dist/vite/plugin-configure-tailwind.js +38 -0
- package/dist/vite/plugin-configure-tailwind.js.map +1 -0
- package/dist/vite/plugin-custom-pages.d.ts +1 -2
- package/dist/vite/plugin-custom-pages.js +3 -2
- package/dist/vite/plugin-custom-pages.js.map +1 -1
- package/dist/vite/plugin-docs.d.ts +1 -2
- package/dist/vite/plugin-docs.js +4 -3
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +1 -2
- package/dist/vite/plugin-frontmatter.js +3 -2
- package/dist/vite/plugin-frontmatter.js.map +1 -1
- package/dist/vite/plugin-mdx.d.ts +1 -2
- package/dist/vite/plugin-mdx.js +3 -2
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-redirect.d.ts +1 -2
- package/dist/vite/plugin-redirect.js +3 -2
- package/dist/vite/plugin-redirect.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +1 -2
- package/dist/vite/plugin-search.js +3 -2
- package/dist/vite/plugin-search.js.map +1 -1
- package/dist/vite/plugin-shiki-register.d.ts +1 -2
- package/dist/vite/plugin-shiki-register.js +2 -1
- package/dist/vite/plugin-shiki-register.js.map +1 -1
- package/dist/vite/plugin-sidebar.d.ts +1 -2
- package/dist/vite/plugin-sidebar.js +3 -2
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin-theme-css.d.ts +1 -2
- package/dist/vite/plugin-theme-css.js +20 -60
- package/dist/vite/plugin-theme-css.js.map +1 -1
- package/dist/vite/plugin.d.ts +1 -2
- package/dist/vite/plugin.js +22 -21
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/sitemap.d.ts +1 -1
- package/dist/zuplo/with-zuplo.d.ts +2 -2
- package/dist/zuplo/with-zuplo.js.map +1 -1
- package/lib/Button-BE9IVkWV.js +51 -0
- package/lib/Button-BE9IVkWV.js.map +1 -0
- package/lib/{Callout-XadUe37J.js → Callout-BkgOUkoZ.js} +9 -8
- package/lib/Callout-BkgOUkoZ.js.map +1 -0
- package/lib/{Card-BlCYNw5W.js → Card-DPhGbYUM.js} +3 -3
- package/lib/{Card-BlCYNw5W.js.map → Card-DPhGbYUM.js.map} +1 -1
- package/lib/{CategoryHeading-DZi-Szor.js → CategoryHeading-Cu2RwgjC.js} +2 -2
- package/lib/{CategoryHeading-DZi-Szor.js.map → CategoryHeading-Cu2RwgjC.js.map} +1 -1
- package/lib/{Dialog-CNf2oWXG.js → Dialog-Du6WMcIA.js} +8 -7
- package/lib/Dialog-Du6WMcIA.js.map +1 -0
- package/lib/{Drawer-BPBxzel2.js → Drawer-BzkOKwgC.js} +2 -2
- package/lib/{Drawer-BPBxzel2.js.map → Drawer-BzkOKwgC.js.map} +1 -1
- package/lib/Markdown-BRAyzyUJ.js +15348 -0
- package/lib/Markdown-BRAyzyUJ.js.map +1 -0
- package/lib/{MdxPage-Sjv6y3cA.js → MdxPage-B3v1BSKr.js} +11 -11
- package/lib/MdxPage-B3v1BSKr.js.map +1 -0
- package/lib/{OasProvider-CzRXrs_-.js → OasProvider-5jrFuhVk.js} +3 -3
- package/lib/{OasProvider-CzRXrs_-.js.map → OasProvider-5jrFuhVk.js.map} +1 -1
- package/lib/{OperationList-DefCF3ZI.js → OperationList-BmoMLQPO.js} +1039 -1005
- package/lib/OperationList-BmoMLQPO.js.map +1 -0
- package/lib/Pagination-Cr0fWZS3.js +36 -0
- package/lib/Pagination-Cr0fWZS3.js.map +1 -0
- package/lib/RouteGuard-PrSVLbSr.js +55 -0
- package/lib/RouteGuard-PrSVLbSr.js.map +1 -0
- package/lib/{SchemaList-zHQ2Ekyw.js → SchemaList-B4riYLoP.js} +61 -47
- package/lib/SchemaList-B4riYLoP.js.map +1 -0
- package/lib/{SchemaView-CqF4oMU-.js → SchemaView-CPZ6RgsF.js} +100 -95
- package/lib/SchemaView-CPZ6RgsF.js.map +1 -0
- package/lib/{AuthenticationPlugin-UNaAuxNo.js → SignUp-CWaiH0tY.js} +23 -50
- package/lib/SignUp-CWaiH0tY.js.map +1 -0
- package/lib/Slot-Bo6K4tnb.js +160 -0
- package/lib/Slot-Bo6K4tnb.js.map +1 -0
- package/lib/{SyntaxHighlight-UxOF1xNb.js → SyntaxHighlight-DedRjJNr.js} +233 -212
- package/lib/{SyntaxHighlight-UxOF1xNb.js.map → SyntaxHighlight-DedRjJNr.js.map} +1 -1
- package/lib/{Toc-Ax54Pw8S.js → Toc-lL3fzNkl.js} +5 -5
- package/lib/Toc-lL3fzNkl.js.map +1 -0
- package/lib/{circular-B_TODp4H.js → circular-oB4auIIg.js} +2 -2
- package/lib/{circular-B_TODp4H.js.map → circular-oB4auIIg.js.map} +1 -1
- package/lib/clsx-OuTLNxxd.js +17 -0
- package/lib/clsx-OuTLNxxd.js.map +1 -0
- package/lib/{cn-CwJPJKOE.js → cn-wvCW-ho6.js} +1015 -562
- package/lib/cn-wvCW-ho6.js.map +1 -0
- package/lib/{createServer-CXd8q7nF.js → createServer-DCB82j2t.js} +81 -81
- package/lib/{createServer-CXd8q7nF.js.map → createServer-DCB82j2t.js.map} +1 -1
- package/lib/{hook-BwOB_iZo.js → hook-DawSLaZr.js} +323 -300
- package/lib/hook-DawSLaZr.js.map +1 -0
- package/lib/{index-BY8J3gEh.js → index-BXYvD5-7.js} +868 -758
- package/lib/index-BXYvD5-7.js.map +1 -0
- package/lib/{index-Z13x6tPX.js → index-DI5SPFK9.js} +2 -2
- package/lib/{index-Z13x6tPX.js.map → index-DI5SPFK9.js.map} +1 -1
- package/lib/index-QzXzw_ra.js +24 -0
- package/lib/index-QzXzw_ra.js.map +1 -0
- package/lib/{RouteGuard-lkdEJoDV.js → index.esm-BFcSKCe-.js} +232 -281
- package/lib/index.esm-BFcSKCe-.js.map +1 -0
- package/lib/{index.esm-D2ZUREQN.js → index.esm-DSfX_eMP.js} +3 -3
- package/lib/{index.esm-D2ZUREQN.js.map → index.esm-DSfX_eMP.js.map} +1 -1
- package/lib/joinPath-B7kNnUX4.js +8 -0
- package/lib/joinPath-B7kNnUX4.js.map +1 -0
- package/lib/{mutation-CL2MCRQL.js → mutation-oxMvODNQ.js} +2 -2
- package/lib/{mutation-CL2MCRQL.js.map → mutation-oxMvODNQ.js.map} +1 -1
- package/lib/ui/Accordion.js +1 -1
- package/lib/ui/ActionButton.js +2 -2
- package/lib/ui/Alert.js +2 -2
- package/lib/ui/AlertDialog.js +1 -1
- package/lib/ui/Badge.js +3 -3
- package/lib/ui/Badge.js.map +1 -1
- package/lib/ui/Breadcrumb.js +1 -1
- package/lib/ui/Button.js +20 -18
- package/lib/ui/Button.js.map +1 -1
- package/lib/ui/Callout.js +6 -5
- package/lib/ui/Callout.js.map +1 -1
- package/lib/ui/Card.js +8 -8
- package/lib/ui/Card.js.map +1 -1
- package/lib/ui/Carousel.js +1 -1
- package/lib/ui/Checkbox.js +7 -7
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/CodeBlock.js +1 -1
- package/lib/ui/Command.js +43 -43
- package/lib/ui/Command.js.map +1 -1
- package/lib/ui/Dialog.js +2 -2
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/Drawer.js +2 -2
- package/lib/ui/DropdownMenu.js +34 -34
- package/lib/ui/DropdownMenu.js.map +1 -1
- package/lib/ui/Form.js +2 -2
- package/lib/ui/HoverCard.js +5 -5
- package/lib/ui/HoverCard.js.map +1 -1
- package/lib/ui/Input.js +2 -2
- package/lib/ui/Input.js.map +1 -1
- package/lib/ui/Label.js +2 -2
- package/lib/ui/Pagination.js +1 -1
- package/lib/ui/Popover.js +2 -2
- package/lib/ui/Popover.js.map +1 -1
- package/lib/ui/Progress.js +1 -1
- package/lib/ui/RadioGroup.js +10 -10
- package/lib/ui/RadioGroup.js.map +1 -1
- package/lib/ui/ScrollArea.js +1 -1
- package/lib/ui/Select.js +31 -31
- package/lib/ui/Select.js.map +1 -1
- package/lib/ui/Skeleton.js +1 -1
- package/lib/ui/Slider.js +5 -5
- package/lib/ui/Slider.js.map +1 -1
- package/lib/ui/Switch.js +5 -5
- package/lib/ui/Switch.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +2 -2
- package/lib/ui/Tabs.js +16 -16
- package/lib/ui/Tabs.js.map +1 -1
- package/lib/ui/Textarea.js +5 -5
- package/lib/ui/Textarea.js.map +1 -1
- package/lib/ui/Toggle.js +7 -7
- package/lib/ui/Toggle.js.map +1 -1
- package/lib/ui/ToggleGroup.js +1 -1
- package/lib/ui/Tooltip.js +15 -8
- package/lib/ui/Tooltip.js.map +1 -1
- package/lib/ui/util.js +1 -1
- package/lib/useExposedProps-DG8J6ewJ.js.map +1 -1
- package/lib/useMutation-C_j3dA_L.js +97 -0
- package/lib/useMutation-C_j3dA_L.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +99 -82
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +246 -216
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +4957 -33
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +21 -12
- package/lib/zudoku.hooks.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +8 -8
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +5022 -214
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +2 -2
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +3 -3
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +5 -5
- package/lib/zudoku.plugins.js +7 -6
- package/lib/zudoku.plugins.js.map +1 -1
- package/package.json +15 -16
- package/src/app/defaultTheme.css +54 -0
- package/src/app/font.geist.css +73 -0
- package/src/app/main.css +113 -156
- package/src/app/main.tsx +4 -28
- package/src/lib/authentication/AuthenticationPlugin.tsx +18 -4
- package/src/lib/authentication/authentication.ts +2 -5
- package/src/lib/authentication/providers/auth0.tsx +8 -2
- package/src/lib/authentication/providers/clerk.tsx +72 -48
- package/src/lib/authentication/providers/openid.tsx +19 -26
- package/src/lib/authentication/providers/supabase.tsx +7 -7
- package/src/lib/components/Autocomplete.tsx +1 -1
- package/src/lib/components/Banner.tsx +1 -1
- package/src/lib/components/ErrorPage.tsx +1 -1
- package/src/lib/components/Footer.tsx +7 -10
- package/src/lib/components/Header.tsx +29 -29
- package/src/lib/components/Heading.tsx +9 -5
- package/src/lib/components/InlineCode.tsx +1 -1
- package/src/lib/components/Layout.tsx +3 -3
- package/src/lib/components/Main.tsx +4 -4
- package/src/lib/components/Markdown.tsx +14 -4
- package/src/lib/components/MobileTopNavigation.tsx +3 -2
- package/src/lib/components/NotFoundPage.tsx +1 -1
- package/src/lib/components/Pagination.tsx +3 -9
- package/src/lib/components/Search.tsx +1 -1
- package/src/lib/components/Slot.test.tsx +465 -0
- package/src/lib/components/Slot.tsx +64 -0
- package/src/lib/components/TopNavigation.tsx +5 -17
- package/src/lib/components/Zudoku.tsx +9 -9
- package/src/lib/components/context/SlotProvider.tsx +149 -0
- package/src/lib/components/context/ZudokuProvider.tsx +2 -1
- package/src/lib/components/index.ts +14 -10
- package/src/lib/components/navigation/PoweredByZudoku.tsx +1 -1
- package/src/lib/components/navigation/Sidebar.tsx +3 -3
- package/src/lib/components/navigation/SidebarBadge.tsx +1 -1
- package/src/lib/components/navigation/SidebarCategory.tsx +3 -3
- package/src/lib/components/navigation/SidebarItem.tsx +57 -30
- package/src/lib/components/navigation/SidebarWrapper.tsx +2 -2
- package/src/lib/components/navigation/Toc.tsx +2 -2
- package/src/lib/components/navigation/utils.ts +42 -6
- package/src/lib/core/ZudokuContext.ts +24 -12
- package/src/lib/core/plugins.ts +10 -2
- package/src/lib/errors/ErrorAlert.tsx +1 -1
- package/src/lib/hooks/index.ts +11 -0
- package/src/lib/plugins/api-catalog/Catalog.tsx +1 -1
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +54 -42
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +292 -112
- package/src/lib/plugins/api-keys/index.tsx +101 -55
- package/src/lib/plugins/custom-pages/index.tsx +1 -1
- package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
- package/src/lib/plugins/markdown/index.tsx +2 -2
- package/src/lib/plugins/markdown/resolver.ts +4 -2
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +1 -1
- package/src/lib/plugins/openapi/ColorizedParam.tsx +2 -2
- package/src/lib/plugins/openapi/OperationList.tsx +2 -2
- package/src/lib/plugins/openapi/OperationListItem.tsx +6 -34
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +7 -1
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -16
- package/src/lib/plugins/openapi/SchemaList.tsx +20 -8
- package/src/lib/plugins/openapi/Sidecar.tsx +1 -1
- package/src/lib/plugins/openapi/SidecarExamples.tsx +6 -0
- package/src/lib/plugins/openapi/components/EnumValues.tsx +1 -1
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +104 -0
- package/src/lib/plugins/openapi/playground/Playground.tsx +7 -1
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
- package/src/lib/plugins/openapi/playground/SubmitButton.tsx +24 -29
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +2 -2
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +7 -3
- package/src/lib/plugins/redirect/index.tsx +1 -1
- package/src/lib/ui/Badge.tsx +2 -2
- package/src/lib/ui/Button.tsx +9 -6
- package/src/lib/ui/Callout.tsx +1 -0
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/Checkbox.tsx +1 -1
- package/src/lib/ui/Command.tsx +5 -5
- package/src/lib/ui/Dialog.tsx +1 -1
- package/src/lib/ui/DropdownMenu.tsx +4 -4
- package/src/lib/ui/HoverCard.tsx +1 -1
- package/src/lib/ui/Input.tsx +1 -1
- package/src/lib/ui/Popover.tsx +1 -1
- package/src/lib/ui/RadioGroup.tsx +1 -1
- package/src/lib/ui/Select.tsx +3 -3
- package/src/lib/ui/Slider.tsx +1 -1
- package/src/lib/ui/Switch.tsx +1 -1
- package/src/lib/ui/Tabs.tsx +2 -2
- package/src/lib/ui/Textarea.tsx +1 -1
- package/src/lib/ui/Toggle.tsx +1 -1
- package/src/lib/ui/Tooltip.tsx +16 -1
- package/src/lib/util/useExposedProps.tsx +12 -1
- package/dist/app/tailwind.d.ts +0 -4
- package/dist/app/tailwind.js +0 -97
- package/dist/app/tailwind.js.map +0 -1
- package/dist/config/common.d.ts +0 -10
- package/dist/config/common.js +0 -2
- package/dist/config/common.js.map +0 -1
- package/dist/config/validators/common.d.ts +0 -8001
- package/dist/config/validators/common.js +0 -414
- package/dist/config/validators/common.js.map +0 -1
- package/dist/lib/components/SlotletProvider.d.ts +0 -17
- package/dist/lib/components/SlotletProvider.js +0 -18
- package/dist/lib/components/SlotletProvider.js.map +0 -1
- package/dist/vite/plugin-docs.test.js +0 -22
- package/dist/vite/plugin-docs.test.js.map +0 -1
- package/lib/AuthenticationPlugin-UNaAuxNo.js.map +0 -1
- package/lib/Button-Bdk_Ij3U.js +0 -49
- package/lib/Button-Bdk_Ij3U.js.map +0 -1
- package/lib/Callout-XadUe37J.js.map +0 -1
- package/lib/Dialog-CNf2oWXG.js.map +0 -1
- package/lib/Markdown-D96AphCL.js +0 -7691
- package/lib/Markdown-D96AphCL.js.map +0 -1
- package/lib/MdxPage-Sjv6y3cA.js.map +0 -1
- package/lib/OperationList-DefCF3ZI.js.map +0 -1
- package/lib/Pagination-B89j9KJS.js +0 -48
- package/lib/Pagination-B89j9KJS.js.map +0 -1
- package/lib/RouteGuard-lkdEJoDV.js.map +0 -1
- package/lib/SchemaList-zHQ2Ekyw.js.map +0 -1
- package/lib/SchemaView-CqF4oMU-.js.map +0 -1
- package/lib/Select-HTio1oSE.js +0 -211
- package/lib/Select-HTio1oSE.js.map +0 -1
- package/lib/SlotletProvider-CTgIBRWg.js +0 -257
- package/lib/SlotletProvider-CTgIBRWg.js.map +0 -1
- package/lib/Toc-Ax54Pw8S.js.map +0 -1
- package/lib/cn-CwJPJKOE.js.map +0 -1
- package/lib/hook-BwOB_iZo.js.map +0 -1
- package/lib/index-BY8J3gEh.js.map +0 -1
- package/lib/index-CT2PstvH.js +0 -4982
- package/lib/index-CT2PstvH.js.map +0 -1
- package/src/app/tailwind.ts +0 -103
- package/src/lib/components/SlotletProvider.tsx +0 -55
- /package/dist/{vite/plugin-docs.test.d.ts → lib/components/Slot.test.d.ts} +0 -0
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { j as t } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import { ArrowLeftIcon as i, ArrowRightIcon as l } from "lucide-react";
|
|
3
|
-
import { L as r } from "./chunk-BAXFHI7N-C9WnHsLV.js";
|
|
4
|
-
import { c } from "./cn-CwJPJKOE.js";
|
|
5
|
-
import { B as o } from "./index-CT2PstvH.js";
|
|
6
|
-
const f = ({
|
|
7
|
-
prev: s,
|
|
8
|
-
next: a,
|
|
9
|
-
className: n
|
|
10
|
-
}) => {
|
|
11
|
-
const e = "group transition-all p-5 space-x-1 rtl:space-x-reverse transition-all hover:text-foreground";
|
|
12
|
-
return /* @__PURE__ */ t.jsxs(
|
|
13
|
-
"div",
|
|
14
|
-
{
|
|
15
|
-
className: c(
|
|
16
|
-
"flex -mx-4 text-muted-foreground font-semibold",
|
|
17
|
-
s ? "justify-between" : "justify-end",
|
|
18
|
-
n
|
|
19
|
-
),
|
|
20
|
-
children: [
|
|
21
|
-
s && /* @__PURE__ */ t.jsx(o, { variant: "ghost", asChild: !0, children: /* @__PURE__ */ t.jsxs(r, { to: s.to, relative: "path", className: e, children: [
|
|
22
|
-
/* @__PURE__ */ t.jsx(
|
|
23
|
-
i,
|
|
24
|
-
{
|
|
25
|
-
className: "ltr:group-hover:motion-safe:animate-bounce-x-start rtl:rotate-180",
|
|
26
|
-
size: 12
|
|
27
|
-
}
|
|
28
|
-
),
|
|
29
|
-
/* @__PURE__ */ t.jsx("span", { className: "truncate", children: s.label })
|
|
30
|
-
] }) }),
|
|
31
|
-
a && /* @__PURE__ */ t.jsx(o, { variant: "ghost", asChild: !0, children: /* @__PURE__ */ t.jsxs(r, { to: a.to, relative: "path", className: e, children: [
|
|
32
|
-
/* @__PURE__ */ t.jsx("span", { className: "truncate ", children: a.label }),
|
|
33
|
-
/* @__PURE__ */ t.jsx(
|
|
34
|
-
l,
|
|
35
|
-
{
|
|
36
|
-
className: "ltr:group-hover:motion-safe:animate-bounce-x-end rtl:rotate-180",
|
|
37
|
-
size: 12
|
|
38
|
-
}
|
|
39
|
-
)
|
|
40
|
-
] }) })
|
|
41
|
-
]
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
};
|
|
45
|
-
export {
|
|
46
|
-
f as P
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=Pagination-B89j9KJS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination-B89j9KJS.js","sources":["../src/lib/components/Pagination.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from \"lucide-react\";\nimport { Link } from \"react-router\";\nimport { cn } from \"../util/cn.js\";\nimport { Button } from \"./index.js\";\n\nexport const Pagination = ({\n prev,\n next,\n className,\n}: {\n prev: { to: string; label: string } | undefined;\n next: { to: string; label: string } | undefined;\n className?: string;\n}) => {\n const linkClass =\n \"group transition-all p-5 space-x-1 rtl:space-x-reverse transition-all hover:text-foreground\";\n\n return (\n <div\n className={cn(\n \"flex -mx-4 text-muted-foreground font-semibold\",\n prev ? \"justify-between\" : \"justify-end\",\n className,\n )}\n >\n {prev && (\n <Button variant=\"ghost\" asChild>\n <Link to={prev.to} relative=\"path\" className={linkClass}>\n <ArrowLeftIcon\n className=\"ltr:group-hover:motion-safe:animate-bounce-x-start rtl:rotate-180\"\n size={12}\n />\n <span className=\"truncate\">{prev.label}</span>\n </Link>\n </Button>\n )}\n {next && (\n <Button variant=\"ghost\" asChild>\n <Link to={next.to} relative=\"path\" className={linkClass}>\n <span className=\"truncate \">{next.label}</span>\n <ArrowRightIcon\n className=\"ltr:group-hover:motion-safe:animate-bounce-x-end rtl:rotate-180\"\n size={12}\n />\n </Link>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["Pagination","prev","next","className","linkClass","jsxs","cn","jsx","Button","Link","ArrowLeftIcon","ArrowRightIcon"],"mappings":";;;;;AAKO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AACF,MAIM;AACJ,QAAMC,IACJ;AAGA,SAAAC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL,IAAO,oBAAoB;AAAA,QAC3BE;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAAF,KACEM,gBAAAA,EAAAA,IAAAC,GAAA,EAAO,SAAQ,SAAQ,SAAO,IAC7B,UAAAH,gBAAAA,EAAAA,KAACI,GAAK,EAAA,IAAIR,EAAK,IAAI,UAAS,QAAO,WAAWG,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAA;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,UACCH,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,YAAY,YAAK,MAAM,CAAA;AAAA,QAAA,EAAA,CACzC,EACF,CAAA;AAAA,QAEDL,KACCK,gBAAAA,EAAAA,IAACC,GAAO,EAAA,SAAQ,SAAQ,SAAO,IAC7B,UAACH,gBAAAA,EAAAA,KAAAI,GAAA,EAAK,IAAIP,EAAK,IAAI,UAAS,QAAO,WAAWE,GAC5C,UAAA;AAAA,UAAAG,gBAAAA,EAAA,IAAC,QAAK,EAAA,WAAU,aAAa,UAAAL,EAAK,OAAM;AAAA,UACxCK,gBAAAA,EAAA;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,EAAA,CACF,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteGuard-lkdEJoDV.js","sources":["../../../node_modules/.pnpm/react-fast-compare@3.2.2/node_modules/react-fast-compare/index.js","../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js","../../../node_modules/.pnpm/shallowequal@1.1.0/node_modules/shallowequal/index.js","../../../node_modules/.pnpm/@zudoku+react-helmet-async@2.0.5_react@19.1.0/node_modules/@zudoku/react-helmet-async/lib/index.esm.js","../src/lib/components/context/BypassProtectedRoutesContext.ts","../src/lib/core/RouteGuard.tsx"],"sourcesContent":["/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","// src/index.tsx\nimport React3, { Component as Component3 } from \"react\";\nimport fastCompare from \"react-fast-compare\";\nimport invariant from \"invariant\";\n\n// src/Provider.tsx\nimport React2, { Component } from \"react\";\n\n// src/server.ts\nimport React from \"react\";\n\n// src/constants.ts\nvar TAG_NAMES = /* @__PURE__ */ ((TAG_NAMES2) => {\n TAG_NAMES2[\"BASE\"] = \"base\";\n TAG_NAMES2[\"BODY\"] = \"body\";\n TAG_NAMES2[\"HEAD\"] = \"head\";\n TAG_NAMES2[\"HTML\"] = \"html\";\n TAG_NAMES2[\"LINK\"] = \"link\";\n TAG_NAMES2[\"META\"] = \"meta\";\n TAG_NAMES2[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES2[\"SCRIPT\"] = \"script\";\n TAG_NAMES2[\"STYLE\"] = \"style\";\n TAG_NAMES2[\"TITLE\"] = \"title\";\n TAG_NAMES2[\"FRAGMENT\"] = \"Symbol(react.fragment)\";\n return TAG_NAMES2;\n})(TAG_NAMES || {});\nvar SEO_PRIORITY_TAGS = {\n link: { rel: [\"amphtml\", \"canonical\", \"alternate\"] },\n script: { type: [\"application/ld+json\"] },\n meta: {\n charset: \"\",\n name: [\"generator\", \"robots\", \"description\"],\n property: [\n \"og:type\",\n \"og:title\",\n \"og:url\",\n \"og:image\",\n \"og:image:alt\",\n \"og:description\",\n \"twitter:url\",\n \"twitter:title\",\n \"twitter:description\",\n \"twitter:image\",\n \"twitter:image:alt\",\n \"twitter:card\",\n \"twitter:site\"\n ]\n }\n};\nvar VALID_TAG_NAMES = Object.values(TAG_NAMES);\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HTML_TAG_MAP = Object.entries(REACT_TAG_MAP).reduce(\n (carry, [key, value]) => {\n carry[value] = key;\n return carry;\n },\n {}\n);\nvar HELMET_ATTRIBUTE = \"data-rh\";\n\n// src/utils.ts\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\",\n PRIORITIZE_SEO_TAGS: \"prioritizeSeoTags\"\n};\nvar getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n return null;\n};\nvar getTitleFromPropsList = (propsList) => {\n let innermostTitle = getInnermostProperty(propsList, \"title\" /* TITLE */);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join(\"\");\n }\n if (innermostTemplate && innermostTitle) {\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || void 0;\n};\nvar getOnChangeClientState = (propsList) => getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {\n});\nvar getAttributesFromPropsList = (tagType, propsList) => propsList.filter((props) => typeof props[tagType] !== \"undefined\").map((props) => props[tagType]).reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\nvar getBaseTagFromPropsList = (primaryAttributes, propsList) => propsList.filter((props) => typeof props[\"base\" /* BASE */] !== \"undefined\").map((props) => props[\"base\" /* BASE */]).reverse().reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n}, []);\nvar warn = (msg) => console && typeof console.warn === \"function\" && console.warn(msg);\nvar getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n const approvedSeenTags = {};\n return propsList.filter((props) => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[tagName]}\"`\n );\n }\n return false;\n }).map((props) => props[tagName]).reverse().reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n instanceTags.filter((tag) => {\n let primaryAttributeKey;\n const keys2 = Object.keys(tag);\n for (let i = 0; i < keys2.length; i += 1) {\n const attributeKey = keys2[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === \"rel\" /* REL */ && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === \"rel\" /* REL */ && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === \"innerHTML\" /* INNER_HTML */ || attributeKey === \"cssText\" /* CSS_TEXT */ || attributeKey === \"itemprop\" /* ITEM_PROP */)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n const value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach((tag) => approvedTags.push(tag));\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey]\n };\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\nvar reducePropsToState = (propsList) => ({\n baseTag: getBaseTagFromPropsList([\"href\" /* HREF */], propsList),\n bodyAttributes: getAttributesFromPropsList(\"bodyAttributes\" /* BODY */, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(\"htmlAttributes\" /* HTML */, propsList),\n linkTags: getTagsFromPropsList(\n \"link\" /* LINK */,\n [\"rel\" /* REL */, \"href\" /* HREF */],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n \"meta\" /* META */,\n [\n \"name\" /* NAME */,\n \"charset\" /* CHARSET */,\n \"http-equiv\" /* HTTPEQUIV */,\n \"property\" /* PROPERTY */,\n \"itemprop\" /* ITEM_PROP */\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(\"noscript\" /* NOSCRIPT */, [\"innerHTML\" /* INNER_HTML */], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n \"script\" /* SCRIPT */,\n [\"src\" /* SRC */, \"innerHTML\" /* INNER_HTML */],\n propsList\n ),\n styleTags: getTagsFromPropsList(\"style\" /* STYLE */, [\"cssText\" /* CSS_TEXT */], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(\"titleAttributes\" /* TITLE */, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS)\n});\nvar flattenArray = (possibleArray) => Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\nvar checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\nvar prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList, priority: [] };\n};\nvar without = (obj, key) => {\n return {\n ...obj,\n [key]: void 0\n };\n};\n\n// src/server.ts\nvar SELF_CLOSING_TAGS = [\"noscript\" /* NOSCRIPT */, \"script\" /* SCRIPT */, \"style\" /* STYLE */];\nvar encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== \"undefined\" ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n}, \"\");\nvar generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}</${type}>` : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}</${type}>`;\n};\nvar generateTagsAsString = (type, tags, encode = true) => tags.reduce((str, t) => {\n const tag = t;\n const attributeHtml = Object.keys(tag).filter(\n (attribute) => !(attribute === \"innerHTML\" /* INNER_HTML */ || attribute === \"cssText\" /* CSS_TEXT */)\n ).reduce((string, attribute) => {\n const attr = typeof tag[attribute] === \"undefined\" ? attribute : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, \"\");\n const tagContent = tag.innerHTML || tag.cssText || \"\";\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${isSelfClosing ? `/>` : `>${tagContent}</${type}>`}`;\n}, \"\");\nvar convertElementAttributesToReactProps = (attributes, initProps = {}) => Object.keys(attributes).reduce((obj, key) => {\n const mapped = REACT_TAG_MAP[key];\n obj[mapped || key] = attributes[key];\n return obj;\n}, initProps);\nvar generateTitleAsReactComponent = (_type, title, attributes) => {\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n return [React.createElement(\"title\" /* TITLE */, props, title)];\n};\nvar generateTagsAsReactComponent = (type, tags) => tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true\n };\n Object.keys(tag).forEach((attribute) => {\n const mapped = REACT_TAG_MAP[attribute];\n const mappedAttribute = mapped || attribute;\n if (mappedAttribute === \"innerHTML\" /* INNER_HTML */ || mappedAttribute === \"cssText\" /* CSS_TEXT */) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n});\nvar getMethodsForTag = (type, tags, encode = true) => {\n switch (type) {\n case \"title\" /* TITLE */:\n return {\n toComponent: () => generateTitleAsReactComponent(type, tags.title, tags.titleAttributes),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode)\n };\n case \"bodyAttributes\" /* BODY */:\n case \"htmlAttributes\" /* HTML */:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags)\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode)\n };\n }\n};\nvar getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(\"meta\" /* META */, meta.priority),\n ...generateTagsAsReactComponent(\"link\" /* LINK */, link.priority),\n ...generateTagsAsReactComponent(\"script\" /* SCRIPT */, script.priority)\n ],\n toString: () => (\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(\"meta\" /* META */, meta.priority, encode)} ${getMethodsForTag(\n \"link\" /* LINK */,\n link.priority,\n encode\n )} ${getMethodsForTag(\"script\" /* SCRIPT */, script.priority, encode)}`\n )\n };\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default\n };\n};\nvar mapStateOnServer = (props) => {\n const {\n baseTag,\n bodyAttributes,\n encode = true,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = \"\",\n titleAttributes,\n prioritizeSeoTags\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {\n },\n toString: () => \"\"\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(\"base\" /* BASE */, baseTag, encode),\n bodyAttributes: getMethodsForTag(\"bodyAttributes\" /* BODY */, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(\"htmlAttributes\" /* HTML */, htmlAttributes, encode),\n link: getMethodsForTag(\"link\" /* LINK */, linkTags, encode),\n meta: getMethodsForTag(\"meta\" /* META */, metaTags, encode),\n noscript: getMethodsForTag(\"noscript\" /* NOSCRIPT */, noscriptTags, encode),\n script: getMethodsForTag(\"script\" /* SCRIPT */, scriptTags, encode),\n style: getMethodsForTag(\"style\" /* STYLE */, styleTags, encode),\n title: getMethodsForTag(\"title\" /* TITLE */, { title, titleAttributes }, encode)\n };\n};\nvar server_default = mapStateOnServer;\n\n// src/HelmetData.ts\nvar instances = [];\nvar isDocument = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar HelmetData = class {\n instances = [];\n canUseDOM = isDocument;\n context;\n value = {\n setHelmet: (serverState) => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => this.canUseDOM ? instances : this.instances,\n add: (instance) => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: (instance) => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n }\n }\n };\n constructor(context, canUseDOM) {\n this.context = context;\n this.canUseDOM = canUseDOM || false;\n if (!canUseDOM) {\n context.helmet = server_default({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n }\n};\n\n// src/Provider.tsx\nvar defaultValue = {};\nvar Context = React2.createContext(defaultValue);\nvar HelmetProvider = class _HelmetProvider extends Component {\n static canUseDOM = isDocument;\n helmetData;\n constructor(props) {\n super(props);\n this.helmetData = new HelmetData(this.props.context || {}, _HelmetProvider.canUseDOM);\n }\n render() {\n return /* @__PURE__ */ React2.createElement(Context.Provider, { value: this.helmetData.value }, this.props.children);\n }\n};\n\n// src/Dispatcher.tsx\nimport { Component as Component2 } from \"react\";\nimport shallowEqual from \"shallowequal\";\n\n// src/client.ts\nvar updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(\"head\" /* HEAD */);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n if (tags && tags.length) {\n tags.forEach((tag) => {\n const newElement = document.createElement(type);\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === \"innerHTML\" /* INNER_HTML */) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === \"cssText\" /* CSS_TEXT */) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const attr = attribute;\n const value = typeof tag[attr] === \"undefined\" ? \"\" : tag[attr];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n if (oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach((tag) => tag.parentNode?.removeChild(tag));\n newTags.forEach((tag) => headElement.appendChild(tag));\n return {\n oldTags,\n newTags\n };\n};\nvar updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n const attributesToRemove = [...helmetAttributes];\n const attributeKeys = Object.keys(attributes);\n for (const attribute of attributeKeys) {\n const value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTitle = (title, attributes) => {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(\"title\" /* TITLE */, attributes);\n};\nvar commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes\n } = newState;\n updateAttributes(\"body\" /* BODY */, bodyAttributes);\n updateAttributes(\"html\" /* HTML */, htmlAttributes);\n updateTitle(title, titleAttributes);\n const tagUpdates = {\n baseTag: updateTags(\"base\" /* BASE */, baseTag),\n linkTags: updateTags(\"link\" /* LINK */, linkTags),\n metaTags: updateTags(\"meta\" /* META */, metaTags),\n noscriptTags: updateTags(\"noscript\" /* NOSCRIPT */, noscriptTags),\n scriptTags: updateTags(\"script\" /* SCRIPT */, scriptTags),\n styleTags: updateTags(\"style\" /* STYLE */, styleTags)\n };\n const addedTags = {};\n const removedTags = {};\n Object.keys(tagUpdates).forEach((tagType) => {\n const { newTags, oldTags } = tagUpdates[tagType];\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n if (cb) {\n cb();\n }\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar _helmetCallback = null;\nvar handleStateChangeOnClient = (newState) => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar client_default = handleStateChangeOnClient;\n\n// src/Dispatcher.tsx\nvar HelmetDispatcher = class extends Component2 {\n rendered = false;\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n componentDidUpdate() {\n this.emitChange();\n }\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map((instance) => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (HelmetProvider.canUseDOM) {\n client_default(state);\n } else if (server_default) {\n serverState = server_default(state);\n }\n setHelmet(serverState);\n }\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n this.rendered = true;\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n render() {\n this.init();\n return null;\n }\n};\n\n// src/index.tsx\nvar Helmet = class extends Component3 {\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false\n };\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, \"helmetData\"), without(nextProps, \"helmetData\"));\n }\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case \"script\" /* SCRIPT */:\n case \"noscript\" /* NOSCRIPT */:\n return {\n innerHTML: nestedChildren\n };\n case \"style\" /* STYLE */:\n return {\n cssText: nestedChildren\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n flattenArrayTypeChildren(child, arrayTypeChildren, newChildProps, nestedChildren) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...arrayTypeChildren[child.type] || [],\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren)\n }\n ]\n };\n }\n mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren) {\n switch (child.type) {\n case \"title\" /* TITLE */:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps }\n };\n case \"body\" /* BODY */:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps }\n };\n case \"html\" /* HTML */:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps }\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps }\n };\n }\n }\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n Object.keys(arrayTypeChildren).forEach((arrayChildName) => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName]\n };\n });\n return newFlattenedProps;\n }\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some((name) => child.type === name),\n typeof child.type === \"function\" ? `You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.` : `Only elements types ${VALID_TAG_NAMES.join(\n \", \"\n )} are allowed. Helmet does not support rendering <${child.type}> elements. Refer to our API for more information.`\n );\n invariant(\n !nestedChildren || typeof nestedChildren === \"string\" || Array.isArray(nestedChildren) && !nestedChildren.some((nestedChild) => typeof nestedChild !== \"string\"),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`}</${child.type}> ) Refer to our API for more information.`\n );\n return true;\n }\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n React3.Children.forEach(children, (child) => {\n if (!child || !child.props) {\n return;\n }\n const { children: nestedChildren, ...childProps } = child.props;\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n let { type } = child;\n if (typeof type === \"symbol\") {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n switch (type) {\n case \"Symbol(react.fragment)\" /* FRAGMENT */:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n case \"link\" /* LINK */:\n case \"meta\" /* META */:\n case \"noscript\" /* NOSCRIPT */:\n case \"script\" /* SCRIPT */:\n case \"style\" /* STYLE */:\n arrayTypeChildren = this.flattenArrayTypeChildren(\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren\n );\n break;\n default:\n newProps = this.mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren);\n break;\n }\n });\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n if (helmetData && !(helmetData instanceof HelmetData)) {\n const data = helmetData;\n helmetData = new HelmetData(data.context, true);\n delete newProps.helmetData;\n }\n return helmetData ? /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context: helmetData.value }) : /* @__PURE__ */ React3.createElement(Context.Consumer, null, (context) => /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context }));\n }\n};\nexport {\n Helmet,\n HelmetData,\n HelmetProvider\n};\n","import { createContext } from \"react\";\n\nexport const BypassProtectedRoutesContext = createContext(false);\n","import { useQuery } from \"@tanstack/react-query\";\nimport { Helmet } from \"@zudoku/react-helmet-async\";\nimport { use } from \"react\";\nimport { matchPath, Outlet, useLocation, useNavigate } from \"react-router\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"zudoku/ui/Dialog.js\";\nimport { useAuth } from \"../authentication/hook.js\";\nimport { BypassProtectedRoutesContext } from \"../components/context/BypassProtectedRoutesContext.js\";\nimport { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { ZudokuError } from \"../util/invariant.js\";\nimport { useLatest } from \"../util/useLatest.js\";\n\nexport const SEARCH_PROTECTED_SECTION = \"protected\";\n\nexport const RouteGuard = () => {\n const auth = useAuth();\n const zudoku = useZudoku();\n const navigate = useNavigate();\n const location = useLocation();\n const latestPath = useLatest(location.pathname);\n const shouldBypass = use(BypassProtectedRoutesContext);\n\n const { protectedRoutes = [] } = zudoku.options;\n\n const isProtected =\n !shouldBypass &&\n protectedRoutes.some((path) =>\n matchPath({ path, end: true }, location.pathname),\n );\n\n useQuery({\n queryKey: [\"login-redirect\"],\n queryFn: async () => {\n await new Promise((resolve) => setTimeout(resolve, 1200));\n await zudoku.authentication?.signIn({\n redirectTo: latestPath.current,\n });\n return true;\n },\n enabled:\n typeof window !== \"undefined\" &&\n isProtected &&\n !auth.isPending &&\n !auth.isAuthenticated,\n });\n\n if (isProtected && !auth.isAuthenticated) {\n return (\n <Dialog\n open={true}\n onOpenChange={(open) => {\n if (!open) {\n void navigate(-1);\n }\n }}\n >\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Logging you in...</DialogTitle>\n </DialogHeader>\n <DialogDescription>\n Please wait while we log you in.\n </DialogDescription>\n </DialogContent>\n </Dialog>\n );\n }\n\n if (isProtected && !auth.isAuthEnabled) {\n throw new ZudokuError(\"Authentication is not enabled\", {\n title: \"Authentication is not enabled\",\n developerHint:\n \"To use protectedRoutes you need authentication to be enabled\",\n });\n }\n\n return (\n <>\n {shouldBypass && (\n <Helmet>\n <meta\n name=\"pagefind\"\n data-pagefind-filter={`section:${SEARCH_PROTECTED_SECTION}`}\n content=\"true\"\n />\n </Helmet>\n )}\n <Outlet />\n </>\n );\n};\n"],"names":["hasElementType","hasMap","hasSet","hasArrayBuffer","equal","a","b","length","i","keys","it","reactFastCompare","error","invariant","condition","format","c","d","e","f","args","argIndex","browser","shallowequal","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","key","valueA","valueB","TAG_NAMES","TAG_NAMES2","SEO_PRIORITY_TAGS","VALID_TAG_NAMES","REACT_TAG_MAP","HTML_TAG_MAP","carry","value","HELMET_ATTRIBUTE","HELMET_PROPS","getInnermostProperty","propsList","property","props","getTitleFromPropsList","innermostTitle","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","tag","lowerCaseAttributeKey","warn","msg","getTagsFromPropsList","tagName","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","keys2","attributeKey","tagUnion","getAnyTrueFromPropsList","checkedTag","index","reducePropsToState","flattenArray","possibleArray","checkIfPropsMatch","toMatch","prioritizer","elementsList","propsToMatch","acc","elementAttrs","without","obj","SELF_CLOSING_TAGS","encodeSpecialCharacters","str","encode","generateElementAttributesAsString","attributes","attr","generateTitleAsString","type","title","attributeString","flattenedTitle","generateTagsAsString","tags","t","attributeHtml","attribute","string","tagContent","isSelfClosing","convertElementAttributesToReactProps","initProps","mapped","generateTitleAsReactComponent","_type","React","generateTagsAsReactComponent","mappedTag","mappedAttribute","content","getMethodsForTag","getPriorityMethods","metaTags","linkTags","scriptTags","meta","link","script","mapStateOnServer","baseTag","bodyAttributes","htmlAttributes","noscriptTags","styleTags","titleAttributes","prioritizeSeoTags","priorityMethods","server_default","instances","isDocument","HelmetData","serverState","instance","context","canUseDOM","defaultValue","Context","React2","HelmetProvider","_HelmetProvider","Component","updateTags","headElement","tagNodes","oldTags","newTags","indexToDelete","newElement","existingTag","updateAttributes","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","updateTitle","commitTagChanges","newState","cb","onChangeClientState","tagUpdates","addedTags","removedTags","_helmetCallback","handleStateChangeOnClient","client_default","HelmetDispatcher","Component2","nextProps","shallowEqual","helmetInstances","setHelmet","state","Helmet","Component3","fastCompare","child","nestedChildren","arrayTypeChildren","newChildProps","newProps","newFlattenedProps","arrayChildName","name","nestedChild","children","React3","childProps","helmetData","data","BypassProtectedRoutesContext","createContext","SEARCH_PROTECTED_SECTION","RouteGuard","auth","useAuth","zudoku","useZudoku","navigate","useNavigate","location","useLocation","latestPath","useLatest","shouldBypass","use","protectedRoutes","isProtected","path","matchPath","useQuery","resolve","jsx","Dialog","open","DialogContent","DialogHeader","DialogTitle","DialogDescription","ZudokuError","jsxs","Fragment","Outlet"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaList-zHQ2Ekyw.js","sources":["../src/lib/plugins/openapi/SchemaList.tsx"],"sourcesContent":["import slugify from \"@sindresorhus/slugify\";\nimport { useSuspenseQuery } from \"@tanstack/react-query\";\nimport {\n ChevronRightIcon,\n ChevronsDownUpIcon,\n ChevronsUpDownIcon,\n} from \"lucide-react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"zudoku/ui/Collapsible.js\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { Toc } from \"../../components/navigation/Toc.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { useCreateQuery } from \"./client/useCreateQuery.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/gql.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\n\nconst GET_SCHEMAS = graphql(/* GraphQL */ `\n query GetSchemas($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n title\n description\n summary\n components {\n schemas {\n name\n schema\n extensions\n }\n }\n }\n }\n`);\n\nexport function SchemaList() {\n const { input, type, versions, version, options } = useOasConfig();\n const schemasQuery = useCreateQuery(GET_SCHEMAS, {\n input,\n type,\n });\n const { data } = useSuspenseQuery(schemasQuery);\n\n const schemas = data.schema.components?.schemas ?? [];\n\n if (!schemas.length) {\n return <div>No schemas found</div>;\n }\n\n const hasMultipleVersions = Object.entries(versions).length > 1;\n const showVersions =\n options?.showVersionSelect === \"always\" ||\n (hasMultipleVersions && options?.showVersionSelect !== \"hide\");\n\n return (\n <div\n className=\"grid grid-cols-[--sidecar-grid-cols] gap-8 justify-between\"\n data-pagefind-filter=\"section:openapi\"\n data-pagefind-meta=\"section:openapi\"\n >\n <div className=\"pt-[--padding-content-top] pb-[--padding-content-bottom]\">\n <Collapsible className=\"w-full\">\n <div className=\"flex flex-col gap-y-4 sm:flex-row justify-around items-start sm:items-end\">\n <div className=\"flex-1\">\n <CategoryHeading>{data.schema.title}</CategoryHeading>\n <Heading\n level={1}\n id=\"schemas\"\n registerSidebarAnchor\n className=\"mb-0\"\n >\n Schemas\n {showVersions && (\n <span className=\"text-xl text-muted-foreground ms-1.5\">\n ({version})\n </span>\n )}\n </Heading>\n </div>\n {data.schema.description && (\n <CollapsibleTrigger className=\"flex items-center gap-1 text-sm font-medium text-muted-foreground group\">\n <span>API information</span>\n <ChevronsUpDownIcon\n className=\"group-data-[state=open]:hidden translate-y-px\"\n size={14}\n />\n <ChevronsDownUpIcon\n className=\"group-data-[state=closed]:hidden translate-y-px\"\n size={13}\n />\n </CollapsibleTrigger>\n )}\n </div>\n {data.schema.description && (\n <CollapsibleContent className=\"CollapsibleContent\">\n <div\n className={cn(\n ProseClasses,\n \"pt-4 max-w-full prose-img:max-w-prose\",\n )}\n >\n <Markdown\n className=\"border rounded bg-muted/25 border-border px-2.5 md:px-4\"\n content={data.schema.description}\n />\n </div>\n </CollapsibleContent>\n )}\n </Collapsible>\n <hr className=\"my-8\" />\n <div className=\"flex flex-col gap-y-5\">\n {schemas.map((schema) => (\n <Collapsible key={schema.name} className=\"group\" defaultOpen>\n <Heading\n registerSidebarAnchor\n level={2}\n className=\"flex items-center gap-1 justify-between w-fit\"\n id={slugify(schema.name)}\n >\n {schema.name}{\" \"}\n <CollapsibleTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"size-6\">\n <ChevronRightIcon\n size={16}\n className=\"group-data-[state=open]:rotate-90 transition cursor-pointer\"\n />\n </Button>\n </CollapsibleTrigger>\n </Heading>\n <CollapsibleContent className=\"mt-4 CollapsibleContent\">\n <SchemaView schema={schema.schema} />\n </CollapsibleContent>\n </Collapsible>\n ))}\n </div>\n </div>\n <Toc\n entries={schemas.map((schema) => ({\n id: slugify(schema.name),\n value: schema.name,\n depth: 1,\n }))}\n />\n </div>\n );\n}\n"],"names":["GET_SCHEMAS","graphql","SchemaList","input","type","versions","version","options","useOasConfig","schemasQuery","useCreateQuery","data","useSuspenseQuery","schemas","jsx","hasMultipleVersions","showVersions","jsxs","Collapsible","CategoryHeading","Heading","CollapsibleTrigger","ChevronsUpDownIcon","ChevronsDownUpIcon","CollapsibleContent","cn","ProseClasses","Markdown","schema","slugify","Button","ChevronRightIcon","SchemaView","Toc"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaView-CqF4oMU-.js","sources":["../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/components/ConstValue.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","import { ChevronsLeftRightIcon } from \"lucide-react\";\nimport { isValidElement, useState } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { type SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst Pattern = ({ pattern }: { pattern: string }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const isExpandable = pattern.length > 20;\n const shortPattern = isExpandable ? `${pattern.slice(0, 20)}…` : pattern;\n\n return (\n <InlineCode\n className={cn(\"text-xs\", isExpandable && \"cursor-pointer\")}\n onClick={() => setIsExpanded(!isExpanded)}\n selectOnClick={false}\n >\n {isExpanded ? pattern : shortPattern}\n {isExpandable && (\n <button type=\"button\" className=\"p-1 translate-y-[2px]\">\n {!isExpanded && <ChevronsLeftRightIcon size={12} />}\n </button>\n )}\n </InlineCode>\n );\n};\n\nconst getSchemaInfos = (schema?: SchemaObject) => {\n if (!schema) return [];\n\n return [\n schema.type === \"array\" && schema.items.type\n ? Array.isArray(schema.items.type)\n ? `(${schema.items.type.join(\" | \")})[]`\n : `${schema.items.type}[]`\n : Array.isArray(schema.type)\n ? schema.type.join(\" | \")\n : schema.type,\n\n schema.enum && \"enum\",\n schema.const && \"const\",\n schema.format,\n schema.minimum && `min: ${schema.minimum}`,\n schema.maximum && `max: ${schema.maximum}`,\n schema.minLength && `minLength: ${schema.minLength}`,\n schema.maxLength && `maxLength: ${schema.maxLength}`,\n schema.minItems && `minItems: ${schema.minItems}`,\n schema.maxItems && `maxItems: ${schema.maxItems}`,\n schema.uniqueItems && \"unique\",\n schema.minProperties && `minProps: ${schema.minProperties}`,\n schema.maxProperties && `maxProps: ${schema.maxProperties}`,\n schema.readOnly && \"readOnly\",\n schema.writeOnly && \"writeOnly\",\n schema.deprecated && \"deprecated\",\n schema.pattern && (\n <>\n pattern: <Pattern pattern={schema.pattern} />\n </>\n ),\n ];\n};\n\nexport const ParamInfos = ({\n schema,\n extraItems = [],\n className,\n}: {\n schema?: SchemaObject;\n extraItems?: unknown[];\n className?: string;\n}) => {\n const filteredItems = [...getSchemaInfos(schema), ...extraItems].flatMap(\n (item) => (typeof item === \"string\" || isValidElement(item) ? item : []),\n );\n\n return (\n <span className={className}>\n {filteredItems.map((item, index) => (\n <span className=\"text-muted-foreground\" key={index}>\n {item}\n {index < filteredItems.length - 1 && (\n <span className=\"text-muted-foreground/50\">\n · \n </span>\n )}\n </span>\n ))}\n </span>\n );\n};\n","import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const EnumValues = ({\n values,\n className,\n maxVisibleValues = 8,\n}: {\n values: Array<string | number>;\n className?: string;\n maxVisibleValues?: number;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n if (!values.length) return null;\n\n const shouldCollapse = values.length > maxVisibleValues;\n const visibleValues =\n shouldCollapse && !isOpen ? values.slice(0, maxVisibleValues) : values;\n\n return (\n <div className={cn(\"flex flex-wrap gap-1.5 text-xs\", className)}>\n <span className=\"text-muted-foreground\">Enum values: </span>\n {visibleValues.map((value) => (\n <div key={value}>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {value}\n </SelectOnClick>\n </div>\n ))}\n {shouldCollapse && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-fit px-0\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? (\n <div className=\"flex items-center gap-1\">\n <ChevronUpIcon size={12} />\n <span className=\"text-muted-foreground\">show less</span>\n </div>\n ) : (\n <div className=\"flex items-center gap-1\">\n <ChevronDownIcon size={12} />\n <span className=\"text-muted-foreground\">\n show {values.length - maxVisibleValues} more\n </span>\n </div>\n )}\n </Button>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\n\nexport const SchemaExampleAndDefault = ({\n schema,\n}: {\n schema: SchemaObject;\n}) => {\n const example = schema.examples?.at(0);\n const defaultValue = schema.default;\n\n if (!example && !defaultValue) return null;\n\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n {example && (\n <div>\n <span className=\"text-muted-foreground\">Example: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof example === \"object\" || typeof example === \"boolean\"\n ? JSON.stringify(example)\n : example}\n </SelectOnClick>\n </div>\n )}\n {defaultValue && (\n <div>\n <span className=\"text-muted-foreground\">Default: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof defaultValue === \"object\" ||\n typeof defaultValue === \"boolean\"\n ? JSON.stringify(defaultValue)\n : defaultValue}\n </SelectOnClick>\n </div>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const ConstValue = ({\n schema,\n hideDescription = false,\n}: {\n schema: SchemaObject;\n hideDescription?: boolean;\n}) => {\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n <div>\n <span className=\"text-muted-foreground\">Const value: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {schema.const}\n </SelectOnClick>\n {!hideDescription && schema.description && (\n <div className=\"text-muted-foreground\">{schema.description}</div>\n )}\n </div>\n </div>\n );\n};\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n schemeName,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n schemeName?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n <span className=\"text-sm text-foreground\">{schemeName}</span>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector\n type={props.type}\n isOpen={isOpen}\n schemeName={props.schema.title}\n />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem key={index} type={type} schema={subSchema} />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import { CIRCULAR_REF } from \"../../../oas/graphql/circular.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isBasicType = (\n type: unknown,\n): type is \"string\" | \"number\" | \"boolean\" | \"integer\" | \"null\" =>\n typeof type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(type);\n\nexport const isArrayType = (value: SchemaObject) =>\n value.type === \"array\" ||\n // schema.type might be an array of types, so we need to check if \"array\" is one of them\n (Array.isArray(value.type) && value.type.includes(\"array\"));\n\nexport const isComplexType = (value?: SchemaObject) =>\n value &&\n ((value.type === \"object\" &&\n Object.keys(value.properties ?? {}).length > 0) ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\")));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n\nexport const isCircularRef = (schema: unknown): schema is string =>\n typeof schema === \"string\" && schema.startsWith(CIRCULAR_REF);\n\nexport const isArrayCircularRef = (\n schema: SchemaObject,\n): schema is SchemaObject & { items: SchemaObject } =>\n isArrayType(schema) && \"items\" in schema && isCircularRef(schema.items);\n\nexport const extractCircularRefInfo = (\n ref?: string | SchemaObject,\n): string | undefined =>\n typeof ref === \"string\" ? ref.split(\":\")[1] : undefined;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { InlineCode } from \"../../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n extractCircularRefInfo,\n hasLogicalGroupings,\n isArrayCircularRef,\n isArrayType,\n isCircularRef,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({ schema }: { schema: SchemaObject }) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n />\n );\n }\n};\n\nconst RecursiveIndicator = ({ circularProp }: { circularProp?: string }) => (\n <InlineCode\n className=\"inline-flex items-center gap-1.5 italic text-xs translate-y-0.5\"\n selectOnClick={false}\n >\n <RefreshCcwDotIcon size={13} />\n <span>{circularProp ? `${circularProp} (circular)` : \"circular\"}</span>\n </InlineCode>\n);\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n if (isCircularRef(schema)) {\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2 rtl:space-x-reverse\">\n <code>{name}</code>\n <ParamInfos\n schema={schema}\n extraItems={[<RecursiveIndicator key=\"circular-ref\" />]}\n />\n </div>\n <SchemaExampleAndDefault schema={schema} />\n </div>\n </li>\n );\n }\n\n const isCollapsible = Boolean(\n (hasLogicalGroupings(schema) ||\n isComplexType(schema) ||\n (isArrayType(schema) &&\n \"items\" in schema &&\n isComplexType(schema.items)) ||\n schema.additionalProperties) &&\n !isArrayCircularRef(schema),\n );\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2 rtl:space-x-reverse\">\n <SelectOnClick asChild>\n <code>{name}</code>\n </SelectOnClick>\n <ParamInfos\n schema={schema}\n extraItems={[\n group !== \"optional\" && (\n <span className=\"text-primary\">required</span>\n ),\n isArrayCircularRef(schema) && (\n <RecursiveIndicator\n circularProp={extractCircularRefInfo(schema.items)}\n />\n ),\n ]}\n />\n </div>\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n {schema.type === \"array\" && \"items\" in schema && schema.items.enum && (\n <EnumValues values={schema.items.enum} />\n )}\n {schema.const && <ConstValue schema={schema} hideDescription />}\n {schema.enum && <EnumValues values={schema.enum} />}\n <SchemaExampleAndDefault schema={schema} />\n {isCollapsible && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button variant=\"expand\" size=\"sm\">\n {isOpen ? <MinusIcon size={12} /> : <PlusIcon size={12} />}\n {!isOpen ? \"Show properties\" : \"Hide properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : isArrayType(schema) && \"items\" in schema ? (\n <SchemaView schema={schema.items} />\n ) : null}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { InfoIcon } from \"lucide-react\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport {\n SchemaLogicalGroup,\n SchemaPropertyItem,\n} from \"./SchemaPropertyItem.js\";\nimport { hasLogicalGroupings, isBasicType } from \"./utils.js\";\n\nconst renderMarkdown = (content?: string) =>\n content && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={content}\n />\n );\n\nconst renderBasicSchema = (schema: SchemaObject) => (\n <Card className=\"p-4 space-y-2\">\n <span className=\"text-sm text-muted-foreground\">\n <ParamInfos schema={schema} />\n </span>\n {schema.enum && <EnumValues values={schema.enum} />}\n {renderMarkdown(schema.description)}\n <SchemaExampleAndDefault schema={schema} />\n </Card>\n);\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No schema specified\n </span>\n </Card>\n );\n }\n\n if (schema.const) {\n return <ConstValue schema={schema} />;\n }\n\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema);\n }\n\n if (schema.type === \"array\" && typeof schema.items === \"object\") {\n return <SchemaView schema={schema.items} />;\n }\n\n if (schema.type === \"object\") {\n const groupedProperties = groupBy(\n Object.entries(schema.properties ?? {}),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n const additionalProperties =\n typeof schema.additionalProperties === \"object\" ? (\n <SchemaView schema={schema.additionalProperties} />\n ) : schema.additionalProperties === true ? (\n <div\n className={cn(\n ProseClasses,\n \"text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1\",\n )}\n >\n <span>Additional properties are allowed</span>\n <a\n className=\"p-0.5 -m-0.5\"\n href=\"https://swagger.io/docs/specification/v3_0/data-models/dictionaries/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <InfoIcon size={14} />\n </a>\n </div>\n ) : null;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n {additionalProperties}\n </Card>\n );\n }\n\n return null;\n};\n"],"names":["groupBy","arr","keySelector","accumulator","val","groupedKey","Pattern","pattern","isExpanded","setIsExpanded","useState","isExpandable","shortPattern","jsxs","InlineCode","cn","jsx","ChevronsLeftRightIcon","getSchemaInfos","schema","Fragment","ParamInfos","extraItems","className","filteredItems","item","isValidElement","index","EnumValues","values","maxVisibleValues","isOpen","setIsOpen","shouldCollapse","visibleValues","value","SelectOnClick","Button","ChevronUpIcon","ChevronDownIcon","SchemaExampleAndDefault","example","defaultValue","ConstValue","hideDescription","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","schemeName","LogicalGroupItem","props","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","toggleOpen","Card","SquareMinusIcon","SquarePlusIcon","subSchema","isBasicType","isArrayType","isComplexType","hasLogicalGroupings","LogicalSchemaTypeMap","isCircularRef","CIRCULAR_REF","isArrayCircularRef","extractCircularRefInfo","ref","SchemaLogicalGroup","useCallback","key","objectEntries","RecursiveIndicator","circularProp","RefreshCcwDotIcon","SchemaPropertyItem","name","group","defaultOpen","showCollapseButton","isCollapsible","Markdown","ProseClasses","MinusIcon","PlusIcon","renderMarkdown","content","renderBasicSchema","groupedProperties","propertyName","property","groupNames","additionalProperties","InfoIcon"],"mappings":"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"}
|
package/lib/Select-HTio1oSE.js
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import * as o from "react";
|
|
2
|
-
import { g as x } from "./mutation-CL2MCRQL.js";
|
|
3
|
-
import { S as y, s as g, h as c, n as u, g as w, i as S, k as v } from "./hook-BwOB_iZo.js";
|
|
4
|
-
import { j as r } from "./jsx-runtime-C5mzlN2N.js";
|
|
5
|
-
import * as a from "@radix-ui/react-select";
|
|
6
|
-
import { ChevronDown as h, ChevronUp as N, Check as j } from "lucide-react";
|
|
7
|
-
import { c as n } from "./cn-CwJPJKOE.js";
|
|
8
|
-
var C = class extends y {
|
|
9
|
-
#s;
|
|
10
|
-
#a = void 0;
|
|
11
|
-
#t;
|
|
12
|
-
#e;
|
|
13
|
-
constructor(t, e) {
|
|
14
|
-
super(), this.#s = t, this.setOptions(e), this.bindMethods(), this.#r();
|
|
15
|
-
}
|
|
16
|
-
bindMethods() {
|
|
17
|
-
this.mutate = this.mutate.bind(this), this.reset = this.reset.bind(this);
|
|
18
|
-
}
|
|
19
|
-
setOptions(t) {
|
|
20
|
-
const e = this.options;
|
|
21
|
-
this.options = this.#s.defaultMutationOptions(t), g(this.options, e) || this.#s.getMutationCache().notify({
|
|
22
|
-
type: "observerOptionsUpdated",
|
|
23
|
-
mutation: this.#t,
|
|
24
|
-
observer: this
|
|
25
|
-
}), e?.mutationKey && this.options.mutationKey && c(e.mutationKey) !== c(this.options.mutationKey) ? this.reset() : this.#t?.state.status === "pending" && this.#t.setOptions(this.options);
|
|
26
|
-
}
|
|
27
|
-
onUnsubscribe() {
|
|
28
|
-
this.hasListeners() || this.#t?.removeObserver(this);
|
|
29
|
-
}
|
|
30
|
-
onMutationUpdate(t) {
|
|
31
|
-
this.#r(), this.#i(t);
|
|
32
|
-
}
|
|
33
|
-
getCurrentResult() {
|
|
34
|
-
return this.#a;
|
|
35
|
-
}
|
|
36
|
-
reset() {
|
|
37
|
-
this.#t?.removeObserver(this), this.#t = void 0, this.#r(), this.#i();
|
|
38
|
-
}
|
|
39
|
-
mutate(t, e) {
|
|
40
|
-
return this.#e = e, this.#t?.removeObserver(this), this.#t = this.#s.getMutationCache().build(this.#s, this.options), this.#t.addObserver(this), this.#t.execute(t);
|
|
41
|
-
}
|
|
42
|
-
#r() {
|
|
43
|
-
const t = this.#t?.state ?? x();
|
|
44
|
-
this.#a = {
|
|
45
|
-
...t,
|
|
46
|
-
isPending: t.status === "pending",
|
|
47
|
-
isSuccess: t.status === "success",
|
|
48
|
-
isError: t.status === "error",
|
|
49
|
-
isIdle: t.status === "idle",
|
|
50
|
-
mutate: this.mutate,
|
|
51
|
-
reset: this.reset
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
#i(t) {
|
|
55
|
-
u.batch(() => {
|
|
56
|
-
if (this.#e && this.hasListeners()) {
|
|
57
|
-
const e = this.#a.variables, s = this.#a.context;
|
|
58
|
-
t?.type === "success" ? (this.#e.onSuccess?.(t.data, e, s), this.#e.onSettled?.(t.data, null, e, s)) : t?.type === "error" && (this.#e.onError?.(t.error, e, s), this.#e.onSettled?.(
|
|
59
|
-
void 0,
|
|
60
|
-
t.error,
|
|
61
|
-
e,
|
|
62
|
-
s
|
|
63
|
-
));
|
|
64
|
-
}
|
|
65
|
-
this.listeners.forEach((e) => {
|
|
66
|
-
e(this.#a);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
function L(t, e) {
|
|
72
|
-
const s = w(e), [i] = o.useState(
|
|
73
|
-
() => new C(
|
|
74
|
-
s,
|
|
75
|
-
t
|
|
76
|
-
)
|
|
77
|
-
);
|
|
78
|
-
o.useEffect(() => {
|
|
79
|
-
i.setOptions(t);
|
|
80
|
-
}, [i, t]);
|
|
81
|
-
const l = o.useSyncExternalStore(
|
|
82
|
-
o.useCallback(
|
|
83
|
-
(d) => i.subscribe(u.batchCalls(d)),
|
|
84
|
-
[i]
|
|
85
|
-
),
|
|
86
|
-
() => i.getCurrentResult(),
|
|
87
|
-
() => i.getCurrentResult()
|
|
88
|
-
), f = o.useCallback(
|
|
89
|
-
(d, b) => {
|
|
90
|
-
i.mutate(d, b).catch(S);
|
|
91
|
-
},
|
|
92
|
-
[i]
|
|
93
|
-
);
|
|
94
|
-
if (l.error && v(i.options.throwOnError, [l.error]))
|
|
95
|
-
throw l.error;
|
|
96
|
-
return { ...l, mutate: f, mutateAsync: l.mutate };
|
|
97
|
-
}
|
|
98
|
-
const T = a.Root, z = a.Group, P = a.Value, O = o.forwardRef(({ className: t, children: e, ...s }, i) => /* @__PURE__ */ r.jsxs(
|
|
99
|
-
a.Trigger,
|
|
100
|
-
{
|
|
101
|
-
ref: i,
|
|
102
|
-
className: n(
|
|
103
|
-
"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
104
|
-
t
|
|
105
|
-
),
|
|
106
|
-
...s,
|
|
107
|
-
children: [
|
|
108
|
-
/* @__PURE__ */ r.jsx("span", { className: "truncate", children: e }),
|
|
109
|
-
/* @__PURE__ */ r.jsx(a.Icon, { asChild: !0, children: /* @__PURE__ */ r.jsx(h, { className: "flex-shrink-0 h-4 w-4 opacity-50" }) })
|
|
110
|
-
]
|
|
111
|
-
}
|
|
112
|
-
));
|
|
113
|
-
O.displayName = a.Trigger.displayName;
|
|
114
|
-
const m = o.forwardRef(({ className: t, ...e }, s) => /* @__PURE__ */ r.jsx(
|
|
115
|
-
a.ScrollUpButton,
|
|
116
|
-
{
|
|
117
|
-
ref: s,
|
|
118
|
-
className: n(
|
|
119
|
-
"flex cursor-default items-center justify-center py-1",
|
|
120
|
-
t
|
|
121
|
-
),
|
|
122
|
-
...e,
|
|
123
|
-
children: /* @__PURE__ */ r.jsx(N, { className: "h-4 w-4" })
|
|
124
|
-
}
|
|
125
|
-
));
|
|
126
|
-
m.displayName = a.ScrollUpButton.displayName;
|
|
127
|
-
const p = o.forwardRef(({ className: t, ...e }, s) => /* @__PURE__ */ r.jsx(
|
|
128
|
-
a.ScrollDownButton,
|
|
129
|
-
{
|
|
130
|
-
ref: s,
|
|
131
|
-
className: n(
|
|
132
|
-
"flex cursor-default items-center justify-center py-1",
|
|
133
|
-
t
|
|
134
|
-
),
|
|
135
|
-
...e,
|
|
136
|
-
children: /* @__PURE__ */ r.jsx(h, { className: "h-4 w-4" })
|
|
137
|
-
}
|
|
138
|
-
));
|
|
139
|
-
p.displayName = a.ScrollDownButton.displayName;
|
|
140
|
-
const R = o.forwardRef(({ className: t, children: e, position: s = "popper", ...i }, l) => /* @__PURE__ */ r.jsx(a.Portal, { children: /* @__PURE__ */ r.jsxs(
|
|
141
|
-
a.Content,
|
|
142
|
-
{
|
|
143
|
-
ref: l,
|
|
144
|
-
className: n(
|
|
145
|
-
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
146
|
-
s === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
147
|
-
t
|
|
148
|
-
),
|
|
149
|
-
position: s,
|
|
150
|
-
...i,
|
|
151
|
-
children: [
|
|
152
|
-
/* @__PURE__ */ r.jsx(m, {}),
|
|
153
|
-
/* @__PURE__ */ r.jsx(
|
|
154
|
-
a.Viewport,
|
|
155
|
-
{
|
|
156
|
-
className: n(
|
|
157
|
-
s === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]",
|
|
158
|
-
"divide-y"
|
|
159
|
-
),
|
|
160
|
-
children: e
|
|
161
|
-
}
|
|
162
|
-
),
|
|
163
|
-
/* @__PURE__ */ r.jsx(p, {})
|
|
164
|
-
]
|
|
165
|
-
}
|
|
166
|
-
) }));
|
|
167
|
-
R.displayName = a.Content.displayName;
|
|
168
|
-
const M = o.forwardRef(({ className: t, ...e }, s) => /* @__PURE__ */ r.jsx(
|
|
169
|
-
a.Label,
|
|
170
|
-
{
|
|
171
|
-
ref: s,
|
|
172
|
-
className: n("py-1.5 pl-8 pr-2 text-sm font-semibold", t),
|
|
173
|
-
...e
|
|
174
|
-
}
|
|
175
|
-
));
|
|
176
|
-
M.displayName = a.Label.displayName;
|
|
177
|
-
const E = o.forwardRef(({ className: t, children: e, ...s }, i) => /* @__PURE__ */ r.jsxs(
|
|
178
|
-
a.Item,
|
|
179
|
-
{
|
|
180
|
-
ref: i,
|
|
181
|
-
className: n(
|
|
182
|
-
"relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
183
|
-
t
|
|
184
|
-
),
|
|
185
|
-
...s,
|
|
186
|
-
children: [
|
|
187
|
-
/* @__PURE__ */ r.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ r.jsx(a.ItemIndicator, { children: /* @__PURE__ */ r.jsx(j, { className: "h-4 w-4" }) }) }),
|
|
188
|
-
/* @__PURE__ */ r.jsx(a.ItemText, { children: e })
|
|
189
|
-
]
|
|
190
|
-
}
|
|
191
|
-
));
|
|
192
|
-
E.displayName = a.Item.displayName;
|
|
193
|
-
const I = o.forwardRef(({ className: t, ...e }, s) => /* @__PURE__ */ r.jsx(
|
|
194
|
-
a.Separator,
|
|
195
|
-
{
|
|
196
|
-
ref: s,
|
|
197
|
-
className: n("-mx-1 my-1 h-px bg-muted", t),
|
|
198
|
-
...e
|
|
199
|
-
}
|
|
200
|
-
));
|
|
201
|
-
I.displayName = a.Separator.displayName;
|
|
202
|
-
export {
|
|
203
|
-
T as S,
|
|
204
|
-
O as a,
|
|
205
|
-
P as b,
|
|
206
|
-
R as c,
|
|
207
|
-
z as d,
|
|
208
|
-
E as e,
|
|
209
|
-
L as u
|
|
210
|
-
};
|
|
211
|
-
//# sourceMappingURL=Select-HTio1oSE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select-HTio1oSE.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n \"divide-y\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","Subscribable","#client","#currentResult","#currentMutation","#mutateOptions","client","options","#updateResult","prevOptions","shallowEqualObjects","hashKey","action","#notify","variables","state","getDefaultState","notifyManager","context","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
|