@hanzo/docs-base-ui 16.5.3 → 16.7.5
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/css/generated/docs.css +68 -33
- package/css/generated/flux.css +44 -34
- package/css/generated/home.css +88 -4
- package/css/generated/notebook.css +65 -31
- package/css/generated/shared.css +199 -59
- package/css/lib/base.css +1 -4
- package/css/lib/shiki.css +49 -41
- package/css/preset.css +3 -0
- package/dist/_virtual/_rolldown/runtime.js +6 -11
- package/dist/components/accordion.d.ts +1 -2
- package/dist/components/accordion.js +3 -7
- package/dist/components/banner.d.ts +1 -2
- package/dist/components/banner.js +1 -5
- package/dist/components/callout.d.ts +1 -2
- package/dist/components/callout.js +0 -3
- package/dist/components/card.d.ts +1 -2
- package/dist/components/card.js +0 -3
- package/dist/components/codeblock.d.ts +1 -2
- package/dist/components/codeblock.js +2 -6
- package/dist/components/codeblock.rsc.d.ts +21 -0
- package/dist/components/codeblock.rsc.js +22 -0
- package/dist/components/dialog/search-algolia.d.ts +1 -3
- package/dist/components/dialog/search-algolia.js +1 -5
- package/dist/components/dialog/search-default.d.ts +1 -3
- package/dist/components/dialog/search-default.js +1 -5
- package/dist/components/dialog/search-orama.d.ts +1 -3
- package/dist/components/dialog/search-orama.js +1 -5
- package/dist/components/dialog/search.d.ts +5 -5
- package/dist/components/dialog/search.js +124 -47
- package/dist/components/dynamic-codeblock.core.d.ts +7 -5
- package/dist/components/dynamic-codeblock.core.js +17 -32
- package/dist/components/dynamic-codeblock.d.ts +5 -3
- package/dist/components/dynamic-codeblock.js +8 -13
- package/dist/components/files.d.ts +1 -2
- package/dist/components/files.js +4 -8
- package/dist/components/github-info.d.ts +22 -9
- package/dist/components/github-info.js +33 -28
- package/dist/components/heading.d.ts +1 -2
- package/dist/components/heading.js +2 -5
- package/dist/components/image-zoom.d.ts +1 -2
- package/dist/components/image-zoom.js +2 -5
- package/dist/components/inline-toc.d.ts +1 -2
- package/dist/components/inline-toc.js +1 -5
- package/dist/components/sidebar/base.d.ts +7 -3
- package/dist/components/sidebar/base.js +6 -16
- package/dist/components/sidebar/link-item.d.ts +2 -3
- package/dist/components/sidebar/link-item.js +6 -3
- package/dist/components/sidebar/page-tree.d.ts +1 -2
- package/dist/components/sidebar/page-tree.js +54 -43
- package/dist/components/sidebar/tabs/dropdown.d.ts +4 -7
- package/dist/components/sidebar/tabs/dropdown.js +4 -11
- package/dist/components/sidebar/tabs/index.d.ts +3 -17
- package/dist/components/sidebar/tabs/index.js +0 -3
- package/dist/components/steps.d.ts +1 -2
- package/dist/components/steps.js +0 -3
- package/dist/components/tabs.d.ts +11 -7
- package/dist/components/tabs.js +13 -18
- package/dist/components/toc/clerk.d.ts +9 -2
- package/dist/components/toc/clerk.js +117 -62
- package/dist/components/toc/default.d.ts +9 -2
- package/dist/components/toc/default.js +28 -21
- package/dist/components/toc/index.d.ts +8 -5
- package/dist/components/toc/index.js +50 -25
- package/dist/components/type-table.d.ts +10 -5
- package/dist/components/type-table.js +22 -17
- package/dist/components/ui/accordion.d.ts +1 -2
- package/dist/components/ui/accordion.js +1 -5
- package/dist/components/ui/button.d.ts +2 -3
- package/dist/components/ui/button.js +0 -3
- package/dist/components/ui/collapsible.d.ts +1 -2
- package/dist/components/ui/collapsible.js +2 -6
- package/dist/components/ui/navigation-menu.d.ts +26 -12
- package/dist/components/ui/navigation-menu.js +52 -30
- package/dist/components/ui/popover.d.ts +10 -5
- package/dist/components/ui/popover.js +14 -18
- package/dist/components/ui/scroll-area.d.ts +17 -7
- package/dist/components/ui/scroll-area.js +26 -30
- package/dist/components/ui/tabs.d.ts +1 -2
- package/dist/components/ui/tabs.js +1 -5
- package/dist/contexts/i18n.d.ts +7 -5
- package/dist/contexts/i18n.js +3 -8
- package/dist/contexts/search.d.ts +2 -2
- package/dist/contexts/search.js +4 -6
- package/dist/contexts/tree.d.ts +1 -2
- package/dist/contexts/tree.js +1 -5
- package/dist/i18n.d.ts +16 -9
- package/dist/i18n.js +14 -14
- package/dist/layouts/docs/client.d.ts +30 -29
- package/dist/layouts/docs/client.js +72 -48
- package/dist/layouts/docs/index.d.ts +19 -33
- package/dist/layouts/docs/index.js +16 -172
- package/dist/layouts/docs/page/index.d.ts +67 -55
- package/dist/layouts/docs/page/index.js +74 -54
- package/dist/layouts/docs/page/slots/breadcrumb.d.ts +14 -0
- package/dist/layouts/docs/page/slots/breadcrumb.js +44 -0
- package/dist/layouts/docs/page/slots/container.d.ts +7 -0
- package/dist/layouts/docs/page/slots/container.js +17 -0
- package/dist/layouts/docs/page/slots/footer.d.ts +23 -0
- package/dist/layouts/docs/page/slots/footer.js +56 -0
- package/dist/layouts/docs/page/slots/toc.d.ts +55 -0
- package/dist/layouts/docs/page/slots/toc.js +166 -0
- package/dist/layouts/docs/slots/container.d.ts +7 -0
- package/dist/layouts/docs/slots/container.js +29 -0
- package/dist/layouts/docs/slots/header.d.ts +8 -0
- package/dist/layouts/docs/slots/header.js +38 -0
- package/dist/layouts/docs/slots/sidebar.d.ts +30 -0
- package/dist/layouts/docs/slots/sidebar.js +319 -0
- package/dist/layouts/flux/index.d.ts +34 -39
- package/dist/layouts/flux/index.js +77 -99
- package/dist/layouts/flux/page/index.d.ts +56 -49
- package/dist/layouts/flux/page/index.js +63 -35
- package/dist/layouts/flux/page/slots/breadcrumb.d.ts +14 -0
- package/dist/layouts/flux/page/slots/breadcrumb.js +44 -0
- package/dist/layouts/flux/page/slots/container.d.ts +7 -0
- package/dist/layouts/flux/page/slots/container.js +17 -0
- package/dist/layouts/flux/page/slots/footer.d.ts +23 -0
- package/dist/layouts/flux/page/slots/footer.js +56 -0
- package/dist/layouts/flux/page/slots/toc.d.ts +34 -0
- package/dist/layouts/flux/page/slots/toc.js +172 -0
- package/dist/layouts/flux/slots/container.d.ts +7 -0
- package/dist/layouts/flux/slots/container.js +13 -0
- package/dist/layouts/flux/slots/sidebar.d.ts +23 -0
- package/dist/layouts/flux/{sidebar.js → slots/sidebar.js} +74 -34
- package/dist/layouts/flux/slots/tab-dropdown.d.ts +17 -0
- package/dist/layouts/flux/{tab-dropdown.js → slots/tab-dropdown.js} +13 -24
- package/dist/layouts/home/index.d.ts +24 -7
- package/dist/layouts/home/index.js +39 -19
- package/dist/layouts/home/navbar.d.ts +5 -14
- package/dist/layouts/home/navbar.js +10 -12
- package/dist/layouts/home/not-found.d.ts +9 -0
- package/dist/layouts/home/not-found.js +38 -0
- package/dist/layouts/home/slots/container.d.ts +7 -0
- package/dist/layouts/home/slots/container.js +13 -0
- package/dist/layouts/home/slots/header.d.ts +11 -0
- package/dist/layouts/home/slots/header.js +242 -0
- package/dist/layouts/notebook/client.d.ts +32 -44
- package/dist/layouts/notebook/client.js +57 -147
- package/dist/layouts/notebook/index.d.ts +25 -24
- package/dist/layouts/notebook/index.js +16 -212
- package/dist/layouts/notebook/page/index.d.ts +67 -55
- package/dist/layouts/notebook/page/index.js +74 -54
- package/dist/layouts/notebook/page/slots/breadcrumb.d.ts +14 -0
- package/dist/layouts/notebook/page/slots/breadcrumb.js +44 -0
- package/dist/layouts/notebook/page/slots/container.d.ts +7 -0
- package/dist/layouts/notebook/page/slots/container.js +17 -0
- package/dist/layouts/notebook/page/slots/footer.d.ts +23 -0
- package/dist/layouts/notebook/page/slots/footer.js +56 -0
- package/dist/layouts/notebook/page/slots/toc.d.ts +55 -0
- package/dist/layouts/notebook/page/slots/toc.js +165 -0
- package/dist/layouts/notebook/slots/container.d.ts +7 -0
- package/dist/layouts/notebook/slots/container.js +31 -0
- package/dist/layouts/notebook/slots/header.d.ts +8 -0
- package/dist/layouts/notebook/slots/header.js +194 -0
- package/dist/layouts/notebook/slots/sidebar.d.ts +40 -0
- package/dist/layouts/notebook/slots/sidebar.js +297 -0
- package/dist/layouts/shared/client.d.ts +45 -0
- package/dist/layouts/shared/client.js +84 -0
- package/dist/layouts/shared/index.d.ts +136 -34
- package/dist/layouts/shared/index.js +49 -17
- package/dist/layouts/shared/page-actions.d.ts +36 -0
- package/dist/layouts/shared/page-actions.js +190 -0
- package/dist/layouts/shared/slots/language-select.d.ts +10 -0
- package/dist/layouts/shared/{language-toggle.js → slots/language-select.js} +11 -15
- package/dist/layouts/shared/slots/search-trigger.d.ts +23 -0
- package/dist/layouts/shared/{search-toggle.js → slots/search-trigger.js} +9 -13
- package/dist/layouts/shared/slots/theme-switch.d.ts +14 -0
- package/dist/layouts/shared/{theme-toggle.js → slots/theme-switch.js} +5 -9
- package/dist/mdx.d.ts +13 -3
- package/dist/mdx.js +0 -4
- package/dist/mdx.server.d.ts +1 -2
- package/dist/mdx.server.js +0 -3
- package/dist/og/takumi.d.ts +21 -0
- package/dist/og/takumi.js +70 -0
- package/dist/og.d.ts +1 -2
- package/dist/og.js +6 -6
- package/dist/page.d.ts +3 -4
- package/dist/page.js +6 -11
- package/dist/provider/base.d.ts +1 -2
- package/dist/provider/base.js +2 -6
- package/dist/provider/next.d.ts +1 -2
- package/dist/provider/next.js +1 -5
- package/dist/provider/react-router.d.ts +1 -2
- package/dist/provider/react-router.js +1 -5
- package/dist/provider/tanstack.d.ts +1 -2
- package/dist/provider/tanstack.js +1 -5
- package/dist/provider/waku.d.ts +1 -2
- package/dist/provider/waku.js +1 -5
- package/dist/style.css +433 -166
- package/dist/tailwind/typography.d.ts +2 -0
- package/dist/tailwind/typography.js +2 -0
- package/dist/utils/cn.js +1 -2
- package/dist/utils/merge-refs.js +0 -2
- package/dist/utils/urls.js +1 -3
- package/dist/utils/use-copy-button.d.ts +1 -2
- package/dist/utils/use-copy-button.js +1 -5
- package/dist/utils/use-footer-items.d.ts +1 -2
- package/dist/utils/use-footer-items.js +4 -8
- package/dist/utils/use-is-scroll-top.d.ts +1 -2
- package/dist/utils/use-is-scroll-top.js +1 -5
- package/package.json +139 -103
- package/LICENSE +0 -21
- package/dist/components/accordion.d.ts.map +0 -1
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/banner.d.ts.map +0 -1
- package/dist/components/banner.js.map +0 -1
- package/dist/components/callout.d.ts.map +0 -1
- package/dist/components/callout.js.map +0 -1
- package/dist/components/card.d.ts.map +0 -1
- package/dist/components/card.js.map +0 -1
- package/dist/components/codeblock.d.ts.map +0 -1
- package/dist/components/codeblock.js.map +0 -1
- package/dist/components/dialog/search-algolia.d.ts.map +0 -1
- package/dist/components/dialog/search-algolia.js.map +0 -1
- package/dist/components/dialog/search-default.d.ts.map +0 -1
- package/dist/components/dialog/search-default.js.map +0 -1
- package/dist/components/dialog/search-orama.d.ts.map +0 -1
- package/dist/components/dialog/search-orama.js.map +0 -1
- package/dist/components/dialog/search.d.ts.map +0 -1
- package/dist/components/dialog/search.js.map +0 -1
- package/dist/components/dynamic-codeblock.core.d.ts.map +0 -1
- package/dist/components/dynamic-codeblock.core.js.map +0 -1
- package/dist/components/dynamic-codeblock.d.ts.map +0 -1
- package/dist/components/dynamic-codeblock.js.map +0 -1
- package/dist/components/files.d.ts.map +0 -1
- package/dist/components/files.js.map +0 -1
- package/dist/components/github-info.d.ts.map +0 -1
- package/dist/components/github-info.js.map +0 -1
- package/dist/components/heading.d.ts.map +0 -1
- package/dist/components/heading.js.map +0 -1
- package/dist/components/image-zoom-DGvp66QF.css +0 -80
- package/dist/components/image-zoom-DGvp66QF.css.map +0 -1
- package/dist/components/image-zoom.d.ts.map +0 -1
- package/dist/components/image-zoom.js.map +0 -1
- package/dist/components/image-zoom2.js +0 -1
- package/dist/components/inline-toc.d.ts.map +0 -1
- package/dist/components/inline-toc.js.map +0 -1
- package/dist/components/sidebar/base.d.ts.map +0 -1
- package/dist/components/sidebar/base.js.map +0 -1
- package/dist/components/sidebar/link-item.d.ts.map +0 -1
- package/dist/components/sidebar/link-item.js.map +0 -1
- package/dist/components/sidebar/page-tree.d.ts.map +0 -1
- package/dist/components/sidebar/page-tree.js.map +0 -1
- package/dist/components/sidebar/tabs/dropdown.d.ts.map +0 -1
- package/dist/components/sidebar/tabs/dropdown.js.map +0 -1
- package/dist/components/sidebar/tabs/index.d.ts.map +0 -1
- package/dist/components/sidebar/tabs/index.js.map +0 -1
- package/dist/components/steps.d.ts.map +0 -1
- package/dist/components/steps.js.map +0 -1
- package/dist/components/tabs.d.ts.map +0 -1
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/toc/clerk.d.ts.map +0 -1
- package/dist/components/toc/clerk.js.map +0 -1
- package/dist/components/toc/default.d.ts.map +0 -1
- package/dist/components/toc/default.js.map +0 -1
- package/dist/components/toc/index.d.ts.map +0 -1
- package/dist/components/toc/index.js.map +0 -1
- package/dist/components/type-table.d.ts.map +0 -1
- package/dist/components/type-table.js.map +0 -1
- package/dist/components/ui/accordion.d.ts.map +0 -1
- package/dist/components/ui/accordion.js.map +0 -1
- package/dist/components/ui/button.d.ts.map +0 -1
- package/dist/components/ui/button.js.map +0 -1
- package/dist/components/ui/collapsible.d.ts.map +0 -1
- package/dist/components/ui/collapsible.js.map +0 -1
- package/dist/components/ui/navigation-menu.d.ts.map +0 -1
- package/dist/components/ui/navigation-menu.js.map +0 -1
- package/dist/components/ui/popover.d.ts.map +0 -1
- package/dist/components/ui/popover.js.map +0 -1
- package/dist/components/ui/scroll-area.d.ts.map +0 -1
- package/dist/components/ui/scroll-area.js.map +0 -1
- package/dist/components/ui/tabs.d.ts.map +0 -1
- package/dist/components/ui/tabs.js.map +0 -1
- package/dist/contexts/i18n.d.ts.map +0 -1
- package/dist/contexts/i18n.js.map +0 -1
- package/dist/contexts/search.d.ts.map +0 -1
- package/dist/contexts/search.js.map +0 -1
- package/dist/contexts/tree.d.ts.map +0 -1
- package/dist/contexts/tree.js.map +0 -1
- package/dist/i18n.d.ts.map +0 -1
- package/dist/i18n.js.map +0 -1
- package/dist/layouts/docs/client.d.ts.map +0 -1
- package/dist/layouts/docs/client.js.map +0 -1
- package/dist/layouts/docs/index.d.ts.map +0 -1
- package/dist/layouts/docs/index.js.map +0 -1
- package/dist/layouts/docs/page/client.d.ts +0 -48
- package/dist/layouts/docs/page/client.d.ts.map +0 -1
- package/dist/layouts/docs/page/client.js +0 -227
- package/dist/layouts/docs/page/client.js.map +0 -1
- package/dist/layouts/docs/page/index.d.ts.map +0 -1
- package/dist/layouts/docs/page/index.js.map +0 -1
- package/dist/layouts/docs/sidebar.d.ts +0 -64
- package/dist/layouts/docs/sidebar.d.ts.map +0 -1
- package/dist/layouts/docs/sidebar.js +0 -162
- package/dist/layouts/docs/sidebar.js.map +0 -1
- package/dist/layouts/flux/index.d.ts.map +0 -1
- package/dist/layouts/flux/index.js.map +0 -1
- package/dist/layouts/flux/page/client.d.ts +0 -45
- package/dist/layouts/flux/page/client.d.ts.map +0 -1
- package/dist/layouts/flux/page/client.js +0 -255
- package/dist/layouts/flux/page/client.js.map +0 -1
- package/dist/layouts/flux/page/index.d.ts.map +0 -1
- package/dist/layouts/flux/page/index.js.map +0 -1
- package/dist/layouts/flux/sidebar.d.ts +0 -59
- package/dist/layouts/flux/sidebar.d.ts.map +0 -1
- package/dist/layouts/flux/sidebar.js.map +0 -1
- package/dist/layouts/flux/tab-dropdown.d.ts +0 -21
- package/dist/layouts/flux/tab-dropdown.d.ts.map +0 -1
- package/dist/layouts/flux/tab-dropdown.js.map +0 -1
- package/dist/layouts/home/client.d.ts +0 -19
- package/dist/layouts/home/client.d.ts.map +0 -1
- package/dist/layouts/home/client.js +0 -267
- package/dist/layouts/home/client.js.map +0 -1
- package/dist/layouts/home/index.d.ts.map +0 -1
- package/dist/layouts/home/index.js.map +0 -1
- package/dist/layouts/home/navbar.d.ts.map +0 -1
- package/dist/layouts/home/navbar.js.map +0 -1
- package/dist/layouts/notebook/client.d.ts.map +0 -1
- package/dist/layouts/notebook/client.js.map +0 -1
- package/dist/layouts/notebook/index.d.ts.map +0 -1
- package/dist/layouts/notebook/index.js.map +0 -1
- package/dist/layouts/notebook/page/client.d.ts +0 -48
- package/dist/layouts/notebook/page/client.d.ts.map +0 -1
- package/dist/layouts/notebook/page/client.js +0 -227
- package/dist/layouts/notebook/page/client.js.map +0 -1
- package/dist/layouts/notebook/page/index.d.ts.map +0 -1
- package/dist/layouts/notebook/page/index.js.map +0 -1
- package/dist/layouts/notebook/sidebar.d.ts +0 -60
- package/dist/layouts/notebook/sidebar.d.ts.map +0 -1
- package/dist/layouts/notebook/sidebar.js +0 -133
- package/dist/layouts/notebook/sidebar.js.map +0 -1
- package/dist/layouts/shared/index.d.ts.map +0 -1
- package/dist/layouts/shared/index.js.map +0 -1
- package/dist/layouts/shared/language-toggle.d.ts +0 -10
- package/dist/layouts/shared/language-toggle.d.ts.map +0 -1
- package/dist/layouts/shared/language-toggle.js.map +0 -1
- package/dist/layouts/shared/search-toggle.d.ts +0 -23
- package/dist/layouts/shared/search-toggle.d.ts.map +0 -1
- package/dist/layouts/shared/search-toggle.js.map +0 -1
- package/dist/layouts/shared/theme-toggle.d.ts +0 -14
- package/dist/layouts/shared/theme-toggle.d.ts.map +0 -1
- package/dist/layouts/shared/theme-toggle.js.map +0 -1
- package/dist/mdx.d.ts.map +0 -1
- package/dist/mdx.js.map +0 -1
- package/dist/mdx.server.d.ts.map +0 -1
- package/dist/mdx.server.js.map +0 -1
- package/dist/og.d.ts.map +0 -1
- package/dist/og.js.map +0 -1
- package/dist/page.d.ts.map +0 -1
- package/dist/page.js.map +0 -1
- package/dist/provider/base.d.ts.map +0 -1
- package/dist/provider/base.js.map +0 -1
- package/dist/provider/next.d.ts.map +0 -1
- package/dist/provider/next.js.map +0 -1
- package/dist/provider/react-router.d.ts.map +0 -1
- package/dist/provider/react-router.js.map +0 -1
- package/dist/provider/tanstack.d.ts.map +0 -1
- package/dist/provider/tanstack.js.map +0 -1
- package/dist/provider/waku.d.ts.map +0 -1
- package/dist/provider/waku.js.map +0 -1
- package/dist/utils/link-item.d.ts +0 -86
- package/dist/utils/link-item.d.ts.map +0 -1
- package/dist/utils/link-item.js +0 -25
- package/dist/utils/link-item.js.map +0 -1
- package/dist/utils/merge-refs.js.map +0 -1
- package/dist/utils/urls.js.map +0 -1
- package/dist/utils/use-copy-button.d.ts.map +0 -1
- package/dist/utils/use-copy-button.js.map +0 -1
- package/dist/utils/use-footer-items.d.ts.map +0 -1
- package/dist/utils/use-footer-items.js.map +0 -1
- package/dist/utils/use-is-scroll-top.d.ts.map +0 -1
- package/dist/utils/use-is-scroll-top.js.map +0 -1
package/dist/utils/cn.js
CHANGED
package/dist/utils/merge-refs.js
CHANGED
package/dist/utils/urls.js
CHANGED
|
@@ -6,12 +6,10 @@ function normalize(urlOrPath) {
|
|
|
6
6
|
/**
|
|
7
7
|
* @returns if `href` is matching the given pathname
|
|
8
8
|
*/
|
|
9
|
-
function isActive(href, pathname, nested =
|
|
9
|
+
function isActive(href, pathname, nested = false) {
|
|
10
10
|
href = normalize(href);
|
|
11
11
|
pathname = normalize(pathname);
|
|
12
12
|
return href === pathname || nested && pathname.startsWith(`${href}/`);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
14
|
//#endregion
|
|
16
15
|
export { isActive, normalize };
|
|
17
|
-
//# sourceMappingURL=urls.js.map
|
|
@@ -3,5 +3,4 @@ import { MouseEventHandler } from "react";
|
|
|
3
3
|
//#region src/utils/use-copy-button.d.ts
|
|
4
4
|
declare function useCopyButton(onCopy: () => void | Promise<void>): [checked: boolean, onClick: MouseEventHandler];
|
|
5
5
|
//#endregion
|
|
6
|
-
export { useCopyButton };
|
|
7
|
-
//# sourceMappingURL=use-copy-button.d.ts.map
|
|
6
|
+
export { useCopyButton };
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
|
-
|
|
5
3
|
//#region src/utils/use-copy-button.ts
|
|
6
4
|
function useCopyButton(onCopy) {
|
|
7
5
|
const [checked, setChecked] = useState(false);
|
|
@@ -24,7 +22,5 @@ function useCopyButton(onCopy) {
|
|
|
24
22
|
}, []);
|
|
25
23
|
return [checked, onClick];
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
//#endregion
|
|
29
26
|
export { useCopyButton };
|
|
30
|
-
//# sourceMappingURL=use-copy-button.js.map
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { useTreeContext } from "../contexts/tree.js";
|
|
4
|
-
|
|
5
3
|
//#region src/utils/use-footer-items.ts
|
|
6
|
-
const footerCache = /* @__PURE__ */ new
|
|
4
|
+
const footerCache = /* @__PURE__ */ new WeakMap();
|
|
7
5
|
/**
|
|
8
6
|
* @returns a list of page tree items (linear), that you can obtain footer items
|
|
9
7
|
*/
|
|
10
8
|
function useFooterItems() {
|
|
11
9
|
const { root } = useTreeContext();
|
|
12
|
-
const cached = footerCache.get(root
|
|
10
|
+
const cached = footerCache.get(root);
|
|
13
11
|
if (cached) return cached;
|
|
14
12
|
const list = [];
|
|
15
13
|
function onNode(node) {
|
|
@@ -19,10 +17,8 @@ function useFooterItems() {
|
|
|
19
17
|
} else if (node.type === "page" && !node.external) list.push(node);
|
|
20
18
|
}
|
|
21
19
|
for (const child of root.children) onNode(child);
|
|
22
|
-
footerCache.set(root
|
|
20
|
+
footerCache.set(root, list);
|
|
23
21
|
return list;
|
|
24
22
|
}
|
|
25
|
-
|
|
26
23
|
//#endregion
|
|
27
24
|
export { useFooterItems };
|
|
28
|
-
//# sourceMappingURL=use-footer-items.js.map
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { useEffect, useState } from "react";
|
|
4
|
-
|
|
5
3
|
//#region src/utils/use-is-scroll-top.ts
|
|
6
4
|
function useIsScrollTop({ enabled = true }) {
|
|
7
5
|
const [isTop, setIsTop] = useState();
|
|
@@ -18,7 +16,5 @@ function useIsScrollTop({ enabled = true }) {
|
|
|
18
16
|
}, [enabled]);
|
|
19
17
|
return isTop;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
//#endregion
|
|
23
20
|
export { useIsScrollTop };
|
|
24
|
-
//# sourceMappingURL=use-is-scroll-top.js.map
|
package/package.json
CHANGED
|
@@ -1,148 +1,184 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/docs-base-ui",
|
|
3
|
-
"version": "16.5
|
|
4
|
-
"description": "The Base UI version of
|
|
3
|
+
"version": "16.7.5",
|
|
4
|
+
"description": "The Base UI version of Fumadocs UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Docs",
|
|
7
|
-
"
|
|
7
|
+
"Fumadocs"
|
|
8
8
|
],
|
|
9
|
-
"homepage": "https://
|
|
9
|
+
"homepage": "https://fumadocs.dev",
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"author": "
|
|
12
|
-
"repository": "github:
|
|
11
|
+
"author": "Fuma Nama",
|
|
12
|
+
"repository": "github:fuma-nama/fumadocs",
|
|
13
13
|
"files": [
|
|
14
14
|
"css/*",
|
|
15
15
|
"dist/*"
|
|
16
16
|
],
|
|
17
17
|
"type": "module",
|
|
18
18
|
"exports": {
|
|
19
|
-
"./
|
|
20
|
-
"./
|
|
21
|
-
"./
|
|
22
|
-
"./components
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"./
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"./
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"./
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"./
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"./
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"./
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"./
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"./
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"./layouts/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"./layouts/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"./
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"./
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"./
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
19
|
+
"./components/accordion": "./dist/components/accordion.js",
|
|
20
|
+
"./components/banner": "./dist/components/banner.js",
|
|
21
|
+
"./components/callout": "./dist/components/callout.js",
|
|
22
|
+
"./components/card": "./dist/components/card.js",
|
|
23
|
+
"./components/codeblock": "./dist/components/codeblock.js",
|
|
24
|
+
"./components/codeblock.rsc": "./dist/components/codeblock.rsc.js",
|
|
25
|
+
"./components/dialog/search": "./dist/components/dialog/search.js",
|
|
26
|
+
"./components/dialog/search-algolia": "./dist/components/dialog/search-algolia.js",
|
|
27
|
+
"./components/dialog/search-default": "./dist/components/dialog/search-default.js",
|
|
28
|
+
"./components/dialog/search-orama": "./dist/components/dialog/search-orama.js",
|
|
29
|
+
"./components/dynamic-codeblock": "./dist/components/dynamic-codeblock.js",
|
|
30
|
+
"./components/dynamic-codeblock.core": "./dist/components/dynamic-codeblock.core.js",
|
|
31
|
+
"./components/files": "./dist/components/files.js",
|
|
32
|
+
"./components/github-info": "./dist/components/github-info.js",
|
|
33
|
+
"./components/heading": "./dist/components/heading.js",
|
|
34
|
+
"./components/image-zoom": "./dist/components/image-zoom.js",
|
|
35
|
+
"./components/inline-toc": "./dist/components/inline-toc.js",
|
|
36
|
+
"./components/sidebar/base": "./dist/components/sidebar/base.js",
|
|
37
|
+
"./components/sidebar/link-item": "./dist/components/sidebar/link-item.js",
|
|
38
|
+
"./components/sidebar/page-tree": "./dist/components/sidebar/page-tree.js",
|
|
39
|
+
"./components/sidebar/tabs": "./dist/components/sidebar/tabs/index.js",
|
|
40
|
+
"./components/sidebar/tabs/dropdown": "./dist/components/sidebar/tabs/dropdown.js",
|
|
41
|
+
"./components/steps": "./dist/components/steps.js",
|
|
42
|
+
"./components/tabs": "./dist/components/tabs.js",
|
|
43
|
+
"./components/toc": "./dist/components/toc/index.js",
|
|
44
|
+
"./components/toc/clerk": "./dist/components/toc/clerk.js",
|
|
45
|
+
"./components/toc/default": "./dist/components/toc/default.js",
|
|
46
|
+
"./components/type-table": "./dist/components/type-table.js",
|
|
47
|
+
"./components/ui/accordion": "./dist/components/ui/accordion.js",
|
|
48
|
+
"./components/ui/button": "./dist/components/ui/button.js",
|
|
49
|
+
"./components/ui/collapsible": "./dist/components/ui/collapsible.js",
|
|
50
|
+
"./components/ui/navigation-menu": "./dist/components/ui/navigation-menu.js",
|
|
51
|
+
"./components/ui/popover": "./dist/components/ui/popover.js",
|
|
52
|
+
"./components/ui/scroll-area": "./dist/components/ui/scroll-area.js",
|
|
53
|
+
"./components/ui/tabs": "./dist/components/ui/tabs.js",
|
|
54
|
+
"./contexts/i18n": "./dist/contexts/i18n.js",
|
|
55
|
+
"./contexts/search": "./dist/contexts/search.js",
|
|
56
|
+
"./contexts/tree": "./dist/contexts/tree.js",
|
|
57
|
+
"./i18n": "./dist/i18n.js",
|
|
58
|
+
"./layouts/docs": "./dist/layouts/docs/index.js",
|
|
59
|
+
"./layouts/docs/page": "./dist/layouts/docs/page/index.js",
|
|
60
|
+
"./layouts/docs/page/slots/breadcrumb": "./dist/layouts/docs/page/slots/breadcrumb.js",
|
|
61
|
+
"./layouts/docs/page/slots/container": "./dist/layouts/docs/page/slots/container.js",
|
|
62
|
+
"./layouts/docs/page/slots/footer": "./dist/layouts/docs/page/slots/footer.js",
|
|
63
|
+
"./layouts/docs/page/slots/toc": "./dist/layouts/docs/page/slots/toc.js",
|
|
64
|
+
"./layouts/docs/slots/container": "./dist/layouts/docs/slots/container.js",
|
|
65
|
+
"./layouts/docs/slots/header": "./dist/layouts/docs/slots/header.js",
|
|
66
|
+
"./layouts/docs/slots/sidebar": "./dist/layouts/docs/slots/sidebar.js",
|
|
67
|
+
"./layouts/flux": "./dist/layouts/flux/index.js",
|
|
68
|
+
"./layouts/flux/page": "./dist/layouts/flux/page/index.js",
|
|
69
|
+
"./layouts/flux/page/slots/breadcrumb": "./dist/layouts/flux/page/slots/breadcrumb.js",
|
|
70
|
+
"./layouts/flux/page/slots/container": "./dist/layouts/flux/page/slots/container.js",
|
|
71
|
+
"./layouts/flux/page/slots/footer": "./dist/layouts/flux/page/slots/footer.js",
|
|
72
|
+
"./layouts/flux/page/slots/toc": "./dist/layouts/flux/page/slots/toc.js",
|
|
73
|
+
"./layouts/flux/slots/container": "./dist/layouts/flux/slots/container.js",
|
|
74
|
+
"./layouts/flux/slots/sidebar": "./dist/layouts/flux/slots/sidebar.js",
|
|
75
|
+
"./layouts/flux/slots/tab-dropdown": "./dist/layouts/flux/slots/tab-dropdown.js",
|
|
76
|
+
"./layouts/home": "./dist/layouts/home/index.js",
|
|
77
|
+
"./layouts/home/navbar": "./dist/layouts/home/navbar.js",
|
|
78
|
+
"./layouts/home/not-found": "./dist/layouts/home/not-found.js",
|
|
79
|
+
"./layouts/home/slots/container": "./dist/layouts/home/slots/container.js",
|
|
80
|
+
"./layouts/home/slots/header": "./dist/layouts/home/slots/header.js",
|
|
81
|
+
"./layouts/notebook": "./dist/layouts/notebook/index.js",
|
|
82
|
+
"./layouts/notebook/page": "./dist/layouts/notebook/page/index.js",
|
|
83
|
+
"./layouts/notebook/page/slots/breadcrumb": "./dist/layouts/notebook/page/slots/breadcrumb.js",
|
|
84
|
+
"./layouts/notebook/page/slots/container": "./dist/layouts/notebook/page/slots/container.js",
|
|
85
|
+
"./layouts/notebook/page/slots/footer": "./dist/layouts/notebook/page/slots/footer.js",
|
|
86
|
+
"./layouts/notebook/page/slots/toc": "./dist/layouts/notebook/page/slots/toc.js",
|
|
87
|
+
"./layouts/notebook/slots/container": "./dist/layouts/notebook/slots/container.js",
|
|
88
|
+
"./layouts/notebook/slots/header": "./dist/layouts/notebook/slots/header.js",
|
|
89
|
+
"./layouts/notebook/slots/sidebar": "./dist/layouts/notebook/slots/sidebar.js",
|
|
90
|
+
"./layouts/shared": "./dist/layouts/shared/index.js",
|
|
91
|
+
"./layouts/shared/slots/language-select": "./dist/layouts/shared/slots/language-select.js",
|
|
92
|
+
"./layouts/shared/slots/search-trigger": "./dist/layouts/shared/slots/search-trigger.js",
|
|
93
|
+
"./layouts/shared/slots/theme-switch": "./dist/layouts/shared/slots/theme-switch.js",
|
|
79
94
|
"./mdx": {
|
|
80
95
|
"types": "./dist/mdx.d.ts",
|
|
81
96
|
"node": "./dist/mdx.server.js",
|
|
82
97
|
"import": "./dist/mdx.js"
|
|
83
98
|
},
|
|
84
|
-
"./og":
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
"./
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
"./og": "./dist/og.js",
|
|
100
|
+
"./og/takumi": "./dist/og/takumi.js",
|
|
101
|
+
"./page": "./dist/page.js",
|
|
102
|
+
"./provider/base": "./dist/provider/base.js",
|
|
103
|
+
"./provider/next": "./dist/provider/next.js",
|
|
104
|
+
"./provider/react-router": "./dist/provider/react-router.js",
|
|
105
|
+
"./provider/tanstack": "./dist/provider/tanstack.js",
|
|
106
|
+
"./provider/waku": "./dist/provider/waku.js",
|
|
107
|
+
"./utils/use-copy-button": "./dist/utils/use-copy-button.js",
|
|
108
|
+
"./utils/use-footer-items": "./dist/utils/use-footer-items.js",
|
|
109
|
+
"./utils/use-is-scroll-top": "./dist/utils/use-is-scroll-top.js",
|
|
110
|
+
"./package.json": "./package.json",
|
|
111
|
+
"./style.css": "./dist/style.css",
|
|
112
|
+
"./css/*": "./css/*"
|
|
92
113
|
},
|
|
93
114
|
"publishConfig": {
|
|
94
115
|
"access": "public"
|
|
95
116
|
},
|
|
117
|
+
"scripts": {
|
|
118
|
+
"build": "pnpm build:layout && pnpm build:tailwind",
|
|
119
|
+
"build:layout": "tsdown --config-loader unrun",
|
|
120
|
+
"build:tailwind": "tailwindcss -i css/style.css -o ./dist/style.css && tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css",
|
|
121
|
+
"clean": "rimraf dist",
|
|
122
|
+
"dev": "concurrently \"tsdown --watch --clean false\" \"tailwindcss -i css/style.css -o ./dist/style.css -w\" \"tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css -w\"",
|
|
123
|
+
"lint": "eslint .",
|
|
124
|
+
"types:check": "tsc --noEmit"
|
|
125
|
+
},
|
|
96
126
|
"dependencies": {
|
|
97
|
-
"@base-ui/react": "^1.
|
|
127
|
+
"@base-ui/react": "^1.3.0",
|
|
128
|
+
"@hanzo/docs-tailwind": "workspace:*",
|
|
98
129
|
"class-variance-authority": "^0.7.1",
|
|
99
|
-
"lucide-react": "^0.
|
|
100
|
-
"motion": "^12.
|
|
130
|
+
"lucide-react": "^1.0.1",
|
|
131
|
+
"motion": "^12.38.0",
|
|
101
132
|
"next-themes": "^0.4.6",
|
|
102
|
-
"react-medium-image-zoom": "^5.4.
|
|
133
|
+
"react-medium-image-zoom": "^5.4.1",
|
|
103
134
|
"react-remove-scroll": "^2.7.2",
|
|
135
|
+
"rehype-raw": "^7.0.0",
|
|
104
136
|
"scroll-into-view-if-needed": "^3.1.0",
|
|
105
|
-
"tailwind-merge": "^3.
|
|
106
|
-
"
|
|
137
|
+
"tailwind-merge": "^3.5.0",
|
|
138
|
+
"unist-util-visit": "^5.1.0"
|
|
107
139
|
},
|
|
108
140
|
"devDependencies": {
|
|
109
|
-
"@
|
|
110
|
-
"@
|
|
111
|
-
"@
|
|
141
|
+
"@hanzo/docs-cli": "workspace:*",
|
|
142
|
+
"@tailwindcss/cli": "^4.2.2",
|
|
143
|
+
"@tsdown/css": "^0.21.4",
|
|
144
|
+
"@types/hast": "^3.0.4",
|
|
145
|
+
"@types/mdx": "^2.0.13",
|
|
146
|
+
"@types/node": "^25.5.0",
|
|
147
|
+
"@types/react": "^19.2.14",
|
|
112
148
|
"@types/react-dom": "^19.2.3",
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
149
|
+
"eslint-config-custom": "workspace:*",
|
|
150
|
+
"@hanzo/docs-core": "workspace:*",
|
|
151
|
+
"shiki": "^4.0.2",
|
|
152
|
+
"tailwindcss": "^4.2.2",
|
|
153
|
+
"tsconfig": "workspace:*",
|
|
154
|
+
"tsdown": "0.21.4",
|
|
155
|
+
"unified": "^11.0.5"
|
|
119
156
|
},
|
|
120
157
|
"peerDependencies": {
|
|
158
|
+
"@takumi-rs/image-response": "*",
|
|
159
|
+
"@types/mdx": "*",
|
|
121
160
|
"@types/react": "*",
|
|
161
|
+
"@hanzo/docs-core": "workspace:*",
|
|
122
162
|
"next": "16.x.x",
|
|
123
163
|
"react": "^19.2.0",
|
|
124
164
|
"react-dom": "^19.2.0",
|
|
125
|
-
"
|
|
126
|
-
"@hanzo/docs-core": "16.5.3"
|
|
165
|
+
"shiki": "*"
|
|
127
166
|
},
|
|
128
167
|
"peerDependenciesMeta": {
|
|
168
|
+
"shiki": {
|
|
169
|
+
"optional": true
|
|
170
|
+
},
|
|
129
171
|
"next": {
|
|
130
172
|
"optional": true
|
|
131
173
|
},
|
|
132
|
-
"@
|
|
174
|
+
"@takumi-rs/image-response": {
|
|
175
|
+
"optional": true
|
|
176
|
+
},
|
|
177
|
+
"@types/mdx": {
|
|
133
178
|
"optional": true
|
|
134
179
|
},
|
|
135
|
-
"
|
|
180
|
+
"@types/react": {
|
|
136
181
|
"optional": true
|
|
137
182
|
}
|
|
138
|
-
},
|
|
139
|
-
"scripts": {
|
|
140
|
-
"build": "pnpm build:layout && pnpm build:tailwind",
|
|
141
|
-
"build:layout": "tsdown --config-loader unrun",
|
|
142
|
-
"build:tailwind": "tailwindcss -i css/style.css -o ./dist/style.css && tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css",
|
|
143
|
-
"clean": "rimraf dist",
|
|
144
|
-
"dev": "concurrently \"tsdown --watch\" \"tailwindcss -i css/style.css -o ./dist/style.css -w\" \"tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css -w\"",
|
|
145
|
-
"lint": "eslint .",
|
|
146
|
-
"types:check": "tsc --noEmit"
|
|
147
183
|
}
|
|
148
|
-
}
|
|
184
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023 Fuma
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","names":[],"sources":["../../src/components/accordion.tsx"],"mappings":";;;;;iBAgBgB,UAAA,CAAA;EACd,GAAA;EACA,SAAA;EACA,YAAA;EAAA,GACG;AAAA,GACF,cAAA,QAAsB,WAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAiCd,SAAA,CAAA;EACd,KAAA;EACA,EAAA;EACA,KAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,IAAA,CAAK,cAAA,QAAsB,aAAA;EAC5B,KAAA,WAAgB,SAAA;EAChB,KAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","names":["Root","LinkIcon"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["'use client';\n\nimport { Check, Link as LinkIcon } from 'lucide-react';\nimport { ComponentProps, type ReactNode, useEffect, useRef, useState } from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { mergeRefs } from '@/utils/merge-refs';\nimport {\n Accordion as Root,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n} from '@/components/ui/accordion';\n\nexport function Accordions({\n ref,\n className,\n defaultValue,\n ...props\n}: ComponentProps<typeof Root>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = mergeRefs(ref, rootRef);\n const [value, setValue] = useState<string[]>(defaultValue ?? []);\n\n useEffect(() => {\n const id = window.location.hash.substring(1);\n const element = rootRef.current;\n if (!element || id.length === 0) return;\n\n const selected = document.getElementById(id);\n if (!selected || !element.contains(selected)) return;\n const value = selected.getAttribute('data-accordion-value');\n\n if (value) setValue((prev) => [value, ...prev]);\n }, []);\n\n return (\n <Root\n ref={composedRef}\n value={value}\n onValueChange={setValue}\n className={(s) =>\n cn(\n 'divide-y divide-fd-border overflow-hidden rounded-lg border bg-fd-card',\n typeof className === 'function' ? className(s) : className,\n )\n }\n {...props}\n />\n );\n}\n\nexport function Accordion({\n title,\n id,\n value = String(title),\n children,\n ...props\n}: Omit<ComponentProps<typeof AccordionItem>, 'value' | 'title'> & {\n title: string | ReactNode;\n value?: string;\n}) {\n return (\n <AccordionItem value={value} {...props}>\n <AccordionHeader id={id} data-accordion-value={value}>\n <AccordionTrigger>{title}</AccordionTrigger>\n {id ? <CopyButton id={id} /> : null}\n </AccordionHeader>\n <AccordionContent hiddenUntilFound>\n <div className=\"px-4 pb-2 text-[0.9375rem] prose-no-margin [&[hidden]:not([hidden='until-found'])]:hidden\">\n {children}\n </div>\n </AccordionContent>\n </AccordionItem>\n );\n}\n\nfunction CopyButton({ id }: { id: string }) {\n const [checked, onClick] = useCopyButton(() => {\n const url = new URL(window.location.href);\n url.hash = id;\n\n return navigator.clipboard.writeText(url.toString());\n });\n\n return (\n <button\n type=\"button\"\n aria-label=\"Copy Link\"\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'text-fd-muted-foreground me-2',\n }),\n )}\n onClick={onClick}\n >\n {checked ? <Check className=\"size-3.5\" /> : <LinkIcon className=\"size-3.5\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,SAAgB,WAAW,EACzB,KACA,WACA,cACA,GAAG,SAC2B;CAC9B,MAAM,UAAU,OAAuB,KAAK;CAC5C,MAAM,cAAc,UAAU,KAAK,QAAQ;CAC3C,MAAM,CAAC,OAAO,YAAY,SAAmB,gBAAgB,EAAE,CAAC;AAEhE,iBAAgB;EACd,MAAM,KAAK,OAAO,SAAS,KAAK,UAAU,EAAE;EAC5C,MAAM,UAAU,QAAQ;AACxB,MAAI,CAAC,WAAW,GAAG,WAAW,EAAG;EAEjC,MAAM,WAAW,SAAS,eAAe,GAAG;AAC5C,MAAI,CAAC,YAAY,CAAC,QAAQ,SAAS,SAAS,CAAE;EAC9C,MAAM,QAAQ,SAAS,aAAa,uBAAuB;AAE3D,MAAI,MAAO,WAAU,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9C,EAAE,CAAC;AAEN,QACE,oBAACA;EACC,KAAK;EACE;EACP,eAAe;EACf,YAAY,MACV,GACE,0EACA,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;EAEH,GAAI;GACJ;;AAIN,SAAgB,UAAU,EACxB,OACA,IACA,QAAQ,OAAO,MAAM,EACrB,UACA,GAAG,SAIF;AACD,QACE,qBAAC;EAAqB;EAAO,GAAI;aAC/B,qBAAC;GAAoB;GAAI,wBAAsB;cAC7C,oBAAC,8BAAkB,QAAyB,EAC3C,KAAK,oBAAC,cAAe,KAAM,GAAG;IACf,EAClB,oBAAC;GAAiB;aAChB,oBAAC;IAAI,WAAU;IACZ;KACG;IACW;GACL;;AAIpB,SAAS,WAAW,EAAE,MAAsB;CAC1C,MAAM,CAAC,SAAS,WAAW,oBAAoB;EAC7C,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,MAAI,OAAO;AAEX,SAAO,UAAU,UAAU,UAAU,IAAI,UAAU,CAAC;GACpD;AAEF,QACE,oBAAC;EACC,MAAK;EACL,cAAW;EACX,WAAW,GACT,eAAe;GACb,OAAO;GACP,WAAW;GACZ,CAAC,CACH;EACQ;YAER,UAAU,oBAAC,SAAM,WAAU,aAAa,GAAG,oBAACC,QAAS,WAAU,aAAa;GACtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","names":[],"sources":["../../src/components/banner.tsx"],"mappings":";;;;KAOK,aAAA;AAAA,iBAEW,MAAA,CAAA;EACd,EAAA;EACA,OAAA;EACA,YAAA;EACA,MAAA;EACA,aAAA;EAAA,GAMG;AAAA,GACF,cAAA,CAAe,cAAA;;AAnB+C;;EAuB/D,MAAA;EAlBgB;;AAElB;EAqBE,OAAA,GAAU,aAAA;;;;EAKV,aAAA;EAtBA;;;;;EA6BA,YAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","names":[],"sources":["../../src/components/banner.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useEffect, useState } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '@/utils/cn';\nimport { buttonVariants } from '@/components/ui/button';\n\ntype BannerVariant = 'rainbow' | 'normal';\n\nexport function Banner({\n id,\n variant = 'normal',\n changeLayout = true,\n height = '3rem',\n rainbowColors = [\n 'rgba(0,149,255,0.56)',\n 'rgba(231,77,255,0.77)',\n 'rgba(255,0,0,0.73)',\n 'rgba(131,255,166,0.66)',\n ],\n ...props\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * @defaultValue 3rem\n */\n height?: string;\n\n /**\n * @defaultValue 'normal'\n */\n variant?: BannerVariant;\n\n /**\n * For rainbow variant only, customise the colors\n */\n rainbowColors?: string[];\n\n /**\n * Change Hanzo Docs layout styles\n *\n * @defaultValue true\n */\n changeLayout?: boolean;\n}) {\n const [open, setOpen] = useState(true);\n const globalKey = id ? `nd-banner-${id}` : null;\n\n useEffect(() => {\n if (globalKey) setOpen(localStorage.getItem(globalKey) !== 'true');\n }, [globalKey]);\n\n if (!open) return null;\n\n return (\n <div\n id={id}\n {...props}\n className={cn(\n 'sticky top-0 z-40 flex flex-row items-center justify-center px-4 text-center text-sm font-medium',\n variant === 'normal' && 'bg-fd-secondary',\n variant === 'rainbow' && 'bg-fd-background',\n !open && 'hidden',\n props.className,\n )}\n style={{\n height,\n }}\n >\n {changeLayout && open ? (\n <style>\n {globalKey\n ? `:root:not(.${globalKey}) { --fd-banner-height: ${height}; }`\n : `:root { --fd-banner-height: ${height}; }`}\n </style>\n ) : null}\n {globalKey ? <style>{`.${globalKey} #${id} { display: none; }`}</style> : null}\n {globalKey ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `if (localStorage.getItem('${globalKey}') === 'true') document.documentElement.classList.add('${globalKey}');`,\n }}\n />\n ) : null}\n\n {variant === 'rainbow'\n ? flow({\n colors: rainbowColors,\n })\n : null}\n {props.children}\n {id ? (\n <button\n type=\"button\"\n aria-label=\"Close Banner\"\n onClick={() => {\n setOpen(false);\n if (globalKey) localStorage.setItem(globalKey, 'true');\n }}\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'absolute end-2 top-1/2 -translate-y-1/2 text-fd-muted-foreground/50',\n size: 'icon-sm',\n }),\n )}\n >\n <X />\n </button>\n ) : null}\n </div>\n );\n}\n\nconst maskImage =\n 'linear-gradient(to bottom,white,transparent), radial-gradient(circle at top center, white, transparent)';\n\nfunction flow({ colors }: { colors: string[] }) {\n return (\n <>\n <div\n className=\"absolute inset-0 z-[-1]\"\n style={\n {\n maskImage,\n maskComposite: 'intersect',\n animation: 'fd-moving-banner 20s linear infinite',\n backgroundImage: `repeating-linear-gradient(70deg, ${[...colors, colors[0]].map((color, i) => `${color} ${(i * 50) / colors.length}%`).join(', ')})`,\n backgroundSize: '200% 100%',\n filter: 'saturate(2)',\n } as object\n }\n />\n <style>\n {`@keyframes fd-moving-banner {\n from { background-position: 0% 0; }\n to { background-position: 100% 0; }\n }`}\n </style>\n </>\n );\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,OAAO,EACrB,IACA,UAAU,UACV,eAAe,MACf,SAAS,QACT,gBAAgB;CACd;CACA;CACA;CACA;CACD,EACD,GAAG,SAuBF;CACD,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;CACtC,MAAM,YAAY,KAAK,aAAa,OAAO;AAE3C,iBAAgB;AACd,MAAI,UAAW,SAAQ,aAAa,QAAQ,UAAU,KAAK,OAAO;IACjE,CAAC,UAAU,CAAC;AAEf,KAAI,CAAC,KAAM,QAAO;AAElB,QACE,qBAAC;EACK;EACJ,GAAI;EACJ,WAAW,GACT,oGACA,YAAY,YAAY,mBACxB,YAAY,aAAa,oBACzB,CAAC,QAAQ,UACT,MAAM,UACP;EACD,OAAO,EACL,QACD;;GAEA,gBAAgB,OACf,oBAAC,qBACE,YACG,cAAc,UAAU,0BAA0B,OAAO,OACzD,+BAA+B,OAAO,OACpC,GACN;GACH,YAAY,oBAAC,qBAAO,IAAI,UAAU,IAAI,GAAG,uBAA6B,GAAG;GACzE,YACC,oBAAC,YACC,yBAAyB,EACvB,QAAQ,6BAA6B,UAAU,yDAAyD,UAAU,MACnH,GACD,GACA;GAEH,YAAY,YACT,KAAK,EACH,QAAQ,eACT,CAAC,GACF;GACH,MAAM;GACN,KACC,oBAAC;IACC,MAAK;IACL,cAAW;IACX,eAAe;AACb,aAAQ,MAAM;AACd,SAAI,UAAW,cAAa,QAAQ,WAAW,OAAO;;IAExD,WAAW,GACT,eAAe;KACb,OAAO;KACP,WAAW;KACX,MAAM;KACP,CAAC,CACH;cAED,oBAAC,MAAI;KACE,GACP;;GACA;;AAIV,MAAM,YACJ;AAEF,SAAS,KAAK,EAAE,UAAgC;AAC9C,QACE,8CACE,oBAAC;EACC,WAAU;EACV,OACE;GACE;GACA,eAAe;GACf,WAAW;GACX,iBAAiB,oCAAoC,CAAC,GAAG,QAAQ,OAAO,GAAG,CAAC,KAAK,OAAO,MAAM,GAAG,MAAM,GAAI,IAAI,KAAM,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC;GAClJ,gBAAgB;GAChB,QAAQ;GACT;GAEH,EACF,oBAAC,qBACE;;;cAIK,IACP"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"callout.d.ts","names":[],"sources":["../../src/components/callout.tsx"],"mappings":";;;;KAIY,WAAA;AAAA,iBAII,OAAA,CAAA;EACd,QAAA;EACA,KAAA;EAAA,GACG;AAAA;EACA,KAAA,GAAQ,SAAA;AAAA,IAAc,IAAA,CAAK,qBAAA,aAA+B,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAS9C,qBAAA,SAA8B,cAAA;;;;EAI7C,IAAA,GAAO,WAAA;EAjBc;;;EAsBrB,IAAA,GAAO,SAAA;AAAA;AAAA,iBASO,gBAAA,CAAA;EACd,IAAA,EAAM,SAAA;EACN,IAAA;EACA,QAAA;EACA,SAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAiCR,YAAA,CAAA;EAAe,QAAA;EAAU,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAQnE,kBAAA,CAAA;EAAqB,QAAA;EAAU,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"callout.js","names":[],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import { CircleCheck, CircleX, Info, Lightbulb, TriangleAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport type CalloutType = 'info' | 'warn' | 'error' | 'success' | 'warning' | 'idea';\n\nconst iconClass = 'size-5 -me-0.5 fill-(--callout-color) text-fd-card';\n\nexport function Callout({\n children,\n title,\n ...props\n}: { title?: ReactNode } & Omit<CalloutContainerProps, 'title'>) {\n return (\n <CalloutContainer {...props}>\n {title && <CalloutTitle>{title}</CalloutTitle>}\n <CalloutDescription>{children}</CalloutDescription>\n </CalloutContainer>\n );\n}\n\nexport interface CalloutContainerProps extends ComponentProps<'div'> {\n /**\n * @defaultValue info\n */\n type?: CalloutType;\n\n /**\n * Force an icon\n */\n icon?: ReactNode;\n}\n\nfunction resolveAlias(type: CalloutType) {\n if (type === 'warn') return 'warning';\n if ((type as unknown) === 'tip') return 'info';\n return type;\n}\n\nexport function CalloutContainer({\n type: inputType = 'info',\n icon,\n children,\n className,\n style,\n ...props\n}: CalloutContainerProps) {\n const type = resolveAlias(inputType);\n\n return (\n <div\n className={cn(\n 'flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md',\n className,\n )}\n style={\n {\n '--callout-color': `var(--color-fd-${type}, var(--color-fd-muted))`,\n ...style,\n } as object\n }\n {...props}\n >\n <div role=\"none\" className=\"w-0.5 bg-(--callout-color)/50 rounded-sm\" />\n {icon ??\n {\n info: <Info className={iconClass} />,\n warning: <TriangleAlert className={iconClass} />,\n error: <CircleX className={iconClass} />,\n success: <CircleCheck className={iconClass} />,\n idea: (\n <Lightbulb className=\"size-5 -me-0.5 fill-(--callout-color) text-(--callout-color)\" />\n ),\n }[type]}\n <div className=\"flex flex-col gap-2 min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nexport function CalloutTitle({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <p className={cn('font-medium my-0!', className)} {...props}>\n {children}\n </p>\n );\n}\n\nexport function CalloutDescription({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <div\n className={cn('text-fd-muted-foreground prose-no-margin empty:hidden', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;AAMA,MAAM,YAAY;AAElB,SAAgB,QAAQ,EACtB,UACA,OACA,GAAG,SAC4D;AAC/D,QACE,qBAAC;EAAiB,GAAI;aACnB,SAAS,oBAAC,0BAAc,QAAqB,EAC9C,oBAAC,sBAAoB,WAA8B;GAClC;;AAgBvB,SAAS,aAAa,MAAmB;AACvC,KAAI,SAAS,OAAQ,QAAO;AAC5B,KAAK,SAAqB,MAAO,QAAO;AACxC,QAAO;;AAGT,SAAgB,iBAAiB,EAC/B,MAAM,YAAY,QAClB,MACA,UACA,WACA,OACA,GAAG,SACqB;CACxB,MAAM,OAAO,aAAa,UAAU;AAEpC,QACE,qBAAC;EACC,WAAW,GACT,mGACA,UACD;EACD,OACE;GACE,mBAAmB,kBAAkB,KAAK;GAC1C,GAAG;GACJ;EAEH,GAAI;;GAEJ,oBAAC;IAAI,MAAK;IAAO,WAAU;KAA6C;GACvE,QACC;IACE,MAAM,oBAAC,QAAK,WAAW,YAAa;IACpC,SAAS,oBAAC,iBAAc,WAAW,YAAa;IAChD,OAAO,oBAAC,WAAQ,WAAW,YAAa;IACxC,SAAS,oBAAC,eAAY,WAAW,YAAa;IAC9C,MACE,oBAAC,aAAU,WAAU,iEAAiE;IAEzF,CAAC;GACJ,oBAAC;IAAI,WAAU;IAAsC;KAAe;;GAChE;;AAIV,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA8B;AACnF,QACE,oBAAC;EAAE,WAAW,GAAG,qBAAqB,UAAU;EAAE,GAAI;EACnD;GACC;;AAIR,SAAgB,mBAAmB,EAAE,UAAU,WAAW,GAAG,SAA8B;AACzF,QACE,oBAAC;EACC,WAAW,GAAG,yDAAyD,UAAU;EACjF,GAAI;EAEH;GACG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","names":[],"sources":["../../src/components/card.tsx"],"mappings":";;;;iBAIgB,KAAA,CAAM,KAAA,EAAO,cAAA,CAAe,cAAA,IAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,KAQ/C,SAAA,GAAY,IAAA,CAAK,cAAA,CAAe,WAAA;EAC1C,IAAA,GAAO,SAAA;EACP,KAAA,EAAO,SAAA;EACP,WAAA,GAAc,SAAA;EAEd,IAAA;EACA,QAAA;AAAA;AAAA,iBAGc,IAAA,CAAA;EAAO,IAAA;EAAM,KAAA;EAAO,WAAA;EAAA,GAAgB;AAAA,GAAS,SAAA,GAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","names":[],"sources":["../../src/components/card.tsx"],"sourcesContent":["import Link from '@hanzo/docs-core/link';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport function Cards(props: HTMLAttributes<HTMLDivElement>) {\n return (\n <div {...props} className={cn('grid grid-cols-2 gap-3 @container', props.className)}>\n {props.children}\n </div>\n );\n}\n\nexport type CardProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n\n href?: string;\n external?: boolean;\n};\n\nexport function Card({ icon, title, description, ...props }: CardProps) {\n const E = props.href ? Link : 'div';\n\n return (\n <E\n {...props}\n data-card\n className={cn(\n 'block rounded-xl border bg-fd-card p-4 text-fd-card-foreground transition-colors @max-lg:col-span-full',\n props.href && 'hover:bg-fd-accent/80',\n props.className,\n )}\n >\n {icon ? (\n <div className=\"not-prose mb-2 w-fit shadow-md rounded-lg border bg-fd-muted p-1.5 text-fd-muted-foreground [&_svg]:size-4\">\n {icon}\n </div>\n ) : null}\n <h3 className=\"not-prose mb-1 text-sm font-medium\">{title}</h3>\n {description ? <p className=\"my-0! text-sm text-fd-muted-foreground\">{description}</p> : null}\n <div className=\"text-sm text-fd-muted-foreground prose-no-margin empty:hidden\">\n {props.children}\n </div>\n </E>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,MAAM,OAAuC;AAC3D,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,qCAAqC,MAAM,UAAU;YAChF,MAAM;GACH;;AAaV,SAAgB,KAAK,EAAE,MAAM,OAAO,aAAa,GAAG,SAAoB;AAGtE,QACE,qBAHQ,MAAM,OAAO,OAAO;EAI1B,GAAI;EACJ;EACA,WAAW,GACT,0GACA,MAAM,QAAQ,yBACd,MAAM,UACP;;GAEA,OACC,oBAAC;IAAI,WAAU;cACZ;KACG,GACJ;GACJ,oBAAC;IAAG,WAAU;cAAsC;KAAW;GAC9D,cAAc,oBAAC;IAAE,WAAU;cAA0C;KAAgB,GAAG;GACzF,oBAAC;IAAI,WAAU;cACZ,MAAM;KACH;;GACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codeblock.d.ts","names":[],"sources":["../../src/components/codeblock.tsx"],"mappings":";;;;;UAkBiB,cAAA,SAAuB,cAAA;;;AAAxC;;;EAME,IAAA,GAAO,SAAA;EAgBwB;;;;;EAT/B,SAAA;EAboD;;;;;EAoBpD,cAAA;EAEA,aAAA,GAAgB,cAAA,CAAe,WAAA;EAAf;;;EAKhB,mBAAA;EAOA;;;EAFA,yBAAA;EAEA,OAAA,IAAW,KAAA;IAAS,SAAA;IAAoB,QAAA,GAAW,SAAA;EAAA,MAAgB,SAAA;AAAA;AAAA,iBAQrD,GAAA,CAAI,KAAA,EAAO,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAQhC,SAAA,CAAA;EACd,GAAA;EACA,KAAA;EACA,SAAA;EACA,cAAA;EACA,IAAA;EACA,aAAA;EACA,QAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,cAAA,GAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBA4GD,aAAA,CAAA;EAAgB,GAAA;EAAK,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAsB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBA+BvE,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAsB,QAAA,IAAS,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgB1E,oBAAA,CAAA;EACd,QAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,cAAA,QAAsB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAkBrB,YAAA,CAAa,KAAA,EAAO,cAAA,QAAsB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codeblock.js","names":[],"sources":["../../src/components/codeblock.tsx"],"sourcesContent":["'use client';\nimport { Check, Clipboard } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type HTMLAttributes,\n type ReactNode,\n type RefObject,\n use,\n useMemo,\n useRef,\n} from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport { mergeRefs } from '@/utils/merge-refs';\n\nexport interface CodeBlockProps extends ComponentProps<'figure'> {\n /**\n * Icon of code block\n *\n * When passed as a string, it assumes the value is the HTML of icon\n */\n icon?: ReactNode;\n\n /**\n * Allow to copy code with copy button\n *\n * @defaultValue true\n */\n allowCopy?: boolean;\n\n /**\n * Keep original background color generated by Shiki or Rehype Code\n *\n * @defaultValue false\n */\n keepBackground?: boolean;\n\n viewportProps?: HTMLAttributes<HTMLElement>;\n\n /**\n * show line numbers\n */\n 'data-line-numbers'?: boolean;\n\n /**\n * @defaultValue 1\n */\n 'data-line-numbers-start'?: number;\n\n Actions?: (props: { className?: string; children?: ReactNode }) => ReactNode;\n}\n\nconst TabsContext = createContext<{\n containerRef: RefObject<HTMLDivElement | null>;\n nested: boolean;\n} | null>(null);\n\nexport function Pre(props: ComponentProps<'pre'>) {\n return (\n <pre {...props} className={cn('min-w-full w-max *:flex *:flex-col', props.className)}>\n {props.children}\n </pre>\n );\n}\n\nexport function CodeBlock({\n ref,\n title,\n allowCopy = true,\n keepBackground = false,\n icon,\n viewportProps = {},\n children,\n Actions = (props) => <div {...props} className={cn('empty:hidden', props.className)} />,\n ...props\n}: CodeBlockProps) {\n const inTab = use(TabsContext) !== null;\n const areaRef = useRef<HTMLDivElement>(null);\n\n return (\n <figure\n ref={ref}\n dir=\"ltr\"\n {...props}\n tabIndex={-1}\n className={cn(\n inTab ? 'bg-fd-secondary -mx-px -mb-px last:rounded-b-xl' : 'my-4 bg-fd-card rounded-xl',\n keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)',\n\n 'shiki relative border shadow-sm not-prose overflow-hidden text-sm',\n props.className,\n )}\n >\n {title ? (\n <div className=\"flex text-fd-muted-foreground items-center gap-2 h-9.5 border-b px-4\">\n {typeof icon === 'string' ? (\n <div\n className=\"[&_svg]:size-3.5\"\n dangerouslySetInnerHTML={{\n __html: icon,\n }}\n />\n ) : (\n icon\n )}\n <figcaption className=\"flex-1 truncate\">{title}</figcaption>\n {Actions({\n className: '-me-2',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })}\n </div>\n ) : (\n Actions({\n className:\n 'absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })\n )}\n <div\n ref={areaRef}\n {...viewportProps}\n role=\"region\"\n tabIndex={0}\n className={cn(\n 'text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring',\n viewportProps.className,\n )}\n style={\n {\n // space for toolbar\n '--padding-right': !title ? 'calc(var(--spacing) * 8)' : undefined,\n counterSet: props['data-line-numbers']\n ? `line ${Number(props['data-line-numbers-start'] ?? 1) - 1}`\n : undefined,\n ...viewportProps.style,\n } as object\n }\n >\n {children}\n </div>\n </figure>\n );\n}\n\nfunction CopyButton({\n className,\n containerRef,\n ...props\n}: ComponentProps<'button'> & {\n containerRef: RefObject<HTMLElement | null>;\n}) {\n const [checked, onClick] = useCopyButton(() => {\n const pre = containerRef.current?.getElementsByTagName('pre').item(0);\n if (!pre) return;\n\n const clone = pre.cloneNode(true) as HTMLElement;\n clone.querySelectorAll('.nd-copy-ignore').forEach((node) => {\n node.replaceWith('\\n');\n });\n\n void navigator.clipboard.writeText(clone.textContent ?? '');\n });\n\n return (\n <button\n type=\"button\"\n data-checked={checked || undefined}\n className={cn(\n buttonVariants({\n className: 'hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground',\n size: 'icon-xs',\n }),\n className,\n )}\n aria-label={checked ? 'Copied Text' : 'Copy Text'}\n onClick={onClick}\n {...props}\n >\n {checked ? <Check /> : <Clipboard />}\n </button>\n );\n}\n\nexport function CodeBlockTabs({ ref, className, ...props }: ComponentProps<typeof Tabs>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const nested = use(TabsContext) !== null;\n\n return (\n <Tabs\n ref={mergeRefs(containerRef, ref)}\n {...props}\n className={(s) =>\n cn(\n 'bg-fd-card rounded-xl border',\n !nested && 'my-4',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <TabsContext\n value={useMemo(\n () => ({\n containerRef,\n nested,\n }),\n [nested],\n )}\n >\n {props.children}\n </TabsContext>\n </Tabs>\n );\n}\n\nexport function CodeBlockTabsList({ className, ...props }: ComponentProps<typeof TabsList>) {\n return (\n <TabsList\n {...props}\n className={(s) =>\n cn(\n 'flex flex-row px-2 overflow-x-auto text-fd-muted-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n {props.children}\n </TabsList>\n );\n}\n\nexport function CodeBlockTabsTrigger({\n children,\n className,\n ...props\n}: ComponentProps<typeof TabsTrigger>) {\n return (\n <TabsTrigger\n {...props}\n className={(s) =>\n cn(\n 'relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2 py-1.5 [&_svg]:size-3.5',\n s.active ? 'text-fd-primary' : 'hover:text-fd-accent-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <div className=\"absolute inset-x-2 bottom-0 h-px group-data-[active]:bg-fd-primary\" />\n {children}\n </TabsTrigger>\n );\n}\n\nexport function CodeBlockTab(props: ComponentProps<typeof TabsContent>) {\n return <TabsContent {...props} />;\n}\n"],"mappings":";;;;;;;;;;;;AAuDA,MAAM,cAAc,cAGV,KAAK;AAEf,SAAgB,IAAI,OAA8B;AAChD,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,sCAAsC,MAAM,UAAU;YACjF,MAAM;GACH;;AAIV,SAAgB,UAAU,EACxB,KACA,OACA,YAAY,MACZ,iBAAiB,OACjB,MACA,gBAAgB,EAAE,EAClB,UACA,WAAW,UAAU,oBAAC;CAAI,GAAI;CAAO,WAAW,GAAG,gBAAgB,MAAM,UAAU;EAAI,EACvF,GAAG,SACc;CACjB,MAAM,QAAQ,IAAI,YAAY,KAAK;CACnC,MAAM,UAAU,OAAuB,KAAK;AAE5C,QACE,qBAAC;EACM;EACL,KAAI;EACJ,GAAI;EACJ,UAAU;EACV,WAAW,GACT,QAAQ,oDAAoD,8BAC5D,kBAAkB,mDAElB,qEACA,MAAM,UACP;aAEA,QACC,qBAAC;GAAI,WAAU;;IACZ,OAAO,SAAS,WACf,oBAAC;KACC,WAAU;KACV,yBAAyB,EACvB,QAAQ,MACT;MACD,GAEF;IAEF,oBAAC;KAAW,WAAU;eAAmB;MAAmB;IAC3D,QAAQ;KACP,WAAW;KACX,UAAU,aAAa,oBAAC,cAAW,cAAc,UAAW;KAC7D,CAAC;;IACE,GAEN,QAAQ;GACN,WACE;GACF,UAAU,aAAa,oBAAC,cAAW,cAAc,UAAW;GAC7D,CAAC,EAEJ,oBAAC;GACC,KAAK;GACL,GAAI;GACJ,MAAK;GACL,UAAU;GACV,WAAW,GACT,+KACA,cAAc,UACf;GACD,OACE;IAEE,mBAAmB,CAAC,QAAQ,6BAA6B;IACzD,YAAY,MAAM,uBACd,QAAQ,OAAO,MAAM,8BAA8B,EAAE,GAAG,MACxD;IACJ,GAAG,cAAc;IAClB;GAGF;IACG;GACC;;AAIb,SAAS,WAAW,EAClB,WACA,cACA,GAAG,SAGF;CACD,MAAM,CAAC,SAAS,WAAW,oBAAoB;EAC7C,MAAM,MAAM,aAAa,SAAS,qBAAqB,MAAM,CAAC,KAAK,EAAE;AACrE,MAAI,CAAC,IAAK;EAEV,MAAM,QAAQ,IAAI,UAAU,KAAK;AACjC,QAAM,iBAAiB,kBAAkB,CAAC,SAAS,SAAS;AAC1D,QAAK,YAAY,KAAK;IACtB;AAEF,EAAK,UAAU,UAAU,UAAU,MAAM,eAAe,GAAG;GAC3D;AAEF,QACE,oBAAC;EACC,MAAK;EACL,gBAAc,WAAW;EACzB,WAAW,GACT,eAAe;GACb,WAAW;GACX,MAAM;GACP,CAAC,EACF,UACD;EACD,cAAY,UAAU,gBAAgB;EAC7B;EACT,GAAI;YAEH,UAAU,oBAAC,UAAQ,GAAG,oBAAC,cAAY;GAC7B;;AAIb,SAAgB,cAAc,EAAE,KAAK,WAAW,GAAG,SAAsC;CACvF,MAAM,eAAe,OAAuB,KAAK;CACjD,MAAM,SAAS,IAAI,YAAY,KAAK;AAEpC,QACE,oBAAC;EACC,KAAK,UAAU,cAAc,IAAI;EACjC,GAAI;EACJ,YAAY,MACV,GACE,gCACA,CAAC,UAAU,QACX,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;YAGH,oBAAC;GACC,OAAO,eACE;IACL;IACA;IACD,GACD,CAAC,OAAO,CACT;aAEA,MAAM;IACK;GACT;;AAIX,SAAgB,kBAAkB,EAAE,WAAW,GAAG,SAA0C;AAC1F,QACE,oBAAC;EACC,GAAI;EACJ,YAAY,MACV,GACE,+DACA,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;YAGF,MAAM;GACE;;AAIf,SAAgB,qBAAqB,EACnC,UACA,WACA,GAAG,SACkC;AACrC,QACE,qBAAC;EACC,GAAI;EACJ,YAAY,MACV,GACE,gIACA,EAAE,SAAS,oBAAoB,mCAC/B,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;aAGH,oBAAC,SAAI,WAAU,uEAAuE,EACrF;GACW;;AAIlB,SAAgB,aAAa,OAA2C;AACtE,QAAO,oBAAC,eAAY,GAAI,QAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-algolia.d.ts","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"mappings":";;;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,aAAA,EAAe,cAAA;EACf,KAAA,GAAQ,UAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANQ;;;;;EAaf,WAAA;EAd2D;;;;;EAqB3D,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,aAAA;EACA,IAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-algolia.js","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"sourcesContent":["'use client';\n\nimport { type AlgoliaOptions, useDocsSearch } from '@hanzo/docs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from '@hanzo/docs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\n\nexport interface AlgoliaSearchDialogProps extends SharedProps {\n searchOptions: AlgoliaOptions;\n links?: SearchLink[];\n\n footer?: ReactNode;\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Add the \"Powered by Algolia\" label, this is useful for free tier users\n *\n * @defaultValue false\n */\n showAlgolia?: boolean;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function AlgoliaSearchDialog({\n searchOptions,\n tags = [],\n defaultTag,\n showAlgolia = false,\n allowClear = false,\n links = [],\n footer,\n ...props\n}: AlgoliaSearchDialogProps) {\n const [tag, setTag] = useState(defaultTag);\n const { locale } = useI18n();\n const { search, setSearch, query } = useDocsSearch({\n type: 'algolia',\n tag,\n locale,\n ...searchOptions,\n });\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n const label = showAlgolia && <AlgoliaTitle />;\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 ? (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n {label}\n </TagsList>\n ) : (\n label\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n\nfunction AlgoliaTitle() {\n return (\n <a\n href=\"https://algolia.com\"\n rel=\"noreferrer noopener\"\n className=\"ms-auto text-xs text-fd-muted-foreground\"\n >\n Search powered by Algolia\n </a>\n );\n}\n"],"mappings":";;;;;;;;;;AA+CA,SAAwB,oBAAoB,EAC1C,eACA,OAAO,EAAE,EACT,YACA,cAAc,OACd,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,EAAE,QAAQ,WAAW,UAAU,cAAc;EACjD,MAAM;EACN;EACA;EACA,GAAG;EACJ,CAAC;CACF,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;CAEF,MAAM,QAAQ,eAAe,oBAAC,iBAAe;AAE7C,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;;GACvF,oBAAC,wBAAsB;GACvB,qBAAC,kCACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF,EACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB,IAC3D;GACtB,qBAAC,iCACE,KAAK,SAAS,IACb,qBAAC;IAAc;IAAK,aAAa;IAAoB;eAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf,EACD;KACQ,GAEX,OAED,UACkB;;GACR;;AAInB,SAAS,eAAe;AACtB,QACE,oBAAC;EACC,MAAK;EACL,KAAI;EACJ,WAAU;YACX;GAEG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-default.d.ts","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"mappings":";;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,KAAA,GAAQ,UAAA;;AADV;;EAME,IAAA;EAEA,UAAA;EACA,IAAA,GAAO,OAAA;EAYE;;;EAPT,GAAA;EAdgD;;;EAmBhD,OAAA;EAEA,MAAA,GAAS,SAAA;EAZT;;;;;EAmBA,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,UAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA;EACA,IAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-default.js","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"sourcesContent":["'use client';\n\nimport { useDocsSearch } from '@hanzo/docs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport { useI18n } from '@/contexts/i18n';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from '@hanzo/docs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\n\nexport interface DefaultSearchDialogProps extends SharedProps {\n links?: SearchLink[];\n\n /**\n * @defaultValue 'fetch'\n */\n type?: 'fetch' | 'static';\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Search API URL\n */\n api?: string;\n\n /**\n * The debounced delay for performing a search.\n */\n delayMs?: number;\n\n footer?: ReactNode;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function DefaultSearchDialog({\n defaultTag,\n tags = [],\n api,\n delayMs,\n type = 'fetch',\n allowClear = false,\n links = [],\n footer,\n ...props\n}: DefaultSearchDialogProps) {\n const { locale } = useI18n();\n const [tag, setTag] = useState(defaultTag);\n const { search, setSearch, query } = useDocsSearch(\n type === 'fetch'\n ? {\n type: 'fetch',\n api,\n locale,\n tag,\n delayMs,\n }\n : {\n type: 'static',\n from: api,\n locale,\n tag,\n delayMs,\n },\n );\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 && (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n </TagsList>\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n"],"mappings":";;;;;;;;;;AAsDA,SAAwB,oBAAoB,EAC1C,YACA,OAAO,EAAE,EACT,KACA,SACA,OAAO,SACP,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,QAAQ,WAAW,UAAU,cACnC,SAAS,UACL;EACE,MAAM;EACN;EACA;EACA;EACA;EACD,GACD;EACE,MAAM;EACN,MAAM;EACN;EACA;EACA;EACD,CACN;CACD,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;AAEF,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;;GACvF,oBAAC,wBAAsB;GACvB,qBAAC,kCACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF,EACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB,IAC3D;GACtB,qBAAC,iCACE,KAAK,SAAS,KACb,oBAAC;IAAc;IAAK,aAAa;IAAoB;cAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf;KACO,EAEZ,UACkB;;GACR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-orama.d.ts","names":[],"sources":["../../../src/components/dialog/search-orama.tsx"],"mappings":";;;;;;;UAuBiB,sBAAA,SAA+B,WAAA;EAC9C,KAAA,GAAQ,UAAA;EACR,MAAA,EAAQ,iBAAA;EACR,aAAA,GAAgB,iBAAA;EAChB,KAAA,GAAQ,iBAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANS;;;;;EAahB,SAAA;EAhByD;;;;;EAuBzD,UAAA;AAAA;;;;iBAMsB,iBAAA,CAAA;EACtB,MAAA;EACA,aAAA;EACA,IAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,sBAAA,GAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-orama.js","names":[],"sources":["../../../src/components/dialog/search-orama.tsx"],"sourcesContent":["'use client';\n\nimport { type OramaCloudOptions, useDocsSearch } from '@hanzo/docs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from '@hanzo/docs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\n\nexport interface OramaSearchDialogProps extends SharedProps {\n links?: SearchLink[];\n client: OramaCloudOptions['client'];\n searchOptions?: OramaCloudOptions['params'];\n index?: OramaCloudOptions['index'];\n\n footer?: ReactNode;\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Add the \"Powered by Orama\" label\n *\n * @defaultValue true\n */\n showOrama?: boolean;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\n/**\n * Orama Cloud integration\n */\nexport default function OramaSearchDialog({\n client,\n searchOptions,\n tags = [],\n defaultTag,\n showOrama = true,\n allowClear = false,\n index,\n footer,\n links = [],\n ...props\n}: OramaSearchDialogProps) {\n const { locale } = useI18n();\n const [tag, setTag] = useState(defaultTag);\n const { search, setSearch, query } = useDocsSearch({\n type: 'orama-cloud',\n client,\n index,\n params: searchOptions,\n locale,\n tag,\n });\n\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n const label = showOrama && <Label />;\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n <SearchDialogFooter>\n {tags.length > 0 ? (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n {label}\n </TagsList>\n ) : (\n label\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialogContent>\n </SearchDialog>\n );\n}\n\nfunction Label() {\n return (\n <a\n href=\"https://orama.com\"\n rel=\"noreferrer noopener\"\n className=\"ms-auto text-xs text-fd-muted-foreground\"\n >\n Search powered by Orama\n </a>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAoDA,SAAwB,kBAAkB,EACxC,QACA,eACA,OAAO,EAAE,EACT,YACA,YAAY,MACZ,aAAa,OACb,OACA,QACA,QAAQ,EAAE,EACV,GAAG,SACsB;CACzB,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,QAAQ,WAAW,UAAU,cAAc;EACjD,MAAM;EACN;EACA;EACA,QAAQ;EACR;EACA;EACD,CAAC;CAEF,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;CAEF,MAAM,QAAQ,aAAa,oBAAC,UAAQ;AAEpC,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;aACvF,oBAAC,wBAAsB,EACvB,qBAAC;GACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF;GACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB;GAC/E,qBAAC,iCACE,KAAK,SAAS,IACb,qBAAC;IAAc;IAAK,aAAa;IAAoB;eAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf,EACD;KACQ,GAEX,OAED,UACkB;MACD;GACT;;AAInB,SAAS,QAAQ;AACf,QACE,oBAAC;EACC,MAAK;EACL,KAAI;EACJ,WAAU;YACX;GAEG"}
|