@curvenote/theme-ui 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -3
- package/dist/components/layout/app-layout.d.ts +3 -3
- package/dist/components/layout/app-layout.d.ts.map +1 -1
- package/dist/components/layout/app-layout.js +19 -15
- package/dist/components/layout/app-sidebar.d.ts +2 -1
- package/dist/components/layout/app-sidebar.d.ts.map +1 -1
- package/dist/components/layout/app-sidebar.js +8 -8
- package/dist/components/layout/article-layout.d.ts +3 -3
- package/dist/components/layout/article-layout.d.ts.map +1 -1
- package/dist/components/layout/article-layout.js +17 -10
- package/dist/components/layout/grid.d.ts +1 -1
- package/dist/components/layout/grid.d.ts.map +1 -1
- package/dist/components/layout/header.d.ts +5 -3
- package/dist/components/layout/header.d.ts.map +1 -1
- package/dist/components/layout/header.js +6 -3
- package/dist/components/layout/index.d.ts +7 -7
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +7 -7
- package/dist/components/layout/layout-header.d.ts +9 -0
- package/dist/components/layout/layout-header.d.ts.map +1 -0
- package/dist/components/layout/layout-header.js +13 -0
- package/dist/components/layout/loading-bar.d.ts +1 -1
- package/dist/components/layout/loading-bar.d.ts.map +1 -1
- package/dist/components/layout/loading-bar.js +1 -1
- package/dist/components/layout/site-header.d.ts +1 -1
- package/dist/components/layout/site-header.d.ts.map +1 -1
- package/dist/components/layout/site-header.js +18 -8
- package/dist/components/layout/types.d.ts +6 -0
- package/dist/components/layout/types.d.ts.map +1 -1
- package/dist/components/providers/analytics-boundary.d.ts +1 -1
- package/dist/components/providers/analytics-boundary.d.ts.map +1 -1
- package/dist/components/providers/analytics-boundary.js +3 -3
- package/dist/components/providers/analytics-dev-tray.d.ts +1 -1
- package/dist/components/providers/analytics-dev-tray.d.ts.map +1 -1
- package/dist/components/providers/analytics-dev-tray.js +3 -3
- package/dist/components/providers/article-versions-provider.d.ts +1 -1
- package/dist/components/providers/article-versions-provider.d.ts.map +1 -1
- package/dist/components/providers/compute.d.ts +1 -1
- package/dist/components/providers/compute.d.ts.map +1 -1
- package/dist/components/providers/curvenote-providers.d.ts +14 -18
- package/dist/components/providers/curvenote-providers.d.ts.map +1 -1
- package/dist/components/providers/curvenote-providers.js +10 -10
- package/dist/components/providers/design.d.ts +1 -1
- package/dist/components/providers/design.d.ts.map +1 -1
- package/dist/components/providers/design.js +2 -1
- package/dist/components/providers/index.d.ts +11 -11
- package/dist/components/providers/index.d.ts.map +1 -1
- package/dist/components/providers/index.js +11 -11
- package/dist/components/providers/lightbox-provider.d.ts +1 -1
- package/dist/components/providers/lightbox-provider.d.ts.map +1 -1
- package/dist/components/providers/myst-providers.d.ts +1 -1
- package/dist/components/providers/myst-providers.d.ts.map +1 -1
- package/dist/components/providers/overlay-depth.d.ts +1 -1
- package/dist/components/providers/overlay-depth.d.ts.map +1 -1
- package/dist/components/providers/page-providers.d.ts +2 -2
- package/dist/components/providers/page-providers.d.ts.map +1 -1
- package/dist/components/providers/ping-boundary.d.ts +1 -1
- package/dist/components/providers/ping-boundary.d.ts.map +1 -1
- package/dist/components/providers/platform-providers.d.ts +1 -1
- package/dist/components/providers/platform-providers.d.ts.map +1 -1
- package/dist/components/ui/Callout.d.ts +1 -1
- package/dist/components/ui/Callout.d.ts.map +1 -1
- package/dist/components/ui/Callout.js +1 -1
- package/dist/components/ui/PageCards.d.ts +2 -1
- package/dist/components/ui/PageCards.d.ts.map +1 -1
- package/dist/components/ui/abbreviations.d.ts +2 -1
- package/dist/components/ui/abbreviations.d.ts.map +1 -1
- package/dist/components/ui/abbreviations.js +7 -14
- package/dist/components/ui/abstract.d.ts +1 -1
- package/dist/components/ui/abstract.d.ts.map +1 -1
- package/dist/components/ui/accessibility-skip-to.d.ts +3 -3
- package/dist/components/ui/accessibility-skip-to.d.ts.map +1 -1
- package/dist/components/ui/accessibility-skip-to.js +1 -1
- package/dist/components/ui/acknowledgements.d.ts +1 -1
- package/dist/components/ui/acknowledgements.d.ts.map +1 -1
- package/dist/components/ui/acknowledgements.js +4 -4
- package/dist/components/ui/arrow.d.ts +3 -3
- package/dist/components/ui/arrow.d.ts.map +1 -1
- package/dist/components/ui/article-actions-downloads.d.ts +24 -3
- package/dist/components/ui/article-actions-downloads.d.ts.map +1 -1
- package/dist/components/ui/article-actions-downloads.js +58 -16
- package/dist/components/ui/article-actions-dropdown.d.ts +1 -1
- package/dist/components/ui/article-actions-dropdown.d.ts.map +1 -1
- package/dist/components/ui/article-actions-dropdown.js +9 -9
- package/dist/components/ui/article-actions-share.d.ts +1 -1
- package/dist/components/ui/article-actions-share.d.ts.map +1 -1
- package/dist/components/ui/article-actions-share.js +2 -2
- package/dist/components/ui/article-actions.d.ts +1 -1
- package/dist/components/ui/article-actions.d.ts.map +1 -1
- package/dist/components/ui/article-actions.js +29 -8
- package/dist/components/ui/article-bar.d.ts +16 -3
- package/dist/components/ui/article-bar.d.ts.map +1 -1
- package/dist/components/ui/article-bar.js +9 -7
- package/dist/components/ui/article-card.d.ts +1 -1
- package/dist/components/ui/article-card.d.ts.map +1 -1
- package/dist/components/ui/article-card.js +2 -2
- package/dist/components/ui/article-footer.d.ts +1 -1
- package/dist/components/ui/article-footer.d.ts.map +1 -1
- package/dist/components/ui/article-footer.js +1 -1
- package/dist/components/ui/author-popover.d.ts +1 -1
- package/dist/components/ui/author-popover.d.ts.map +1 -1
- package/dist/components/ui/author-popover.js +3 -3
- package/dist/components/ui/backmatter.d.ts +41 -3
- package/dist/components/ui/backmatter.d.ts.map +1 -1
- package/dist/components/ui/backmatter.js +117 -34
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/banner.d.ts +22 -1
- package/dist/components/ui/banner.d.ts.map +1 -1
- package/dist/components/ui/banner.js +44 -3
- package/dist/components/ui/bibliography.d.ts +1 -1
- package/dist/components/ui/bibliography.d.ts.map +1 -1
- package/dist/components/ui/bibliography.js +3 -3
- package/dist/components/ui/breadcrumb.d.ts +7 -7
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.js +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +2 -2
- package/dist/components/ui/calendar.d.ts +1 -1
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +2 -2
- package/dist/components/ui/citation.d.ts +2 -2
- package/dist/components/ui/citation.d.ts.map +1 -1
- package/dist/components/ui/citation.js +5 -5
- package/dist/components/ui/collapsible-backmatter-section.d.ts +2 -2
- package/dist/components/ui/collapsible-backmatter-section.d.ts.map +1 -1
- package/dist/components/ui/collapsible-backmatter-section.js +3 -3
- package/dist/components/ui/collapsible.d.ts +3 -3
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/cookie-banner.d.ts +2 -1
- package/dist/components/ui/cookie-banner.d.ts.map +1 -1
- package/dist/components/ui/cookie-banner.js +4 -4
- package/dist/components/ui/data-availability.d.ts +1 -1
- package/dist/components/ui/data-availability.d.ts.map +1 -1
- package/dist/components/ui/data-availability.js +4 -4
- package/dist/components/ui/dhr-cta-buttons.d.ts +30 -0
- package/dist/components/ui/dhr-cta-buttons.d.ts.map +1 -0
- package/dist/components/ui/dhr-cta-buttons.js +40 -0
- package/dist/components/ui/dialog.d.ts +10 -10
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +1 -1
- package/dist/components/ui/document-outline.d.ts +11 -2
- package/dist/components/ui/document-outline.d.ts.map +1 -1
- package/dist/components/ui/document-outline.js +101 -54
- package/dist/components/ui/dropdown-menu.d.ts +15 -15
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +1 -1
- package/dist/components/ui/error-page.d.ts +1 -1
- package/dist/components/ui/error-page.d.ts.map +1 -1
- package/dist/components/ui/error-page.js +1 -1
- package/dist/components/ui/font-styles.d.ts +23 -0
- package/dist/components/ui/font-styles.d.ts.map +1 -0
- package/dist/components/ui/font-styles.js +39 -0
- package/dist/components/ui/footer-links.d.ts +1 -1
- package/dist/components/ui/footer-links.d.ts.map +1 -1
- package/dist/components/ui/footer-links.js +2 -2
- package/dist/components/ui/footnotes.d.ts +1 -1
- package/dist/components/ui/footnotes.d.ts.map +1 -1
- package/dist/components/ui/footnotes.js +3 -2
- package/dist/components/ui/frontmatter-badges.d.ts +7 -7
- package/dist/components/ui/frontmatter-badges.d.ts.map +1 -1
- package/dist/components/ui/frontmatter-badges.js +5 -5
- package/dist/components/ui/frontmatter.d.ts +1 -1
- package/dist/components/ui/frontmatter.d.ts.map +1 -1
- package/dist/components/ui/frontmatter.js +1 -1
- package/dist/components/ui/hash-link.d.ts.map +1 -1
- package/dist/components/ui/hash-link.js +2 -1
- package/dist/components/ui/image.d.ts +2 -2
- package/dist/components/ui/image.d.ts.map +1 -1
- package/dist/components/ui/image.js +3 -3
- package/dist/components/ui/index.d.ts +61 -57
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +58 -56
- package/dist/components/ui/input.d.ts +1 -1
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/keywords.d.ts +1 -1
- package/dist/components/ui/keywords.d.ts.map +1 -1
- package/dist/components/ui/keywords.js +3 -3
- package/dist/components/ui/label.js +1 -1
- package/dist/components/ui/license-description.d.ts +1 -1
- package/dist/components/ui/license-description.d.ts.map +1 -1
- package/dist/components/ui/license-description.js +3 -3
- package/dist/components/ui/license-frontmatter.d.ts +2 -2
- package/dist/components/ui/license-frontmatter.d.ts.map +1 -1
- package/dist/components/ui/license-frontmatter.js +4 -4
- package/dist/components/ui/lightbox-container.d.ts +2 -2
- package/dist/components/ui/lightbox-container.d.ts.map +1 -1
- package/dist/components/ui/lightbox-container.js +2 -2
- package/dist/components/ui/lightbox.d.ts +3 -2
- package/dist/components/ui/lightbox.d.ts.map +1 -1
- package/dist/components/ui/lightbox.js +6 -6
- package/dist/components/ui/link-card.d.ts +1 -1
- package/dist/components/ui/link-card.d.ts.map +1 -1
- package/dist/components/ui/link-card.js +1 -1
- package/dist/components/ui/pagination.d.ts +7 -7
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +1 -1
- package/dist/components/ui/popover.d.ts +4 -4
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +1 -1
- package/dist/components/ui/search.d.ts +1 -1
- package/dist/components/ui/search.d.ts.map +1 -1
- package/dist/components/ui/search.js +2 -2
- package/dist/components/ui/select.d.ts +10 -10
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +1 -1
- package/dist/components/ui/separator.d.ts +1 -1
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +1 -1
- package/dist/components/ui/sheet.d.ts +8 -8
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +1 -1
- package/dist/components/ui/sidebar.d.ts +23 -23
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +3 -3
- package/dist/components/ui/skeleton.d.ts +1 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js +1 -1
- package/dist/components/ui/sonner.d.ts +1 -1
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/theme-button.d.ts +1 -1
- package/dist/components/ui/theme-button.d.ts.map +1 -1
- package/dist/components/ui/theme-button.js +3 -3
- package/dist/components/ui/tooltip.d.ts +4 -4
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +2 -2
- package/dist/components/ui/types.d.ts +1 -0
- package/dist/components/ui/types.d.ts.map +1 -1
- package/dist/components/ui/types.js +1 -0
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/use-theme.d.ts +1 -1
- package/dist/hooks/use-theme.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/lib/dedupeAbbreviations.d.ts +11 -0
- package/dist/lib/dedupeAbbreviations.d.ts.map +1 -1
- package/dist/lib/dedupeAbbreviations.js +17 -0
- package/dist/lib/fonts.d.ts +29 -0
- package/dist/lib/fonts.d.ts.map +1 -0
- package/dist/lib/fonts.js +148 -0
- package/dist/lib/index.d.ts +6 -5
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +6 -5
- package/package.json +22 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './layout';
|
|
2
|
-
export * from './providers';
|
|
3
|
-
export * from './ui';
|
|
1
|
+
export * from './layout/index.js';
|
|
2
|
+
export * from './providers/index.js';
|
|
3
|
+
export * from './ui/index.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './layout';
|
|
2
|
-
export * from './providers';
|
|
3
|
-
export * from './ui';
|
|
1
|
+
export * from './layout/index.js';
|
|
2
|
+
export * from './providers/index.js';
|
|
3
|
+
export * from './ui/index.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { LayoutProps } from './types';
|
|
2
|
-
export declare function AppLayout({ children, header, footer, trailing }: LayoutProps): import("react
|
|
1
|
+
import type { LayoutProps } from './types.js';
|
|
2
|
+
export declare function AppLayout({ children, header, footer, trailing, hideNav }: LayoutProps): import("react").JSX.Element;
|
|
3
3
|
export declare function AppContainer({ children, header, className, }: {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
header?: React.ReactNode;
|
|
6
6
|
className?: string;
|
|
7
|
-
}): import("react
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
8
|
//# sourceMappingURL=app-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-layout.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"app-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-layout.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,+BA0BrF;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0BA"}
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { SidebarInset, SidebarProvider } from '../ui/sidebar';
|
|
3
|
-
import { AppSidebar } from './app-sidebar';
|
|
4
|
-
import {
|
|
2
|
+
import { SidebarInset, SidebarProvider } from '../ui/sidebar.js';
|
|
3
|
+
import { AppSidebar } from './app-sidebar.js';
|
|
4
|
+
import { LayoutHeader } from './layout-header.js';
|
|
5
5
|
import { useProjectManifest, useReferences } from '@myst-theme/providers';
|
|
6
|
-
import { DocumentOutline } from '../ui/document-outline';
|
|
7
|
-
import { cn } from '../../lib/utils';
|
|
8
|
-
import { Banner } from '../ui';
|
|
9
|
-
import { createSkipToTargets, SkipTo } from '../ui/accessibility-skip-to';
|
|
10
|
-
import { useDesign } from '../providers';
|
|
11
|
-
export function AppLayout({ children, header, footer, trailing }) {
|
|
6
|
+
import { DocumentOutline } from '../ui/document-outline.js';
|
|
7
|
+
import { cn } from '../../lib/utils.js';
|
|
8
|
+
import { Banner, useBannerStyle } from '../ui/index.js';
|
|
9
|
+
import { createSkipToTargets, SkipTo } from '../ui/accessibility-skip-to.js';
|
|
10
|
+
import { useDesign } from '../providers/index.js';
|
|
11
|
+
export function AppLayout({ children, header, footer, trailing, hideNav }) {
|
|
12
12
|
return (_jsxs(_Fragment, { children: [_jsx(SkipTo, { targets: createSkipToTargets() }), _jsx("div", { className: cn('flex flex-col min-h-screen', {
|
|
13
|
-
'[--header-height:calc(--spacing(22))]': header,
|
|
14
|
-
'[--header-height:calc(--spacing(14))]': !header,
|
|
15
|
-
|
|
13
|
+
'[--header-height:calc(--spacing(22))]': header && !hideNav,
|
|
14
|
+
'[--header-height:calc(--spacing(14))]': !header && !hideNav,
|
|
15
|
+
// Preview banner only (no site nav)
|
|
16
|
+
'[--header-height:calc(--spacing(8))]': header && hideNav,
|
|
17
|
+
'[--header-height:0]': !header && hideNav,
|
|
18
|
+
}), children: _jsxs(SidebarProvider, { className: "flex flex-col h-full", children: [_jsx(LayoutHeader, { header: header, trailing: trailing, hideNav: hideNav, showMobileMenu: true }), _jsxs("div", { className: "flex flex-1", children: [_jsx(AppSidebar, {}), _jsxs(SidebarInset, { className: "flex flex-col min-h-full", children: [_jsx("div", { className: "grow", children: children }), footer && _jsx("div", { className: "shrink-0", children: footer })] })] })] }) })] }));
|
|
16
19
|
}
|
|
17
20
|
export function AppContainer({ children, header, className, }) {
|
|
18
21
|
const references = useReferences();
|
|
19
22
|
const project = useProjectManifest();
|
|
20
23
|
const design = useDesign();
|
|
21
|
-
|
|
24
|
+
// an inline banner is rendered within the title block, not behind it
|
|
25
|
+
const hasInsetBanner = useBannerStyle() === 'inset' && !!project?.banner;
|
|
22
26
|
return (_jsxs("article", { className: cn('relative z-0 max-w-full app-grid grid-gap article', className, {
|
|
23
|
-
'pt-8': !
|
|
24
|
-
}), children: [
|
|
27
|
+
'pt-8': !hasInsetBanner && !design.hide_title_block,
|
|
28
|
+
}), children: [hasInsetBanner && !design.hide_title_block && project?.banner && (_jsx(Banner, { thin: true, banner: project.banner, bannerOptimized: project.bannerOptimized })), header, !!header && _jsx("div", { className: "h-0 col-screen" }), !design.hide_outline && references?.article && (_jsx("aside", { className: "hidden sticky top-24 px-2 h-0 lg:block col-margin xl:px-4", children: _jsx(DocumentOutline, { mdast: references?.article }) })), children, _jsx("div", { id: "bottom-of-article", className: "h-0 col-screen" })] }));
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-sidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/app-sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6P/B,wBAAgB,UAAU,sBA0FzB"}
|
|
@@ -2,16 +2,16 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { ChevronRight, Home, Notebook } from 'lucide-react';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { useNavigation, useLocation, NavLink } from 'react-router';
|
|
5
|
-
import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuItem, } from '../ui/sidebar';
|
|
6
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui';
|
|
7
|
-
import { cn } from '../../lib/utils';
|
|
8
|
-
import { getYear } from '../../lib/parse-date';
|
|
5
|
+
import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuItem, } from '../ui/sidebar.js';
|
|
6
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../ui/index.js';
|
|
7
|
+
import { cn } from '../../lib/utils.js';
|
|
8
|
+
import { getYear } from '../../lib/parse-date.js';
|
|
9
9
|
import { CurvenoteLogo } from '@curvenote/icons';
|
|
10
|
-
import { ThemeButton } from '../ui/theme-button';
|
|
10
|
+
import { ThemeButton } from '../ui/theme-button.js';
|
|
11
11
|
import { useBaseurl, useProjectManifest } from '@myst-theme/providers';
|
|
12
|
-
import { useHydrated } from '../../hooks';
|
|
13
|
-
import { usePage } from '../providers';
|
|
14
|
-
import { useDesign } from '../providers/design';
|
|
12
|
+
import { useHydrated } from '../../hooks/index.js';
|
|
13
|
+
import { usePage } from '../providers/index.js';
|
|
14
|
+
import { useDesign } from '../providers/design.js';
|
|
15
15
|
const icons = {
|
|
16
16
|
notebook: Notebook,
|
|
17
17
|
notebooks: Notebook,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { LayoutProps } from './types';
|
|
2
|
-
export declare function ArticleLayout({ children, header, footer, trailing }: LayoutProps): import("react
|
|
1
|
+
import type { LayoutProps } from './types.js';
|
|
2
|
+
export declare function ArticleLayout({ children, header, footer, trailing, hideNav }: LayoutProps): import("react").JSX.Element;
|
|
3
3
|
export declare function ArticleContainer({ children, header, className, }: {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
header?: React.ReactNode;
|
|
6
6
|
className?: string;
|
|
7
|
-
}): import("react
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
8
|
//# sourceMappingURL=article-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/article-layout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"article-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/article-layout.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,+BAWzF;AASD,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAkCA"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useProjectManifest, useReferences } from '@myst-theme/providers';
|
|
3
|
-
import {
|
|
4
|
-
import { cn } from '../../lib/utils';
|
|
5
|
-
import { createSkipToTargets, DocumentOutline, SkipTo, Banner } from '../ui';
|
|
6
|
-
import { useDesign } from '../providers';
|
|
7
|
-
export function ArticleLayout({ children, header, footer, trailing }) {
|
|
8
|
-
return (_jsxs(_Fragment, { children: [_jsx(SkipTo, { targets: createSkipToTargets() }), _jsxs("div", { className: "flex flex-col min-h-screen", children: [_jsx(
|
|
3
|
+
import { LayoutHeader } from './layout-header.js';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
|
+
import { createSkipToTargets, DocumentOutline, SkipTo, Banner, useBannerStyle, } from '../ui/index.js';
|
|
6
|
+
import { useDesign } from '../providers/index.js';
|
|
7
|
+
export function ArticleLayout({ children, header, footer, trailing, hideNav }) {
|
|
8
|
+
return (_jsxs(_Fragment, { children: [_jsx(SkipTo, { targets: createSkipToTargets() }), _jsxs("div", { className: "flex flex-col min-h-screen", children: [_jsx(LayoutHeader, { header: header, trailing: trailing, hideNav: hideNav }), _jsx("div", { className: "grow", children: children }), footer && _jsx("div", { className: "shrink-0", children: footer })] })] }));
|
|
9
9
|
}
|
|
10
|
+
/** Maps the `content_grid` design option onto the grid classes from `@myst-theme/styles`. */
|
|
11
|
+
const CONTENT_GRID_CLASSES = {
|
|
12
|
+
default: 'article-grid',
|
|
13
|
+
center: 'article-center-grid',
|
|
14
|
+
left: 'article-left-grid',
|
|
15
|
+
};
|
|
10
16
|
export function ArticleContainer({ children, header, className, }) {
|
|
11
17
|
const references = useReferences();
|
|
12
18
|
const project = useProjectManifest();
|
|
13
19
|
const design = useDesign();
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
// an inline banner is rendered within the title block, not behind it
|
|
21
|
+
const hasInsetBanner = useBannerStyle() === 'inset' && !!project?.banner;
|
|
22
|
+
return (_jsxs("article", { className: cn('relative w-full max-w-full grid-gap prose dark:prose-invert', CONTENT_GRID_CLASSES[design.content_grid ?? 'default'], {
|
|
16
23
|
// if the banner is not shown, and the title block is not hidden, then more padding is needed
|
|
17
|
-
'pt-14': !
|
|
18
|
-
}, 'z-0', className), children: [
|
|
24
|
+
'pt-14': !hasInsetBanner && !design.hide_title_block,
|
|
25
|
+
}, 'z-0', className), children: [hasInsetBanner && !design.hide_title_block && project?.banner && (_jsx(Banner, { inset: true, banner: project.banner, bannerOptimized: project.bannerOptimized })), header, !!header && _jsx("div", { className: "h-0 col-screen" }), !design.hide_outline && references?.article && (_jsx("aside", { className: "hidden sticky top-24 px-2 h-0 lg:block col-margin xl:px-4", children: _jsx(DocumentOutline, { mdast: references?.article }) })), children, _jsx("div", { id: "bottom-of-article", className: "h-0 col-screen" })] }));
|
|
19
26
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function GridLayout(): import("react
|
|
1
|
+
export declare function GridLayout(): import("react").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=grid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/components/layout/grid.tsx"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/components/layout/grid.tsx"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,gCAkDzB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export declare function HeaderContainer({ brandBar, children, }: {
|
|
1
|
+
export declare function HeaderContainer({ brandBar, children, hideNav, }: {
|
|
2
2
|
brandBar?: React.ReactNode;
|
|
3
|
-
children
|
|
4
|
-
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
/** When true, only the brand bar is shown (no nav chrome or border). */
|
|
5
|
+
hideNav?: boolean;
|
|
6
|
+
}): import("react").JSX.Element | null;
|
|
5
7
|
//# sourceMappingURL=header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/header.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/header.tsx"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,QAAQ,EACR,OAAe,GAChB,EAAE;IACD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,sCAYA"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
|
+
import { LoadingBar } from './loading-bar.js';
|
|
4
|
+
export function HeaderContainer({ brandBar, children, hideNav = false, }) {
|
|
5
|
+
if (hideNav && !brandBar && !children)
|
|
6
|
+
return null;
|
|
7
|
+
return (_jsx("header", { className: cn('sticky top-0 z-50 w-full', !hideNav && 'border-b bg-background'), children: _jsxs("div", { className: "flex flex-col items-center", children: [brandBar && _jsx("div", { className: "w-full shrink-0", children: brandBar }), children, _jsx(LoadingBar, {})] }) }));
|
|
5
8
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './app-layout';
|
|
2
|
-
export * from './app-sidebar';
|
|
3
|
-
export * from './article-layout';
|
|
4
|
-
export * from './site-header';
|
|
5
|
-
export * from './loading-bar';
|
|
6
|
-
export * from './grid';
|
|
7
|
-
export * from './types';
|
|
1
|
+
export * from './app-layout.js';
|
|
2
|
+
export * from './app-sidebar.js';
|
|
3
|
+
export * from './article-layout.js';
|
|
4
|
+
export * from './site-header.js';
|
|
5
|
+
export * from './loading-bar.js';
|
|
6
|
+
export * from './grid.js';
|
|
7
|
+
export * from './types.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Layout Components
|
|
2
|
-
export * from './app-layout';
|
|
3
|
-
export * from './app-sidebar';
|
|
4
|
-
export * from './article-layout';
|
|
5
|
-
export * from './site-header';
|
|
6
|
-
export * from './loading-bar';
|
|
7
|
-
export * from './grid';
|
|
8
|
-
export * from './types';
|
|
2
|
+
export * from './app-layout.js';
|
|
3
|
+
export * from './app-sidebar.js';
|
|
4
|
+
export * from './article-layout.js';
|
|
5
|
+
export * from './site-header.js';
|
|
6
|
+
export * from './loading-bar.js';
|
|
7
|
+
export * from './grid.js';
|
|
8
|
+
export * from './types.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LayoutProps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Top-of-page header for article/app layouts. When `hideNav` is set, only the
|
|
4
|
+
* brand bar (and optional trailing slot) are shown — no site navigation.
|
|
5
|
+
*/
|
|
6
|
+
export declare function LayoutHeader({ header, trailing, hideNav, showMobileMenu, }: Pick<LayoutProps, 'header' | 'trailing' | 'hideNav'> & {
|
|
7
|
+
showMobileMenu?: boolean;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=layout-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/layout-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,QAAQ,EACR,OAAO,EACP,cAAc,GACf,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,+BAWrF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { HeaderContainer } from './header.js';
|
|
3
|
+
import { SiteHeader } from './site-header.js';
|
|
4
|
+
/**
|
|
5
|
+
* Top-of-page header for article/app layouts. When `hideNav` is set, only the
|
|
6
|
+
* brand bar (and optional trailing slot) are shown — no site navigation.
|
|
7
|
+
*/
|
|
8
|
+
export function LayoutHeader({ header, trailing, hideNav, showMobileMenu, }) {
|
|
9
|
+
if (hideNav) {
|
|
10
|
+
return (_jsx(HeaderContainer, { brandBar: header, hideNav: true, children: trailing ? (_jsx("div", { className: "flex gap-2 justify-end items-center px-2 w-full", children: trailing })) : null }));
|
|
11
|
+
}
|
|
12
|
+
return _jsx(SiteHeader, { brandBar: header, trailing: trailing, showMobileMenu: showMobileMenu });
|
|
13
|
+
}
|
|
@@ -15,5 +15,5 @@ export declare function LoadingBar({ align, className, position, fixedTopClassNa
|
|
|
15
15
|
fixedTop?: number;
|
|
16
16
|
/** Render via portal so `fixed` is not trapped by ancestor `backdrop-filter` / `transform`. */
|
|
17
17
|
portal?: boolean;
|
|
18
|
-
}): import("react
|
|
18
|
+
}): import("react").JSX.Element | null;
|
|
19
19
|
//# sourceMappingURL=loading-bar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-bar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/loading-bar.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,UAAU;;;EAmCzB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAgB,EAChB,SAAS,EACT,QAAqB,EACrB,iBAA4B,EAC5B,QAAQ,EACR,MAAc,GACf,EAAE;IACD,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"loading-bar.d.ts","sourceRoot":"","sources":["../../../src/components/layout/loading-bar.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,UAAU;;;EAmCzB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAgB,EAChB,SAAS,EACT,QAAqB,EACrB,iBAA4B,EAC5B,QAAQ,EACR,MAAc,GACf,EAAE;IACD,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,sCA+BA"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useNavigation } from 'react-router';
|
|
3
3
|
import { useEffect, useMemo, useState } from 'react';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
|
-
import { cn } from '../../lib/utils';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
6
|
/**
|
|
7
7
|
* Show a loading progress bar if the load takes more than 150ms
|
|
8
8
|
*/
|
|
@@ -9,5 +9,5 @@ export declare function SiteHeader({ showSearch, showBreadcrumbs, showArticleAct
|
|
|
9
9
|
* after any configured actions/search and before the mobile menu button.
|
|
10
10
|
*/
|
|
11
11
|
trailing?: React.ReactNode;
|
|
12
|
-
}): import("react
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
13
|
//# sourceMappingURL=site-header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/site-header.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/site-header.tsx"],"names":[],"mappings":"AA0MA,wBAAgB,UAAU,CAAC,EACzB,UAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAqB,EACrB,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,+BA4KA"}
|
|
@@ -2,13 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ExternalLink, ChevronDown, MenuIcon, SearchIcon, SidebarIcon } from 'lucide-react';
|
|
4
4
|
import { NavLink } from 'react-router';
|
|
5
|
-
import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, buttonVariants, SearchDialog, SimpleTooltip, BreadcrumbList, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage, Separator, ArticleActions, ThemeButton, } from '../ui';
|
|
6
|
-
import { cn } from '../../lib/utils';
|
|
7
|
-
import { usePlatformConfig, usePlatformSite } from '../providers/platform-providers';
|
|
8
|
-
import { HeaderContainer } from './header';
|
|
5
|
+
import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, buttonVariants, SearchDialog, SimpleTooltip, BreadcrumbList, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator, BreadcrumbPage, Separator, ArticleActions, ThemeButton, } from '../ui/index.js';
|
|
6
|
+
import { cn } from '../../lib/utils.js';
|
|
7
|
+
import { usePlatformConfig, usePlatformSite } from '../providers/platform-providers.js';
|
|
8
|
+
import { HeaderContainer } from './header.js';
|
|
9
9
|
import { useBaseurl, useFrontmatter, useProjectManifest } from '@myst-theme/providers';
|
|
10
|
-
import { useSidebar } from '../ui/sidebar';
|
|
11
|
-
import { useDesign } from '../providers';
|
|
10
|
+
import { useSidebar } from '../ui/sidebar.js';
|
|
11
|
+
import { useDesign } from '../providers/index.js';
|
|
12
12
|
function NavigationItem({ item }) {
|
|
13
13
|
if (item.children && item.children.length > 0) {
|
|
14
14
|
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "text-sm font-medium", children: [item.title, _jsx(ChevronDown, { className: "w-3 h-3" })] }) }), _jsx(DropdownMenuContent, { align: "end", children: item.children.map((child) => (_jsx(DropdownMenuItem, { children: _jsx(NavigationItem, { item: child }) }, child.title))) })] }, item.title));
|
|
@@ -29,10 +29,15 @@ function MobileNavigationItem({ item, closeMobileMenu, }) {
|
|
|
29
29
|
}
|
|
30
30
|
return (_jsx(NavLink, { to: item.url, className: ({ isActive }) => cn('text-sm font-medium transition-colors hover:text-primary py-2 px-3 hover:bg-muted block', isActive && 'text-primary font-semibold bg-muted'), onClick: closeMobileMenu, children: item.title }, item.title));
|
|
31
31
|
}
|
|
32
|
+
function SiteLogo({ logo, logoDark, logoText, title, className, }) {
|
|
33
|
+
if (!logo && !logoDark && !logoText)
|
|
34
|
+
return null;
|
|
35
|
+
return (_jsxs("a", { href: "/", className: cn('flex gap-2 items-center mr-2 shrink-0', className), children: [logo && (_jsx("img", { src: logo, alt: title || 'Site Logo', className: cn('w-auto h-8 max-h-8', { 'dark:hidden': !!logoDark }) })), logoDark && (_jsx("img", { src: logoDark, alt: title || 'Site Logo', className: "hidden w-auto h-8 max-h-8 dark:block" })), logoText && _jsx("div", { className: "text-lg", children: logoText })] }));
|
|
36
|
+
}
|
|
32
37
|
export function SiteHeader({ showSearch = false, showBreadcrumbs, showArticleActions, showMobileMenu = true, brandBar, trailing, }) {
|
|
33
38
|
const { toggleSidebar } = useSidebar() ?? {};
|
|
34
39
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
|
|
35
|
-
const { hide_theme_toggle_site_header } = useDesign();
|
|
40
|
+
const { hide_theme_toggle_site_header, center_nav_logo } = useDesign();
|
|
36
41
|
const site = usePlatformSite();
|
|
37
42
|
const config = usePlatformConfig();
|
|
38
43
|
const project = useProjectManifest();
|
|
@@ -45,7 +50,12 @@ export function SiteHeader({ showSearch = false, showBreadcrumbs, showArticleAct
|
|
|
45
50
|
const logo_dark = site?.logo_dark || config?.options?.logo_dark;
|
|
46
51
|
const logo_text = config?.options?.logo_text;
|
|
47
52
|
const title = site?.title || config?.title;
|
|
48
|
-
return (_jsx(HeaderContainer, { brandBar: brandBar, children: _jsxs("div", { className: "flex items-center px-2 w-full h-14", children: [_jsxs("div", { className: cn('flex gap-2 items-center h-full', {
|
|
53
|
+
return (_jsx(HeaderContainer, { brandBar: brandBar, children: _jsxs("div", { className: "flex relative items-center px-2 w-full h-14", children: [_jsxs("div", { className: cn('flex gap-2 items-center h-full', {
|
|
54
|
+
'md:w-[200px]': !showBreadcrumbs && !center_nav_logo,
|
|
55
|
+
}), children: [toggleSidebar && (_jsxs(_Fragment, { children: [_jsx(SimpleTooltip, { title: "Toggle sidebar", children: _jsx(Button, { className: "w-8 h-8", variant: "ghost", size: "icon", onClick: toggleSidebar, "aria-label": "Toggle sidebar", children: _jsx(SidebarIcon, { "aria-hidden": "true", focusable: "false" }) }) }), _jsx(Separator, { orientation: "vertical", className: "mr-2 h-4" })] })), !center_nav_logo && (_jsx(SiteLogo, { logo: logo, logoDark: logo_dark, logoText: logo_text, title: title }))] }), center_nav_logo && (_jsx("div", { className: "flex absolute inset-x-0 justify-center items-center h-full pointer-events-none", children: _jsx(SiteLogo, { logo: logo, logoDark: logo_dark, logoText: logo_text, title: title, className: "mr-0 pointer-events-auto" }) })), showBreadcrumbs && (_jsx(Breadcrumb, { className: "hidden sm:block grow", children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbLink, { href: baseurl, className: "truncate max-w-12 md:max-w-24 lg:max-w-48 xl:max-w-64", children: project?.title }) }), _jsx(BreadcrumbSeparator, {}), _jsx(BreadcrumbItem, { children: _jsx(BreadcrumbPage, { className: "truncate max-w-64 lg:max-w-96", children: article?.title }) })] }) })), !showBreadcrumbs && (_jsx("nav", { className: cn('hidden flex-1 gap-1 items-center', {
|
|
56
|
+
// a centered logo occupies the middle of the header, so nav links move left
|
|
57
|
+
'justify-start': center_nav_logo,
|
|
58
|
+
'justify-center': !center_nav_logo,
|
|
49
59
|
'md:flex': showNavLinksOnMediumScreen,
|
|
50
60
|
'lg:flex': showNavLinksOnLargeScreen,
|
|
51
61
|
}), children: nav?.map((item) => (_jsx(NavigationItem, { item: item }, item.title || item.url))) })), _jsxs("div", { className: cn('flex gap-2 justify-end items-center', {
|
|
@@ -8,5 +8,11 @@ export interface LayoutProps {
|
|
|
8
8
|
* menu button. Use for app-specific controls (e.g. a logs tray button).
|
|
9
9
|
*/
|
|
10
10
|
trailing?: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* When true, omit the site navigation bar (logo, nav links, actions) and
|
|
13
|
+
* only render `header` / `trailing` if provided. Useful for preview pages
|
|
14
|
+
* where site-wide navigation is misleading.
|
|
15
|
+
*/
|
|
16
|
+
hideNav?: boolean;
|
|
11
17
|
}
|
|
12
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/layout/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/layout/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -4,7 +4,7 @@ export declare function AnalyticsBoundary({ capture, context, children, }: {
|
|
|
4
4
|
capture: AnalyticsCaptureFn;
|
|
5
5
|
context?: Record<string, unknown>;
|
|
6
6
|
children: ReactNode;
|
|
7
|
-
}): import("react
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
8
|
/**
|
|
9
9
|
* Capture an analytics event. Merges per-call properties with the article-scoped
|
|
10
10
|
* context supplied by the nearest AnalyticsBoundary, adds `overlay_depth` from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-boundary.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AA0B/F,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB
|
|
1
|
+
{"version":3,"file":"analytics-boundary.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AA0B/F,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAWA;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAmBjD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { createContext, useCallback, useContext, useMemo } from 'react';
|
|
3
|
-
import { OverlayInteractionDepthContext } from './overlay-depth';
|
|
4
|
-
import { AnalyticsDevTray } from './analytics-dev-tray';
|
|
5
|
-
import { isAnalyticsDevMode, recordAnalyticsDevEvent } from './analytics-dev-log';
|
|
3
|
+
import { OverlayInteractionDepthContext } from './overlay-depth.js';
|
|
4
|
+
import { AnalyticsDevTray } from './analytics-dev-tray.js';
|
|
5
|
+
import { isAnalyticsDevMode, recordAnalyticsDevEvent } from './analytics-dev-log.js';
|
|
6
6
|
const AnalyticsBoundaryContext = createContext(undefined);
|
|
7
7
|
function camelToSnake(s) {
|
|
8
8
|
return s
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function AnalyticsDevTray(): import("react
|
|
1
|
+
export declare function AnalyticsDevTray(): import("react").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=analytics-dev-tray.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-dev-tray.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-dev-tray.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"analytics-dev-tray.d.ts","sourceRoot":"","sources":["../../../src/components/providers/analytics-dev-tray.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,gBAAgB,gCA2H/B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
3
|
-
import { cn } from '../../lib/utils';
|
|
4
|
-
import { clearAnalyticsDevLog, useAnalyticsDevLog, } from './analytics-dev-log';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
4
|
+
import { clearAnalyticsDevLog, useAnalyticsDevLog, } from './analytics-dev-log.js';
|
|
5
5
|
function formatTime(timestamp) {
|
|
6
6
|
return new Date(timestamp).toLocaleTimeString();
|
|
7
7
|
}
|
|
@@ -47,7 +47,7 @@ export function AnalyticsDevTray() {
|
|
|
47
47
|
}
|
|
48
48
|
}, [logs, selectedId]);
|
|
49
49
|
const selected = logs.find((entry) => entry.id === selectedId) ?? logs[0] ?? null;
|
|
50
|
-
return (_jsxs("div", { className: "fixed bottom-12 left-4 z-[200] flex flex-col items-start gap-2 pointer-events-none", children: [open && (_jsxs("div", { className: "pointer-events-auto flex w-[min(24rem,calc(100vw-2rem))] max-h-[min(50vh,28rem)] flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-xl", children: [_jsxs("div", { className: "flex gap-2 justify-between items-center px-3 py-2 border-b", children: [_jsx("div", { className: "text-sm font-medium", children: "Analytics session" }), _jsxs("div", { className: "flex gap-2 items-center", children: [_jsx("button", { type: "button", className: "text-xs text-blue-600 hover:underline dark:text-blue-400", onClick: () => copyText(JSON.stringify(logs.map((entry) => entry.payload), null, 2)), disabled: logs.length === 0, children: "Copy all" }), _jsx("button", { type: "button", className: "text-xs text-muted-foreground hover:underline", onClick: () => {
|
|
50
|
+
return (_jsxs("div", { className: "fixed bottom-12 left-4 z-[200] flex flex-col items-start gap-2 pointer-events-none font-ui", children: [open && (_jsxs("div", { className: "pointer-events-auto flex w-[min(24rem,calc(100vw-2rem))] max-h-[min(50vh,28rem)] flex-col overflow-hidden rounded-lg border bg-popover text-popover-foreground shadow-xl", children: [_jsxs("div", { className: "flex gap-2 justify-between items-center px-3 py-2 border-b", children: [_jsx("div", { className: "text-sm font-medium", children: "Analytics session" }), _jsxs("div", { className: "flex gap-2 items-center", children: [_jsx("button", { type: "button", className: "text-xs text-blue-600 hover:underline dark:text-blue-400", onClick: () => copyText(JSON.stringify(logs.map((entry) => entry.payload), null, 2)), disabled: logs.length === 0, children: "Copy all" }), _jsx("button", { type: "button", className: "text-xs text-muted-foreground hover:underline", onClick: () => {
|
|
51
51
|
clearAnalyticsDevLog();
|
|
52
52
|
setSelectedId(null);
|
|
53
53
|
}, disabled: logs.length === 0, children: "Clear" }), _jsx("button", { type: "button", className: "text-xs text-muted-foreground hover:underline", onClick: () => setOpen(false), children: "Close" })] })] }), _jsx("ul", { ref: listRef, className: "overflow-auto flex-1 min-h-0", children: logs.length === 0 ? (_jsx("li", { className: "px-3 py-4 text-xs text-muted-foreground", children: "No events captured yet." })) : ([...logs].reverse().map((entry) => (_jsx("li", { "data-log-id": entry.id, children: _jsxs("button", { type: "button", onClick: () => setSelectedId(entry.id), className: cn('flex w-full items-start justify-between gap-3 px-3 py-2 text-left hover:bg-muted/60', selected?.id === entry.id && 'bg-muted'), children: [_jsx("span", { className: "min-w-0 font-mono text-xs font-medium break-all", children: entry.event }), _jsx("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: formatTime(entry.timestamp) })] }) }, entry.id)))) }), _jsx(LogDetail, { entry: selected })] })), _jsxs("button", { type: "button", onClick: () => setOpen((value) => !value), className: cn('pointer-events-auto rounded-full border px-3 py-1.5 text-xs font-medium shadow-md transition-colors duration-300', flash
|
|
@@ -13,7 +13,7 @@ export declare function ArticleVersionsProvider({ children, versions, currentVer
|
|
|
13
13
|
children: ReactNode;
|
|
14
14
|
versions?: ArticleVersionNavItem[];
|
|
15
15
|
currentVersionTag?: string | null;
|
|
16
|
-
}): import("react
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
17
|
export declare function useArticleVersions(): ArticleVersionsContextValue;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=article-versions-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article-versions-provider.d.ts","sourceRoot":"","sources":["../../../src/components/providers/article-versions-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AASF,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,QAAa,EACb,iBAAwB,GACzB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC
|
|
1
|
+
{"version":3,"file":"article-versions-provider.d.ts","sourceRoot":"","sources":["../../../src/components/providers/article-versions-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AASF,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,QAAa,EACb,iBAAwB,GACzB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,+BAMA;AAED,wBAAgB,kBAAkB,IAAI,2BAA2B,CAEhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../../src/components/providers/compute.tsx"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC;CACd
|
|
1
|
+
{"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../../src/components/providers/compute.tsx"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC;CACd,+BASA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SiteThemeConfig, ArticleThemeConfig, DesignOptions, DesignPresetConfig } from '@curvenote/common';
|
|
2
2
|
import { type ExtendedCoreOptions, type PingFn } from '@curvenote/bridge-jupyter';
|
|
3
3
|
import { type SiteManifest } from 'myst-config';
|
|
4
|
+
import type { ThebeServer } from 'thebe-core';
|
|
4
5
|
type ManifestProject = Required<SiteManifest>['projects'][0];
|
|
5
6
|
/**
|
|
6
7
|
* Based on the article SubmissionKind, resolve the theme config options for that kind, if specified,
|
|
@@ -10,29 +11,24 @@ type ManifestProject = Required<SiteManifest>['projects'][0];
|
|
|
10
11
|
* @param config
|
|
11
12
|
* @returns - a resolved set of options that can be applied to the article without the need for further fallback logic
|
|
12
13
|
*/
|
|
13
|
-
export declare function resolveArticleConfigOptions(kindName: string, config?:
|
|
14
|
+
export declare function resolveArticleConfigOptions(kindName: string, config?: SiteThemeConfig): ArticleThemeConfig;
|
|
14
15
|
export declare function resolveThemeAndProjectComputeOptions(resolvedArticleConfig: ArticleThemeConfig, project: Required<SiteManifest>['projects'][0]): ArticleThemeConfig;
|
|
15
16
|
type RepoProviderSpec = any;
|
|
17
|
+
type AdditionalThemeComputeConfig = {
|
|
18
|
+
optionOverrideFn?: (opts?: ExtendedCoreOptions) => ExtendedCoreOptions | undefined;
|
|
19
|
+
customRepoProviders?: RepoProviderSpec[];
|
|
20
|
+
customConnectFn?: (server: ThebeServer) => Promise<void>;
|
|
21
|
+
mecaUrl?: string | null;
|
|
22
|
+
errors?: {
|
|
23
|
+
noMecaBundle?: boolean | null;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
16
26
|
export declare function getCustomRepoProviders(names: string[]): RepoProviderSpec[];
|
|
17
27
|
/**
|
|
18
28
|
* Get the Jupyter configuration based on a combination of the theme's
|
|
19
29
|
* features and overrides, and the site manifest
|
|
20
30
|
*/
|
|
21
|
-
export declare function getAdditionalThemeComputeConfig(resolvedConfig: ArticleThemeConfig, mecaUrl: string | null, respectLocalServerSettings?: boolean):
|
|
22
|
-
optionOverrideFn?: undefined;
|
|
23
|
-
customRepoProviders?: undefined;
|
|
24
|
-
customConnectFn?: undefined;
|
|
25
|
-
mecaUrl?: undefined;
|
|
26
|
-
errors?: undefined;
|
|
27
|
-
} | {
|
|
28
|
-
optionOverrideFn: (opts?: ExtendedCoreOptions) => ExtendedCoreOptions | undefined;
|
|
29
|
-
customRepoProviders: any[] | undefined;
|
|
30
|
-
customConnectFn: ((server: import("thebe-core").ThebeServer) => Promise<void>) | undefined;
|
|
31
|
-
mecaUrl: string | null;
|
|
32
|
-
errors: {
|
|
33
|
-
noMecaBundle: boolean | undefined;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
31
|
+
export declare function getAdditionalThemeComputeConfig(resolvedConfig: ArticleThemeConfig, mecaUrl: string | null, respectLocalServerSettings?: boolean): AdditionalThemeComputeConfig;
|
|
36
32
|
type CurvenoteDesignConfig = DesignPresetConfig | DesignOptions;
|
|
37
33
|
export declare function getFullyQualifiedUrlToMECABundle(project: ManifestProject): string | null;
|
|
38
34
|
export declare function CurvenoteProviders({ children, submissionKind, design, mode, pingFn: providedPingFn, }: {
|
|
@@ -46,6 +42,6 @@ export declare function CurvenoteProviders({ children, submissionKind, design, m
|
|
|
46
42
|
* This allows routes to curry in metadata like workVersionId, articleTitle, etc.
|
|
47
43
|
*/
|
|
48
44
|
pingFn?: PingFn;
|
|
49
|
-
}): import("react
|
|
45
|
+
}): import("react").JSX.Element;
|
|
50
46
|
export {};
|
|
51
47
|
//# sourceMappingURL=curvenote-providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curvenote-providers.d.ts","sourceRoot":"","sources":["../../../src/components/providers/curvenote-providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"curvenote-providers.d.ts","sourceRoot":"","sources":["../../../src/components/providers/curvenote-providers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAElB,aAAa,EACb,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAYhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,KAAK,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,GACvB,kBAAkB,CAyBpB;AAED,wBAAgB,oCAAoC,CAClD,qBAAqB,EAAE,kBAAkB,EACzC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sBAqC/C;AAED,KAAK,gBAAgB,GAAG,GAAG,CAAC;AAG5B,KAAK,4BAA4B,GAAG;IAClC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,SAAS,CAAC;IACnF,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;KAC/B,CAAC;CACH,CAAC;AA0BF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,kBAAkB,EAClC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,0BAA0B,CAAC,EAAE,OAAO,GACnC,4BAA4B,CA4D9B;AAQD,KAAK,qBAAqB,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAEhE,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAIxF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,cAA6B,EAC7B,MAAM,EACN,IAAmB,EACnB,MAAM,EAAE,cAAc,GACvB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,CAAC;IACzD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,+BA0DA"}
|