@fumadocs/base-ui 16.11.5 → 16.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/generated/docs.css +1 -1
- package/css/generated/flux.css +1 -1
- package/css/generated/glass.css +1 -0
- package/css/generated/home.css +1 -1
- package/css/generated/notebook.css +1 -1
- package/css/generated/shared.css +1 -1
- package/css/lib/base.css +2 -1
- package/css/preset.css +0 -1
- package/dist/.translations/index.d.ts +6 -0
- package/dist/.translations/keys.js +6 -0
- package/dist/components/image-zoom.d.ts +2 -2
- package/dist/components/image-zoom.js +1 -1
- package/dist/components/sidebar/tabs/dropdown.d.ts +2 -3
- package/dist/components/sidebar/tabs/dropdown.js +9 -4
- package/dist/components/tabs.js +0 -1
- package/dist/components/toc/index.js +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/popover.js +1 -1
- package/dist/components/ui/tabs.d.ts +1 -1
- package/dist/components/ui/tabs.js +36 -11
- package/dist/layouts/docs/client.js +10 -5
- package/dist/layouts/docs/page/slots/toc.js +17 -11
- package/dist/layouts/docs/slots/sidebar.js +8 -2
- package/dist/layouts/flux/index.d.ts +1 -1
- package/dist/layouts/flux/index.js +2 -2
- package/dist/layouts/flux/page/slots/toc.js +7 -4
- package/dist/layouts/flux/slots/tab-dropdown.js +8 -2
- package/dist/layouts/glass/index.d.ts +41 -0
- package/dist/layouts/glass/index.js +70 -0
- package/dist/layouts/glass/layout-tabs.js +53 -0
- package/dist/layouts/glass/page/index.d.ts +31 -0
- package/dist/layouts/glass/page/index.js +92 -0
- package/dist/layouts/glass/page/slots/breadcrumb.d.ts +7 -0
- package/dist/layouts/glass/page/slots/breadcrumb.js +44 -0
- package/dist/layouts/glass/page/slots/footer.d.ts +16 -0
- package/dist/layouts/glass/page/slots/footer.js +56 -0
- package/dist/layouts/glass/page/slots/toc.d.ts +19 -0
- package/dist/layouts/glass/page/slots/toc.js +108 -0
- package/dist/layouts/glass/slots/header.d.ts +6 -0
- package/dist/layouts/glass/slots/header.js +73 -0
- package/dist/layouts/glass/slots/sidebar.d.ts +23 -0
- package/dist/layouts/glass/slots/sidebar.js +294 -0
- package/dist/layouts/home/index.js +2 -2
- package/dist/layouts/home/slots/header.d.ts +1 -1
- package/dist/layouts/home/slots/header.js +1 -0
- package/dist/layouts/notebook/client.js +2 -2
- package/dist/layouts/notebook/page/slots/toc.js +17 -11
- package/dist/layouts/notebook/slots/header.js +8 -2
- package/dist/layouts/notebook/slots/sidebar.js +8 -2
- package/dist/layouts/shared/client.d.ts +1 -1
- package/dist/layouts/shared/client.js +1 -1
- package/dist/layouts/shared/index.d.ts +7 -6
- package/dist/layouts/shared/index.js +5 -3
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/controlled.d.ts +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/controlled.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/uncontrolled.d.ts +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/uncontrolled.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/adjust-svg-ids.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/compute-positioned-style.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/element-tests.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-div-img-style.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-img-alt.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-img-object-fit-style.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-img-regular-style.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-img-src.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-modal-img-transform.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-scale.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-style-ghost.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-style-modal-img.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/get-target-dimension.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/parse-position.js +1 -1
- package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/utils/test-has-scalable-src.js +1 -1
- package/dist/style.css +985 -885
- package/package.json +18 -11
- /package/dist/node_modules/.pnpm/{react-medium-image-zoom@5.4.8_react-dom@19.2.7_react@19.2.7__react@19.2.7 → react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8}/node_modules/react-medium-image-zoom/dist/index.d.ts +0 -0
package/css/generated/docs.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@source inline("!header !showItem *:col-start-1 *:my-auto *:pointer-events-auto *:rounded-md *:row-start-1 *:w-(--fd-sidebar-width) --fd-docs-height --fd-docs-row-1 --fd-docs-row-2 --fd-docs-row-3 --fd-header-height --fd-layout-width --fd-sidebar-col --fd-sidebar-width --fd-toc-popover-height --fd-toc-width -mx-1 -translate-x-(--fd-sidebar-width) -translate-y-full [&_svg]:shrink-0 [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-sidebar-width:0px] [--fd-toc-popover-height:0px] [--fd-toc-width:0px] [grid-area:header] [grid-area:main] [grid-area:sidebar] [grid-area:toc-popover] [grid-area:toc] after aria-valuemax aria-valuemin aria-valuenow article attribute available backdrop-blur-sm before before:absolute before:bg-fd-border before:content-[''] before:inset-s-2.5 before:inset-y-1 before:w-px bg-fd-background/80 border-b-2 border-e border-e-0 border-fd-primary border-y-0 breadcrumb breadcrumbEnabled circleProps circumference clerk click collapsing containerProps createLinkItemRenderer data-[active=true]:before:absolute data-[active=true]:before:bg-fd-primary data-[active=true]:before:content-[''] data-[active=true]:before:inset-s-2.5 data-[active=true]:before:inset-y-2.5 data-[active=true]:before:w-px data-[active=true]:bg-fd-primary/10 data-[active=true]:hover:transition-colors data-[column-changed=true]:transition-[grid-template-columns] data-[state=closed]:animate-fd-fade-out data-[state=closed]:animate-fd-sidebar-out data-[state=open]:animate-fd-fade-in data-[state=open]:animate-fd-sidebar-in data-[transparent=false]:bg-fd-background/80 data-column-changed data-full data-hovered data-sidebar-collapsed data-sidebar-panel data-sidebar-placeholder data-toc-popover data-toc-popover-content data-toc-popover-trigger data-transparent defaultSlots desktop duration-250 edit flex-row-reverse font-semibold footer footerEnabled footerList fumadocs-core/breadcrumb gap-2.5 gap-6 getBreadcrumbItemsFromPath grid-cols-1 gridTemplate h-(--fd-header-height) h-(--fd-toc-popover-height) h-10 h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] hideIfDisabled hover:bg-fd-accent/50 hover:opacity-80 hover:text-fd-accent-foreground/80 hover:transition-none iconLinks including information inset-e-0 inset-s-4 inset-y-2 instant isCollapseChanged isNavTransparent isTop items-end justify-start layout-level layoutTabs linkItems max max-h-[50vh] max-md:hidden max-md:layout:[--fd-header-height:--spacing(14)] max-w-[1168px] max-w-[380px] max-w-[900px] max-xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)] mb-4 mb-8 mb-auto md:layout:[--fd-sidebar-width:268px] md:pt-8 md:px-6 min min-h-(--fd-docs-height) mx-0.5 navEnabled navTransparentMode nd-docs-layout nd-page nd-subnav nd-toc nd-toc-placeholder no normalizedValue onClickItem onClickOutside
|
|
1
|
+
@source inline("!header !showItem *:col-start-1 *:my-auto *:pointer-events-auto *:rounded-md *:row-start-1 *:w-(--fd-sidebar-width) --fd-docs-height --fd-docs-row-1 --fd-docs-row-2 --fd-docs-row-3 --fd-header-height --fd-layout-width --fd-sidebar-col --fd-sidebar-width --fd-toc-popover-height --fd-toc-width -mx-1 -translate-x-(--fd-sidebar-width) -translate-y-full [&_svg]:shrink-0 [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-sidebar-width:0px] [--fd-toc-popover-height:0px] [--fd-toc-width:0px] [grid-area:header] [grid-area:main] [grid-area:sidebar] [grid-area:toc-popover] [grid-area:toc] after aria-valuemax aria-valuemin aria-valuenow article attribute available backdrop-blur-sm before before:absolute before:bg-fd-border before:content-[''] before:inset-s-2.5 before:inset-y-1 before:w-px bg-fd-background/80 border-b-2 border-e border-e-0 border-fd-primary border-y-0 breadcrumb breadcrumbEnabled circleProps circumference clerk click collapsing containerProps createLinkItemRenderer data-[active=true]:before:absolute data-[active=true]:before:bg-fd-primary data-[active=true]:before:content-[''] data-[active=true]:before:inset-s-2.5 data-[active=true]:before:inset-y-2.5 data-[active=true]:before:w-px data-[active=true]:bg-fd-primary/10 data-[active=true]:hover:transition-colors data-[column-changed=true]:transition-[grid-template-columns] data-[state=closed]:animate-fd-fade-out data-[state=closed]:animate-fd-sidebar-out data-[state=open]:animate-fd-fade-in data-[state=open]:animate-fd-sidebar-in data-[transparent=false]:bg-fd-background/80 data-column-changed data-full data-hovered data-sidebar-collapsed data-sidebar-panel data-sidebar-placeholder data-toc-popover data-toc-popover-content data-toc-popover-trigger data-transparent defaultSlots desktop duration-250 edit flex-row-reverse font-semibold footer footerEnabled footerList fumadocs-core/breadcrumb gap-2.5 gap-6 getBreadcrumbItemsFromPath grid-cols-1 gridTemplate h-(--fd-header-height) h-(--fd-toc-popover-height) h-10 h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] hideIfDisabled hover:bg-fd-accent/50 hover:opacity-80 hover:text-fd-accent-foreground/80 hover:transition-none iconLinks including information inset-e-0 inset-s-4 inset-y-2 instant isCollapseChanged isNavTransparent isTop items-end justify-start layout-level layoutTabs linkItems max max-h-[50vh] max-md:hidden max-md:layout:[--fd-header-height:--spacing(14)] max-w-[1168px] max-w-[380px] max-w-[900px] max-xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)] mb-4 mb-8 mb-auto md:layout:[--fd-sidebar-width:268px] md:pt-8 md:px-6 min min-h-(--fd-docs-height) ms-px mx-0.5 navEnabled navTransparentMode nd-docs-layout nd-page nd-subnav nd-toc nd-toc-placeholder no normalizedValue onClickItem onClickOutside p-0 pagination pb-1.5 pe-0 pe-2.5 pe-4 pointer-events-none popover previousCollapsed progress progressbar provided pt-0.5 pt-12 pt-2 pt-3 px-6 py-0 py-6 radius restSvgProps rotate-180 rounded-none rtl:-translate-x-2 rtl:translate-x-full selectedIdx setDate setPreviousCollapsed showItem sidebarEnabled sidebarProps single size-4.5 stroke-current/25 strokeDasharray strokeDashoffset tabMode tableOfContent tableOfContentPopover text-[1.75em] text-end text-fd-foreground timezone toc-popover toc-title tocEnabled tocPopover tocPopoverEnabled tocPopoverProps tocProps top-(--fd-docs-row-1) top-(--fd-docs-row-2) top-[calc(--spacing(4)+var(--fd-docs-row-3))] transition-[opacity,translate,color] transition-[opacity,translate] transition-[width,inset-block,translate,background-color] translate-x-2 translate-y-full transparentMode typography under unlisted updated useBaseSlots useDocsLayout useDocsPage useFooterItems useIsScrollTop useTreeContext w-(--fd-sidebar-width) w-(--fd-toc-width) w-4 w-[85%] xl:hidden xl:layout:[--fd-toc-width:268px] xl:pt-14 xl:px-8 z-10 z-20 z-30");
|
package/css/generated/flux.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@source inline("!enabled !header *:rounded-lg ---spacing --removed-body-scroll-bar-size -mx-1 [&_svg]:shrink-0 [grid-area:main] after animate animate-fd-fade-in aria-valuemax aria-valuemin aria-valuenow article available backdrop-blur-md backdrop-blur-sm before before:absolute before:bg-fd-border before:content-[''] before:inset-y-1 before:start-2.5 before:w-px bg-fd-background/60 bg-fd-popover/80 border-x bottom-26 breadcrumb breadcrumbEnabled circleProps circumference clerk click containerProps createLinkItemRenderer createPortal data-[active=true]:before:absolute data-[active=true]:before:bg-fd-primary data-[active=true]:before:content-[''] data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5 data-[active=true]:before:w-px data-[active=true]:bg-fd-primary/10 data-[active=true]:hover:transition-colors data-full data-toc-popover data-toc-popover-content data-toc-popover-trigger defaultChildren defaultSlots defaultTabs duration ease edit exit flex-row-reverse flux-layout-slot font-semibold footer footerEnabled footerList fumadocs-core/breadcrumb gap-2.5 getBreadcrumbItemsFromPath grid-cols-1 h-8.5 h-9 head hide hideIfDisabled hover:bg-fd-accent/50 hover:opacity-80 hover:text-fd-accent-foreground/80 hover:transition-none including information initial inset-x-0 layout-level lg:text-sm linkItems mask-[linear-gradient(to_bottom,transparent,white_--spacing(14),white_calc(100%---spacing(14)),transparent)] max max-h-[50vh] max-w-[1200px] max-w-[900px] max-w-svw mb-4 mb-8 mb-auto md:pt-8 md:px-6 min min-h-11 motion motion/react ms-1 nd-flux-layout nd-page no normalizedValue onAnimationComplete opacity overflow-
|
|
1
|
+
@source inline("!enabled !header *:rounded-lg ---spacing --removed-body-scroll-bar-size -mx-1 [&_svg]:shrink-0 [grid-area:main] after animate animate-fd-fade-in aria-valuemax aria-valuemin aria-valuenow article available backdrop-blur-md backdrop-blur-sm before before:absolute before:bg-fd-border before:content-[''] before:inset-y-1 before:start-2.5 before:w-px bg-fd-background/60 bg-fd-popover/80 border-x bottom-26 breadcrumb breadcrumbEnabled circleProps circumference clerk click containerProps createLinkItemRenderer createPortal data-[active=true]:before:absolute data-[active=true]:before:bg-fd-primary data-[active=true]:before:content-[''] data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5 data-[active=true]:before:w-px data-[active=true]:bg-fd-primary/10 data-[active=true]:hover:transition-colors data-full data-toc-popover data-toc-popover-content data-toc-popover-trigger defaultChildren defaultSlots defaultTabs duration ease edit exit flex-row-reverse flux-layout-slot font-semibold footer footerEnabled footerList fumadocs-core/breadcrumb gap-2.5 getBreadcrumbItemsFromPath grid-cols-1 h-8.5 h-9 head hide hideIfDisabled hover:bg-fd-accent/50 hover:opacity-80 hover:text-fd-accent-foreground/80 hover:transition-none including information initial inset-x-0 layout-level lg:text-sm linkItems mask-[linear-gradient(to_bottom,transparent,white_--spacing(14),white_calc(100%---spacing(14)),transparent)] max max-h-[50vh] max-w-[1200px] max-w-[900px] max-w-svw mb-4 mb-8 mb-auto md:pt-8 md:px-6 min min-h-11 motion motion/react ms-1 ms-px nd-flux-layout nd-page no normalizedValue onAnimationComplete opacity overflow-y-hidden pagination pb-24 pointer-events-none popLayout pr-(--removed-body-scroll-bar-size,0) progress progressbar provided ps-2.5 py-10 py-16 py-6 radius react-remove-scroll renderNavigationPanel replace restSvgProps rotate-180 scale selectedIdx setBlockScroll setContainer setDate sidebarEnabled sidebarProps single size-4.5 sm:border sm:bottom-6 sm:max-w-[380px] sm:max-w-[400px] sm:p-1 sm:rounded-2xl spanProps start stroke-current/25 strokeDasharray strokeDashoffset tabDropdown tableOfContent text-[1.75em] text-end timezone tocEnabled tocProps tool transition translate-x-[calc(-50%-var(--removed-body-scroll-bar-size,0px)/2)] translateY typography under updated useBaseSlots useDocsPage useFluxLayout useFooterItems w-[calc(100%-var(--removed-body-scroll-bar-size,0px))] wait xl:pt-14 xl:px-8 z-30");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@source inline("!footer ---spacing --bleed --drawer-swipe-movement-x --drawer-swipe-progress --drawer-swipe-strength --fd-left-width --fd-main-width --fd-right-width --row --viewport-padding --width -me-1.5 -mr-(--bleed) -mt-1.5 -mx-1 -translate-x-[280px] @base-ui/react @default @sm:max-w-[200px] [--bleed:3rem] [--fd-left-width:0px] [--fd-main-width:900px] [--fd-right-width:0px] [--row:calc(3*var(--spacing))] [--row:calc(6*var(--spacing))] [--viewport-padding:0px] [grid-area:left-margin/left-margin/right/right] [grid-area:left] [grid-area:main] [grid-area:right] [mask-image:linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent))] [mask-image:radial-gradient(circle_at_center_right,white,white_200px,transparent_500px)] [transform:translateX(var(--drawer-swipe-movement-x))] after aiChat article autoScroll available backdrop-blur-sm bar baseVariants be because before behind bg-fd-muted-foreground/50 bg-fd-popover/80 bleed bug but chat clientX contentProps could data-[active=false]:hover:text-fd-accent-foreground data-ending-style:[transform:translateX(calc(100%-var(--bleed)+var(--viewport-padding)+2px))] data-ending-style:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-fd-full data-popup-open:bg-fd-accent data-starting-style:[transform:translateX(calc(100%-var(--bleed)+var(--viewport-padding)+2px))] data-swiping:duration-0 data-swiping:select-none defaultSlots defaultTabs drawerHandle duration-300 duration-450 ease-[cubic-bezier(0.32,0.72,0,1)] edit exitTimerRef fact fd-glass-layout flex-row-reverse font-semibold footer footerList fumadocs-core/breadcrumb get getBreadcrumbItemsFromPath grid-cols-1 gridTemplate gridTemplateRows group-data-[active=true]:bg-fd-primary h-0 h-6 h-8 h-[calc(100dvh---spacing(4))] hover hover:decoration-dashed hover:decoration-fd-muted-foreground hover:opacity-80 hover:underline hover:underline-offset-4 inAnimation including information innerWidth interrupted isLayoutTabActive itemTriggerVariants items-start items-stretch justify-end layout:[--fd-main-width:1200px] leaves left left-margin lg linkItems longer max-md:bg-linear-to-t max-md:bottom-0 max-md:from-fd-background max-md:h-16 max-md:hidden max-md:mt-auto max-md:pb-4 max-md:ps-[calc(--spacing(1.5)-1px)] max-md:w-4 max-w-[calc(100vw-3rem+var(--bleed))] max-xl:-translate-y-1/2 max-xl:bg-fd-popover max-xl:border max-xl:end-1 max-xl:fixed max-xl:grid-cols-[calc(240px---spacing(6))] max-xl:mask-none max-xl:max-h-[calc(100dvh---spacing(32))] max-xl:overflow-clip max-xl:p-3 max-xl:ps-[calc(--spacing(2.5)-1px)] max-xl:rounded-xl max-xl:shadow-md max-xl:text-fd-popover-foreground max-xl:top-1/2 max-xl:w-6 max-xl:w-[240px] mb-8 md:bg-linear-to-b md:from-fd-background md:h-12 md:layout:[--fd-left-width:0px] md:layout:[--fd-left-width:280px] md:layout:[--fd-right-width:12px] md:pb-8 md:pt-16 md:pt-2 md:px-2 md:py-1.5 md:top-0 min-h-dvh min-h-full mt-2 mt-2.5 mt-4 mx-2 my-2 nd-mobile-sidebar nd-toc nd-toc-title no onPointerDown opacity-100 opacity-[calc(1-var(--drawer-swipe-progress))] overflow-y-hidden p-(--viewport-padding) p-0 p-6 pagination pb-16 pb-4 pe-3 pen pointer pointer-events-none pr-(--bleed) prose-sm provided ps-2.5 ps-3 pt-2 pt-4 push px-3.5 reason right right-margin rightIcon scrollbar scrollbar-width scrolling setDate setInAnimation setMobileOpen shadow-fd-background should shouldOpen simplest size-10 size-12 size-3.5! size-4! somehow start supports-[-webkit-touch-callout:none]:[--bleed:0px] supports-[-webkit-touch-callout:none]:[--viewport-padding:0.625rem] supports-[-webkit-touch-callout:none]:absolute supports-[-webkit-touch-callout:none]:border supports-[-webkit-touch-callout:none]:rounded-xl swipeDirection text-[1.75em] text-end text-fd-foreground text-fd-primary/80 timeout timezone touch-auto transition-[background-color,width,height] transition-[grid-template-rows] transition-[opacity,height] transition-[width,height] transition-[width,padding] transitionTimerRef typography under unlisted updated useBaseSlots useFooterItems useGlassLayout w-(--width) w-[360px] w-[calc(280px---spacing(2))] workaround xl:[@media(hover:none)]:[--row:calc(6*var(--spacing))] xl:[@media(hover:none)]:h-6 xl:[@media(hover:none)]:h-px xl:[@media(hover:none)]:opacity-100 xl:[@media(hover:none)]:pointer-events-auto xl:[@media(hover:none)]:w-(--width) xl:flex-row-reverse xl:h-[calc(100dvh---spacing(10))] xl:hidden xl:items-center xl:items-end xl:layout:[--fd-right-width:240px] xl:pe-4 xl:sticky xl:text-end xl:top-10 z-10 z-20 z-30 zero");
|
package/css/generated/home.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@source inline("!isNavTransparent --available-width --duration --easing --fd-layout-width --popup-height --positioner-height -me-1.5 -ms-1.5 -mx-1 [--fd-layout-width:1400px] are backdrop-blur-md been before:absolute before:content-[''] bg-fd-background/80 bg-fd-popover/80 box-border click collisionPadding data-[active=true]:font-medium data-[side=bottom]:before:h-2.5 data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:top-[-10px] data-[side=left]:before:bottom-0 data-[side=left]:before:right-[-10px] data-[side=left]:before:top-0 data-[side=left]:before:w-2.5 data-[side=right]:before:bottom-0 data-[side=right]:before:left-[-10px] data-[side=right]:before:top-0 data-[side=right]:before:w-2.5 data-[side=top]:before:bottom-[-10px] data-[side=top]:before:h-2.5 data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-ending-style:data-[activation-direction=left]:translate-x-1/2 data-ending-style:data-[activation-direction=right]:-translate-x-1/2 data-ending-style:duration-150 data-instant:transition-none data-starting-style:data-[activation-direction=left]:-translate-x-1/2 data-starting-style:data-[activation-direction=right]:translate-x-1/2 defaultVariants duration-(--duration) ease-(--easing) enableHoverToOpen first:ms-0 font-bold font-semibold gap-2.5 grid-cols-1 h-(--popup-height) h-(--positioner-height) h-14 had headerRef hideIfDisabled home hover:text-fd-popover-foreground/50 isNavTransparent isTop its justify-end last:me-0 lg:grid-cols-3 lg:hidden linkItems list-none listRef looking max-lg:hidden max-lg:rounded-b-2xl max-lg:shadow-lg max-sm:hidden max-sm:mt-2 max-w-(--available-width) max-w-(--fd-layout-width) max-w-[240px] max-w-md mb-4 md:grid-cols-2 might mobile mt-4 navEnabled navItemVariants nd-home-layout nd-nav ps-2.5 pt-2 px-6 px-8 rotate-180 sm:flex-row sm:hidden sm:items-center sm:justify-end temporarily text-2xl text-6xl text-base transition-[box-shadow,background-color,border-radius] transition-[opacity,transform,translate] transition-[opacity,width,height] transparentMode under useHomeLayout useIsScrollTop
|
|
1
|
+
@source inline("!isNavTransparent --available-width --duration --easing --fd-layout-width --popup-height --positioner-height -me-1.5 -ms-1.5 -mx-1 [--fd-layout-width:1400px] are asChild backdrop-blur-md been before:absolute before:content-[''] bg-fd-background/80 bg-fd-popover/80 box-border but click collisionPadding data-[active=true]:font-medium data-[side=bottom]:before:h-2.5 data-[side=bottom]:before:left-0 data-[side=bottom]:before:right-0 data-[side=bottom]:before:top-[-10px] data-[side=left]:before:bottom-0 data-[side=left]:before:right-[-10px] data-[side=left]:before:top-0 data-[side=left]:before:w-2.5 data-[side=right]:before:bottom-0 data-[side=right]:before:left-[-10px] data-[side=right]:before:top-0 data-[side=right]:before:w-2.5 data-[side=top]:before:bottom-[-10px] data-[side=top]:before:h-2.5 data-[side=top]:before:left-0 data-[side=top]:before:right-0 data-ending-style:data-[activation-direction=left]:translate-x-1/2 data-ending-style:data-[activation-direction=right]:-translate-x-1/2 data-ending-style:duration-150 data-instant:transition-none data-starting-style:data-[activation-direction=left]:-translate-x-1/2 data-starting-style:data-[activation-direction=right]:translate-x-1/2 defaultVariants defaults does duration-(--duration) ease-(--easing) enableHoverToOpen first:ms-0 font-bold font-semibold gap-2.5 grid-cols-1 h-(--popup-height) h-(--positioner-height) h-14 had headerRef hideIfDisabled home hover:text-fd-popover-foreground/50 isNavTransparent isTop its justify-end last:me-0 lg:grid-cols-3 lg:hidden like linkItems list-none listRef looking max-lg:hidden max-lg:rounded-b-2xl max-lg:shadow-lg max-sm:hidden max-sm:mt-2 max-w-(--available-width) max-w-(--fd-layout-width) max-w-[240px] max-w-md mb-4 md:grid-cols-2 might mobile mt-4 navEnabled navItemVariants nd-home-layout nd-nav ps-2.5 pt-2 px-6 px-8 rotate-180 sm:flex-row sm:hidden sm:items-center sm:justify-end temporarily text-2xl text-6xl text-base transition-[box-shadow,background-color,border-radius] transition-[opacity,transform,translate] transition-[opacity,width,height] transparentMode under useBaseSlots useHomeLayout useIsScrollTop valid");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@source inline("!footer !isSelected !showItem *:col-start-1 *:max-w-[1285px] *:max-w-[900px] *:my-auto *:pointer-events-auto *:row-start-1 *:w-(--fd-sidebar-width) --fd-docs-height --fd-docs-row-1 --fd-docs-row-2 --fd-docs-row-3 --fd-header-height --fd-layout-width --fd-sidebar-col --fd-sidebar-width --fd-toc-popover-height --fd-toc-width -me-1.5 -ms-1.5 -mx-1 -translate-x-(--fd-sidebar-width) -translate-y-full [&_svg]:shrink-0 [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-sidebar-width:0px] [--fd-toc-popover-height:0px] [--fd-toc-width:0px] [grid-area:header] [grid-area:main] [grid-area:sidebar] [grid-area:toc-popover] [grid-area:toc] after aria-valuemax aria-valuemin aria-valuenow article attribute auto-cols-auto auto-rows-auto available backdrop-blur-sm before before:absolute before:bg-fd-border before:content-[''] before:inset-y-1 before:start-2.5 before:w-px bg-fd-background/80 border-b-2 border-e border-fd-primary breadcrumb breadcrumbEnabled circleProps circumference clerk click collapseTrigger collapsing containerProps createLinkItemRenderer data-[active=true]:before:absolute data-[active=true]:before:bg-fd-primary data-[active=true]:before:content-[''] data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5 data-[active=true]:before:w-px data-[active=true]:bg-fd-primary/10 data-[active=true]:hover:transition-colors data-[collapsed=false]:hidden data-[column-changed=true]:transition-[grid-template-columns] data-[state=closed]:animate-fd-fade-out data-[state=closed]:animate-fd-sidebar-out data-[state=open]:animate-fd-fade-in data-[state=open]:animate-fd-sidebar-in data-[transparent=false]:bg-fd-background/80 data-column-changed data-full data-header-body data-header-tabs data-hovered data-sidebar-collapsed data-sidebar-placeholder data-toc-popover data-toc-popover-content data-toc-popover-trigger data-transparent defaultSlots delaySetOpen desktop duration-250 edit end-0 flex-row-reverse font-semibold footer footerEnabled footerList freezeUntil fumadocs-core/breadcrumb gap-2.5 gap-6 getBreadcrumbItemsFromPath grid-cols-1 gridTemplate h-(--fd-toc-popover-height) h-10 h-14 h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-2))] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-3))] has-data-[active=true]:text-fd-primary has-data-[collapsed=true]:md:flex hideIfDisabled hover:bg-fd-accent/50 hover:opacity-80 hover:text-fd-accent-foreground/80 hover:transition-none hoverDelay iconLinks including information inset-y-2 instant isCollapseChanged isLayoutTabActive isNavTransparent isSelected isTop items-end justify-end layout-level layout:[--fd-header-height:--spacing(14)] lg:hidden lg:layout:[--fd-header-height:--spacing(24)] linkItems max max-h-[50vh] max-lg:flex max-lg:hidden max-md:flex max-md:hidden max-w-[240px] max-w-[380px] max-w-sm max-xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)] maxTouchPoints mb-4 mb-8 mb-auto md:gap-2 md:layout:[--fd-sidebar-width:268px] md:pt-8 md:px-6 min min-h-(--fd-docs-height) mt-px mx-0.5 navEnabled navMode navTransparentMode navbar nd-notebook-layout nd-page nd-subnav nd-toc nd-toc-placeholder no normalizedValue onClickItem onClickOutside ontouchstart
|
|
1
|
+
@source inline("!footer !isSelected !showItem *:col-start-1 *:max-w-[1285px] *:max-w-[900px] *:my-auto *:pointer-events-auto *:row-start-1 *:w-(--fd-sidebar-width) --fd-docs-height --fd-docs-row-1 --fd-docs-row-2 --fd-docs-row-3 --fd-header-height --fd-layout-width --fd-sidebar-col --fd-sidebar-width --fd-toc-popover-height --fd-toc-width -me-1.5 -ms-1.5 -mx-1 -translate-x-(--fd-sidebar-width) -translate-y-full [&_svg]:shrink-0 [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-sidebar-width:0px] [--fd-toc-popover-height:0px] [--fd-toc-width:0px] [grid-area:header] [grid-area:main] [grid-area:sidebar] [grid-area:toc-popover] [grid-area:toc] after aria-valuemax aria-valuemin aria-valuenow article attribute auto-cols-auto auto-rows-auto available backdrop-blur-sm before before:absolute before:bg-fd-border before:content-[''] before:inset-y-1 before:start-2.5 before:w-px bg-fd-background/80 border-b-2 border-e border-fd-primary breadcrumb breadcrumbEnabled circleProps circumference clerk click collapseTrigger collapsing containerProps createLinkItemRenderer data-[active=true]:before:absolute data-[active=true]:before:bg-fd-primary data-[active=true]:before:content-[''] data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5 data-[active=true]:before:w-px data-[active=true]:bg-fd-primary/10 data-[active=true]:hover:transition-colors data-[collapsed=false]:hidden data-[column-changed=true]:transition-[grid-template-columns] data-[state=closed]:animate-fd-fade-out data-[state=closed]:animate-fd-sidebar-out data-[state=open]:animate-fd-fade-in data-[state=open]:animate-fd-sidebar-in data-[transparent=false]:bg-fd-background/80 data-column-changed data-full data-header-body data-header-tabs data-hovered data-sidebar-collapsed data-sidebar-placeholder data-toc-popover data-toc-popover-content data-toc-popover-trigger data-transparent defaultSlots delaySetOpen desktop duration-250 edit end-0 flex-row-reverse font-semibold footer footerEnabled footerList freezeUntil fumadocs-core/breadcrumb gap-2.5 gap-6 getBreadcrumbItemsFromPath grid-cols-1 gridTemplate h-(--fd-toc-popover-height) h-10 h-14 h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-2))] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-3))] has-data-[active=true]:text-fd-primary has-data-[collapsed=true]:md:flex hideIfDisabled hover:bg-fd-accent/50 hover:opacity-80 hover:text-fd-accent-foreground/80 hover:transition-none hoverDelay iconLinks including information inset-y-2 instant isCollapseChanged isLayoutTabActive isNavTransparent isSelected isTop items-end justify-end layout-level layout:[--fd-header-height:--spacing(14)] lg:hidden lg:layout:[--fd-header-height:--spacing(24)] linkItems max max-h-[50vh] max-lg:flex max-lg:hidden max-md:flex max-md:hidden max-w-[240px] max-w-[380px] max-w-sm max-xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)] maxTouchPoints mb-4 mb-8 mb-auto md:gap-2 md:layout:[--fd-sidebar-width:268px] md:pt-8 md:px-6 min min-h-(--fd-docs-height) ms-px mt-px mx-0.5 navEnabled navMode navTransparentMode navbar nd-notebook-layout nd-page nd-subnav nd-toc nd-toc-placeholder no normalizedValue onClickItem onClickOutside ontouchstart pageCol pagination pb-1.5 pe-4 pointer-events-none popover previousCollapsed progress progressbar provided ps-2.5 pt-0.5 pt-12 pt-2 px-6 py-6 radius resolvedTabs restSvgProps rotate-180 rtl:-translate-x-2 rtl:translate-x-full selectedIdx setDate setPreviousCollapsed showItem showLayoutTabs sidebarCollapsible sidebarProps single size-4.5 start-0 stroke-current/25 strokeDasharray strokeDashoffset tabMode tableOfContent tableOfContentPopover text-[1.75em] text-end text-fd-foreground timeoutRef timezone toc-popover toc-title tocEnabled tocPopover tocPopoverEnabled tocPopoverProps tocProps top-(--fd-docs-row-1) top-(--fd-docs-row-2) top-(--fd-docs-row-3) transition-[opacity,translate,color] transition-[opacity,translate] transition-[width,inset-block,translate,background-color] translate-x-2 translate-y-full transparentMode typography under unlisted updated useBaseSlots useDocsPage useFooterItems useIsScrollTop useNotebookLayout w-(--fd-sidebar-width) w-(--fd-toc-width) w-4 w-[85%] xl:hidden xl:layout:[--fd-toc-width:268px] xl:pt-14 xl:px-8 z-10 z-20");
|
package/css/generated/shared.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@source inline("!collapsed !isActive !items !nested !open !title *:border-b *:data-[empty=true]:border-b-0 *:flex *:flex-col *:has-[+:last-child[data-empty=true]]:border-b-0 *:last:border-b-0 *:rounded-full --accordion-panel-height --anchor-width --available-height --callout-color --collapsible-panel-height --color-fd- --color-fd-muted --fd-animated-height --fd-banner-height --offset-distance --opacity --padding-right --shiki-dark-bg --shiki-light-bg --spacing --track-bottom --track-top --transform-origin -mb-px -me-0.5 -me-2 -mx-px -rotate-90 -top-1.5 -translate-x-1/2 -translate-y-1/2 -z-1 @container @defaultValue @deprecated @fuma-translate/react @keyframes @max-lg:col-span-full @max-xl:hidden @param @ts-expect-error @typescript-eslint/no-namespace [&>figure:only-child]:-m-4 [&>figure:only-child]:border-none [&[hidden]:not([hidden='until-found'])]:hidden [&_svg]:size-3.5 [&_svg]:size-4 [&_svg]:size-4.5 [&_svg]:size-5 [&_svg]:size-full [&_svg]:text-fd-muted-foreground [offset-distance:var(--offset-distance,0)] [scrollbar-width:none] a abcdefghijklmnopqrstuvwxyz234567 about absolute accordion action actions active add addEventListener advanced algoliaClient align alignItems alignmentBaseline all allowClear allowCopy allowDangerousHtml alphabet always an anchor and animate-pulse animation another application/json areaRef aria-controls aria-describedby aria-expanded aria-label aria-selected as aside ask assume assumes async at auto await backdrop-blur-lg backdrop-blur-xs background background-position backgroundColor backgroundImage backgroundSize backward banner basePath baseProps baseSlots baseUrl based behaviour bg-(--callout-color)/50 bg-(--shiki-light-bg) bg-fd-accent bg-fd-background bg-fd-border bg-fd-card bg-fd-muted bg-fd-overlay bg-fd-popover bg-fd-popover/60 bg-fd-primary bg-fd-primary/10 bg-fd-secondary bg-fd-secondary/50 bg-transparent bind bitsLeft black block blocks boolean border border-b border-l border-none border-s border-t border-transparent borderBottom bottom bottom-0 bottom-1.5 bound boundary buffer bundle button buttonVariants by cache cached can case center central change changeLayout checked child children chooseLanguage class-variance-authority className clear client client-side clientHeight clientWidth clipPath clone close closeOnRedirect closed cn code col-span-full collapsed collapsible collection color colors column com compact compat compatibility component components composedRef computed config const container containerRef content contents context controlled/uncontrolled copy core counterSet createContext createMarkdownRenderer createRelativeLink css ctx current currentColor custom customize cva cx cy d dangerouslySetInnerHTML dark dark:bg-(--shiki-dark-bg) dashed data data-[active=true]:text-fd-primary data-[active]:border-fd-primary data-[active]:text-fd-primary data-[closed]:animate-fd-popover-out data-[inactive]:hidden data-[open]:animate-fd-popover-in data-[popup-open]:bg-fd-accent data-[popup-open]:text-fd-accent-foreground data-accordion-value data-active data-card data-checked data-checked:text-fd-accent-foreground data-closed:animate-fd-dialog-out data-closed:animate-fd-fade-out data-collapsed data-empty data-ending-style:h-0 data-ending-style:opacity-0 data-fd-search-dialog-input data-icon data-line-numbers data-line-numbers-start data-open:animate-fd-dialog-in data-open:animate-fd-fade-in data-open:bg-fd-accent data-open:text-fd-accent-foreground data-search data-search-full data-starting-style:h-0 data-starting-style:opacity-0 data-state data-theme-toggle date debounced declare default defaultColor defaultFormatter defaultIndex defaultItems defaultMdxComponents defaultOpen defaultOpenLevel defaultShikiFactory defaultTransform defaultUrl defaultValue defineI18nUI defined delay delayMs depends deprecated depth description detect dialog dialogHandle dir disabled disabled:opacity-50 disabled:pointer-events-none display displayName displayed distance div divide-fd-border divide-x divide-y documented dominantBaseline don drawer duration-100 duration-200 duration-400 ease-out element else empty empty:hidden empty:mb-0 enabled encoded endIdx endpoint env environment equal error escape eslint-disable-next-line event export extends external extraProps false fd-moving-banner fd-scroll-container fd-search-dialog-content fd-step fd-steps fetch fetchClient fetchOptions field fieldVariants figure file fill fill-(--callout-color) fill-fd-muted fill-fd-muted-foreground fill-fd-primary fill-fd-primary-foreground filter filters finally first:mt-0 fixed flex flex-1 flex-col flex-row flex-wrap flexDirection flushSync focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring focus-visible:ring-inset folder folders font-medium font-mono fontSize fontWeight for forks formatter formatterOptions found fragment free from full fumadocs fumadocs-core/framework fumadocs-core/highlight fumadocs-core/i18n fumadocs-core/link fumadocs-core/page-tree fumadocs-core/search fumadocs-core/source fumadocs-core/toc function gap gap-0.5 gap-1 gap-1.5 gap-2 gap-3 gap-3.5 gap-4 gap-y-4 generated ghost github-dark github-light githubUrl global globalKey grid grid-cols-2 grid-cols-[1fr_3fr] group group-data-[open]:rotate-180 group-data-active:bg-fd-primary group-data-open:rotate-180 group-data-panel-open:rotate-90 group-hover/heading:opacity-100 group/heading groupListeners guides h h-(--accordion-panel-height) h-(--collapsible-panel-height) h-(--fd-animated-height) h-1.5 h-9.5 h-[calc(100%+--spacing(1.5))] h-full h-px h1 h2 h3 h4 h5 h6 handle handleThemeChange has-focus-visible:bg-fd-accent hash hast have header headers heading height hidden highlight highlighter hints horizontal hover:bg-fd-accent hover:bg-fd-accent/80 hover:bg-fd-primary/80 hover:text-fd-accent-foreground hovered hovering href html i i18n i18nProvider icon icon-sm icon-xs iconClass id idea idx if if-needed ignore img import in inPre inTab index infinite info initialFocus inline inline-flex input inputType inset-0 inset-e-2 inset-s-0 inset-s-3 inset-s-6 inset-x-2 inset-y-0 instanceof instead integration interface intersect invisible is isActive isFirst isLast isLoading isTabActive isUp it item itemLineLengths itemVariants items items-center js justify-between justify-center keepBackground keepMounted key keydown keys l l0 l1 l2 label lang language languageSelect languages last:rounded-b-xl layer layout leading-none leaving left-0 left-1/2 length let level light light-dark light-dark-system line line-through linear link links list listener listeners localRef locale localeTranslations locales lower ltr lucide lucide-book lucide-book-icon lucide-react made main make mapped margin marginTop mark markdownUrl marked mask-[linear-gradient(to_bottom,transparent,white_12px,white_calc(100%-12px),transparent)] mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] mask-[linear-gradient(to_bottom,white,white_30px,transparent_80px)] maskComposite maskImage max-h-(--available-height) max-h-20 max-h-[460px] max-h-[600px] max-md:bg-fd-secondary max-md:border max-md:p-1.5 max-md:rounded-md max-w-[1400px] max-w-[98vw] max-w-full max-w-screen-sm max-width maximumFractionDigits mb-1 mb-1.5 mb-2 md:hidden md:mb-auto md:size-5 md:top-[calc(50%-250px)] mdComponents mdRenderer mdx/types.js me-1 me-2 me-auto menu menuItems mergeRefs message middle min-h-0 min-w-0 min-w-[240px] min-w-fit min-w-full mode module mounted mouse ms-2 ms-auto ms-px mt-1 mt-6 must mx-auto my-0 my-0! my-0.5 my-4 my-6 my-auto n name namespace nav navItems navTitle navigate navigation nd-copy-ignore nd-sidebar nd-sidebar-mobile nearest needed nested nested-url never new newTheme next next-themes next/og node nodes none noopener noreferrer normal normalize not not-last:mb-2 not-prose notation note now null number numbers object observer of offsetPath offsetTop on onAnimationEnd onChange onClick onCopy onKey onOpenChange onOpenChangeCallback onPointerEnter onPointerLeave onPointerMove onPrint onSearchChange onSearchChangeCallback onSelect onSelectCallback onTagChange onTagChangeCallback onValueChange only opacity-(--opacity,0) opacity-0 open option optional options or oramaCloudClient order orientation origin-(--transform-origin) origin-center original other out outline outline-none output overflow-auto overflow-hidden overflow-x-auto overflow-y-auto override overscroll-contain own owner p p-0.5 p-1 p-1.5 p-2 p-3 p-4 padding paddingBottom paddingInlineStart page pageUrl parameters params parentId pass passed path pathname paths pb-0 pb-2 pe-2 performing persist persistent placeholder placeholder:text-fd-muted-foreground please pointerType positions possible powered pre pre-rendering prefetch prev preventScroll previous previousRef primary primaryColor primaryTextColor promise promises prompt prop props prose prose-no-margin provide provider ps-1 ps-2 ps-4 ps-8 pt-0 pure px px-0.5 px-1 px-1.5 px-2 px-2.5 px-3 px-4 px-px py-0.5 py-1 py-1.5 py-12 py-2 py-2.5 py-3 py-3.5 q query querySelector questions rainbow rainbowColors raw re-create react react-dom react-hooks/rules-of-hooks react-medium-image-zoom ref referenced region registering rehype-raw rehypeCustomElements rehypePlugins rehypeRaw rel relative remarkRehypeOptions remove removeEventListener render renderHighlights renderMarkdown repo repository required resolve resolved resolvedTheme response rest result results return revalidate right-2 role root rootRef round rounded-2xl rounded-[inherit] rounded-full rounded-lg rounded-md rounded-sm rounded-xl router row rtl:-scale-x-100 rtl:rotate-180 rtl:rotate-90 s scroll scroll-into-view-if-needed scroll-m-20 scroll-m-24 scroll-m-28 scroll-m-4 scrollIntoView scrollMode search searchOptions searchToggle searchToggleEnabled searchTrigger secondary see select-none selected separate separator server set setActive setCollapsed setHidden setHover setLoading setMounted setOpen setSvg setTag setValue shadow-2xl shadow-lg shadow-md shadow-sm shiki shikiOptions shortcuts show showAlgolia showOrama shrink-0 side sideOffset sidebar signature simple since site size size-1 size-3 size-3.5 size-4 size-5 size-6.5 size-9 size-full sizes slots sm solid some source space span specific src stars startIdx state static sticky still str string stroke stroke-fd-foreground/10 stroke-fd-primary strokeLinecap strokeLinejoin strokeWidth strong style styles success supported supposed sure svg switch switcher system t tab tabIndex table tabs tabsRef tag tagName tags target text text-(--callout-color) text-[0.8125rem] text-[0.9375rem] text-center text-fd-accent-foreground text-fd-card text-fd-card-foreground text-fd-foreground/80 text-fd-muted-foreground text-fd-muted-foreground/50 text-fd-popover-foreground text-fd-popover-foreground/80 text-fd-primary text-fd-primary-foreground text-fd-primary/50 text-fd-secondary-foreground text-lg text-nowrap text-sm text-start text-xs text/plain textAnchor textContent the their theme themeAriaLabels themeSwitch themeSwitchEnabled themes this throw thumbBox tier timerRef tip title to toc tocInfo toolbar top top-0 top-1/2 top-2 top-2.5 top-4 touch transform transition-[clip-path] transition-[height,opacity] transition-[height] transition-[opacity,offset-distance] transition-all transition-colors transition-opacity transition-transform translationKeys translations translations/keys.json transparent tree trigger true truncate try type typeof types unchanged undefined underline underlying understand unified unist-util-visit unknown unnecessarily updateAnchor updates upperX url urls usage use useCopyButton useDocsSearch useI18n useId useIsDocsLayout useItems useMediaQuery useMemo useOnChange usePathname useProps useRef useRouter useSearchContext useSidebar useState useTOCItems useTheme useTranslations useTreePath useful users using usually v v17 value valueToIdMap values variables variant variants vertical viewBox viewRef viewport viewportProps visit vite void w w-(--anchor-width) w-0 w-0.5 w-1.5 w-1/4 w-[calc(100%-1rem)] w-fit w-full w-max w-px want warn warning when where while white whitespace-nowrap whitespaces width will window with work wrap wrap-anywhere wrapElement wrapInSuspense wrapped x x1 x2 xmlns y y1 y2 you your z-2 z-40 z-50 zoom zoomImg zoomMargin");
|
|
1
|
+
@source inline("!collapsed !isActive !items !nested !open !title *:border-b *:data-[empty=true]:border-b-0 *:flex *:flex-col *:has-[+:last-child[data-empty=true]]:border-b-0 *:last:border-b-0 *:rounded-full --accordion-panel-height --anchor-width --available-height --callout-color --collapsible-panel-height --color-fd- --color-fd-muted --fd-animated-height --fd-banner-height --offset-distance --opacity --padding-right --shiki-dark-bg --shiki-light-bg --spacing --track-bottom --track-top --transform-origin -mb-px -me-0.5 -me-2 -mx-px -rotate-90 -top-1.5 -translate-x-1/2 -translate-y-1/2 -z-1 @container @defaultValue @deprecated @fuma-translate/react @keyframes @max-lg:col-span-full @max-xl:hidden @param @ts-expect-error @typescript-eslint/no-namespace [&>figure:only-child]:-m-4 [&>figure:only-child]:border-none [&[hidden]:not([hidden='until-found'])]:hidden [&_svg]:size-3.5 [&_svg]:size-4 [&_svg]:size-4.5 [&_svg]:size-5 [&_svg]:size-full [&_svg]:text-fd-muted-foreground [offset-distance:var(--offset-distance,0)] [scrollbar-width:none] a abcdefghijklmnopqrstuvwxyz234567 about absolute accordion action actions active add addEventListener advanced algoliaClient align alignItems alignmentBaseline all allowClear allowCopy allowDangerousHtml allows alphabet always an anchor and animate-pulse animation another application/json areaRef aria-controls aria-describedby aria-expanded aria-label aria-selected as aside ask assume assumes async at auto await backdrop-blur-lg backdrop-blur-xs background background-position backgroundColor backgroundImage backgroundSize backward banner basePath baseProps baseSlots baseUrl based behaviour belongs bg-(--callout-color)/50 bg-(--shiki-light-bg) bg-fd-accent bg-fd-background bg-fd-border bg-fd-card bg-fd-muted bg-fd-overlay bg-fd-popover bg-fd-popover/60 bg-fd-primary bg-fd-primary/10 bg-fd-secondary bg-fd-secondary/50 bg-transparent bind bitsLeft black block blocks boolean border border-b border-l border-none border-s border-t border-transparent borderBottom bottom bottom-0 bottom-1.5 bound boundary buffer bundle button buttonVariants by cache cached can case center central change changeLayout checked child children chooseLanguage class-variance-authority className clear client client-side clientHeight clientWidth clipPath clone close closeOnRedirect closed cn code col-span-full collapsed collapsible collection color colors column com compact compat compatibility component components composedRef computed config const container containerRef containing content contents context controlled/uncontrolled copy core counterSet createContext createMarkdownRenderer createRelativeLink css ctx current currentColor custom customize cva cx cy d dangerouslySetInnerHTML dark dark:bg-(--shiki-dark-bg) dashed data data-[active=true]:text-fd-primary data-[active]:border-fd-primary data-[active]:text-fd-primary data-[inactive]:hidden data-[popup-open]:bg-fd-accent data-[popup-open]:text-fd-accent-foreground data-accordion-value data-active data-card data-checked data-checked:text-fd-accent-foreground data-closed:animate-fd-dialog-out data-closed:animate-fd-fade-out data-closed:animate-fd-popover-out data-collapsed data-empty data-ending-style:h-0 data-ending-style:opacity-0 data-fd-search-dialog-input data-icon data-line-numbers data-line-numbers-start data-open:animate-fd-dialog-in data-open:animate-fd-fade-in data-open:animate-fd-popover-in data-open:bg-fd-accent data-open:text-fd-accent-foreground data-search data-search-full data-starting-style:h-0 data-starting-style:opacity-0 data-state data-theme-toggle date debounced declare default defaultColor defaultFormatter defaultIndex defaultItems defaultMdxComponents defaultOpen defaultOpenLevel defaultShikiFactory defaultTransform defaultUrl defaultValue defineI18nUI defined delay delayMs depends deprecated depth description detect dialog dialogHandle dir disabled disabled:opacity-50 disabled:pointer-events-none display displayName displayed distance div divide-fd-border divide-x divide-y documented dominantBaseline don drawer duration-100 duration-200 duration-400 ease-out element else empty empty:hidden empty:mb-0 enabled encoded endIdx endpoint env environment equal error escape eslint-disable-next-line event export extends external extraProps false fd-moving-banner fd-scroll-container fd-search-dialog-content fd-step fd-steps fetch fetchClient fetchOptions field fieldVariants figure file fill fill-(--callout-color) fill-fd-muted fill-fd-muted-foreground fill-fd-primary fill-fd-primary-foreground filter filters finally first:mt-0 fixed flex flex-1 flex-col flex-row flex-wrap flexDirection flushSync focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring focus-visible:ring-inset folder folders font-medium font-mono fontSize fontWeight for forks formatter formatterOptions found fragment free from full fumadocs fumadocs-core/framework fumadocs-core/highlight fumadocs-core/i18n fumadocs-core/link fumadocs-core/page-tree fumadocs-core/search fumadocs-core/source fumadocs-core/toc function gap gap-0.5 gap-1 gap-1.5 gap-2 gap-3 gap-3.5 gap-4 gap-y-4 generated ghost github-dark github-light githubUrl global globalKey grid grid-cols-2 grid-cols-[1fr_3fr] group group-data-[open]:rotate-180 group-data-active:bg-fd-primary group-data-open:rotate-180 group-data-panel-open:rotate-90 group-hover/heading:opacity-100 group/heading groupListeners guides h h-(--accordion-panel-height) h-(--collapsible-panel-height) h-(--fd-animated-height) h-1.5 h-9.5 h-[calc(100%+--spacing(1.5))] h-full h-px h1 h2 h3 h4 h5 h6 handle handleThemeChange has-focus-visible:bg-fd-accent hash hashchange hast have header headers heading height hidden highlight highlighter hints horizontal hover:bg-fd-accent hover:bg-fd-accent/80 hover:bg-fd-primary/80 hover:text-fd-accent-foreground hovered hovering href html i i18n i18nProvider icon icon-sm icon-xs iconClass id idea idx if if-needed ignore img import in inPre inTab index infinite info initialFocus inline inline-flex input inputType inset-0 inset-e-2 inset-s-0 inset-s-3 inset-s-6 inset-x-2 inset-y-0 inside instanceof instead integration interface intersect invisible is isActive isFirst isLast isLoading isUp it item itemLineLengths itemVariants items items-center js justify-between justify-center keepBackground keepMounted key keydown keys l l0 l1 l2 label lang language languageSelect languages last:rounded-b-xl layer layout leading-none leaving left-0 left-1/2 length let level light light-dark light-dark-system line line-through linear link links list listener listeners localRef locale localeTranslations locales lower ltr lucide lucide-book lucide-book-icon lucide-react made main make mapped margin marginTop mark markdownUrl marked mask-[linear-gradient(to_bottom,transparent,white_12px,white_calc(100%-12px),transparent)] mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] mask-[linear-gradient(to_bottom,white,white_30px,transparent_80px)] maskComposite maskImage max-h-(--available-height) max-h-20 max-h-[460px] max-h-[600px] max-md:bg-fd-secondary max-md:border max-md:p-1.5 max-md:rounded-md max-w-[1400px] max-w-[98vw] max-w-full max-w-screen-sm max-width maximumFractionDigits mb-1 mb-1.5 mb-2 md:hidden md:mb-auto md:size-5 md:top-[calc(50%-250px)] mdComponents mdRenderer mdx/types.js me-1 me-2 me-auto menu menuItems mergeRefs message middle min-h-0 min-w-0 min-w-[240px] min-w-fit min-w-full mode module mounted mouse ms-2 ms-auto mt-1 mt-6 must mx-auto my-0 my-0! my-0.5 my-4 my-6 my-auto n name namespace nav navItems navTitle navigate navigation nd-copy-ignore nd-sidebar nd-sidebar-mobile nearest needed nested nested-url never new newTheme next next-themes next/og node nodes none noopener noreferrer normal normalize not not-last:mb-2 not-prose notation note now null number numbers object observer of offsetPath offsetTop on onAnimationEnd onChange onClick onCopy onKey onOpenChange onOpenChangeCallback onPointerEnter onPointerLeave onPointerMove onPrint onSearchChange onSearchChangeCallback onSelect onSelectCallback onTagChange onTagChangeCallback onValueChange once only opacity-(--opacity,0) opacity-0 open openFromHash option optional options or oramaCloudClient order orientation origin-(--transform-origin) origin-center original other out outline outline-none output overflow-auto overflow-hidden overflow-x-auto overflow-x-clip overflow-y-auto override overscroll-contain own owner p p-0.5 p-1 p-1.5 p-2 p-3 p-4 padding paddingBottom paddingInlineStart page pageUrl panel panels parameters params parentId pass passed path pathname paths pb-0 pb-2 pe-2 performing persist persistent placeholder placeholder:text-fd-muted-foreground please pointerType points populated positions possible powered pre pre-rendering prefetch prev preventScroll previous previousRef primary primaryColor primaryTextColor promise promises prompt prop props prose prose-no-margin provide provider ps-1 ps-2 ps-4 ps-8 pt-0 pure px px-0.5 px-1 px-1.5 px-2 px-2.5 px-3 px-4 px-px py-0.5 py-1 py-1.5 py-12 py-2 py-2.5 py-3 py-3.5 q query querySelector questions rainbow rainbowColors raw re-create react react-dom react-hooks/rules-of-hooks react-medium-image-zoom ref referenced region registering rehype-raw rehypeCustomElements rehypePlugins rehypeRaw rel relative remarkRehypeOptions remove removeEventListener render renderHighlights renderMarkdown repo repository required resolve resolved resolvedTheme response rest result results return revalidate right-2 role root rootRef round rounded-2xl rounded-[inherit] rounded-full rounded-lg rounded-md rounded-sm rounded-xl router row rtl:-scale-x-100 rtl:rotate-180 rtl:rotate-90 s scroll scroll-into-view-if-needed scroll-m-20 scroll-m-24 scroll-m-28 scroll-m-4 scrollIntoView scrollMode search searchOptions searchToggle searchToggleEnabled searchTrigger secondary see select-none selected separate separator server set setActive setCollapsed setHidden setHover setLoading setMounted setOpen setSvg setTag setValue shadow-2xl shadow-lg shadow-md shadow-sm shiki shikiOptions shortcuts show showAlgolia showOrama shrink-0 side sideOffset sidebar signature simple since site size size-1 size-3 size-3.5 size-4 size-5 size-6.5 size-9 size-full sizes slots sm solid some source space span specific src stars startIdx state static stay sticky still str string stroke stroke-fd-foreground/10 stroke-fd-primary strokeLinecap strokeLinejoin strokeWidth strong style styles success supported supposed sure svg switch switcher system t tab tabIndex table tabs tabsRef tag tagName tags target text text-(--callout-color) text-[0.8125rem] text-[0.9375rem] text-center text-fd-accent-foreground text-fd-card text-fd-card-foreground text-fd-foreground/80 text-fd-muted-foreground text-fd-muted-foreground/50 text-fd-popover-foreground text-fd-popover-foreground/80 text-fd-primary text-fd-primary-foreground text-fd-primary/50 text-fd-secondary-foreground text-lg text-nowrap text-sm text-start text-xs text/plain textAnchor textContent that the their theme themeAriaLabels themeSwitch themeSwitchEnabled themes then this throw thumbBox tier timerRef tip title to toc tocInfo toolbar top top-0 top-1/2 top-2 top-2.5 top-4 touch transform transition-[clip-path] transition-[height,opacity] transition-[height] transition-[opacity,offset-distance] transition-all transition-colors transition-opacity transition-transform translationKeys translations translations/keys.json transparent tree trigger true truncate try type typeof types unchanged undefined underline underlying understand unified unist-util-visit unknown unnecessarily updateAnchor updates upperX url urls us usage use useCopyButton useDocsSearch useI18n useId useIsDocsLayout useItems useMediaQuery useMemo useOnChange usePathname useProps useRef useRouter useSearchContext useSidebar useState useTOCItems useTheme useTranslations useTreePath useful users using usually v v17 value valueToIdMap values variables variant variants vertical viewBox viewRef viewport viewportProps visit vite void w w-(--anchor-width) w-0 w-0.5 w-1.5 w-1/4 w-[calc(100%-1rem)] w-fit w-full w-max w-px want warn warning what when where which while white whitespace-nowrap whitespaces width will window with work wrap wrap-anywhere wrapElement wrapInSuspense wrapped x x1 x2 xmlns y y1 y2 you your z-2 z-40 z-50 zoom zoomImg zoomMargin");
|
package/css/lib/base.css
CHANGED
package/css/preset.css
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
//#region src/.translations/index.d.ts
|
|
2
2
|
type Translations = {
|
|
3
|
+
"Ask AI(AI chat button)": string;
|
|
3
4
|
"Back to Home(404 not found page)": string;
|
|
4
5
|
"Choose a language(language switcher)": string;
|
|
5
6
|
"Choose a language(language switcher)(aria-label)": string;
|
|
6
7
|
"Close Banner(banner)(aria-label)": string;
|
|
7
8
|
"Close Search(search dialog)(aria-label)": string;
|
|
9
|
+
"Close Sidebar(aria-label)": string;
|
|
8
10
|
"Close Sidebar(sidebar)(aria-label)": string;
|
|
9
11
|
"Collapse Sidebar(sidebar)(aria-label)": string;
|
|
10
12
|
"Copied Text(code block)(aria-label)": string;
|
|
@@ -15,13 +17,16 @@ type Translations = {
|
|
|
15
17
|
"Dark(theme switcher)(aria-label)": string;
|
|
16
18
|
"Default(type table)": string;
|
|
17
19
|
"Edit on GitHub(edit page)": string;
|
|
20
|
+
"Hide Sidebar(sidebar)": string;
|
|
18
21
|
"Last updated on(page footer)": string;
|
|
22
|
+
"Layout Tab(layout tab trigger)": string;
|
|
19
23
|
"Light(theme switcher)(aria-label)": string;
|
|
20
24
|
"Next Page(pagination)": string;
|
|
21
25
|
"No Headings(table of contents)": string;
|
|
22
26
|
"No results found(search dialog)": string;
|
|
23
27
|
"On this page(table of contents)": string;
|
|
24
28
|
"Open Search(search trigger)(aria-label)": string;
|
|
29
|
+
"Open Sidebar(aria-label)": string;
|
|
25
30
|
"Open Sidebar(sidebar)(aria-label)": string;
|
|
26
31
|
"Open in ChatGPT(page actions)": string;
|
|
27
32
|
"Open in Claude(page actions)": string;
|
|
@@ -37,6 +42,7 @@ type Translations = {
|
|
|
37
42
|
"Returns(type table)": string;
|
|
38
43
|
"Search(search dialog)": string;
|
|
39
44
|
"Search(search trigger)": string;
|
|
45
|
+
"Show Sidebar(sidebar)": string;
|
|
40
46
|
"System(theme switcher)(aria-label)": string;
|
|
41
47
|
"Table of Contents(inline table of contents)": string;
|
|
42
48
|
"The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.(404 not found page)": string;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
//#region src/.translations/keys.json
|
|
2
2
|
var keys_default = [
|
|
3
|
+
"Ask AI(AI chat button)",
|
|
3
4
|
"Back to Home(404 not found page)",
|
|
4
5
|
"Choose a language(language switcher)",
|
|
5
6
|
"Choose a language(language switcher)(aria-label)",
|
|
6
7
|
"Close Banner(banner)(aria-label)",
|
|
7
8
|
"Close Search(search dialog)(aria-label)",
|
|
9
|
+
"Close Sidebar(aria-label)",
|
|
8
10
|
"Close Sidebar(sidebar)(aria-label)",
|
|
9
11
|
"Collapse Sidebar(sidebar)(aria-label)",
|
|
10
12
|
"Copied Text(code block)(aria-label)",
|
|
@@ -15,13 +17,16 @@ var keys_default = [
|
|
|
15
17
|
"Dark(theme switcher)(aria-label)",
|
|
16
18
|
"Default(type table)",
|
|
17
19
|
"Edit on GitHub(edit page)",
|
|
20
|
+
"Hide Sidebar(sidebar)",
|
|
18
21
|
"Last updated on(page footer)",
|
|
22
|
+
"Layout Tab(layout tab trigger)",
|
|
19
23
|
"Light(theme switcher)(aria-label)",
|
|
20
24
|
"Next Page(pagination)",
|
|
21
25
|
"No Headings(table of contents)",
|
|
22
26
|
"No results found(search dialog)",
|
|
23
27
|
"On this page(table of contents)",
|
|
24
28
|
"Open Search(search trigger)(aria-label)",
|
|
29
|
+
"Open Sidebar(aria-label)",
|
|
25
30
|
"Open Sidebar(sidebar)(aria-label)",
|
|
26
31
|
"Open in ChatGPT(page actions)",
|
|
27
32
|
"Open in Claude(page actions)",
|
|
@@ -37,6 +42,7 @@ var keys_default = [
|
|
|
37
42
|
"Returns(type table)",
|
|
38
43
|
"Search(search dialog)",
|
|
39
44
|
"Search(search trigger)",
|
|
45
|
+
"Show Sidebar(sidebar)",
|
|
40
46
|
"System(theme switcher)(aria-label)",
|
|
41
47
|
"Table of Contents(inline table of contents)",
|
|
42
48
|
"The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.(404 not found page)",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UncontrolledProps } from "../node_modules/.pnpm/react-medium-image-zoom@5.4.8_react-dom@19.2.
|
|
2
|
-
import "../node_modules/.pnpm/react-medium-image-zoom@5.4.8_react-dom@19.2.
|
|
1
|
+
import { UncontrolledProps } from "../node_modules/.pnpm/react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-medium-image-zoom/dist/uncontrolled.js";
|
|
2
|
+
import "../node_modules/.pnpm/react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-medium-image-zoom/dist/index.js";
|
|
3
3
|
import { ImageProps } from "fumadocs-core/framework";
|
|
4
4
|
import { ComponentProps } from "react";
|
|
5
5
|
//#region src/components/image-zoom.d.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { Uncontrolled } from "../node_modules/.pnpm/react-medium-image-zoom@5.4.8_react-dom@19.2.
|
|
2
|
+
import { Uncontrolled } from "../node_modules/.pnpm/react-medium-image-zoom@5.4.8_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-medium-image-zoom/dist/uncontrolled.js";
|
|
3
3
|
import "./image-zoom2.css";
|
|
4
4
|
import { Image } from "fumadocs-core/framework";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LayoutTab
|
|
1
|
+
import { LayoutTab } from "../../../layouts/shared/index.js";
|
|
2
2
|
import { ComponentProps, ReactNode } from "react";
|
|
3
3
|
//#region src/components/sidebar/tabs/dropdown.d.ts
|
|
4
4
|
type SidebarTabWithProps = LayoutTab;
|
|
@@ -6,6 +6,5 @@ declare function SidebarTabsDropdown({ options, placeholder, ...props }: {
|
|
|
6
6
|
placeholder?: ReactNode;
|
|
7
7
|
options: SidebarTabWithProps[];
|
|
8
8
|
} & ComponentProps<'button'>): import("react").JSX.Element;
|
|
9
|
-
declare const isTabActive: typeof isLayoutTabActive;
|
|
10
9
|
//#endregion
|
|
11
|
-
export { SidebarTabWithProps, SidebarTabsDropdown
|
|
10
|
+
export { SidebarTabWithProps, SidebarTabsDropdown };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../../../utils/cn.js";
|
|
3
|
+
import { useTreePath } from "../../../contexts/tree.js";
|
|
3
4
|
import { Popover, PopoverContent, PopoverTrigger } from "../../ui/popover.js";
|
|
4
5
|
import { isLayoutTabActive } from "../../../layouts/shared/index.js";
|
|
5
6
|
import { useSidebar } from "../base.js";
|
|
@@ -13,9 +14,14 @@ function SidebarTabsDropdown({ options, placeholder, ...props }) {
|
|
|
13
14
|
const [open, setOpen] = useState(false);
|
|
14
15
|
const { closeOnRedirect } = useSidebar();
|
|
15
16
|
const pathname = usePathname();
|
|
17
|
+
const path = useTreePath();
|
|
16
18
|
const selected = useMemo(() => {
|
|
17
|
-
return options.findLast((item) =>
|
|
18
|
-
}, [
|
|
19
|
+
return options.findLast((item) => isLayoutTabActive(item, path, pathname));
|
|
20
|
+
}, [
|
|
21
|
+
options,
|
|
22
|
+
path,
|
|
23
|
+
pathname
|
|
24
|
+
]);
|
|
19
25
|
const onClick = () => {
|
|
20
26
|
closeOnRedirect.current = false;
|
|
21
27
|
setOpen(false);
|
|
@@ -66,6 +72,5 @@ function SidebarTabsDropdown({ options, placeholder, ...props }) {
|
|
|
66
72
|
})]
|
|
67
73
|
});
|
|
68
74
|
}
|
|
69
|
-
const isTabActive = isLayoutTabActive;
|
|
70
75
|
//#endregion
|
|
71
|
-
export { SidebarTabsDropdown
|
|
76
|
+
export { SidebarTabsDropdown };
|
package/dist/components/tabs.js
CHANGED
|
@@ -62,7 +62,6 @@ function Tab({ value, ...props }) {
|
|
|
62
62
|
function TabsContent({ value, className, ...props }) {
|
|
63
63
|
return /* @__PURE__ */ jsx(TabsContent$1, {
|
|
64
64
|
value,
|
|
65
|
-
keepMounted: true,
|
|
66
65
|
className: (s) => cn("p-4 text-[0.9375rem] bg-fd-background rounded-xl outline-none prose-no-margin data-[inactive]:hidden [&>figure:only-child]:-m-4 [&>figure:only-child]:border-none", typeof className === "function" ? className(s) : className),
|
|
67
66
|
...props,
|
|
68
67
|
children: props.children
|
|
@@ -33,7 +33,7 @@ function TOCScrollArea({ ref, className, ...props }) {
|
|
|
33
33
|
const viewRef = useRef(null);
|
|
34
34
|
return /* @__PURE__ */ jsx("div", {
|
|
35
35
|
ref: mergeRefs(viewRef, ref),
|
|
36
|
-
className: cn("relative min-h-0 text-sm
|
|
36
|
+
className: cn("relative min-h-0 text-sm overflow-x-clip overflow-y-auto [scrollbar-width:none] mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] py-3", className),
|
|
37
37
|
...props,
|
|
38
38
|
children: /* @__PURE__ */ jsx(Primitive.ScrollProvider, {
|
|
39
39
|
containerRef: viewRef,
|
|
@@ -3,7 +3,7 @@ import { VariantProps } from "class-variance-authority";
|
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
4
|
variant?: "primary" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
5
5
|
color?: "primary" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
6
|
-
size?: "
|
|
6
|
+
size?: "icon" | "sm" | "icon-sm" | "icon-xs" | null | undefined;
|
|
7
7
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
8
|
type ButtonProps = VariantProps<typeof buttonVariants>;
|
|
9
9
|
//#endregion
|
|
@@ -13,7 +13,7 @@ function PopoverContent({ className, align = "center", sideOffset = 4, ...props
|
|
|
13
13
|
sideOffset,
|
|
14
14
|
className: "z-50",
|
|
15
15
|
children: /* @__PURE__ */ jsx(Popover$1.Popup, {
|
|
16
|
-
className: (s) => cn("z-50 origin-(--transform-origin) overflow-y-auto max-h-(--available-height) min-w-[240px] max-w-[98vw] rounded-xl border bg-fd-popover/60 backdrop-blur-lg p-2 text-sm text-fd-popover-foreground shadow-lg focus-visible:outline-none data-
|
|
16
|
+
className: (s) => cn("z-50 origin-(--transform-origin) overflow-y-auto max-h-(--available-height) min-w-[240px] w-(--anchor-width) max-w-[98vw] rounded-xl border bg-fd-popover/60 backdrop-blur-lg p-2 text-sm text-fd-popover-foreground shadow-lg focus-visible:outline-none data-closed:animate-fd-popover-out data-open:animate-fd-popover-in", typeof className === "function" ? className(s) : className),
|
|
17
17
|
...props
|
|
18
18
|
})
|
|
19
19
|
}) });
|
|
@@ -19,6 +19,6 @@ interface TabsProps extends ComponentProps<typeof Tabs$1.Root> {
|
|
|
19
19
|
declare const TabsList: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").TabsListProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
20
20
|
declare const TabsTrigger: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").TabsTabProps, "ref"> & import("react").RefAttributes<HTMLElement>>;
|
|
21
21
|
declare function Tabs({ ref, groupId, persist, updateAnchor, defaultValue, value: _value, onValueChange: _onValueChange, ...props }: TabsProps): import("react").JSX.Element;
|
|
22
|
-
declare function TabsContent({ value, ...props }: ComponentProps<typeof Tabs$1.Panel>): import("react").JSX.Element;
|
|
22
|
+
declare function TabsContent({ value, ref, ...props }: ComponentProps<typeof Tabs$1.Panel>): import("react").JSX.Element;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { Tabs, TabsContent, TabsList, TabsProps, TabsTrigger };
|
|
@@ -16,6 +16,7 @@ const TabsTrigger = Tabs$1.Tab;
|
|
|
16
16
|
function Tabs({ ref, groupId, persist = false, updateAnchor = false, defaultValue, value: _value, onValueChange: _onValueChange, ...props }) {
|
|
17
17
|
const tabsRef = useRef(null);
|
|
18
18
|
const valueToIdMap = useMemo(() => /* @__PURE__ */ new Map(), []);
|
|
19
|
+
const panels = useMemo(() => /* @__PURE__ */ new Map(), []);
|
|
19
20
|
const [value, setValue] = _value === void 0 ? useState(defaultValue) : [_value, useEffectEvent((v) => _onValueChange?.(v))];
|
|
20
21
|
useLayoutEffect(() => {
|
|
21
22
|
if (!groupId) return;
|
|
@@ -34,14 +35,31 @@ function Tabs({ ref, groupId, persist = false, updateAnchor = false, defaultValu
|
|
|
34
35
|
setValue
|
|
35
36
|
]);
|
|
36
37
|
useLayoutEffect(() => {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
const openFromHash = () => {
|
|
39
|
+
const hash = window.location.hash.slice(1);
|
|
40
|
+
if (!hash) return;
|
|
41
|
+
for (const [value, id] of valueToIdMap.entries()) if (id === hash) {
|
|
42
|
+
setValue(value);
|
|
43
|
+
tabsRef.current?.scrollIntoView();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const target = document.getElementById(hash);
|
|
47
|
+
if (!target) return;
|
|
48
|
+
for (const [value, panel] of panels.entries()) {
|
|
49
|
+
if (!panel.contains(target)) continue;
|
|
50
|
+
setValue(value);
|
|
51
|
+
requestAnimationFrame(() => target.scrollIntoView());
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
openFromHash();
|
|
56
|
+
window.addEventListener("hashchange", openFromHash);
|
|
57
|
+
return () => window.removeEventListener("hashchange", openFromHash);
|
|
58
|
+
}, [
|
|
59
|
+
setValue,
|
|
60
|
+
valueToIdMap,
|
|
61
|
+
panels
|
|
62
|
+
]);
|
|
45
63
|
return /* @__PURE__ */ jsx(Tabs$1.Root, {
|
|
46
64
|
ref: mergeRefs(ref, tabsRef),
|
|
47
65
|
value,
|
|
@@ -59,15 +77,22 @@ function Tabs({ ref, groupId, persist = false, updateAnchor = false, defaultValu
|
|
|
59
77
|
},
|
|
60
78
|
...props,
|
|
61
79
|
children: /* @__PURE__ */ jsx(TabsContext, {
|
|
62
|
-
value: useMemo(() => ({
|
|
80
|
+
value: useMemo(() => ({
|
|
81
|
+
valueToIdMap,
|
|
82
|
+
panels
|
|
83
|
+
}), [valueToIdMap, panels]),
|
|
63
84
|
children: props.children
|
|
64
85
|
})
|
|
65
86
|
});
|
|
66
87
|
}
|
|
67
|
-
function TabsContent({ value, ...props }) {
|
|
68
|
-
const { valueToIdMap } = useTabContext();
|
|
88
|
+
function TabsContent({ value, ref, ...props }) {
|
|
89
|
+
const { valueToIdMap, panels } = useTabContext();
|
|
69
90
|
if (props.id) valueToIdMap.set(value, props.id);
|
|
70
91
|
return /* @__PURE__ */ jsx(Tabs$1.Panel, {
|
|
92
|
+
ref: mergeRefs(ref, (element) => {
|
|
93
|
+
if (element) panels.set(value, element);
|
|
94
|
+
else panels.delete(value);
|
|
95
|
+
}),
|
|
71
96
|
value,
|
|
72
97
|
...props,
|
|
73
98
|
children: props.children
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../../utils/cn.js";
|
|
3
|
-
import { TreeContextProvider } from "../../contexts/tree.js";
|
|
3
|
+
import { TreeContextProvider, useTreePath } from "../../contexts/tree.js";
|
|
4
4
|
import { baseSlots } from "../shared/client.js";
|
|
5
5
|
import { isLayoutTabActive, useLinkItems } from "../shared/index.js";
|
|
6
6
|
import { useIsScrollTop } from "../../utils/use-is-scroll-top.js";
|
|
@@ -12,7 +12,7 @@ import { usePathname } from "fumadocs-core/framework";
|
|
|
12
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { createContext, use, useMemo } from "react";
|
|
14
14
|
//#region src/layouts/docs/client.tsx
|
|
15
|
-
const {
|
|
15
|
+
const { useBaseSlots } = baseSlots({ useProps() {
|
|
16
16
|
return useDocsLayout().props;
|
|
17
17
|
} });
|
|
18
18
|
const LayoutContext = createContext(null);
|
|
@@ -28,7 +28,7 @@ function LayoutBody(props) {
|
|
|
28
28
|
const { nav: { enabled: navEnabled = true, transparentMode: navTransparentMode = "none" } = {}, sidebar: { enabled: sidebarEnabled = true, defaultOpenLevel, prefetch, ...sidebarProps } = {}, slots: defaultSlots, tabs, tabMode = "auto", tree, containerProps, children } = props;
|
|
29
29
|
const isTop = useIsScrollTop({ enabled: navTransparentMode === "top" }) ?? true;
|
|
30
30
|
const isNavTransparent = navTransparentMode === "top" ? isTop : navTransparentMode === "always";
|
|
31
|
-
const { baseSlots, baseProps } =
|
|
31
|
+
const { baseSlots, baseProps } = useBaseSlots(props);
|
|
32
32
|
const linkItems = useLinkItems(props);
|
|
33
33
|
const slots = {
|
|
34
34
|
...baseSlots,
|
|
@@ -75,9 +75,14 @@ function LayoutBody(props) {
|
|
|
75
75
|
}
|
|
76
76
|
function LayoutTabs({ tabs, ...props }) {
|
|
77
77
|
const pathname = usePathname();
|
|
78
|
+
const path = useTreePath();
|
|
78
79
|
const selected = useMemo(() => {
|
|
79
|
-
return tabs.findLast((option) => isLayoutTabActive(option, pathname));
|
|
80
|
-
}, [
|
|
80
|
+
return tabs.findLast((option) => isLayoutTabActive(option, path, pathname));
|
|
81
|
+
}, [
|
|
82
|
+
tabs,
|
|
83
|
+
path,
|
|
84
|
+
pathname
|
|
85
|
+
]);
|
|
81
86
|
return /* @__PURE__ */ jsx("div", {
|
|
82
87
|
...props,
|
|
83
88
|
className: cn("flex flex-row items-end gap-6 overflow-auto [grid-area:main]", props.className),
|
|
@@ -34,10 +34,13 @@ function TOC({ container, header, footer, style = "normal", list }) {
|
|
|
34
34
|
className: "inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground",
|
|
35
35
|
children: [/* @__PURE__ */ jsx(Text, { className: "size-4" }), t("On this page")]
|
|
36
36
|
}),
|
|
37
|
-
/* @__PURE__ */ jsx(TOCScrollArea, {
|
|
38
|
-
|
|
39
|
-
children:
|
|
40
|
-
|
|
37
|
+
/* @__PURE__ */ jsx(TOCScrollArea, {
|
|
38
|
+
className: "ms-px",
|
|
39
|
+
children: /* @__PURE__ */ jsxs(TOCItems, {
|
|
40
|
+
...list,
|
|
41
|
+
children: [items.length === 0 && /* @__PURE__ */ jsx(TOCEmpty, {}), items.map((item) => /* @__PURE__ */ jsx(TOCItem, { item }, item.url))]
|
|
42
|
+
})
|
|
43
|
+
}),
|
|
41
44
|
footer
|
|
42
45
|
]
|
|
43
46
|
});
|
|
@@ -80,13 +83,16 @@ function TOCPopover({ container, trigger, content, header, footer, style = "norm
|
|
|
80
83
|
...content,
|
|
81
84
|
children: [
|
|
82
85
|
header,
|
|
83
|
-
/* @__PURE__ */ jsx(TOCScrollArea, {
|
|
84
|
-
|
|
85
|
-
children:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
/* @__PURE__ */ jsx(TOCScrollArea, {
|
|
87
|
+
className: "ms-px",
|
|
88
|
+
children: /* @__PURE__ */ jsxs(TOCItems, {
|
|
89
|
+
...list,
|
|
90
|
+
children: [items.length === 0 && /* @__PURE__ */ jsx(TOCEmpty, {}), items.map((item) => /* @__PURE__ */ jsx(TOCItem, {
|
|
91
|
+
item,
|
|
92
|
+
onClick: onClickItem
|
|
93
|
+
}, item.url))]
|
|
94
|
+
})
|
|
95
|
+
}),
|
|
90
96
|
footer
|
|
91
97
|
]
|
|
92
98
|
})]
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { cn } from "../../../utils/cn.js";
|
|
3
3
|
import { buttonVariants } from "../../../components/ui/button.js";
|
|
4
4
|
import { mergeRefs } from "../../../utils/merge-refs.js";
|
|
5
|
+
import { useTreePath } from "../../../contexts/tree.js";
|
|
5
6
|
import { Popover, PopoverContent, PopoverTrigger } from "../../../components/ui/popover.js";
|
|
6
7
|
import { SearchTrigger } from "../../shared/slots/search-trigger.js";
|
|
7
8
|
import { LinkItem } from "../../shared/client.js";
|
|
@@ -252,9 +253,14 @@ function SidebarTabsDropdown({ tabs, placeholder, ...props }) {
|
|
|
252
253
|
const [open, setOpen] = useState(false);
|
|
253
254
|
const { closeOnRedirect } = useSidebar();
|
|
254
255
|
const pathname = usePathname();
|
|
256
|
+
const path = useTreePath();
|
|
255
257
|
const selected = useMemo(() => {
|
|
256
|
-
return tabs.findLast((item) => isLayoutTabActive(item, pathname));
|
|
257
|
-
}, [
|
|
258
|
+
return tabs.findLast((item) => isLayoutTabActive(item, path, pathname));
|
|
259
|
+
}, [
|
|
260
|
+
tabs,
|
|
261
|
+
path,
|
|
262
|
+
pathname
|
|
263
|
+
]);
|
|
258
264
|
const onClick = () => {
|
|
259
265
|
closeOnRedirect.current = false;
|
|
260
266
|
setOpen(false);
|
|
@@ -3,8 +3,8 @@ import { BaseLayoutProps, GetLayoutTabsOptions, LayoutTab, LinkItemType } from "
|
|
|
3
3
|
import { TabDropdownProps } from "./slots/tab-dropdown.js";
|
|
4
4
|
import { SidebarProps, SidebarProviderProps } from "./slots/sidebar.js";
|
|
5
5
|
import { ComponentProps, FC, ReactNode } from "react";
|
|
6
|
-
import * as PageTree from "fumadocs-core/page-tree";
|
|
7
6
|
import { motion } from "motion/react";
|
|
7
|
+
import * as PageTree from "fumadocs-core/page-tree";
|
|
8
8
|
//#region src/layouts/flux/index.d.ts
|
|
9
9
|
interface DocsSlots extends BaseSlots {
|
|
10
10
|
container: FC<ComponentProps<'div'>>;
|
|
@@ -20,13 +20,13 @@ function useFluxLayout() {
|
|
|
20
20
|
if (!context) throw new Error("Please use Flux layout components under <DocsLayout /> (`fumadocs-ui/layouts/flux`).");
|
|
21
21
|
return context;
|
|
22
22
|
}
|
|
23
|
-
const {
|
|
23
|
+
const { useBaseSlots } = baseSlots({ useProps() {
|
|
24
24
|
return useFluxLayout().props;
|
|
25
25
|
} });
|
|
26
26
|
function DocsLayout(props) {
|
|
27
27
|
const { tree, nav = {}, sidebar: { enabled: sidebarEnabled = true, tabs: _tabs, defaultOpenLevel, prefetch, ...sidebarProps } = {}, tabs: defaultTabs = _tabs, children, containerProps, renderNavigationPanel = (props) => /* @__PURE__ */ jsx(NavigationPanel, { ...props }), slots: defaultSlots = {} } = props;
|
|
28
28
|
const linkItems = useLinkItems(props);
|
|
29
|
-
const { baseSlots, baseProps } =
|
|
29
|
+
const { baseSlots, baseProps } = useBaseSlots(props);
|
|
30
30
|
const tabs = useMemo(() => {
|
|
31
31
|
if (Array.isArray(defaultTabs)) return defaultTabs;
|
|
32
32
|
if (typeof defaultTabs === "object") return getLayoutTabs(tree, defaultTabs);
|
|
@@ -24,10 +24,13 @@ function TOC({ container, trigger, content, header, footer, style = "normal", li
|
|
|
24
24
|
...content,
|
|
25
25
|
children: [
|
|
26
26
|
header,
|
|
27
|
-
/* @__PURE__ */ jsx(TOCScrollArea, {
|
|
28
|
-
|
|
29
|
-
children:
|
|
30
|
-
|
|
27
|
+
/* @__PURE__ */ jsx(TOCScrollArea, {
|
|
28
|
+
className: "ms-px",
|
|
29
|
+
children: /* @__PURE__ */ jsxs(TOCItems, {
|
|
30
|
+
...list,
|
|
31
|
+
children: [items.length === 0 && /* @__PURE__ */ jsx(TOCEmpty, {}), items.map((item) => /* @__PURE__ */ jsx(TOCItem, { item }, item.url))]
|
|
32
|
+
})
|
|
33
|
+
}),
|
|
31
34
|
footer
|
|
32
35
|
]
|
|
33
36
|
}), /* @__PURE__ */ jsx(PageTOCPopoverTrigger, { ...trigger })]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../../../utils/cn.js";
|
|
3
|
+
import { useTreePath } from "../../../contexts/tree.js";
|
|
3
4
|
import { Popover, PopoverContent, PopoverTrigger } from "../../../components/ui/popover.js";
|
|
4
5
|
import { isLayoutTabActive } from "../../shared/index.js";
|
|
5
6
|
import Link from "fumadocs-core/link";
|
|
@@ -12,9 +13,14 @@ import { AnimatePresence, motion } from "motion/react";
|
|
|
12
13
|
function TabDropdown({ tabs, placeholder, className, ...props }) {
|
|
13
14
|
const [open, setOpen] = useState(false);
|
|
14
15
|
const pathname = usePathname();
|
|
16
|
+
const path = useTreePath();
|
|
15
17
|
const selectedIdx = useMemo(() => {
|
|
16
|
-
return tabs.findLastIndex((item) => isLayoutTabActive(item, pathname));
|
|
17
|
-
}, [
|
|
18
|
+
return tabs.findLastIndex((item) => isLayoutTabActive(item, path, pathname));
|
|
19
|
+
}, [
|
|
20
|
+
tabs,
|
|
21
|
+
path,
|
|
22
|
+
pathname
|
|
23
|
+
]);
|
|
18
24
|
const selected = selectedIdx !== -1 ? tabs[selectedIdx] : void 0;
|
|
19
25
|
const onClick = () => {
|
|
20
26
|
setOpen(false);
|