@hanzo/docs-base-ui 16.4.2 → 16.4.8
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/README.md +3 -3
- package/css/aspen.css +1 -0
- package/css/black.css +1 -1
- package/css/catppuccin.css +1 -1
- package/css/dusk.css +1 -1
- package/css/emerald.css +1 -0
- package/css/neutral.css +1 -1
- package/css/ocean.css +1 -1
- package/css/preset.css +1 -1
- package/css/purple.css +1 -1
- package/css/ruby.css +1 -0
- package/css/shadcn.css +1 -1
- package/css/solar.css +1 -1
- package/css/vitepress.css +1 -1
- package/dist/components/accordion.d.ts +3 -3
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/banner.d.ts +3 -3
- package/dist/components/banner.js.map +1 -1
- package/dist/components/callout.d.ts +5 -5
- package/dist/components/card.d.ts +3 -3
- package/dist/components/codeblock.d.ts +7 -7
- package/dist/components/dialog/search-algolia.d.ts +2 -2
- package/dist/components/dialog/search-default.d.ts +2 -2
- package/dist/components/dialog/search-orama.d.ts +2 -2
- package/dist/components/dialog/search.d.ts +13 -13
- package/dist/components/dialog/search.d.ts.map +1 -1
- package/dist/components/dialog/search.js +14 -6
- package/dist/components/dialog/search.js.map +1 -1
- package/dist/components/dynamic-codeblock.d.ts +2 -2
- package/dist/components/github-info.d.ts +2 -2
- package/dist/components/image-zoom.d.ts +2 -2
- package/dist/components/inline-toc.d.ts +2 -2
- package/dist/components/sidebar/base.d.ts +21 -19
- package/dist/components/sidebar/base.d.ts.map +1 -1
- package/dist/components/sidebar/base.js +7 -3
- package/dist/components/sidebar/base.js.map +1 -1
- package/dist/components/sidebar/link-item.d.ts +3 -3
- package/dist/components/sidebar/link-item.js.map +1 -1
- package/dist/components/sidebar/page-tree.d.ts +2 -2
- package/dist/components/sidebar/tabs/dropdown.d.ts +3 -3
- package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -1
- package/dist/components/sidebar/tabs/dropdown.js +1 -1
- package/dist/components/sidebar/tabs/dropdown.js.map +1 -1
- package/dist/components/sidebar/tabs/index.js.map +1 -1
- package/dist/components/steps.d.ts +3 -3
- package/dist/components/tabs.d.ts +6 -6
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/toc/clerk.d.ts +1 -1
- package/dist/components/toc/clerk.js +3 -3
- package/dist/components/toc/clerk.js.map +1 -1
- package/dist/components/toc/default.d.ts +1 -1
- package/dist/components/toc/default.js +3 -3
- package/dist/components/toc/default.js.map +1 -1
- package/dist/components/toc/index.d.ts +1 -1
- package/dist/components/toc/index.js +3 -3
- package/dist/components/toc/index.js.map +1 -1
- package/dist/components/type-table.d.ts +2 -2
- package/dist/components/type-table.d.ts.map +1 -1
- package/dist/components/ui/accordion.d.ts +6 -6
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/collapsible.d.ts +6 -6
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.d.ts +7 -7
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/popover.d.ts +3 -3
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.d.ts +4 -4
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +7 -7
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +2 -2
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/contexts/i18n.d.ts +1 -1
- package/dist/contexts/i18n.js +3 -3
- package/dist/contexts/i18n.js.map +1 -1
- package/dist/contexts/search.d.ts +3 -3
- package/dist/contexts/search.js +3 -3
- package/dist/contexts/search.js.map +1 -1
- package/dist/contexts/tree.d.ts +1 -1
- package/dist/contexts/tree.js +3 -3
- package/dist/contexts/tree.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -1
- package/dist/layouts/docs/client.d.ts +7 -7
- package/dist/layouts/docs/client.d.ts.map +1 -1
- package/dist/layouts/docs/client.js +1 -1
- package/dist/layouts/docs/client.js.map +1 -1
- package/dist/layouts/docs/index.d.ts +2 -2
- package/dist/layouts/docs/index.js +4 -4
- package/dist/layouts/docs/index.js.map +1 -1
- package/dist/layouts/docs/page/client.d.ts +9 -7
- package/dist/layouts/docs/page/client.d.ts.map +1 -1
- package/dist/layouts/docs/page/client.js +14 -14
- package/dist/layouts/docs/page/client.js.map +1 -1
- package/dist/layouts/docs/page/index.d.ts +19 -8
- package/dist/layouts/docs/page/index.d.ts.map +1 -1
- package/dist/layouts/docs/page/index.js +3 -3
- package/dist/layouts/docs/page/index.js.map +1 -1
- package/dist/layouts/docs/sidebar.d.ts +19 -19
- package/dist/layouts/docs/sidebar.d.ts.map +1 -1
- package/dist/layouts/home/client.d.ts +3 -3
- package/dist/layouts/home/client.d.ts.map +1 -1
- package/dist/layouts/home/client.js +8 -8
- package/dist/layouts/home/client.js.map +1 -1
- package/dist/layouts/home/index.d.ts +2 -2
- package/dist/layouts/home/navbar.d.ts +7 -7
- package/dist/layouts/home/navbar.d.ts.map +1 -1
- package/dist/layouts/notebook/client.d.ts +9 -9
- package/dist/layouts/notebook/client.d.ts.map +1 -1
- package/dist/layouts/notebook/client.js +2 -2
- package/dist/layouts/notebook/client.js.map +1 -1
- package/dist/layouts/notebook/index.d.ts +2 -2
- package/dist/layouts/notebook/index.d.ts.map +1 -1
- package/dist/layouts/notebook/index.js +28 -29
- package/dist/layouts/notebook/index.js.map +1 -1
- package/dist/layouts/notebook/page/client.d.ts +9 -7
- package/dist/layouts/notebook/page/client.d.ts.map +1 -1
- package/dist/layouts/notebook/page/client.js +14 -14
- package/dist/layouts/notebook/page/client.js.map +1 -1
- package/dist/layouts/notebook/page/index.d.ts +19 -8
- package/dist/layouts/notebook/page/index.d.ts.map +1 -1
- package/dist/layouts/notebook/page/index.js +3 -3
- package/dist/layouts/notebook/page/index.js.map +1 -1
- package/dist/layouts/notebook/sidebar.d.ts +14 -14
- package/dist/layouts/notebook/sidebar.d.ts.map +1 -1
- package/dist/layouts/shared/index.d.ts +5 -5
- package/dist/layouts/shared/index.d.ts.map +1 -1
- package/dist/layouts/shared/index.js.map +1 -1
- package/dist/layouts/shared/language-toggle.d.ts +2 -2
- package/dist/layouts/shared/search-toggle.d.ts +3 -3
- package/dist/mdx.js.map +1 -1
- package/dist/og.d.ts +1 -1
- package/dist/og.js +1 -1
- package/dist/provider/base.d.ts +4 -4
- package/dist/provider/base.d.ts.map +1 -1
- package/dist/provider/base.js +2 -2
- package/dist/provider/base.js.map +1 -1
- package/dist/provider/next.d.ts +2 -2
- package/dist/provider/next.d.ts.map +1 -1
- package/dist/provider/react-router.d.ts +2 -2
- package/dist/provider/tanstack.d.ts +2 -2
- package/dist/provider/waku.d.ts +2 -2
- package/dist/style.css +7 -3
- package/dist/utils/use-footer-items.d.ts +1 -1
- package/dist/utils/use-footer-items.js +1 -1
- package/dist/utils/use-is-scroll-top.d.ts +1 -1
- package/dist/utils/use-is-scroll-top.js +1 -1
- package/package.json +24 -19
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { CollapsibleContentProps, CollapsibleTriggerProps } from "../ui/collapsible.js";
|
|
2
2
|
import { ScrollAreaProps } from "../ui/scroll-area.js";
|
|
3
3
|
import { LinkProps } from "@hanzo/docs-core/link";
|
|
4
|
-
import * as
|
|
4
|
+
import * as react_jsx_runtime43 from "react/jsx-runtime";
|
|
5
5
|
import * as react3 from "react";
|
|
6
6
|
import { ComponentProps, PointerEvent, ReactNode, RefObject } from "react";
|
|
7
7
|
|
|
8
8
|
//#region src/components/sidebar/base.d.ts
|
|
9
9
|
declare namespace base_d_exports {
|
|
10
|
-
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, useFolder, useFolderDepth, useSidebar };
|
|
10
|
+
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, useAutoScroll, useFolder, useFolderDepth, useSidebar };
|
|
11
11
|
}
|
|
12
12
|
interface SidebarContext {
|
|
13
13
|
open: boolean;
|
|
@@ -19,7 +19,7 @@ interface SidebarContext {
|
|
|
19
19
|
*/
|
|
20
20
|
closeOnRedirect: RefObject<boolean>;
|
|
21
21
|
defaultOpenLevel: number;
|
|
22
|
-
prefetch
|
|
22
|
+
prefetch?: boolean;
|
|
23
23
|
mode: Mode;
|
|
24
24
|
}
|
|
25
25
|
interface SidebarProviderProps {
|
|
@@ -31,9 +31,7 @@ interface SidebarProviderProps {
|
|
|
31
31
|
*/
|
|
32
32
|
defaultOpenLevel?: number;
|
|
33
33
|
/**
|
|
34
|
-
* Prefetch links
|
|
35
|
-
*
|
|
36
|
-
* @defaultValue true
|
|
34
|
+
* Prefetch links, default behaviour depends on your React.js framework.
|
|
37
35
|
*/
|
|
38
36
|
prefetch?: boolean;
|
|
39
37
|
children?: ReactNode;
|
|
@@ -44,7 +42,7 @@ declare function SidebarProvider({
|
|
|
44
42
|
defaultOpenLevel,
|
|
45
43
|
prefetch,
|
|
46
44
|
children
|
|
47
|
-
}: SidebarProviderProps):
|
|
45
|
+
}: SidebarProviderProps): react_jsx_runtime43.JSX.Element;
|
|
48
46
|
declare function useSidebar(): SidebarContext;
|
|
49
47
|
declare function useFolder(): {
|
|
50
48
|
open: boolean;
|
|
@@ -64,24 +62,24 @@ declare function SidebarContent({
|
|
|
64
62
|
onPointerLeave: (event: PointerEvent) => void;
|
|
65
63
|
}) => ReactNode;
|
|
66
64
|
}): ReactNode;
|
|
67
|
-
declare function SidebarDrawerOverlay(props: ComponentProps<'div'>):
|
|
65
|
+
declare function SidebarDrawerOverlay(props: ComponentProps<'div'>): react_jsx_runtime43.JSX.Element | undefined;
|
|
68
66
|
declare function SidebarDrawerContent({
|
|
69
67
|
className,
|
|
70
68
|
children,
|
|
71
69
|
...props
|
|
72
|
-
}: ComponentProps<'aside'>):
|
|
70
|
+
}: ComponentProps<'aside'>): react_jsx_runtime43.JSX.Element | undefined;
|
|
73
71
|
declare function SidebarViewport({
|
|
74
72
|
className,
|
|
75
73
|
...props
|
|
76
|
-
}: ScrollAreaProps):
|
|
77
|
-
declare function SidebarSeparator(props: ComponentProps<'p'>):
|
|
74
|
+
}: ScrollAreaProps): react_jsx_runtime43.JSX.Element;
|
|
75
|
+
declare function SidebarSeparator(props: ComponentProps<'p'>): react_jsx_runtime43.JSX.Element;
|
|
78
76
|
declare function SidebarItem({
|
|
79
77
|
icon,
|
|
80
78
|
children,
|
|
81
79
|
...props
|
|
82
80
|
}: LinkProps & {
|
|
83
81
|
icon?: ReactNode;
|
|
84
|
-
}):
|
|
82
|
+
}): react_jsx_runtime43.JSX.Element;
|
|
85
83
|
declare function SidebarFolder({
|
|
86
84
|
defaultOpen: defaultOpenProp,
|
|
87
85
|
collapsible,
|
|
@@ -92,21 +90,25 @@ declare function SidebarFolder({
|
|
|
92
90
|
active?: boolean;
|
|
93
91
|
defaultOpen?: boolean;
|
|
94
92
|
collapsible?: boolean;
|
|
95
|
-
}):
|
|
93
|
+
}): react_jsx_runtime43.JSX.Element;
|
|
96
94
|
declare function SidebarFolderTrigger({
|
|
97
95
|
children,
|
|
98
96
|
...props
|
|
99
|
-
}: CollapsibleTriggerProps):
|
|
97
|
+
}: CollapsibleTriggerProps): react_jsx_runtime43.JSX.Element;
|
|
100
98
|
declare function SidebarFolderLink({
|
|
101
99
|
children,
|
|
102
100
|
...props
|
|
103
|
-
}: LinkProps):
|
|
104
|
-
declare function SidebarFolderContent(props: CollapsibleContentProps):
|
|
101
|
+
}: LinkProps): react_jsx_runtime43.JSX.Element;
|
|
102
|
+
declare function SidebarFolderContent(props: CollapsibleContentProps): react_jsx_runtime43.JSX.Element;
|
|
105
103
|
declare function SidebarTrigger({
|
|
106
104
|
children,
|
|
107
105
|
...props
|
|
108
|
-
}: ComponentProps<'button'>):
|
|
109
|
-
declare function SidebarCollapseTrigger(props: ComponentProps<'button'>):
|
|
106
|
+
}: ComponentProps<'button'>): react_jsx_runtime43.JSX.Element;
|
|
107
|
+
declare function SidebarCollapseTrigger(props: ComponentProps<'button'>): react_jsx_runtime43.JSX.Element;
|
|
108
|
+
/**
|
|
109
|
+
* scroll to the element if `active` is true
|
|
110
|
+
*/
|
|
111
|
+
declare function useAutoScroll(active: boolean, ref: RefObject<HTMLElement | null>): void;
|
|
110
112
|
//#endregion
|
|
111
|
-
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, base_d_exports, useFolder, useFolderDepth, useSidebar };
|
|
113
|
+
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, base_d_exports, useAutoScroll, useFolder, useFolderDepth, useSidebar };
|
|
112
114
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/components/sidebar/base.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;UA+BU,cAAA;;WAEC,KAAA,CAAM,SAAS,KAAA,CAAM;;gBAEhB,KAAA,CAAM,SAAS,KAAA,CAAM;;;;mBAKlB;;;QAGX;;UAGS,oBAAA
|
|
1
|
+
{"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/components/sidebar/base.tsx"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { cn } from "@hanzo/docs-ui/cn";
|
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
import { ChevronDown, ExternalLink } from "lucide-react";
|
|
11
11
|
import { createContext, use, useEffect, useMemo, useRef, useState } from "react";
|
|
12
|
-
import { isActive } from "@hanzo/docs-ui/urls";
|
|
12
|
+
import { isActive } from "@hanzo/docs-radix-ui/urls";
|
|
13
13
|
import { useOnChange } from "@hanzo/docs-core/utils/use-on-change";
|
|
14
14
|
import { useMediaQuery } from "@hanzo/docs-core/utils/use-media-query";
|
|
15
15
|
import scrollIntoView from "scroll-into-view-if-needed";
|
|
@@ -30,13 +30,14 @@ var base_exports = /* @__PURE__ */ __exportAll({
|
|
|
30
30
|
SidebarSeparator: () => SidebarSeparator,
|
|
31
31
|
SidebarTrigger: () => SidebarTrigger,
|
|
32
32
|
SidebarViewport: () => SidebarViewport,
|
|
33
|
+
useAutoScroll: () => useAutoScroll,
|
|
33
34
|
useFolder: () => useFolder,
|
|
34
35
|
useFolderDepth: () => useFolderDepth,
|
|
35
36
|
useSidebar: () => useSidebar
|
|
36
37
|
});
|
|
37
38
|
const SidebarContext = createContext(null);
|
|
38
39
|
const FolderContext = createContext(null);
|
|
39
|
-
function SidebarProvider({ defaultOpenLevel = 0, prefetch
|
|
40
|
+
function SidebarProvider({ defaultOpenLevel = 0, prefetch, children }) {
|
|
40
41
|
const closeOnRedirect = useRef(true);
|
|
41
42
|
const [open, setOpen] = useState(false);
|
|
42
43
|
const [collapsed, setCollapsed] = useState(false);
|
|
@@ -265,6 +266,9 @@ function SidebarCollapseTrigger(props) {
|
|
|
265
266
|
children: props.children
|
|
266
267
|
});
|
|
267
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* scroll to the element if `active` is true
|
|
271
|
+
*/
|
|
268
272
|
function useAutoScroll(active, ref) {
|
|
269
273
|
const { mode } = useSidebar();
|
|
270
274
|
useEffect(() => {
|
|
@@ -280,5 +284,5 @@ function useAutoScroll(active, ref) {
|
|
|
280
284
|
}
|
|
281
285
|
|
|
282
286
|
//#endregion
|
|
283
|
-
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarSeparator, SidebarTrigger, SidebarViewport, base_exports, useFolder, useFolderDepth, useSidebar };
|
|
287
|
+
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarSeparator, SidebarTrigger, SidebarViewport, base_exports, useAutoScroll, useFolder, useFolderDepth, useSidebar };
|
|
284
288
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":["mode: Mode"],"sources":["../../../src/components/sidebar/base.tsx"],"sourcesContent":["'use client';\nimport { ChevronDown, ExternalLink } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type PointerEvent,\n type ReactNode,\n type RefObject,\n use,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Link, { type LinkProps } from '@hanzo/docs-core/link';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport { cn } from '@hanzo/docs-ui/cn';\nimport { ScrollArea, type ScrollAreaProps, ScrollViewport } from '@/components/ui/scroll-area';\nimport { isActive } from '@hanzo/docs-ui/urls';\nimport {\n Collapsible,\n CollapsibleContent,\n type CollapsibleContentProps,\n CollapsibleTrigger,\n type CollapsibleTriggerProps,\n} from '@/components/ui/collapsible';\nimport { useMediaQuery } from '@hanzo/docs-core/utils/use-media-query';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { usePathname } from '@hanzo/docs-core/framework';\nimport ReactDOM from 'react-dom';\n\ninterface SidebarContext {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n\n /**\n * When set to false, don't close the sidebar when navigate to another page\n */\n closeOnRedirect: RefObject<boolean>;\n defaultOpenLevel: number;\n prefetch: boolean;\n mode: Mode;\n}\n\nexport interface SidebarProviderProps {\n /**\n * Open folders by default if their level is lower or equal to a specific level\n * (Starting from 1)\n *\n * @defaultValue 0\n */\n defaultOpenLevel?: number;\n\n /**\n * Prefetch links\n *\n * @defaultValue true\n */\n prefetch?: boolean;\n\n children?: ReactNode;\n}\n\ntype Mode = 'drawer' | 'full';\n\nconst SidebarContext = createContext<SidebarContext | null>(null);\n\nconst FolderContext = createContext<{\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n depth: number;\n collapsible: boolean;\n} | null>(null);\n\nexport function SidebarProvider({\n defaultOpenLevel = 0,\n prefetch = true,\n children,\n}: SidebarProviderProps) {\n const closeOnRedirect = useRef(true);\n const [open, setOpen] = useState(false);\n const [collapsed, setCollapsed] = useState(false);\n const pathname = usePathname();\n const mode: Mode = useMediaQuery('(width < 768px)') ? 'drawer' : 'full';\n\n useOnChange(pathname, () => {\n if (closeOnRedirect.current) {\n setOpen(false);\n }\n closeOnRedirect.current = true;\n });\n\n return (\n <SidebarContext\n value={useMemo(\n () => ({\n open,\n setOpen,\n collapsed,\n setCollapsed,\n closeOnRedirect,\n defaultOpenLevel,\n prefetch,\n mode,\n }),\n [open, collapsed, defaultOpenLevel, prefetch, mode],\n )}\n >\n {children}\n </SidebarContext>\n );\n}\n\nexport function useSidebar(): SidebarContext {\n const ctx = use(SidebarContext);\n if (!ctx)\n throw new Error(\n 'Missing SidebarContext, make sure you have wrapped the component in <DocsLayout /> and the context is available.',\n );\n\n return ctx;\n}\n\nexport function useFolder() {\n return use(FolderContext);\n}\n\nexport function useFolderDepth() {\n return use(FolderContext)?.depth ?? 0;\n}\n\nexport function SidebarContent({\n children,\n}: {\n children: (state: {\n ref: RefObject<HTMLElement | null>;\n collapsed: boolean;\n hovered: boolean;\n onPointerEnter: (event: PointerEvent) => void;\n onPointerLeave: (event: PointerEvent) => void;\n }) => ReactNode;\n}) {\n const { collapsed, mode } = useSidebar();\n const [hover, setHover] = useState(false);\n const ref = useRef<HTMLElement>(null);\n const timerRef = useRef(0);\n\n useOnChange(collapsed, () => {\n if (collapsed) setHover(false);\n });\n\n if (mode !== 'full') return;\n\n function shouldIgnoreHover(e: PointerEvent): boolean {\n const element = ref.current;\n if (!element) return true;\n\n return !collapsed || e.pointerType === 'touch' || element.getAnimations().length > 0;\n }\n\n return children({\n ref,\n collapsed,\n hovered: hover,\n onPointerEnter(e) {\n if (shouldIgnoreHover(e)) return;\n window.clearTimeout(timerRef.current);\n setHover(true);\n },\n onPointerLeave(e) {\n if (shouldIgnoreHover(e)) return;\n window.clearTimeout(timerRef.current);\n\n timerRef.current = window.setTimeout(\n () => setHover(false),\n // if mouse is leaving the viewport, add a close delay\n Math.min(e.clientX, document.body.clientWidth - e.clientX) > 100 ? 0 : 500,\n );\n },\n });\n}\n\nexport function SidebarDrawerOverlay(props: ComponentProps<'div'>) {\n const { open, setOpen, mode } = useSidebar();\n const [hidden, setHidden] = useState(!open);\n\n if (open && hidden) setHidden(false);\n if (mode !== 'drawer' || hidden) return;\n return (\n <div\n data-state={open ? 'open' : 'closed'}\n onClick={() => setOpen(false)}\n onAnimationEnd={() => {\n if (!open) ReactDOM.flushSync(() => setHidden(true));\n }}\n {...props}\n />\n );\n}\n\nexport function SidebarDrawerContent({ className, children, ...props }: ComponentProps<'aside'>) {\n const { open, mode } = useSidebar();\n const [hidden, setHidden] = useState(!open);\n\n if (open && hidden) setHidden(false);\n if (mode !== 'drawer') return;\n return (\n <aside\n id=\"nd-sidebar-mobile\"\n data-state={open ? 'open' : 'closed'}\n className={cn(hidden && 'invisible', className)}\n onAnimationEnd={() => {\n if (!open) ReactDOM.flushSync(() => setHidden(true));\n }}\n {...props}\n >\n {children}\n </aside>\n );\n}\n\nexport function SidebarViewport({ className, ...props }: ScrollAreaProps) {\n return (\n <ScrollArea\n className={(s) =>\n cn('min-h-0 flex-1', typeof className === 'function' ? className(s) : className)\n }\n {...props}\n >\n <ScrollViewport\n className=\"p-4 overscroll-contain\"\n style={\n {\n maskImage:\n 'linear-gradient(to bottom, transparent, white 12px, white calc(100% - 12px), transparent)',\n } as object\n }\n >\n {props.children}\n </ScrollViewport>\n </ScrollArea>\n );\n}\n\nexport function SidebarSeparator(props: ComponentProps<'p'>) {\n const depth = useFolderDepth();\n return (\n <p\n {...props}\n className={cn(\n 'inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0',\n depth === 0 && 'first:mt-0',\n props.className,\n )}\n >\n {props.children}\n </p>\n );\n}\n\nexport function SidebarItem({\n icon,\n children,\n ...props\n}: LinkProps & {\n icon?: ReactNode;\n}) {\n const pathname = usePathname();\n const ref = useRef<HTMLAnchorElement>(null);\n const { prefetch } = useSidebar();\n const active = props.href !== undefined && isActive(props.href, pathname, false);\n\n useAutoScroll(active, ref);\n\n return (\n <Link ref={ref} data-active={active} prefetch={prefetch} {...props}>\n {icon ?? (props.external ? <ExternalLink /> : null)}\n {children}\n </Link>\n );\n}\n\nexport function SidebarFolder({\n defaultOpen: defaultOpenProp,\n collapsible = true,\n active = false,\n children,\n ...props\n}: ComponentProps<'div'> & {\n active?: boolean;\n defaultOpen?: boolean;\n collapsible?: boolean;\n}) {\n const { defaultOpenLevel } = useSidebar();\n const depth = useFolderDepth() + 1;\n const defaultOpen =\n collapsible === false || active || (defaultOpenProp ?? defaultOpenLevel >= depth);\n const [open, setOpen] = useState(defaultOpen);\n\n useOnChange(defaultOpen, (v) => {\n if (v) setOpen(v);\n });\n\n return (\n <Collapsible open={open} onOpenChange={setOpen} disabled={!collapsible} {...props}>\n <FolderContext\n value={useMemo(() => ({ open, setOpen, depth, collapsible }), [collapsible, depth, open])}\n >\n {children}\n </FolderContext>\n </Collapsible>\n );\n}\n\nexport function SidebarFolderTrigger({ children, ...props }: CollapsibleTriggerProps) {\n const { open, collapsible } = use(FolderContext)!;\n\n if (collapsible) {\n return (\n <CollapsibleTrigger {...props}>\n {children}\n <ChevronDown\n data-icon\n className={cn('ms-auto transition-transform', !open && '-rotate-90')}\n />\n </CollapsibleTrigger>\n );\n }\n\n return <div {...(props as ComponentProps<'div'>)}>{children}</div>;\n}\n\nexport function SidebarFolderLink({ children, ...props }: LinkProps) {\n const ref = useRef<HTMLAnchorElement>(null);\n const { open, setOpen, collapsible } = use(FolderContext)!;\n const { prefetch } = useSidebar();\n const pathname = usePathname();\n const active = props.href !== undefined && isActive(props.href, pathname, false);\n\n useAutoScroll(active, ref);\n\n return (\n <Link\n ref={ref}\n data-active={active}\n onClick={(e) => {\n if (!collapsible) return;\n\n if (e.target instanceof Element && e.target.matches('[data-icon], [data-icon] *')) {\n setOpen(!open);\n e.preventDefault();\n } else {\n setOpen(active ? !open : true);\n }\n }}\n prefetch={prefetch}\n {...props}\n >\n {children}\n {collapsible && (\n <ChevronDown\n data-icon\n className={cn('ms-auto transition-transform', !open && '-rotate-90')}\n />\n )}\n </Link>\n );\n}\n\nexport function SidebarFolderContent(props: CollapsibleContentProps) {\n return <CollapsibleContent {...props}>{props.children}</CollapsibleContent>;\n}\n\nexport function SidebarTrigger({ children, ...props }: ComponentProps<'button'>) {\n const { setOpen } = useSidebar();\n\n return (\n <button aria-label=\"Open Sidebar\" onClick={() => setOpen((prev) => !prev)} {...props}>\n {children}\n </button>\n );\n}\n\nexport function SidebarCollapseTrigger(props: ComponentProps<'button'>) {\n const { collapsed, setCollapsed } = useSidebar();\n\n return (\n <button\n type=\"button\"\n aria-label=\"Collapse Sidebar\"\n data-collapsed={collapsed}\n onClick={() => {\n setCollapsed((prev) => !prev);\n }}\n {...props}\n >\n {props.children}\n </button>\n );\n}\n\nfunction useAutoScroll(active: boolean, ref: RefObject<HTMLAnchorElement | null>) {\n const { mode } = useSidebar();\n\n useEffect(() => {\n if (active && ref.current) {\n scrollIntoView(ref.current, {\n boundary: document.getElementById(mode === 'drawer' ? 'nd-sidebar-mobile' : 'nd-sidebar'),\n scrollMode: 'if-needed',\n });\n }\n }, [active, mode, ref]);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","names":[],"sources":["../../../src/components/sidebar/base.tsx"],"sourcesContent":["'use client';\nimport { ChevronDown, ExternalLink } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type PointerEvent,\n type ReactNode,\n type RefObject,\n use,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport Link, { type LinkProps } from '@hanzo/docs-core/link';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport { cn } from '@hanzo/docs-ui/cn';\nimport { ScrollArea, type ScrollAreaProps, ScrollViewport } from '@/components/ui/scroll-area';\nimport { isActive } from '@hanzo/docs-radix-ui/urls';\nimport {\n Collapsible,\n CollapsibleContent,\n type CollapsibleContentProps,\n CollapsibleTrigger,\n type CollapsibleTriggerProps,\n} from '@/components/ui/collapsible';\nimport { useMediaQuery } from '@hanzo/docs-core/utils/use-media-query';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { usePathname } from '@hanzo/docs-core/framework';\nimport ReactDOM from 'react-dom';\n\ninterface SidebarContext {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n\n /**\n * When set to false, don't close the sidebar when navigate to another page\n */\n closeOnRedirect: RefObject<boolean>;\n defaultOpenLevel: number;\n prefetch?: boolean;\n mode: Mode;\n}\n\nexport interface SidebarProviderProps {\n /**\n * Open folders by default if their level is lower or equal to a specific level\n * (Starting from 1)\n *\n * @defaultValue 0\n */\n defaultOpenLevel?: number;\n\n /**\n * Prefetch links, default behaviour depends on your React.js framework.\n */\n prefetch?: boolean;\n\n children?: ReactNode;\n}\n\ntype Mode = 'drawer' | 'full';\n\nconst SidebarContext = createContext<SidebarContext | null>(null);\n\nconst FolderContext = createContext<{\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n depth: number;\n collapsible: boolean;\n} | null>(null);\n\nexport function SidebarProvider({\n defaultOpenLevel = 0,\n prefetch,\n children,\n}: SidebarProviderProps) {\n const closeOnRedirect = useRef(true);\n const [open, setOpen] = useState(false);\n const [collapsed, setCollapsed] = useState(false);\n const pathname = usePathname();\n const mode: Mode = useMediaQuery('(width < 768px)') ? 'drawer' : 'full';\n\n useOnChange(pathname, () => {\n if (closeOnRedirect.current) {\n setOpen(false);\n }\n closeOnRedirect.current = true;\n });\n\n return (\n <SidebarContext\n value={useMemo(\n () => ({\n open,\n setOpen,\n collapsed,\n setCollapsed,\n closeOnRedirect,\n defaultOpenLevel,\n prefetch,\n mode,\n }),\n [open, collapsed, defaultOpenLevel, prefetch, mode],\n )}\n >\n {children}\n </SidebarContext>\n );\n}\n\nexport function useSidebar(): SidebarContext {\n const ctx = use(SidebarContext);\n if (!ctx)\n throw new Error(\n 'Missing SidebarContext, make sure you have wrapped the component in <DocsLayout /> and the context is available.',\n );\n\n return ctx;\n}\n\nexport function useFolder() {\n return use(FolderContext);\n}\n\nexport function useFolderDepth() {\n return use(FolderContext)?.depth ?? 0;\n}\n\nexport function SidebarContent({\n children,\n}: {\n children: (state: {\n ref: RefObject<HTMLElement | null>;\n collapsed: boolean;\n hovered: boolean;\n onPointerEnter: (event: PointerEvent) => void;\n onPointerLeave: (event: PointerEvent) => void;\n }) => ReactNode;\n}) {\n const { collapsed, mode } = useSidebar();\n const [hover, setHover] = useState(false);\n const ref = useRef<HTMLElement>(null);\n const timerRef = useRef(0);\n\n useOnChange(collapsed, () => {\n if (collapsed) setHover(false);\n });\n\n if (mode !== 'full') return;\n\n function shouldIgnoreHover(e: PointerEvent): boolean {\n const element = ref.current;\n if (!element) return true;\n\n return !collapsed || e.pointerType === 'touch' || element.getAnimations().length > 0;\n }\n\n return children({\n ref,\n collapsed,\n hovered: hover,\n onPointerEnter(e) {\n if (shouldIgnoreHover(e)) return;\n window.clearTimeout(timerRef.current);\n setHover(true);\n },\n onPointerLeave(e) {\n if (shouldIgnoreHover(e)) return;\n window.clearTimeout(timerRef.current);\n\n timerRef.current = window.setTimeout(\n () => setHover(false),\n // if mouse is leaving the viewport, add a close delay\n Math.min(e.clientX, document.body.clientWidth - e.clientX) > 100 ? 0 : 500,\n );\n },\n });\n}\n\nexport function SidebarDrawerOverlay(props: ComponentProps<'div'>) {\n const { open, setOpen, mode } = useSidebar();\n const [hidden, setHidden] = useState(!open);\n\n if (open && hidden) setHidden(false);\n if (mode !== 'drawer' || hidden) return;\n return (\n <div\n data-state={open ? 'open' : 'closed'}\n onClick={() => setOpen(false)}\n onAnimationEnd={() => {\n if (!open) ReactDOM.flushSync(() => setHidden(true));\n }}\n {...props}\n />\n );\n}\n\nexport function SidebarDrawerContent({ className, children, ...props }: ComponentProps<'aside'>) {\n const { open, mode } = useSidebar();\n const [hidden, setHidden] = useState(!open);\n\n if (open && hidden) setHidden(false);\n if (mode !== 'drawer') return;\n return (\n <aside\n id=\"nd-sidebar-mobile\"\n data-state={open ? 'open' : 'closed'}\n className={cn(hidden && 'invisible', className)}\n onAnimationEnd={() => {\n if (!open) ReactDOM.flushSync(() => setHidden(true));\n }}\n {...props}\n >\n {children}\n </aside>\n );\n}\n\nexport function SidebarViewport({ className, ...props }: ScrollAreaProps) {\n return (\n <ScrollArea\n className={(s) =>\n cn('min-h-0 flex-1', typeof className === 'function' ? className(s) : className)\n }\n {...props}\n >\n <ScrollViewport\n className=\"p-4 overscroll-contain\"\n style={\n {\n maskImage:\n 'linear-gradient(to bottom, transparent, white 12px, white calc(100% - 12px), transparent)',\n } as object\n }\n >\n {props.children}\n </ScrollViewport>\n </ScrollArea>\n );\n}\n\nexport function SidebarSeparator(props: ComponentProps<'p'>) {\n const depth = useFolderDepth();\n return (\n <p\n {...props}\n className={cn(\n 'inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0',\n depth === 0 && 'first:mt-0',\n props.className,\n )}\n >\n {props.children}\n </p>\n );\n}\n\nexport function SidebarItem({\n icon,\n children,\n ...props\n}: LinkProps & {\n icon?: ReactNode;\n}) {\n const pathname = usePathname();\n const ref = useRef<HTMLAnchorElement>(null);\n const { prefetch } = useSidebar();\n const active = props.href !== undefined && isActive(props.href, pathname, false);\n\n useAutoScroll(active, ref);\n\n return (\n <Link ref={ref} data-active={active} prefetch={prefetch} {...props}>\n {icon ?? (props.external ? <ExternalLink /> : null)}\n {children}\n </Link>\n );\n}\n\nexport function SidebarFolder({\n defaultOpen: defaultOpenProp,\n collapsible = true,\n active = false,\n children,\n ...props\n}: ComponentProps<'div'> & {\n active?: boolean;\n defaultOpen?: boolean;\n collapsible?: boolean;\n}) {\n const { defaultOpenLevel } = useSidebar();\n const depth = useFolderDepth() + 1;\n const defaultOpen =\n collapsible === false || active || (defaultOpenProp ?? defaultOpenLevel >= depth);\n const [open, setOpen] = useState(defaultOpen);\n\n useOnChange(defaultOpen, (v) => {\n if (v) setOpen(v);\n });\n\n return (\n <Collapsible open={open} onOpenChange={setOpen} disabled={!collapsible} {...props}>\n <FolderContext\n value={useMemo(() => ({ open, setOpen, depth, collapsible }), [collapsible, depth, open])}\n >\n {children}\n </FolderContext>\n </Collapsible>\n );\n}\n\nexport function SidebarFolderTrigger({ children, ...props }: CollapsibleTriggerProps) {\n const { open, collapsible } = use(FolderContext)!;\n\n if (collapsible) {\n return (\n <CollapsibleTrigger {...props}>\n {children}\n <ChevronDown\n data-icon\n className={cn('ms-auto transition-transform', !open && '-rotate-90')}\n />\n </CollapsibleTrigger>\n );\n }\n\n return <div {...(props as ComponentProps<'div'>)}>{children}</div>;\n}\n\nexport function SidebarFolderLink({ children, ...props }: LinkProps) {\n const ref = useRef<HTMLAnchorElement>(null);\n const { open, setOpen, collapsible } = use(FolderContext)!;\n const { prefetch } = useSidebar();\n const pathname = usePathname();\n const active = props.href !== undefined && isActive(props.href, pathname, false);\n\n useAutoScroll(active, ref);\n\n return (\n <Link\n ref={ref}\n data-active={active}\n onClick={(e) => {\n if (!collapsible) return;\n\n if (e.target instanceof Element && e.target.matches('[data-icon], [data-icon] *')) {\n setOpen(!open);\n e.preventDefault();\n } else {\n setOpen(active ? !open : true);\n }\n }}\n prefetch={prefetch}\n {...props}\n >\n {children}\n {collapsible && (\n <ChevronDown\n data-icon\n className={cn('ms-auto transition-transform', !open && '-rotate-90')}\n />\n )}\n </Link>\n );\n}\n\nexport function SidebarFolderContent(props: CollapsibleContentProps) {\n return <CollapsibleContent {...props}>{props.children}</CollapsibleContent>;\n}\n\nexport function SidebarTrigger({ children, ...props }: ComponentProps<'button'>) {\n const { setOpen } = useSidebar();\n\n return (\n <button aria-label=\"Open Sidebar\" onClick={() => setOpen((prev) => !prev)} {...props}>\n {children}\n </button>\n );\n}\n\nexport function SidebarCollapseTrigger(props: ComponentProps<'button'>) {\n const { collapsed, setCollapsed } = useSidebar();\n\n return (\n <button\n type=\"button\"\n aria-label=\"Collapse Sidebar\"\n data-collapsed={collapsed}\n onClick={() => {\n setCollapsed((prev) => !prev);\n }}\n {...props}\n >\n {props.children}\n </button>\n );\n}\n\n/**\n * scroll to the element if `active` is true\n */\nexport function useAutoScroll(active: boolean, ref: RefObject<HTMLElement | null>) {\n const { mode } = useSidebar();\n\n useEffect(() => {\n if (active && ref.current) {\n scrollIntoView(ref.current, {\n boundary: document.getElementById(mode === 'drawer' ? 'nd-sidebar-mobile' : 'nd-sidebar'),\n scrollMode: 'if-needed',\n });\n }\n }, [active, mode, ref]);\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { base_d_exports } from "./base.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime80 from "react/jsx-runtime";
|
|
3
3
|
import { HTMLAttributes } from "react";
|
|
4
|
-
import { LinkItemType } from "@hanzo/docs-ui/link-item";
|
|
4
|
+
import { LinkItemType } from "@hanzo/docs-radix-ui/link-item";
|
|
5
5
|
|
|
6
6
|
//#region src/components/sidebar/link-item.d.ts
|
|
7
7
|
type InternalComponents = Pick<typeof base_d_exports, 'SidebarFolder' | 'SidebarFolderLink' | 'SidebarFolderContent' | 'SidebarFolderTrigger' | 'SidebarItem'>;
|
|
@@ -18,7 +18,7 @@ declare function createLinkItemRenderer({
|
|
|
18
18
|
item: Exclude<LinkItemType, {
|
|
19
19
|
type: "icon";
|
|
20
20
|
}>;
|
|
21
|
-
}) =>
|
|
21
|
+
}) => react_jsx_runtime80.JSX.Element;
|
|
22
22
|
//#endregion
|
|
23
23
|
export { createLinkItemRenderer };
|
|
24
24
|
//# sourceMappingURL=link-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-item.js","names":[],"sources":["../../../src/components/sidebar/link-item.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport type * as Base from './base';\nimport type { LinkItemType } from '@hanzo/docs-ui/link-item';\n\ntype InternalComponents = Pick<\n typeof Base,\n | 'SidebarFolder'\n | 'SidebarFolderLink'\n | 'SidebarFolderContent'\n | 'SidebarFolderTrigger'\n | 'SidebarItem'\n>;\n\nexport function createLinkItemRenderer({\n SidebarFolder,\n SidebarFolderContent,\n SidebarFolderLink,\n SidebarFolderTrigger,\n SidebarItem,\n}: InternalComponents) {\n /**\n * Render sidebar items from page tree\n */\n return function SidebarLinkItem({\n item,\n ...props\n }: HTMLAttributes<HTMLElement> & {\n item: Exclude<LinkItemType, { type: 'icon' }>;\n }) {\n if (item.type === 'custom') return <div {...props}>{item.children}</div>;\n\n if (item.type === 'menu')\n return (\n <SidebarFolder {...props}>\n {item.url ? (\n <SidebarFolderLink href={item.url} external={item.external}>\n {item.icon}\n {item.text}\n </SidebarFolderLink>\n ) : (\n <SidebarFolderTrigger>\n {item.icon}\n {item.text}\n </SidebarFolderTrigger>\n )}\n <SidebarFolderContent>\n {item.items.map((child, i) => (\n <SidebarLinkItem key={i} item={child} />\n ))}\n </SidebarFolderContent>\n </SidebarFolder>\n );\n\n return (\n <SidebarItem href={item.url} icon={item.icon} external={item.external} {...props}>\n {item.text}\n </SidebarItem>\n );\n };\n}\n"],"mappings":";;;AAaA,SAAgB,uBAAuB,EACrC,eACA,sBACA,mBACA,sBACA,eACqB;;;;AAIrB,QAAO,SAAS,gBAAgB,EAC9B,MACA,GAAG,SAGF;AACD,MAAI,KAAK,SAAS,SAAU,QAAO,oBAAC;GAAI,GAAI;aAAQ,KAAK;IAAe;AAExE,MAAI,KAAK,SAAS,OAChB,QACE,qBAAC;GAAc,GAAI;cAChB,KAAK,MACJ,qBAAC;IAAkB,MAAM,KAAK;IAAK,UAAU,KAAK;eAC/C,KAAK,MACL,KAAK;KACY,GAEpB,qBAAC,mCACE,KAAK,MACL,KAAK,QACe,EAEzB,oBAAC,kCACE,KAAK,MAAM,KAAK,OAAO,MACtB,oBAAC,mBAAwB,MAAM,SAAT,EAAkB,CACxC,GACmB;IACT;AAGpB,SACE,oBAAC;GAAY,MAAM,KAAK;GAAK,MAAM,KAAK;GAAM,UAAU,KAAK;GAAU,GAAI;aACxE,KAAK;IACM"}
|
|
1
|
+
{"version":3,"file":"link-item.js","names":[],"sources":["../../../src/components/sidebar/link-item.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport type * as Base from './base';\nimport type { LinkItemType } from '@hanzo/docs-radix-ui/link-item';\n\ntype InternalComponents = Pick<\n typeof Base,\n | 'SidebarFolder'\n | 'SidebarFolderLink'\n | 'SidebarFolderContent'\n | 'SidebarFolderTrigger'\n | 'SidebarItem'\n>;\n\nexport function createLinkItemRenderer({\n SidebarFolder,\n SidebarFolderContent,\n SidebarFolderLink,\n SidebarFolderTrigger,\n SidebarItem,\n}: InternalComponents) {\n /**\n * Render sidebar items from page tree\n */\n return function SidebarLinkItem({\n item,\n ...props\n }: HTMLAttributes<HTMLElement> & {\n item: Exclude<LinkItemType, { type: 'icon' }>;\n }) {\n if (item.type === 'custom') return <div {...props}>{item.children}</div>;\n\n if (item.type === 'menu')\n return (\n <SidebarFolder {...props}>\n {item.url ? (\n <SidebarFolderLink href={item.url} external={item.external}>\n {item.icon}\n {item.text}\n </SidebarFolderLink>\n ) : (\n <SidebarFolderTrigger>\n {item.icon}\n {item.text}\n </SidebarFolderTrigger>\n )}\n <SidebarFolderContent>\n {item.items.map((child, i) => (\n <SidebarLinkItem key={i} item={child} />\n ))}\n </SidebarFolderContent>\n </SidebarFolder>\n );\n\n return (\n <SidebarItem href={item.url} icon={item.icon} external={item.external} {...props}>\n {item.text}\n </SidebarItem>\n );\n };\n}\n"],"mappings":";;;AAaA,SAAgB,uBAAuB,EACrC,eACA,sBACA,mBACA,sBACA,eACqB;;;;AAIrB,QAAO,SAAS,gBAAgB,EAC9B,MACA,GAAG,SAGF;AACD,MAAI,KAAK,SAAS,SAAU,QAAO,oBAAC;GAAI,GAAI;aAAQ,KAAK;IAAe;AAExE,MAAI,KAAK,SAAS,OAChB,QACE,qBAAC;GAAc,GAAI;cAChB,KAAK,MACJ,qBAAC;IAAkB,MAAM,KAAK;IAAK,UAAU,KAAK;eAC/C,KAAK,MACL,KAAK;KACY,GAEpB,qBAAC,mCACE,KAAK,MACL,KAAK,QACe,EAEzB,oBAAC,kCACE,KAAK,MAAM,KAAK,OAAO,MACtB,oBAAC,mBAAwB,MAAM,SAAT,EAAkB,CACxC,GACmB;IACT;AAGpB,SACE,oBAAC;GAAY,MAAM,KAAK;GAAK,MAAM,KAAK;GAAM,UAAU,KAAK;GAAU,GAAI;aACxE,KAAK;IACM"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { base_d_exports } from "./base.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime14 from "react/jsx-runtime";
|
|
3
3
|
import { FC, ReactNode } from "react";
|
|
4
4
|
import * as PageTree from "@hanzo/docs-core/page-tree";
|
|
5
5
|
|
|
@@ -24,7 +24,7 @@ declare function createPageTreeRenderer({
|
|
|
24
24
|
SidebarFolderTrigger,
|
|
25
25
|
SidebarSeparator,
|
|
26
26
|
SidebarItem
|
|
27
|
-
}: InternalComponents): (components: Partial<SidebarPageTreeComponents>) =>
|
|
27
|
+
}: InternalComponents): (components: Partial<SidebarPageTreeComponents>) => react_jsx_runtime14.JSX.Element;
|
|
28
28
|
//#endregion
|
|
29
29
|
export { SidebarPageTreeComponents, createPageTreeRenderer };
|
|
30
30
|
//# sourceMappingURL=page-tree.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SidebarTab } from "./index.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime58 from "react/jsx-runtime";
|
|
3
3
|
import { ComponentProps, ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/sidebar/tabs/dropdown.d.ts
|
|
@@ -13,8 +13,8 @@ declare function SidebarTabsDropdown({
|
|
|
13
13
|
}: {
|
|
14
14
|
placeholder?: ReactNode;
|
|
15
15
|
options: SidebarTabWithProps[];
|
|
16
|
-
} & ComponentProps<'button'>):
|
|
17
|
-
declare function isTabActive(tab: SidebarTab, pathname: string):
|
|
16
|
+
} & ComponentProps<'button'>): react_jsx_runtime58.JSX.Element;
|
|
17
|
+
declare function isTabActive(tab: SidebarTab, pathname: string): any;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { SidebarTabWithProps, SidebarTabsDropdown, isTabActive };
|
|
20
20
|
//# sourceMappingURL=dropdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.d.ts","names":[],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":[],"mappings":";;;;;UAWiB,mBAAA,SAA4B;UACnC;;AADO,iBAID,mBAAA,CAHN;EAAA,OAAA;EADmC,WAAU;EAAA,GAAA;AAMrD,CANqD,EAAA;EAIvC,WAAA,CAAA,EAKA,SALmB;EACjC,OAAA,EAKS,mBALT,EAAA;CACA,GAKE,cALF,CAAA,QAAA,CAAA,CAAA,EAK0B,mBAAA,CAAA,GAAA,CAAA,OAL1B;AAGc,iBAkFA,WAAA,CAlFA,GAAA,EAkFiB,UAlFjB,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"dropdown.d.ts","names":[],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":[],"mappings":";;;;;UAWiB,mBAAA,SAA4B;UACnC;;AADO,iBAID,mBAAA,CAHN;EAAA,OAAA;EADmC,WAAU;EAAA,GAAA;AAMrD,CANqD,EAAA;EAIvC,WAAA,CAAA,EAKA,SALmB;EACjC,OAAA,EAKS,mBALT,EAAA;CACA,GAKE,cALF,CAAA,QAAA,CAAA,CAAA,EAK0B,mBAAA,CAAA,GAAA,CAAA,OAL1B;AAGc,iBAkFA,WAAA,CAlFA,GAAA,EAkFiB,UAlFjB,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,GAAA"}
|
|
@@ -8,7 +8,7 @@ import { cn } from "@hanzo/docs-ui/cn";
|
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Check, ChevronsUpDown } from "lucide-react";
|
|
10
10
|
import { useMemo, useState } from "react";
|
|
11
|
-
import { isActive, normalize } from "@hanzo/docs-ui/urls";
|
|
11
|
+
import { isActive, normalize } from "@hanzo/docs-radix-ui/urls";
|
|
12
12
|
|
|
13
13
|
//#region src/components/sidebar/tabs/dropdown.tsx
|
|
14
14
|
function SidebarTabsDropdown({ options, placeholder, ...props }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","names":["item","isActive"],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":["'use client';\nimport { Check, ChevronsUpDown } from 'lucide-react';\nimport { type ComponentProps, type ReactNode, useMemo, useState } from 'react';\nimport Link from '@hanzo/docs-core/link';\nimport { usePathname } from '@hanzo/docs-core/framework';\nimport { cn } from '@hanzo/docs-ui/cn';\nimport { normalize, isActive } from '@hanzo/docs-ui/urls';\nimport { useSidebar } from '@/components/sidebar/base';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport type { SidebarTab } from '.';\n\nexport interface SidebarTabWithProps extends SidebarTab {\n props?: ComponentProps<'a'>;\n}\n\nexport function SidebarTabsDropdown({\n options,\n placeholder,\n ...props\n}: {\n placeholder?: ReactNode;\n options: SidebarTabWithProps[];\n} & ComponentProps<'button'>) {\n const [open, setOpen] = useState(false);\n const { closeOnRedirect } = useSidebar();\n const pathname = usePathname();\n\n const selected = useMemo(() => {\n return options.findLast((item) => isTabActive(item, pathname));\n }, [options, pathname]);\n\n const onClick = () => {\n closeOnRedirect.current = false;\n setOpen(false);\n };\n\n const item = selected ? (\n <>\n <div className=\"size-9 shrink-0 empty:hidden md:size-5\">{selected.icon}</div>\n <div>\n <p className=\"text-sm font-medium\">{selected.title}</p>\n <p className=\"text-sm text-fd-muted-foreground empty:hidden md:hidden\">\n {selected.description}\n </p>\n </div>\n </>\n ) : (\n placeholder\n );\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n {item && (\n <PopoverTrigger\n {...props}\n className={cn(\n 'flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-[open]:bg-fd-accent data-[open]:text-fd-accent-foreground',\n props.className,\n )}\n >\n {item}\n <ChevronsUpDown className=\"shrink-0 ms-auto size-4 text-fd-muted-foreground\" />\n </PopoverTrigger>\n )}\n <PopoverContent className=\"flex flex-col gap-1 w-(--anchor-width) p-1 fd-scroll-container\">\n {options.map((item) => {\n const isActive = selected && item.url === selected.url;\n if (!isActive && item.unlisted) return;\n\n return (\n <Link\n key={item.url}\n href={item.url}\n onClick={onClick}\n {...item.props}\n className={cn(\n 'flex items-center gap-2 rounded-lg p-1.5 hover:bg-fd-accent hover:text-fd-accent-foreground',\n item.props?.className,\n )}\n >\n <div className=\"shrink-0 size-9 md:mb-auto md:size-5 empty:hidden\">{item.icon}</div>\n <div>\n <p className=\"text-sm font-medium leading-none\">{item.title}</p>\n <p className=\"text-[0.8125rem] text-fd-muted-foreground mt-1 empty:hidden\">\n {item.description}\n </p>\n </div>\n\n <Check\n className={cn(\n 'shrink-0 ms-auto size-3.5 text-fd-primary',\n !isActive && 'invisible',\n )}\n />\n </Link>\n );\n })}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport function isTabActive(tab: SidebarTab, pathname: string) {\n if (tab.urls) return tab.urls.has(normalize(pathname));\n\n return isActive(tab.url, pathname, true);\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,SAAgB,oBAAoB,EAClC,SACA,aACA,GAAG,SAIyB;CAC5B,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,EAAE,oBAAoB,YAAY;CACxC,MAAM,WAAW,aAAa;CAE9B,MAAM,WAAW,cAAc;AAC7B,SAAO,QAAQ,UAAU,WAAS,YAAYA,QAAM,SAAS,CAAC;IAC7D,CAAC,SAAS,SAAS,CAAC;CAEvB,MAAM,gBAAgB;AACpB,kBAAgB,UAAU;AAC1B,UAAQ,MAAM;;CAGhB,MAAM,OAAO,WACX,4CACE,oBAAC;EAAI,WAAU;YAA0C,SAAS;GAAW,EAC7E,qBAAC,oBACC,oBAAC;EAAE,WAAU;YAAuB,SAAS;GAAU,EACvD,oBAAC;EAAE,WAAU;YACV,SAAS;GACR,IACA,IACL,GAEH;AAGF,QACE,qBAAC;EAAc;EAAM,cAAc;aAChC,QACC,qBAAC;GACC,GAAI;GACJ,WAAW,GACT,gNACA,MAAM,UACP;cAEA,MACD,oBAAC,kBAAe,WAAU,qDAAqD;IAChE,EAEnB,oBAAC;GAAe,WAAU;aACvB,QAAQ,KAAK,WAAS;IACrB,MAAMC,aAAW,YAAYD,OAAK,QAAQ,SAAS;AACnD,QAAI,CAACC,cAAYD,OAAK,SAAU;AAEhC,WACE,qBAAC;KAEC,MAAMA,OAAK;KACF;KACT,GAAIA,OAAK;KACT,WAAW,GACT,+FACAA,OAAK,OAAO,UACb;;MAED,oBAAC;OAAI,WAAU;iBAAqDA,OAAK;QAAW;MACpF,qBAAC,oBACC,oBAAC;OAAE,WAAU;iBAAoCA,OAAK;QAAU,EAChE,oBAAC;OAAE,WAAU;iBACVA,OAAK;QACJ,IACA;MAEN,oBAAC,SACC,WAAW,GACT,6CACA,CAACC,cAAY,YACd,GACD;;OAtBGD,OAAK,IAuBL;KAET;IACa;GACT;;AAId,SAAgB,YAAY,KAAiB,UAAkB;AAC7D,KAAI,IAAI,KAAM,QAAO,IAAI,KAAK,IAAI,UAAU,SAAS,CAAC;AAEtD,QAAO,SAAS,IAAI,KAAK,UAAU,KAAK"}
|
|
1
|
+
{"version":3,"file":"dropdown.js","names":["item","isActive"],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":["'use client';\nimport { Check, ChevronsUpDown } from 'lucide-react';\nimport { type ComponentProps, type ReactNode, useMemo, useState } from 'react';\nimport Link from '@hanzo/docs-core/link';\nimport { usePathname } from '@hanzo/docs-core/framework';\nimport { cn } from '@hanzo/docs-ui/cn';\nimport { normalize, isActive } from '@hanzo/docs-radix-ui/urls';\nimport { useSidebar } from '@/components/sidebar/base';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport type { SidebarTab } from '.';\n\nexport interface SidebarTabWithProps extends SidebarTab {\n props?: ComponentProps<'a'>;\n}\n\nexport function SidebarTabsDropdown({\n options,\n placeholder,\n ...props\n}: {\n placeholder?: ReactNode;\n options: SidebarTabWithProps[];\n} & ComponentProps<'button'>) {\n const [open, setOpen] = useState(false);\n const { closeOnRedirect } = useSidebar();\n const pathname = usePathname();\n\n const selected = useMemo(() => {\n return options.findLast((item) => isTabActive(item, pathname));\n }, [options, pathname]);\n\n const onClick = () => {\n closeOnRedirect.current = false;\n setOpen(false);\n };\n\n const item = selected ? (\n <>\n <div className=\"size-9 shrink-0 empty:hidden md:size-5\">{selected.icon}</div>\n <div>\n <p className=\"text-sm font-medium\">{selected.title}</p>\n <p className=\"text-sm text-fd-muted-foreground empty:hidden md:hidden\">\n {selected.description}\n </p>\n </div>\n </>\n ) : (\n placeholder\n );\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n {item && (\n <PopoverTrigger\n {...props}\n className={cn(\n 'flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-[open]:bg-fd-accent data-[open]:text-fd-accent-foreground',\n props.className,\n )}\n >\n {item}\n <ChevronsUpDown className=\"shrink-0 ms-auto size-4 text-fd-muted-foreground\" />\n </PopoverTrigger>\n )}\n <PopoverContent className=\"flex flex-col gap-1 w-(--anchor-width) p-1 fd-scroll-container\">\n {options.map((item) => {\n const isActive = selected && item.url === selected.url;\n if (!isActive && item.unlisted) return;\n\n return (\n <Link\n key={item.url}\n href={item.url}\n onClick={onClick}\n {...item.props}\n className={cn(\n 'flex items-center gap-2 rounded-lg p-1.5 hover:bg-fd-accent hover:text-fd-accent-foreground',\n item.props?.className,\n )}\n >\n <div className=\"shrink-0 size-9 md:mb-auto md:size-5 empty:hidden\">{item.icon}</div>\n <div>\n <p className=\"text-sm font-medium leading-none\">{item.title}</p>\n <p className=\"text-[0.8125rem] text-fd-muted-foreground mt-1 empty:hidden\">\n {item.description}\n </p>\n </div>\n\n <Check\n className={cn(\n 'shrink-0 ms-auto size-3.5 text-fd-primary',\n !isActive && 'invisible',\n )}\n />\n </Link>\n );\n })}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport function isTabActive(tab: SidebarTab, pathname: string) {\n if (tab.urls) return tab.urls.has(normalize(pathname));\n\n return isActive(tab.url, pathname, true);\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,SAAgB,oBAAoB,EAClC,SACA,aACA,GAAG,SAIyB;CAC5B,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,EAAE,oBAAoB,YAAY;CACxC,MAAM,WAAW,aAAa;CAE9B,MAAM,WAAW,cAAc;AAC7B,SAAO,QAAQ,UAAU,WAAS,YAAYA,QAAM,SAAS,CAAC;IAC7D,CAAC,SAAS,SAAS,CAAC;CAEvB,MAAM,gBAAgB;AACpB,kBAAgB,UAAU;AAC1B,UAAQ,MAAM;;CAGhB,MAAM,OAAO,WACX,4CACE,oBAAC;EAAI,WAAU;YAA0C,SAAS;GAAW,EAC7E,qBAAC,oBACC,oBAAC;EAAE,WAAU;YAAuB,SAAS;GAAU,EACvD,oBAAC;EAAE,WAAU;YACV,SAAS;GACR,IACA,IACL,GAEH;AAGF,QACE,qBAAC;EAAc;EAAM,cAAc;aAChC,QACC,qBAAC;GACC,GAAI;GACJ,WAAW,GACT,gNACA,MAAM,UACP;cAEA,MACD,oBAAC,kBAAe,WAAU,qDAAqD;IAChE,EAEnB,oBAAC;GAAe,WAAU;aACvB,QAAQ,KAAK,WAAS;IACrB,MAAMC,aAAW,YAAYD,OAAK,QAAQ,SAAS;AACnD,QAAI,CAACC,cAAYD,OAAK,SAAU;AAEhC,WACE,qBAAC;KAEC,MAAMA,OAAK;KACF;KACT,GAAIA,OAAK;KACT,WAAW,GACT,+FACAA,OAAK,OAAO,UACb;;MAED,oBAAC;OAAI,WAAU;iBAAqDA,OAAK;QAAW;MACpF,qBAAC,oBACC,oBAAC;OAAE,WAAU;iBAAoCA,OAAK;QAAU,EAChE,oBAAC;OAAE,WAAU;iBACVA,OAAK;QACJ,IACA;MAEN,oBAAC,SACC,WAAW,GACT,6CACA,CAACC,cAAY,YACd,GACD;;OAtBGD,OAAK,IAuBL;KAET;IACa;GACT;;AAId,SAAgB,YAAY,KAAiB,UAAkB;AAC7D,KAAI,IAAI,KAAM,QAAO,IAAI,KAAK,IAAI,UAAU,SAAS,CAAC;AAEtD,QAAO,SAAS,IAAI,KAAK,UAAU,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/sidebar/tabs/index.tsx"],"sourcesContent":["import type * as PageTree from '@hanzo/docs-core/page-tree';\nimport type { ReactNode } from 'react';\n\nexport interface SidebarTab {\n /**\n * Redirect URL of the folder, usually the index page\n */\n url: string;\n\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n\n /**\n * Detect from a list of urls\n */\n urls?: Set<string>;\n unlisted?: boolean;\n}\n\nexport interface GetSidebarTabsOptions {\n transform?: (option: SidebarTab, node: PageTree.Folder) => SidebarTab | null;\n}\n\nconst defaultTransform: GetSidebarTabsOptions['transform'] = (option, node) => {\n if (!node.icon) return option;\n\n return {\n ...option,\n icon: (\n <div className=\"size-full [&_svg]:size-full max-md:p-1.5 max-md:rounded-md max-md:border max-md:bg-fd-secondary\">\n {node.icon}\n </div>\n ),\n };\n};\n\nexport function getSidebarTabs(\n tree: PageTree.Root,\n { transform = defaultTransform }: GetSidebarTabsOptions = {},\n): SidebarTab[] {\n const results: SidebarTab[] = [];\n\n function scanOptions(node: PageTree.Root | PageTree.Folder, unlisted?: boolean) {\n if ('root' in node && node.root) {\n const urls = getFolderUrls(node);\n\n if (urls.size > 0) {\n const option: SidebarTab = {\n url: urls.values().next().value ?? '',\n title: node.name,\n icon: node.icon,\n unlisted,\n description: node.description,\n urls,\n };\n\n const mapped = transform ? transform(option, node) : option;\n if (mapped) results.push(mapped);\n }\n }\n\n for (const child of node.children) {\n if (child.type === 'folder') scanOptions(child, unlisted);\n }\n }\n\n scanOptions(tree);\n if (tree.fallback) scanOptions(tree.fallback, true);\n\n return results;\n}\n\nfunction getFolderUrls(folder: PageTree.Folder, output: Set<string> = new Set()): Set<string> {\n if (folder.index) output.add(folder.index.url);\n\n for (const child of folder.children) {\n if (child.type === 'page' && !child.external) output.add(child.url);\n if (child.type === 'folder') getFolderUrls(child, output);\n }\n\n return output;\n}\n"],"mappings":";;;AAwBA,MAAM,oBAAwD,QAAQ,SAAS;AAC7E,KAAI,CAAC,KAAK,KAAM,QAAO;AAEvB,QAAO;EACL,GAAG;EACH,MACE,oBAAC;GAAI,WAAU;aACZ,KAAK;IACF;EAET;;AAGH,SAAgB,eACd,MACA,EAAE,YAAY,qBAA4C,EAAE,EAC9C;CACd,MAAM,UAAwB,EAAE;CAEhC,SAAS,YAAY,MAAuC,UAAoB;AAC9E,MAAI,UAAU,QAAQ,KAAK,MAAM;GAC/B,MAAM,OAAO,cAAc,KAAK;AAEhC,OAAI,KAAK,OAAO,GAAG;IACjB,MAAM,SAAqB;KACzB,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS;KACnC,OAAO,KAAK;KACZ,MAAM,KAAK;KACX;KACA,aAAa,KAAK;KAClB;KACD;IAED,MAAM,SAAS,YAAY,UAAU,QAAQ,KAAK,GAAG;AACrD,QAAI,OAAQ,SAAQ,KAAK,OAAO;;;AAIpC,OAAK,MAAM,SAAS,KAAK,SACvB,KAAI,MAAM,SAAS,SAAU,aAAY,OAAO,SAAS;;AAI7D,aAAY,KAAK;AACjB,KAAI,KAAK,SAAU,aAAY,KAAK,UAAU,KAAK;AAEnD,QAAO;;AAGT,SAAS,cAAc,QAAyB,yBAAsB,IAAI,KAAK,EAAe;AAC5F,KAAI,OAAO,MAAO,QAAO,IAAI,OAAO,MAAM,IAAI;AAE9C,MAAK,MAAM,SAAS,OAAO,UAAU;AACnC,MAAI,MAAM,SAAS,UAAU,CAAC,MAAM,SAAU,QAAO,IAAI,MAAM,IAAI;AACnE,MAAI,MAAM,SAAS,SAAU,eAAc,OAAO,OAAO;;AAG3D,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime99 from "react/jsx-runtime";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/steps.d.ts
|
|
@@ -6,12 +6,12 @@ declare function Steps({
|
|
|
6
6
|
children
|
|
7
7
|
}: {
|
|
8
8
|
children: ReactNode;
|
|
9
|
-
}):
|
|
9
|
+
}): react_jsx_runtime99.JSX.Element;
|
|
10
10
|
declare function Step({
|
|
11
11
|
children
|
|
12
12
|
}: {
|
|
13
13
|
children: ReactNode;
|
|
14
|
-
}):
|
|
14
|
+
}): react_jsx_runtime99.JSX.Element;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { Step, Steps };
|
|
17
17
|
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tabs as Tabs$1, TabsContent as TabsContent$1 } from "./ui/tabs.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime102 from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { ComponentProps, ReactNode } from "react";
|
|
5
5
|
import * as _base_ui_react0 from "@base-ui/react";
|
|
@@ -21,8 +21,8 @@ interface TabsProps extends Omit<ComponentProps<typeof Tabs$1>, 'value' | 'onVal
|
|
|
21
21
|
*/
|
|
22
22
|
label?: ReactNode;
|
|
23
23
|
}
|
|
24
|
-
declare const TabsList: React.ForwardRefExoticComponent<Omit<_base_ui_react0.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
-
declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<_base_ui_react0.TabsTabProps & React.RefAttributes<
|
|
24
|
+
declare const TabsList: React.ForwardRefExoticComponent<Omit<Omit<_base_ui_react0.TabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<Omit<_base_ui_react0.TabsTabProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
26
26
|
declare function Tabs({
|
|
27
27
|
ref,
|
|
28
28
|
className,
|
|
@@ -31,7 +31,7 @@ declare function Tabs({
|
|
|
31
31
|
defaultIndex,
|
|
32
32
|
defaultValue,
|
|
33
33
|
...props
|
|
34
|
-
}: TabsProps):
|
|
34
|
+
}: TabsProps): react_jsx_runtime102.JSX.Element;
|
|
35
35
|
interface TabProps extends Omit<ComponentProps<typeof TabsContent$1>, 'value'> {
|
|
36
36
|
/**
|
|
37
37
|
* Value of tab, detect from index if unspecified.
|
|
@@ -41,12 +41,12 @@ interface TabProps extends Omit<ComponentProps<typeof TabsContent$1>, 'value'> {
|
|
|
41
41
|
declare function Tab({
|
|
42
42
|
value,
|
|
43
43
|
...props
|
|
44
|
-
}: TabProps):
|
|
44
|
+
}: TabProps): react_jsx_runtime102.JSX.Element;
|
|
45
45
|
declare function TabsContent({
|
|
46
46
|
value,
|
|
47
47
|
className,
|
|
48
48
|
...props
|
|
49
|
-
}: ComponentProps<typeof TabsContent$1>):
|
|
49
|
+
}: ComponentProps<typeof TabsContent$1>): react_jsx_runtime102.JSX.Element;
|
|
50
50
|
//#endregion
|
|
51
51
|
export { Tab, TabProps, Tabs, TabsContent, TabsList, TabsProps, TabsTrigger };
|
|
52
52
|
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","names":[],"sources":["../../src/components/tabs.tsx"],"sourcesContent":[],"mappings":";;;;;;;UAkBiB,SAAA,SAAkB,KACjC,sBAAsB;;;;EADP,KAAA,CAAA,EAAA,MAAU,EAAA;EACH;;;;;EAgCX,YAcX,CAAA,EAAA,MAAA;EAAA;;;EAdmB,KAAA,CAAA,EAdX,SAcW;;AAAA,cAAR,QAAQ,EAAA,KAAA,CAAA,yBAAA,CAAA,IAAA,CAcnB,eAAA,CAdmB,aAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,KAAA,CAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA,CAAA,CAAA;AAAA,cAiBR,WAjBQ,EAiBG,KAAA,CAAA,yBAjBH,CAiBG,IAjBH,CA+BnB,eAAA,CAdsB,YAAA,
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","names":[],"sources":["../../src/components/tabs.tsx"],"sourcesContent":[],"mappings":";;;;;;;UAkBiB,SAAA,SAAkB,KACjC,sBAAsB;;;;EADP,KAAA,CAAA,EAAA,MAAU,EAAA;EACH;;;;;EAgCX,YAcX,CAAA,EAAA,MAAA;EAAA;;;EAdmB,KAAA,CAAA,EAdX,SAcW;;AAAA,cAAR,QAAQ,EAAA,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,IAAA,CAcnB,eAAA,CAdmB,aAAA,EAAA,KAAA,CAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,KAAA,CAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA,CAAA,CAAA;AAAA,cAiBR,WAjBQ,EAiBG,KAAA,CAAA,yBAjBH,CAiBG,IAjBH,CAiBG,IAjBH,CA+BnB,eAAA,CAdsB,YAAA,EAjBH,KAAA,CAAA,GAiBG,KAAA,CAAA,aAjBH,CAiBG,WAjBH,CAAA,EAAA,KAAA,CAAA,GAiBG,KAAA,CAAA,aAjBH,CAiBG,WAjBH,CAAA,CAAA;AAAA,iBAkCL,IAAA,CAlCK;EAAA,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,KAAA;EAAA,YAAA;EAAA,YAAA;EAAA,GAAA;AAAA,CAAA,EA0ClB,SA1CkB,CAAA,EA0CT,oBAAA,CAAA,GAAA,CAAA,OA1CS;AAAA,UA+EJ,QAAA,SAAiB,IA/Eb,CA+EkB,cA/ElB,CAAA,OA+EwC,aA/ExC,CAAA,EAAA,OAAA,CAAA,CAAA;EAiBR;;;EAAW,KAAA,CAAA,EAAA,MAAA;;AAAA,iBAqER,GAAA,CArEQ;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAqEiB,QArEjB,CAAA,EAqEyB,oBAAA,CAAA,GAAA,CAAA,OArEzB;AAAA,iBAuFR,WAAA,CAvFQ;EAAA,KAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2FrB,cA3FqB,CAAA,OA2FC,aA3FD,CAAA,CAAA,EA2FsB,oBAAA,CAAA,GAAA,CAAA,OA3FtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "@hanzo/docs-ui/components/toc/clerk";
|
|
1
|
+
export * from "@hanzo/docs-radix-ui/components/toc/clerk";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __reExport } from "../../_virtual/rolldown_runtime.js";
|
|
2
2
|
|
|
3
|
-
export * from "@hanzo/docs-ui/components/toc/clerk"
|
|
3
|
+
export * from "@hanzo/docs-radix-ui/components/toc/clerk"
|
|
4
4
|
|
|
5
5
|
//#region src/components/toc/clerk.tsx
|
|
6
6
|
var clerk_exports = {};
|
|
7
|
-
import * as
|
|
8
|
-
__reExport(clerk_exports,
|
|
7
|
+
import * as import__hanzo_docs_radix_ui_components_toc_clerk from "@hanzo/docs-radix-ui/components/toc/clerk";
|
|
8
|
+
__reExport(clerk_exports, import__hanzo_docs_radix_ui_components_toc_clerk);
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
export { clerk_exports };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clerk.js","names":[],"sources":["../../../src/components/toc/clerk.tsx"],"sourcesContent":["export * from '@hanzo/docs-ui/components/toc/clerk';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"clerk.js","names":[],"sources":["../../../src/components/toc/clerk.tsx"],"sourcesContent":["export * from '@hanzo/docs-radix-ui/components/toc/clerk';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "@hanzo/docs-ui/components/toc/default";
|
|
1
|
+
export * from "@hanzo/docs-radix-ui/components/toc/default";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __reExport } from "../../_virtual/rolldown_runtime.js";
|
|
2
2
|
|
|
3
|
-
export * from "@hanzo/docs-ui/components/toc/default"
|
|
3
|
+
export * from "@hanzo/docs-radix-ui/components/toc/default"
|
|
4
4
|
|
|
5
5
|
//#region src/components/toc/default.tsx
|
|
6
6
|
var default_exports = {};
|
|
7
|
-
import * as
|
|
8
|
-
__reExport(default_exports,
|
|
7
|
+
import * as import__hanzo_docs_radix_ui_components_toc_default from "@hanzo/docs-radix-ui/components/toc/default";
|
|
8
|
+
__reExport(default_exports, import__hanzo_docs_radix_ui_components_toc_default);
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
export { default_exports };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","names":[],"sources":["../../../src/components/toc/default.tsx"],"sourcesContent":["export * from '@hanzo/docs-ui/components/toc/default';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"default.js","names":[],"sources":["../../../src/components/toc/default.tsx"],"sourcesContent":["export * from '@hanzo/docs-radix-ui/components/toc/default';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "@hanzo/docs-ui/components/toc/index";
|
|
1
|
+
export * from "@hanzo/docs-radix-ui/components/toc/index";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __reExport } from "../../_virtual/rolldown_runtime.js";
|
|
2
2
|
|
|
3
|
-
export * from "@hanzo/docs-ui/components/toc/index"
|
|
3
|
+
export * from "@hanzo/docs-radix-ui/components/toc/index"
|
|
4
4
|
|
|
5
5
|
//#region src/components/toc/index.tsx
|
|
6
6
|
var toc_exports = {};
|
|
7
|
-
import * as
|
|
8
|
-
__reExport(toc_exports,
|
|
7
|
+
import * as import__hanzo_docs_radix_ui_components_toc_index from "@hanzo/docs-radix-ui/components/toc/index";
|
|
8
|
+
__reExport(toc_exports, import__hanzo_docs_radix_ui_components_toc_index);
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
export { toc_exports };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/toc/index.tsx"],"sourcesContent":["export * from '@hanzo/docs-ui/components/toc/index';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/toc/index.tsx"],"sourcesContent":["export * from '@hanzo/docs-radix-ui/components/toc/index';\n"],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime105 from "react/jsx-runtime";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/type-table.d.ts
|
|
@@ -33,7 +33,7 @@ declare function TypeTable({
|
|
|
33
33
|
type
|
|
34
34
|
}: {
|
|
35
35
|
type: Record<string, TypeNode>;
|
|
36
|
-
}):
|
|
36
|
+
}): react_jsx_runtime105.JSX.Element;
|
|
37
37
|
//#endregion
|
|
38
38
|
export { ParameterNode, TypeNode, TypeTable };
|
|
39
39
|
//# sourceMappingURL=type-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-table.d.ts","names":[],"sources":["../../src/components/type-table.tsx"],"sourcesContent":[],"mappings":";;;;UASiB,aAAA;;eAEF;AAFf;AAKiB,UAAA,QAAA,CAAQ;EAIT;;;EAiBJ,WAAA,CAAA,EAjBI,SAiBJ;EAKG;;;EAeC,IAAA,EAhCR,SAgCiB;EAAG;;;EAA0C,eAAA,CAAA,EA3BlD,SA2BkD;EAAA;;;;YApB1D;;;eAKG;YAEH;;iBAaI,SAAA;;;QAA4B,eAAe;IAAW,
|
|
1
|
+
{"version":3,"file":"type-table.d.ts","names":[],"sources":["../../src/components/type-table.tsx"],"sourcesContent":[],"mappings":";;;;UASiB,aAAA;;eAEF;AAFf;AAKiB,UAAA,QAAA,CAAQ;EAIT;;;EAiBJ,WAAA,CAAA,EAjBI,SAiBJ;EAKG;;;EAeC,IAAA,EAhCR,SAgCiB;EAAG;;;EAA0C,eAAA,CAAA,EA3BlD,SA2BkD;EAAA;;;;YApB1D;;;eAKG;YAEH;;iBAaI,SAAA;;;QAA4B,eAAe;IAAW,oBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime107 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps } from "react";
|
|
3
3
|
import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
|
|
4
4
|
|
|
@@ -6,26 +6,26 @@ import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
|
|
|
6
6
|
declare function Accordion({
|
|
7
7
|
className,
|
|
8
8
|
...props
|
|
9
|
-
}: ComponentProps<typeof Accordion$1.Root>):
|
|
9
|
+
}: ComponentProps<typeof Accordion$1.Root>): react_jsx_runtime107.JSX.Element;
|
|
10
10
|
declare function AccordionItem({
|
|
11
11
|
children,
|
|
12
12
|
...props
|
|
13
|
-
}: ComponentProps<typeof Accordion$1.Item>):
|
|
13
|
+
}: ComponentProps<typeof Accordion$1.Item>): react_jsx_runtime107.JSX.Element;
|
|
14
14
|
declare function AccordionHeader({
|
|
15
15
|
className,
|
|
16
16
|
children,
|
|
17
17
|
...props
|
|
18
|
-
}: ComponentProps<typeof Accordion$1.Header>):
|
|
18
|
+
}: ComponentProps<typeof Accordion$1.Header>): react_jsx_runtime107.JSX.Element;
|
|
19
19
|
declare function AccordionTrigger({
|
|
20
20
|
className,
|
|
21
21
|
children,
|
|
22
22
|
...props
|
|
23
|
-
}: ComponentProps<typeof Accordion$1.Trigger>):
|
|
23
|
+
}: ComponentProps<typeof Accordion$1.Trigger>): react_jsx_runtime107.JSX.Element;
|
|
24
24
|
declare function AccordionContent({
|
|
25
25
|
className,
|
|
26
26
|
children,
|
|
27
27
|
...props
|
|
28
|
-
}: ComponentProps<typeof Accordion$1.Panel>):
|
|
28
|
+
}: ComponentProps<typeof Accordion$1.Panel>): react_jsx_runtime107.JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionTrigger };
|
|
31
31
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","names":[],"sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nconst variants = {\n primary: 'bg-fd-primary text-fd-primary-foreground hover:bg-fd-primary/80',\n outline: 'border hover:bg-fd-accent hover:text-fd-accent-foreground',\n ghost: 'hover:bg-fd-accent hover:text-fd-accent-foreground',\n secondary:\n 'border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground',\n} as const;\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center rounded-md p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring',\n {\n variants: {\n variant: variants,\n //
|
|
1
|
+
{"version":3,"file":"button.js","names":[],"sources":["../../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nconst variants = {\n primary: 'bg-fd-primary text-fd-primary-foreground hover:bg-fd-primary/80',\n outline: 'border hover:bg-fd-accent hover:text-fd-accent-foreground',\n ghost: 'hover:bg-fd-accent hover:text-fd-accent-foreground',\n secondary:\n 'border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground',\n} as const;\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center rounded-md p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring',\n {\n variants: {\n variant: variants,\n // hanzo-docs use `color` instead of `variant`\n color: variants,\n size: {\n sm: 'gap-1 px-2 py-1.5 text-xs',\n icon: 'p-1.5 [&_svg]:size-5',\n 'icon-sm': 'p-1.5 [&_svg]:size-4.5',\n 'icon-xs': 'p-1 [&_svg]:size-4',\n },\n },\n },\n);\n\nexport type ButtonProps = VariantProps<typeof buttonVariants>;\n"],"mappings":";;;AAEA,MAAM,WAAW;CACf,SAAS;CACT,SAAS;CACT,OAAO;CACP,WACE;CACH;AAED,MAAa,iBAAiB,IAC5B,yOACA,EACE,UAAU;CACR,SAAS;CAET,OAAO;CACP,MAAM;EACJ,IAAI;EACJ,MAAM;EACN,WAAW;EACX,WAAW;EACZ;CACF,EACF,CACF"}
|