zudoku 0.31.2 → 0.32.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/dist/cli/common/utils/ports.d.ts +1 -1
- package/dist/cli/common/utils/ports.js +16 -15
- package/dist/cli/common/utils/ports.js.map +1 -1
- package/dist/cli/dev/handler.js +9 -12
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/config/validators/common.d.ts +90 -0
- package/dist/config/validators/common.js +8 -0
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +38 -0
- package/dist/lib/MissingIcon.d.ts +2 -0
- package/dist/lib/MissingIcon.js +7 -0
- package/dist/lib/MissingIcon.js.map +1 -0
- package/dist/lib/core/ZudokuContext.d.ts +1 -1
- package/dist/lib/core/plugins.d.ts +2 -0
- package/dist/lib/core/plugins.js +2 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/icons.d.ts +1 -0
- package/dist/lib/icons.js +1 -0
- package/dist/lib/icons.js.map +1 -1
- package/dist/lib/oas/graphql/index.js +3 -2
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +1 -0
- package/dist/lib/plugins/api-keys/index.js +1 -0
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/openapi/{OpenApiRoute.d.ts → OasProvider.d.ts} +1 -2
- package/dist/lib/plugins/openapi/OasProvider.js +29 -0
- package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +8 -0
- package/dist/lib/plugins/openapi/index.js +46 -113
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +5 -5
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +1 -1
- package/dist/lib/plugins/openapi/util/createSidebarCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js +25 -0
- package/dist/lib/plugins/openapi/util/createSidebarCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/getRoutes.d.ts +10 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js +74 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +2 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js +10 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js.map +1 -0
- package/dist/vite/build.js +20 -14
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.js +2 -6
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/dev-server.d.ts +4 -2
- package/dist/vite/dev-server.js +30 -8
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/error-handler.d.ts +1 -1
- package/dist/vite/error-handler.js +1 -1
- package/dist/vite/error-handler.js.map +1 -1
- package/dist/vite/output.d.ts +14 -2
- package/dist/vite/output.js +12 -14
- package/dist/vite/output.js.map +1 -1
- package/dist/vite/plugin-api-keys.js +2 -2
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-sidebar.js +17 -2
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/prerender/FileWritingResponse.d.ts +7 -3
- package/dist/vite/prerender/FileWritingResponse.js +15 -9
- package/dist/vite/prerender/FileWritingResponse.js.map +1 -1
- package/dist/vite/prerender/prerender.d.ts +10 -2
- package/dist/vite/prerender/prerender.js +5 -4
- package/dist/vite/prerender/prerender.js.map +1 -1
- package/dist/vite/prerender/worker.d.ts +3 -1
- package/dist/vite/prerender/worker.js +11 -4
- package/dist/vite/prerender/worker.js.map +1 -1
- package/lib/{AuthenticationPlugin-DjnQ5hs7.js → AuthenticationPlugin-_YVa673u.js} +2 -2
- package/lib/{AuthenticationPlugin-DjnQ5hs7.js.map → AuthenticationPlugin-_YVa673u.js.map} +1 -1
- package/lib/{MdxPage-ZX2oquWw.js → MdxPage-GM1T5jmO.js} +3 -3
- package/lib/{MdxPage-ZX2oquWw.js.map → MdxPage-GM1T5jmO.js.map} +1 -1
- package/lib/OasProvider-IS9wBrb7.js +34 -0
- package/lib/OasProvider-IS9wBrb7.js.map +1 -0
- package/lib/{OperationList-c72qPMtm.js → OperationList-BTmRbbXk.js} +4 -5
- package/lib/{OperationList-c72qPMtm.js.map → OperationList-BTmRbbXk.js.map} +1 -1
- package/lib/{Select-NSz0gku6.js → Select-D9CKL33X.js} +3 -3
- package/lib/{Select-NSz0gku6.js.map → Select-D9CKL33X.js.map} +1 -1
- package/lib/{createServer-ZDNGmPfQ.js → createServer-DSQiPwjN.js} +2 -5
- package/lib/{createServer-ZDNGmPfQ.js.map → createServer-DSQiPwjN.js.map} +1 -1
- package/lib/{hook-Dnj3SwPC.js → hook-C_t2ISLC.js} +22 -22
- package/lib/{hook-Dnj3SwPC.js.map → hook-C_t2ISLC.js.map} +1 -1
- package/lib/{index-CZjcfK-H.js → index-BANyVRgL.js} +806 -771
- package/lib/index-BANyVRgL.js.map +1 -0
- package/lib/{mutation-ByGtmi0-.js → mutation-Cm3O9f3X.js} +2 -2
- package/lib/{mutation-ByGtmi0-.js.map → mutation-Cm3O9f3X.js.map} +1 -1
- package/lib/{useScrollToAnchor-DkVfWsxe.js → useScrollToAnchor-BGEcH3HM.js} +2 -2
- package/lib/{useScrollToAnchor-DkVfWsxe.js.map → useScrollToAnchor-BGEcH3HM.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +2 -2
- package/lib/zudoku.components.js +141 -140
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.icons.js +10 -0
- package/lib/zudoku.icons.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +1 -1
- package/lib/zudoku.plugin-api-keys.js +10 -9
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +4 -3
- package/lib/zudoku.plugins.js +13 -0
- package/lib/zudoku.plugins.js.map +1 -0
- package/package.json +5 -1
- package/src/lib/MissingIcon.tsx +22 -0
- package/src/lib/core/ZudokuContext.ts +1 -1
- package/src/lib/core/plugins.ts +8 -0
- package/src/lib/icons.ts +1 -0
- package/src/lib/oas/graphql/index.ts +3 -2
- package/src/lib/plugins/api-keys/index.tsx +3 -0
- package/src/lib/plugins/openapi/OasProvider.tsx +51 -0
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +1 -1
- package/src/lib/plugins/openapi/Sidecar.tsx +0 -1
- package/src/lib/plugins/openapi/index.tsx +80 -143
- package/src/lib/plugins/openapi/playground/Playground.tsx +26 -24
- package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +1 -1
- package/src/lib/plugins/openapi/util/createSidebarCategory.tsx +39 -0
- package/src/lib/plugins/openapi/util/getRoutes.tsx +123 -0
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -0
- package/dist/lib/plugins/openapi/OpenApiRoute.js +0 -25
- package/dist/lib/plugins/openapi/OpenApiRoute.js.map +0 -1
- package/lib/OpenApiRoute-BP9kzG5k.js +0 -36
- package/lib/OpenApiRoute-BP9kzG5k.js.map +0 -1
- package/lib/index-CZjcfK-H.js.map +0 -1
- package/src/lib/plugins/openapi/OpenApiRoute.tsx +0 -51
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollToAnchor-DkVfWsxe.js","sources":["../../../node_modules/.pnpm/@mdx-js+react@3.1.0_@types+react@19.0.7_react@19.0.0/node_modules/@mdx-js/react/lib/index.js","../src/lib/components/AnchorLink.tsx","../src/lib/components/navigation/SidebarBadge.tsx","../src/lib/components/navigation/SidebarCategory.tsx","../src/lib/components/navigation/SidebarItem.tsx","../src/lib/util/scrollIntoViewIfNeeded.ts","../src/lib/util/useScrollToAnchor.ts"],"sourcesContent":["/**\n * @import {MDXComponents} from 'mdx/types.js'\n * @import {Component, ReactElement, ReactNode} from 'react'\n */\n\n/**\n * @callback MergeComponents\n * Custom merge function.\n * @param {Readonly<MDXComponents>} currentComponents\n * Current components from the context.\n * @returns {MDXComponents}\n * Additional components.\n *\n * @typedef Props\n * Configuration for `MDXProvider`.\n * @property {ReactNode | null | undefined} [children]\n * Children (optional).\n * @property {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @property {boolean | null | undefined} [disableParentContext=false]\n * Turn off outer component context (default: `false`).\n */\n\nimport React from 'react'\n\n/** @type {Readonly<MDXComponents>} */\nconst emptyComponents = {}\n\nconst MDXContext = React.createContext(emptyComponents)\n\n/**\n * Get current components from the MDX Context.\n *\n * @param {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @returns {MDXComponents}\n * Current components.\n */\nexport function useMDXComponents(components) {\n const contextComponents = React.useContext(MDXContext)\n\n // Memoize to avoid unnecessary top-level context changes\n return React.useMemo(\n function () {\n // Custom merge via a function prop\n if (typeof components === 'function') {\n return components(contextComponents)\n }\n\n return {...contextComponents, ...components}\n },\n [contextComponents, components]\n )\n}\n\n/**\n * Provider for MDX context.\n *\n * @param {Readonly<Props>} properties\n * Properties.\n * @returns {ReactElement}\n * Element.\n * @satisfies {Component}\n */\nexport function MDXProvider(properties) {\n /** @type {Readonly<MDXComponents>} */\n let allComponents\n\n if (properties.disableParentContext) {\n allComponents =\n typeof properties.components === 'function'\n ? properties.components(emptyComponents)\n : properties.components || emptyComponents\n } else {\n allComponents = useMDXComponents(properties.components)\n }\n\n return React.createElement(\n MDXContext.Provider,\n {value: allComponents},\n properties.children\n )\n}\n","import React from \"react\";\nimport { Link, type LinkProps, useLocation } from \"react-router\";\nimport { useScrollToHash } from \"../util/useScrollToAnchor.js\";\n\n/**\n * Link that scrolls to anchor even if the hash is already set in the URL.\n */\nexport const AnchorLink = (props: LinkProps) => {\n const location = useLocation();\n const scrollToHash = useScrollToHash();\n const hash = typeof props.to === \"string\" ? props.to : props.to.hash;\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n props.onClick?.(event);\n if (!hash?.startsWith(\"#\") || hash !== location.hash) return;\n\n event.preventDefault();\n scrollToHash(hash);\n };\n\n return <Link {...props} onClick={handleClick} />;\n};\n","import { cn } from \"../../util/cn.js\";\n\nexport const ColorMap = {\n green: \"bg-green-400 dark:bg-green-800\",\n blue: \"bg-sky-400 dark:bg-sky-800\",\n yellow: \"bg-yellow-400 dark:bg-yellow-800\",\n red: \"bg-red-400 dark:bg-red-800\",\n purple: \"bg-purple-400 dark:bg-purple-600\",\n indigo: \"bg-indigo-400 dark:bg-indigo-600\",\n gray: \"bg-gray-400 dark:bg-gray-600\",\n};\n\nexport const ColorMapInvert = {\n green: \"text-green-500 dark:text-green-600\",\n blue: \"text-sky-400 dark:text-sky-600\",\n yellow: \"text-yellow-400 dark:text-yellow-600\",\n red: \"text-red-400 dark:text-red-600\",\n purple: \"text-purple-400 dark:text-purple-600\",\n indigo: \"text-indigo-400 dark:text-indigo-600\",\n gray: \"text-gray-400 dark:text-gray-600\",\n};\n\nexport const SidebarBadge = ({\n color,\n label,\n className,\n invert,\n}: {\n color: keyof typeof ColorMap;\n label: string;\n className?: string;\n invert?: boolean;\n}) => {\n return (\n <span\n className={cn(\n \"mt-0.5 flex items-center duration-200 transition-opacity text-center uppercase font-mono text-[0.65rem] font-bold rounded text-background dark:text-zinc-50 h-4 px-1\",\n invert ? ColorMapInvert[color] : ColorMap[color],\n className,\n )}\n >\n {label}\n </span>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ChevronRightIcon } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { NavLink, useMatch } from \"react-router\";\nimport type { SidebarItemCategory } from \"../../../config/validators/SidebarSchema.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { navigationListItem, SidebarItem } from \"./SidebarItem.js\";\nimport { useIsCategoryOpen } from \"./utils.js\";\n\nexport const SidebarCategory = ({\n category,\n onRequestClose,\n}: {\n category: SidebarItemCategory;\n onRequestClose?: () => void;\n}) => {\n const isCategoryOpen = useIsCategoryOpen(category);\n const [hasInteracted, setHasInteracted] = useState(false);\n\n const isCollapsible = category.collapsible ?? true;\n const isCollapsed = category.collapsed ?? true;\n const isDefaultOpen = Boolean(\n !isCollapsible || !isCollapsed || isCategoryOpen,\n );\n const [open, setOpen] = useState(isDefaultOpen);\n const isActive = useMatch(category.link?.id ?? \"\");\n\n useEffect(() => {\n // this is triggered when an item from the sidebar is clicked\n // and the sidebar, enclosing this item, is not opened\n if (isCategoryOpen) {\n setOpen(true);\n }\n }, [isCategoryOpen]);\n\n const ToggleButton = isCollapsible && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.preventDefault();\n setOpen((prev) => !prev);\n setHasInteracted(true);\n }}\n >\n <ChevronRightIcon\n size={16}\n className={cn(\n hasInteracted && \"transition\",\n \"shrink-0 group-data-[state=open]:rotate-90\",\n )}\n />\n </button>\n );\n\n const icon = category.icon && (\n <category.icon\n size={16}\n className={cn(\"align-[-0.125em] \", isActive && \"text-primary\")}\n />\n );\n\n const styles = navigationListItem({\n className: [\n \"text-start font-medium\",\n isCollapsible || typeof category.link !== \"undefined\"\n ? \"cursor-pointer\"\n : \"cursor-default hover:bg-transparent\",\n ],\n });\n\n return (\n <Collapsible.Root\n className=\"flex flex-col\"\n defaultOpen={isDefaultOpen}\n open={open}\n onOpenChange={() => setOpen(true)}\n >\n <Collapsible.Trigger className=\"group\" asChild disabled={!isCollapsible}>\n {category.link?.type === \"doc\" ? (\n <NavLink\n to={joinPath(category.link.id)}\n className={styles}\n onClick={() => {\n setHasInteracted(true);\n // if it is the current path and closed then open it because there's no path change to trigger the open\n if (isActive && !open) {\n setOpen(true);\n }\n }}\n >\n {icon}\n <div\n className={cn(\n \"flex items-center gap-2 justify-between w-full\",\n isActive ? \"text-primary\" : \"text-foreground/80\",\n )}\n >\n <div className=\"truncate\">{category.label}</div>\n {ToggleButton}\n </div>\n </NavLink>\n ) : (\n <div onClick={() => setHasInteracted(true)} className={styles}>\n {icon}\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex gap-2 truncate w-full\">{category.label}</div>\n {ToggleButton}\n </div>\n </div>\n )}\n </Collapsible.Trigger>\n <Collapsible.Content\n className={cn(\n // CollapsibleContent class is used to animate and it should only be applied when the user has triggered the toggle\n hasInteracted && \"CollapsibleContent\",\n category.items.length === 0 && \"hidden\",\n \"ms-6 my-1\",\n )}\n >\n <ul className=\"relative after:absolute after:-left-[--padding-nav-item] after:translate-x-[1.5px] after:top-0 after:bottom-0 after:w-px after:bg-border\">\n {category.items.map((item) => (\n <SidebarItem\n key={\n (\"id\" in item ? item.id : \"\") +\n (\"href\" in item ? item.href : \"\") +\n item.label\n }\n onRequestClose={onRequestClose}\n item={item}\n />\n ))}\n </ul>\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { cva } from \"class-variance-authority\";\nimport { ExternalLinkIcon } from \"lucide-react\";\nimport { NavLink, useSearchParams } from \"react-router\";\n\nimport type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.js\";\nimport { SidebarBadge } from \"./SidebarBadge.js\";\nimport { SidebarCategory } from \"./SidebarCategory.js\";\n\nexport const navigationListItem = cva(\n \"flex items-center gap-2 px-[--padding-nav-item] py-1.5 rounded-lg hover:bg-accent\",\n {\n variants: {\n isActive: {\n true: \"text-primary font-medium\",\n false: \"text-foreground/80\",\n },\n isMuted: {\n true: \"text-foreground/30\",\n false: \"\",\n },\n },\n defaultVariants: {\n isActive: false,\n },\n },\n);\n\nexport const DATA_ANCHOR_ATTR = \"data-anchor\";\n\nexport const SidebarItem = ({\n item,\n onRequestClose,\n}: {\n item: SidebarItemType;\n onRequestClose?: () => void;\n}) => {\n const { activeAnchor } = useViewportAnchor();\n const [searchParams] = useSearchParams();\n\n switch (item.type) {\n case \"category\":\n return (\n <SidebarCategory category={item} onRequestClose={onRequestClose} />\n );\n case \"doc\":\n return (\n <NavLink\n className={({ isActive }) => navigationListItem({ isActive })}\n to={joinPath(item.id)}\n onClick={onRequestClose}\n >\n {item.icon && <item.icon size={16} className=\"align-[-0.125em]\" />}\n {item.badge ? (\n <>\n <span className=\"truncate flex-1\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n item.label\n )}\n </NavLink>\n );\n case \"link\":\n return item.href.startsWith(\"#\") ? (\n <AnchorLink\n to={{ hash: item.href, search: searchParams.toString() }}\n {...{ [DATA_ANCHOR_ATTR]: item.href.slice(1) }}\n className={navigationListItem({\n isActive: item.href.slice(1) === activeAnchor,\n className: item.badge?.placement !== \"start\" && \"justify-between\",\n })}\n onClick={onRequestClose}\n >\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n <span className=\"break-all\">{item.label}</span>\n )}\n </AnchorLink>\n ) : !item.href.startsWith(\"http\") ? (\n <NavLink\n className={navigationListItem({\n isActive: item.href.split(\"#\")[1] === activeAnchor,\n className: item.badge?.placement !== \"start\" && \"justify-between\",\n })}\n to={item.href}\n >\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n <span className=\"break-all\">{item.label}</span>\n )}\n </NavLink>\n ) : (\n <a\n className={navigationListItem()}\n href={item.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={onRequestClose}\n >\n <span className=\"whitespace-normal\">{item.label}</span>\n {/* This prevents that the icon would be positioned in its own line if the text fills a line entirely */}\n <span className=\"whitespace-nowrap\">\n <ExternalLinkIcon className=\"inline -translate-y-0.5\" size={12} />\n </span>\n </a>\n );\n }\n};\n","export const scrollIntoViewIfNeeded = (\n element: Element | null,\n options: ScrollIntoViewOptions = { block: \"center\" },\n) => {\n if (!element) return;\n\n const rect = element.getBoundingClientRect();\n const isInView =\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <=\n (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n\n if (isInView) return;\n\n element.scrollIntoView(options);\n};\n","import { useCallback, useEffect } from \"react\";\nimport { useLocation } from \"react-router\";\nimport { useViewportAnchor } from \"../components/context/ViewportAnchorContext.js\";\nimport { DATA_ANCHOR_ATTR } from \"../components/navigation/SidebarItem.js\";\nimport { scrollIntoViewIfNeeded } from \"./scrollIntoViewIfNeeded.js\";\n\nexport const useScrollToHash = () => {\n const { setActiveAnchor } = useViewportAnchor();\n\n const scrollToHash = useCallback(\n (hash: string) => {\n const cleanHash = hash\n .replace(/^#/, \"\")\n // Operation list items might have subdivisions that the sidebar doesn't show.\n // The subdivisions are separated by a slash so we need to remove everything before the slash to get the sidebar correct item.\n .split(\"/\")\n .at(0)!;\n const element = document.getElementById(decodeURIComponent(cleanHash));\n const link = document.querySelector(\n `[${DATA_ANCHOR_ATTR}=\"${cleanHash}\"]`,\n );\n\n if (element) {\n element.scrollIntoView();\n scrollIntoViewIfNeeded(link);\n requestIdleCallback(() => setActiveAnchor(cleanHash));\n return true;\n }\n\n // Scroll didn't happen\n return false;\n },\n [setActiveAnchor],\n );\n\n return scrollToHash;\n};\n\nexport const useScrollToAnchor = () => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const scrollToHash = useScrollToHash();\n\n useEffect(() => {\n if (!location.hash) return;\n\n if (!scrollToHash(location.hash)) {\n const observer = new MutationObserver((_, obs) => {\n if (!scrollToHash(location.hash)) return;\n obs.disconnect();\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n }\n }, [location.hash, scrollToHash, setActiveAnchor]);\n};\n"],"names":["emptyComponents","MDXContext","React","useMDXComponents","components","contextComponents","MDXProvider","properties","allComponents","AnchorLink","props","location","useLocation","scrollToHash","useScrollToHash","hash","handleClick","event","_a","jsx","Link","ColorMap","ColorMapInvert","SidebarBadge","color","label","className","invert","cn","SidebarCategory","category","onRequestClose","isCategoryOpen","useIsCategoryOpen","hasInteracted","setHasInteracted","useState","isCollapsible","isCollapsed","isDefaultOpen","open","setOpen","isActive","useMatch","useEffect","ToggleButton","e","prev","ChevronRightIcon","icon","styles","navigationListItem","jsxs","Collapsible","_b","NavLink","joinPath","item","SidebarItem","cva","DATA_ANCHOR_ATTR","activeAnchor","useViewportAnchor","searchParams","useSearchParams","Fragment","ExternalLinkIcon","scrollIntoViewIfNeeded","element","options","rect","setActiveAnchor","useCallback","cleanHash","link","useScrollToAnchor","observer","_","obs"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"useScrollToAnchor-BGEcH3HM.js","sources":["../../../node_modules/.pnpm/@mdx-js+react@3.1.0_@types+react@19.0.7_react@19.0.0/node_modules/@mdx-js/react/lib/index.js","../src/lib/components/AnchorLink.tsx","../src/lib/components/navigation/SidebarBadge.tsx","../src/lib/components/navigation/SidebarCategory.tsx","../src/lib/components/navigation/SidebarItem.tsx","../src/lib/util/scrollIntoViewIfNeeded.ts","../src/lib/util/useScrollToAnchor.ts"],"sourcesContent":["/**\n * @import {MDXComponents} from 'mdx/types.js'\n * @import {Component, ReactElement, ReactNode} from 'react'\n */\n\n/**\n * @callback MergeComponents\n * Custom merge function.\n * @param {Readonly<MDXComponents>} currentComponents\n * Current components from the context.\n * @returns {MDXComponents}\n * Additional components.\n *\n * @typedef Props\n * Configuration for `MDXProvider`.\n * @property {ReactNode | null | undefined} [children]\n * Children (optional).\n * @property {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @property {boolean | null | undefined} [disableParentContext=false]\n * Turn off outer component context (default: `false`).\n */\n\nimport React from 'react'\n\n/** @type {Readonly<MDXComponents>} */\nconst emptyComponents = {}\n\nconst MDXContext = React.createContext(emptyComponents)\n\n/**\n * Get current components from the MDX Context.\n *\n * @param {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @returns {MDXComponents}\n * Current components.\n */\nexport function useMDXComponents(components) {\n const contextComponents = React.useContext(MDXContext)\n\n // Memoize to avoid unnecessary top-level context changes\n return React.useMemo(\n function () {\n // Custom merge via a function prop\n if (typeof components === 'function') {\n return components(contextComponents)\n }\n\n return {...contextComponents, ...components}\n },\n [contextComponents, components]\n )\n}\n\n/**\n * Provider for MDX context.\n *\n * @param {Readonly<Props>} properties\n * Properties.\n * @returns {ReactElement}\n * Element.\n * @satisfies {Component}\n */\nexport function MDXProvider(properties) {\n /** @type {Readonly<MDXComponents>} */\n let allComponents\n\n if (properties.disableParentContext) {\n allComponents =\n typeof properties.components === 'function'\n ? properties.components(emptyComponents)\n : properties.components || emptyComponents\n } else {\n allComponents = useMDXComponents(properties.components)\n }\n\n return React.createElement(\n MDXContext.Provider,\n {value: allComponents},\n properties.children\n )\n}\n","import React from \"react\";\nimport { Link, type LinkProps, useLocation } from \"react-router\";\nimport { useScrollToHash } from \"../util/useScrollToAnchor.js\";\n\n/**\n * Link that scrolls to anchor even if the hash is already set in the URL.\n */\nexport const AnchorLink = (props: LinkProps) => {\n const location = useLocation();\n const scrollToHash = useScrollToHash();\n const hash = typeof props.to === \"string\" ? props.to : props.to.hash;\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n props.onClick?.(event);\n if (!hash?.startsWith(\"#\") || hash !== location.hash) return;\n\n event.preventDefault();\n scrollToHash(hash);\n };\n\n return <Link {...props} onClick={handleClick} />;\n};\n","import { cn } from \"../../util/cn.js\";\n\nexport const ColorMap = {\n green: \"bg-green-400 dark:bg-green-800\",\n blue: \"bg-sky-400 dark:bg-sky-800\",\n yellow: \"bg-yellow-400 dark:bg-yellow-800\",\n red: \"bg-red-400 dark:bg-red-800\",\n purple: \"bg-purple-400 dark:bg-purple-600\",\n indigo: \"bg-indigo-400 dark:bg-indigo-600\",\n gray: \"bg-gray-400 dark:bg-gray-600\",\n};\n\nexport const ColorMapInvert = {\n green: \"text-green-500 dark:text-green-600\",\n blue: \"text-sky-400 dark:text-sky-600\",\n yellow: \"text-yellow-400 dark:text-yellow-600\",\n red: \"text-red-400 dark:text-red-600\",\n purple: \"text-purple-400 dark:text-purple-600\",\n indigo: \"text-indigo-400 dark:text-indigo-600\",\n gray: \"text-gray-400 dark:text-gray-600\",\n};\n\nexport const SidebarBadge = ({\n color,\n label,\n className,\n invert,\n}: {\n color: keyof typeof ColorMap;\n label: string;\n className?: string;\n invert?: boolean;\n}) => {\n return (\n <span\n className={cn(\n \"mt-0.5 flex items-center duration-200 transition-opacity text-center uppercase font-mono text-[0.65rem] font-bold rounded text-background dark:text-zinc-50 h-4 px-1\",\n invert ? ColorMapInvert[color] : ColorMap[color],\n className,\n )}\n >\n {label}\n </span>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ChevronRightIcon } from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { NavLink, useMatch } from \"react-router\";\nimport type { SidebarItemCategory } from \"../../../config/validators/SidebarSchema.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { navigationListItem, SidebarItem } from \"./SidebarItem.js\";\nimport { useIsCategoryOpen } from \"./utils.js\";\n\nexport const SidebarCategory = ({\n category,\n onRequestClose,\n}: {\n category: SidebarItemCategory;\n onRequestClose?: () => void;\n}) => {\n const isCategoryOpen = useIsCategoryOpen(category);\n const [hasInteracted, setHasInteracted] = useState(false);\n\n const isCollapsible = category.collapsible ?? true;\n const isCollapsed = category.collapsed ?? true;\n const isDefaultOpen = Boolean(\n !isCollapsible || !isCollapsed || isCategoryOpen,\n );\n const [open, setOpen] = useState(isDefaultOpen);\n const isActive = useMatch(category.link?.id ?? \"\");\n\n useEffect(() => {\n // this is triggered when an item from the sidebar is clicked\n // and the sidebar, enclosing this item, is not opened\n if (isCategoryOpen) {\n setOpen(true);\n }\n }, [isCategoryOpen]);\n\n const ToggleButton = isCollapsible && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.preventDefault();\n setOpen((prev) => !prev);\n setHasInteracted(true);\n }}\n >\n <ChevronRightIcon\n size={16}\n className={cn(\n hasInteracted && \"transition\",\n \"shrink-0 group-data-[state=open]:rotate-90\",\n )}\n />\n </button>\n );\n\n const icon = category.icon && (\n <category.icon\n size={16}\n className={cn(\"align-[-0.125em] \", isActive && \"text-primary\")}\n />\n );\n\n const styles = navigationListItem({\n className: [\n \"text-start font-medium\",\n isCollapsible || typeof category.link !== \"undefined\"\n ? \"cursor-pointer\"\n : \"cursor-default hover:bg-transparent\",\n ],\n });\n\n return (\n <Collapsible.Root\n className=\"flex flex-col\"\n defaultOpen={isDefaultOpen}\n open={open}\n onOpenChange={() => setOpen(true)}\n >\n <Collapsible.Trigger className=\"group\" asChild disabled={!isCollapsible}>\n {category.link?.type === \"doc\" ? (\n <NavLink\n to={joinPath(category.link.id)}\n className={styles}\n onClick={() => {\n setHasInteracted(true);\n // if it is the current path and closed then open it because there's no path change to trigger the open\n if (isActive && !open) {\n setOpen(true);\n }\n }}\n >\n {icon}\n <div\n className={cn(\n \"flex items-center gap-2 justify-between w-full\",\n isActive ? \"text-primary\" : \"text-foreground/80\",\n )}\n >\n <div className=\"truncate\">{category.label}</div>\n {ToggleButton}\n </div>\n </NavLink>\n ) : (\n <div onClick={() => setHasInteracted(true)} className={styles}>\n {icon}\n <div className=\"flex items-center justify-between w-full\">\n <div className=\"flex gap-2 truncate w-full\">{category.label}</div>\n {ToggleButton}\n </div>\n </div>\n )}\n </Collapsible.Trigger>\n <Collapsible.Content\n className={cn(\n // CollapsibleContent class is used to animate and it should only be applied when the user has triggered the toggle\n hasInteracted && \"CollapsibleContent\",\n category.items.length === 0 && \"hidden\",\n \"ms-6 my-1\",\n )}\n >\n <ul className=\"relative after:absolute after:-left-[--padding-nav-item] after:translate-x-[1.5px] after:top-0 after:bottom-0 after:w-px after:bg-border\">\n {category.items.map((item) => (\n <SidebarItem\n key={\n (\"id\" in item ? item.id : \"\") +\n (\"href\" in item ? item.href : \"\") +\n item.label\n }\n onRequestClose={onRequestClose}\n item={item}\n />\n ))}\n </ul>\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import { cva } from \"class-variance-authority\";\nimport { ExternalLinkIcon } from \"lucide-react\";\nimport { NavLink, useSearchParams } from \"react-router\";\n\nimport type { SidebarItem as SidebarItemType } from \"../../../config/validators/SidebarSchema.js\";\nimport { joinPath } from \"../../util/joinPath.js\";\nimport { AnchorLink } from \"../AnchorLink.js\";\nimport { useViewportAnchor } from \"../context/ViewportAnchorContext.js\";\nimport { SidebarBadge } from \"./SidebarBadge.js\";\nimport { SidebarCategory } from \"./SidebarCategory.js\";\n\nexport const navigationListItem = cva(\n \"flex items-center gap-2 px-[--padding-nav-item] py-1.5 rounded-lg hover:bg-accent\",\n {\n variants: {\n isActive: {\n true: \"text-primary font-medium\",\n false: \"text-foreground/80\",\n },\n isMuted: {\n true: \"text-foreground/30\",\n false: \"\",\n },\n },\n defaultVariants: {\n isActive: false,\n },\n },\n);\n\nexport const DATA_ANCHOR_ATTR = \"data-anchor\";\n\nexport const SidebarItem = ({\n item,\n onRequestClose,\n}: {\n item: SidebarItemType;\n onRequestClose?: () => void;\n}) => {\n const { activeAnchor } = useViewportAnchor();\n const [searchParams] = useSearchParams();\n\n switch (item.type) {\n case \"category\":\n return (\n <SidebarCategory category={item} onRequestClose={onRequestClose} />\n );\n case \"doc\":\n return (\n <NavLink\n className={({ isActive }) => navigationListItem({ isActive })}\n to={joinPath(item.id)}\n onClick={onRequestClose}\n >\n {item.icon && <item.icon size={16} className=\"align-[-0.125em]\" />}\n {item.badge ? (\n <>\n <span className=\"truncate flex-1\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n item.label\n )}\n </NavLink>\n );\n case \"link\":\n return item.href.startsWith(\"#\") ? (\n <AnchorLink\n to={{ hash: item.href, search: searchParams.toString() }}\n {...{ [DATA_ANCHOR_ATTR]: item.href.slice(1) }}\n className={navigationListItem({\n isActive: item.href.slice(1) === activeAnchor,\n className: item.badge?.placement !== \"start\" && \"justify-between\",\n })}\n onClick={onRequestClose}\n >\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n <span className=\"break-all\">{item.label}</span>\n )}\n </AnchorLink>\n ) : !item.href.startsWith(\"http\") ? (\n <NavLink\n className={navigationListItem({\n isActive: item.href.split(\"#\")[1] === activeAnchor,\n className: item.badge?.placement !== \"start\" && \"justify-between\",\n })}\n to={item.href}\n >\n {item.badge ? (\n <>\n <span className=\"truncate\" title={item.label}>\n {item.label}\n </span>\n <SidebarBadge {...item.badge} />\n </>\n ) : (\n <span className=\"break-all\">{item.label}</span>\n )}\n </NavLink>\n ) : (\n <a\n className={navigationListItem()}\n href={item.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={onRequestClose}\n >\n <span className=\"whitespace-normal\">{item.label}</span>\n {/* This prevents that the icon would be positioned in its own line if the text fills a line entirely */}\n <span className=\"whitespace-nowrap\">\n <ExternalLinkIcon className=\"inline -translate-y-0.5\" size={12} />\n </span>\n </a>\n );\n }\n};\n","export const scrollIntoViewIfNeeded = (\n element: Element | null,\n options: ScrollIntoViewOptions = { block: \"center\" },\n) => {\n if (!element) return;\n\n const rect = element.getBoundingClientRect();\n const isInView =\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <=\n (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\n\n if (isInView) return;\n\n element.scrollIntoView(options);\n};\n","import { useCallback, useEffect } from \"react\";\nimport { useLocation } from \"react-router\";\nimport { useViewportAnchor } from \"../components/context/ViewportAnchorContext.js\";\nimport { DATA_ANCHOR_ATTR } from \"../components/navigation/SidebarItem.js\";\nimport { scrollIntoViewIfNeeded } from \"./scrollIntoViewIfNeeded.js\";\n\nexport const useScrollToHash = () => {\n const { setActiveAnchor } = useViewportAnchor();\n\n const scrollToHash = useCallback(\n (hash: string) => {\n const cleanHash = hash\n .replace(/^#/, \"\")\n // Operation list items might have subdivisions that the sidebar doesn't show.\n // The subdivisions are separated by a slash so we need to remove everything before the slash to get the sidebar correct item.\n .split(\"/\")\n .at(0)!;\n const element = document.getElementById(decodeURIComponent(cleanHash));\n const link = document.querySelector(\n `[${DATA_ANCHOR_ATTR}=\"${cleanHash}\"]`,\n );\n\n if (element) {\n element.scrollIntoView();\n scrollIntoViewIfNeeded(link);\n requestIdleCallback(() => setActiveAnchor(cleanHash));\n return true;\n }\n\n // Scroll didn't happen\n return false;\n },\n [setActiveAnchor],\n );\n\n return scrollToHash;\n};\n\nexport const useScrollToAnchor = () => {\n const location = useLocation();\n const { setActiveAnchor } = useViewportAnchor();\n const scrollToHash = useScrollToHash();\n\n useEffect(() => {\n if (!location.hash) return;\n\n if (!scrollToHash(location.hash)) {\n const observer = new MutationObserver((_, obs) => {\n if (!scrollToHash(location.hash)) return;\n obs.disconnect();\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n }\n }, [location.hash, scrollToHash, setActiveAnchor]);\n};\n"],"names":["emptyComponents","MDXContext","React","useMDXComponents","components","contextComponents","MDXProvider","properties","allComponents","AnchorLink","props","location","useLocation","scrollToHash","useScrollToHash","hash","handleClick","event","_a","jsx","Link","ColorMap","ColorMapInvert","SidebarBadge","color","label","className","invert","cn","SidebarCategory","category","onRequestClose","isCategoryOpen","useIsCategoryOpen","hasInteracted","setHasInteracted","useState","isCollapsible","isCollapsed","isDefaultOpen","open","setOpen","isActive","useMatch","useEffect","ToggleButton","e","prev","ChevronRightIcon","icon","styles","navigationListItem","jsxs","Collapsible","_b","NavLink","joinPath","item","SidebarItem","cva","DATA_ANCHOR_ATTR","activeAnchor","useViewportAnchor","searchParams","useSearchParams","Fragment","ExternalLinkIcon","scrollIntoViewIfNeeded","element","options","rect","setActiveAnchor","useCallback","cleanHash","link","useScrollToAnchor","observer","_","obs"],"mappings":"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","x_google_ignoreList":[0]}
|
package/lib/zudoku.auth-auth0.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var r = Object.defineProperty;
|
|
2
2
|
var c = (e, s, t) => s in e ? r(e, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[s] = t;
|
|
3
3
|
var n = (e, s, t) => c(e, typeof s != "symbol" ? s + "" : s, t);
|
|
4
|
-
import { u } from "./hook-
|
|
4
|
+
import { u } from "./hook-C_t2ISLC.js";
|
|
5
5
|
import { OpenIDAuthenticationProvider as d } from "./zudoku.auth-openid.js";
|
|
6
6
|
class h extends d {
|
|
7
7
|
constructor(t) {
|
package/lib/zudoku.auth-clerk.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var w = Object.defineProperty;
|
|
2
2
|
var g = (n, s, i) => s in n ? w(n, s, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[s] = i;
|
|
3
3
|
var l = (n, s, i) => g(n, typeof s != "symbol" ? s + "" : s, i);
|
|
4
|
-
import { A as m } from "./AuthenticationPlugin-
|
|
5
|
-
import { u as d } from "./hook-
|
|
4
|
+
import { A as m } from "./AuthenticationPlugin-_YVa673u.js";
|
|
5
|
+
import { u as d } from "./hook-C_t2ISLC.js";
|
|
6
6
|
class h extends m {
|
|
7
7
|
constructor(i) {
|
|
8
8
|
super();
|
|
@@ -5,8 +5,8 @@ import { j as G } from "./jsx-runtime-Bdg6XQ1m.js";
|
|
|
5
5
|
import { g as ze } from "./_commonjsHelpers-BkfeUUK-.js";
|
|
6
6
|
import { C as De } from "./ClientOnly-E7hGysn1.js";
|
|
7
7
|
import { j as ae } from "./joinUrl-nLx9pD-Z.js";
|
|
8
|
-
import { A as Ne } from "./AuthenticationPlugin-
|
|
9
|
-
import { a as Ke, u as x } from "./hook-
|
|
8
|
+
import { A as Ne } from "./AuthenticationPlugin-_YVa673u.js";
|
|
9
|
+
import { a as Ke, u as x } from "./hook-C_t2ISLC.js";
|
|
10
10
|
import { N as We } from "./chunk-SYFQ2XB5-QijJrSf0.js";
|
|
11
11
|
import { Z as He } from "./invariant-Caa8-XvF.js";
|
|
12
12
|
var N = { exports: {} }, $e = N.exports, se;
|