livemark 0.25.0 → 0.27.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/README.md +3 -2
- package/build/actions/config/define.d.ts +12 -0
- package/build/actions/config/define.unit.js +8 -1
- package/build/actions/escape/copy.d.ts +11 -0
- package/build/actions/escape/copy.js +29 -0
- package/build/actions/escape/copy.unit.d.ts +1 -0
- package/build/actions/escape/copy.unit.js +37 -0
- package/build/actions/escape/list.d.ts +12 -0
- package/build/actions/escape/list.js +27 -0
- package/build/actions/escape/list.unit.d.ts +1 -0
- package/build/actions/escape/list.unit.js +36 -0
- package/build/actions/target/build.d.ts +9 -26
- package/build/actions/target/build.js +50 -71
- package/build/actions/target/build.unit.d.ts +1 -0
- package/build/actions/target/build.unit.js +76 -0
- package/build/actions/target/clear.d.ts +4 -0
- package/build/actions/target/clear.js +14 -0
- package/build/actions/target/clear.unit.d.ts +1 -0
- package/build/actions/target/clear.unit.js +23 -0
- package/build/commands/build.js +1 -2
- package/build/commands/clear.d.ts +5 -0
- package/build/commands/clear.js +15 -0
- package/build/commands/escape.d.ts +4 -3
- package/build/commands/escape.js +45 -48
- package/build/commands/preview.js +1 -2
- package/build/commands/start.js +1 -2
- package/build/components/Abbr.d.ts +1 -1
- package/build/components/Abbr.js +2 -4
- package/build/components/AnsiCode.d.ts +1 -1
- package/build/components/AnsiCode.js +2 -2
- package/build/components/Article.d.ts +2 -1
- package/build/components/Article.js +7 -14
- package/build/components/BackToTop.d.ts +1 -1
- package/build/components/Banner.d.ts +2 -2
- package/build/components/Banner.js +7 -3
- package/build/components/BlogIndex.d.ts +1 -1
- package/build/components/BlogIndex.js +2 -11
- package/build/components/Breadcrumbs.d.ts +1 -1
- package/build/components/Breadcrumbs.js +2 -3
- package/build/components/Callout.d.ts +1 -1
- package/build/components/Callout.js +5 -9
- package/build/components/Card.d.ts +1 -1
- package/build/components/Card.js +2 -3
- package/build/components/Cards.d.ts +1 -1
- package/build/components/ChangelogIndex.d.ts +1 -1
- package/build/components/ChangelogIndex.js +2 -11
- package/build/components/ChoiceList.d.ts +15 -0
- package/build/components/ChoiceList.js +13 -0
- package/build/components/CodeBlock.d.ts +1 -1
- package/build/components/CodeBlock.js +3 -16
- package/build/components/CodeTabs.d.ts +1 -1
- package/build/components/CodeTabs.js +2 -3
- package/build/components/Column.d.ts +1 -1
- package/build/components/Columns.d.ts +1 -1
- package/build/components/Content.d.ts +1 -1
- package/build/components/ContentTab.d.ts +1 -1
- package/build/components/ContentTabs.d.ts +1 -1
- package/build/components/ContentTabs.js +2 -3
- package/build/components/DefaultCatchBoundary.d.ts +1 -1
- package/build/components/DefaultCatchBoundary.js +5 -7
- package/build/components/DefinitionList.d.ts +3 -3
- package/build/components/Details.d.ts +1 -1
- package/build/components/Details.js +2 -5
- package/build/components/FileTree.d.ts +1 -1
- package/build/components/FileTree.js +3 -5
- package/build/components/Footer.d.ts +1 -1
- package/build/components/Footer.js +2 -5
- package/build/components/FootnoteRef.d.ts +1 -1
- package/build/components/FootnoteRef.js +2 -4
- package/build/components/Header.d.ts +6 -0
- package/build/components/Header.js +26 -0
- package/build/components/HeaderMenu.d.ts +2 -0
- package/build/components/HeaderMenu.js +27 -0
- package/build/components/HeaderNav.d.ts +6 -0
- package/build/components/HeaderNav.js +74 -0
- package/build/components/HeaderSearch.d.ts +4 -0
- package/build/components/HeaderSearch.js +33 -0
- package/build/components/Heading.d.ts +6 -6
- package/build/components/InlineBadge.d.ts +2 -2
- package/build/components/InlineBadge.js +1 -1
- package/build/components/InlineIcon.d.ts +1 -1
- package/build/components/InlineToc.d.ts +1 -1
- package/build/components/InlineToc.js +2 -4
- package/build/components/Layout.d.ts +2 -1
- package/build/components/Layout.js +5 -58
- package/build/components/LinkButton.d.ts +2 -2
- package/build/components/LinkButton.js +1 -1
- package/build/components/MenuSheet.d.ts +22 -0
- package/build/components/MenuSheet.js +27 -0
- package/build/components/Mermaid.d.ts +1 -1
- package/build/components/MermaidRenderer.d.ts +1 -1
- package/build/components/MermaidRenderer.js +20 -8
- package/build/components/NotFound.d.ts +1 -1
- package/build/components/NotFound.js +3 -6
- package/build/components/PackageTabs.d.ts +1 -1
- package/build/components/PackageTabs.js +3 -7
- package/build/components/PageToolbar.d.ts +1 -1
- package/build/components/PageToolbar.js +2 -10
- package/build/components/PrevNext.d.ts +1 -1
- package/build/components/PrevNext.js +2 -10
- package/build/components/Root.d.ts +4 -0
- package/build/components/Root.js +8 -0
- package/build/components/Search.d.ts +5 -2
- package/build/components/Search.js +11 -9
- package/build/components/SearchDialog.d.ts +1 -1
- package/build/components/SearchDialog.js +10 -133
- package/build/components/Section.d.ts +1 -1
- package/build/components/SectionHeader.d.ts +1 -1
- package/build/components/SheetPanel.d.ts +12 -0
- package/build/components/SheetPanel.js +19 -0
- package/build/components/Sidebar.d.ts +1 -1
- package/build/components/Sidebar.js +12 -14
- package/build/components/SidebarArticles.d.ts +4 -1
- package/build/components/SidebarArticles.js +5 -9
- package/build/components/SidebarLinks.d.ts +4 -1
- package/build/components/SidebarLinks.js +6 -9
- package/build/components/SidebarPosts.d.ts +4 -1
- package/build/components/SidebarPosts.js +7 -23
- package/build/components/SidebarReleases.d.ts +4 -1
- package/build/components/SidebarReleases.js +5 -15
- package/build/components/SidebarSectionPicker.d.ts +8 -0
- package/build/components/SidebarSectionPicker.js +31 -0
- package/build/components/SidebarSections.d.ts +1 -1
- package/build/components/SidebarSections.js +5 -9
- package/build/components/SiteLink.d.ts +1 -1
- package/build/components/SiteTitle.d.ts +1 -1
- package/build/components/SiteTitle.js +2 -6
- package/build/components/SortableTable.d.ts +1 -1
- package/build/components/SoundCloud.d.ts +1 -1
- package/build/components/SoundCloud.js +2 -2
- package/build/components/TagIndex.d.ts +1 -1
- package/build/components/TagIndex.js +2 -11
- package/build/components/Theme.d.ts +2 -1
- package/build/components/Theme.js +35 -15
- package/build/components/Toc.d.ts +5 -4
- package/build/components/Toc.js +35 -35
- package/build/components/YouTube.d.ts +1 -1
- package/build/components/YouTube.js +2 -2
- package/build/components/ZoomImage.d.ts +1 -1
- package/build/content/article.js +4 -11
- package/build/content-collections.js +6 -4
- package/build/elements/accordion.d.ts +4 -4
- package/build/elements/accordion.js +2 -3
- package/build/elements/alert-dialog.d.ts +12 -12
- package/build/elements/alert-dialog.js +2 -4
- package/build/elements/alert.d.ts +4 -4
- package/build/elements/alert.js +2 -2
- package/build/elements/aspect-ratio.d.ts +1 -1
- package/build/elements/avatar.d.ts +6 -6
- package/build/elements/badge.d.ts +1 -1
- package/build/elements/badge.js +3 -1
- package/build/elements/breadcrumb.d.ts +6 -6
- package/build/elements/breadcrumb.js +2 -4
- package/build/elements/button-group.d.ts +2 -2
- package/build/elements/button-group.js +5 -5
- package/build/elements/button.d.ts +2 -2
- package/build/elements/button.js +9 -7
- package/build/elements/calendar.d.ts +2 -2
- package/build/elements/calendar.js +2 -2
- package/build/elements/card.d.ts +7 -7
- package/build/elements/card.js +4 -4
- package/build/elements/carousel.d.ts +5 -5
- package/build/elements/carousel.js +3 -7
- package/build/elements/chart.d.ts +6 -6
- package/build/elements/chart.js +5 -11
- package/build/elements/checkbox.d.ts +1 -1
- package/build/elements/collapsible.d.ts +3 -3
- package/build/elements/command.d.ts +9 -9
- package/build/elements/command.js +5 -11
- package/build/elements/context-menu.d.ts +15 -15
- package/build/elements/context-menu.js +6 -9
- package/build/elements/dialog.d.ts +10 -10
- package/build/elements/dialog.js +2 -6
- package/build/elements/drawer.d.ts +14 -12
- package/build/elements/drawer.js +14 -15
- package/build/elements/dropdown-menu.d.ts +15 -15
- package/build/elements/dropdown-menu.js +7 -10
- package/build/elements/empty.d.ts +6 -6
- package/build/elements/empty.js +2 -2
- package/build/elements/field.d.ts +10 -10
- package/build/elements/field.js +3 -4
- package/build/elements/hover-card.d.ts +3 -3
- package/build/elements/hover-card.js +2 -2
- package/build/elements/input-group.d.ts +7 -7
- package/build/elements/input-group.js +5 -5
- package/build/elements/input-otp.d.ts +4 -4
- package/build/elements/input.d.ts +1 -1
- package/build/elements/input.js +2 -2
- package/build/elements/item.d.ts +9 -9
- package/build/elements/item.js +2 -2
- package/build/elements/kbd.d.ts +2 -2
- package/build/elements/label.d.ts +1 -1
- package/build/elements/menubar.d.ts +16 -16
- package/build/elements/menubar.js +9 -11
- package/build/elements/native-select.d.ts +3 -3
- package/build/elements/native-select.js +2 -4
- package/build/elements/navigation-menu.d.ts +8 -8
- package/build/elements/navigation-menu.js +3 -5
- package/build/elements/pagination.d.ts +7 -7
- package/build/elements/pagination.js +4 -10
- package/build/elements/popover.d.ts +6 -6
- package/build/elements/popover.js +2 -2
- package/build/elements/progress.d.ts +5 -5
- package/build/elements/progress.js +2 -3
- package/build/elements/radio-group.d.ts +2 -2
- package/build/elements/resizable.d.ts +3 -3
- package/build/elements/scroll-area.d.ts +2 -2
- package/build/elements/scroll-area.js +2 -4
- package/build/elements/select.d.ts +9 -9
- package/build/elements/select.js +4 -9
- package/build/elements/separator.d.ts +1 -1
- package/build/elements/sheet.d.ts +8 -8
- package/build/elements/sheet.js +2 -6
- package/build/elements/sidebar.d.ts +19 -19
- package/build/elements/sidebar.js +15 -37
- package/build/elements/skeleton.d.ts +1 -1
- package/build/elements/slider.d.ts +2 -1
- package/build/elements/slider.js +2 -3
- package/build/elements/sonner.d.ts +1 -1
- package/build/elements/spinner.d.ts +1 -1
- package/build/elements/switch.d.ts +1 -1
- package/build/elements/table.d.ts +8 -8
- package/build/elements/tabs.d.ts +4 -4
- package/build/elements/tabs.js +3 -3
- package/build/elements/textarea.d.ts +1 -1
- package/build/elements/textarea.js +2 -2
- package/build/elements/toggle-group.d.ts +3 -2
- package/build/elements/toggle-group.js +3 -3
- package/build/elements/toggle.d.ts +1 -1
- package/build/elements/toggle.js +2 -2
- package/build/elements/tooltip.d.ts +4 -4
- package/build/elements/tooltip.js +2 -3
- package/build/head.d.ts +4 -0
- package/build/head.js +6 -0
- package/build/helpers/agent-skills.d.ts +22 -0
- package/build/helpers/agent-skills.js +46 -0
- package/build/helpers/agent-skills.unit.d.ts +1 -0
- package/build/helpers/agent-skills.unit.js +49 -0
- package/build/helpers/article-search.d.ts +19 -0
- package/build/helpers/article-search.js +134 -0
- package/build/helpers/article.d.ts +13 -0
- package/build/helpers/article.js +17 -1
- package/build/helpers/dependency-dir.d.ts +5 -0
- package/build/helpers/dependency-dir.js +20 -0
- package/build/helpers/dependency-dir.unit.d.ts +1 -0
- package/build/helpers/dependency-dir.unit.js +25 -0
- package/build/helpers/dynamic-icon-resolver.d.ts +1 -1
- package/build/helpers/dynamic-icon.d.ts +1 -1
- package/build/helpers/head.d.ts +58 -0
- package/build/helpers/head.js +80 -0
- package/build/helpers/head.unit.d.ts +1 -0
- package/build/helpers/head.unit.js +110 -0
- package/build/helpers/llms.d.ts +33 -0
- package/build/helpers/llms.js +72 -0
- package/build/helpers/llms.unit.d.ts +1 -0
- package/build/helpers/llms.unit.js +98 -0
- package/build/helpers/nav-items.d.ts +11 -0
- package/build/helpers/nav-items.js +65 -0
- package/build/helpers/render-inline-markdown.d.ts +1 -0
- package/build/helpers/render-inline-markdown.js +34 -0
- package/build/helpers/render-inline-markdown.unit.d.ts +1 -0
- package/build/helpers/render-inline-markdown.unit.js +20 -0
- package/build/helpers/search-highlight.d.ts +8 -0
- package/build/helpers/search-highlight.js +59 -0
- package/build/helpers/search-highlight.unit.d.ts +1 -0
- package/build/helpers/search-highlight.unit.js +36 -0
- package/build/helpers/target-export.d.ts +9 -0
- package/build/helpers/target-export.js +24 -0
- package/build/helpers/target-export.unit.d.ts +1 -0
- package/build/helpers/target-export.unit.js +25 -0
- package/build/helpers/theme.d.ts +6 -2
- package/build/helpers/theme.js +40 -7
- package/build/helpers/theme.unit.d.ts +1 -0
- package/build/helpers/theme.unit.js +30 -0
- package/build/hooks/hydrated.d.ts +2 -0
- package/build/hooks/hydrated.js +15 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -1
- package/build/models/config.d.ts +52 -6
- package/build/models/config.js +17 -1
- package/build/models/section.d.ts +4 -2
- package/build/models/section.js +1 -1
- package/build/plugins/vite-agents.d.ts +17 -0
- package/build/plugins/vite-agents.js +109 -0
- package/build/plugins/vite-agents.unit.d.ts +1 -0
- package/build/plugins/vite-agents.unit.js +20 -0
- package/build/plugins/vite-livemark.d.ts +4 -5
- package/build/plugins/vite-livemark.js +56 -90
- package/build/plugins/vite-robots.d.ts +4 -2
- package/build/plugins/vite-robots.js +15 -2
- package/build/plugins/vite-robots.unit.js +5 -1
- package/build/program.js +4 -2
- package/build/routes/$.d.ts +4 -1
- package/build/routes/$.js +20 -9
- package/build/routes/__root.js +29 -63
- package/build/settings.js +2 -1
- package/build/vite.config.js +3 -1
- package/package.json +69 -66
- package/{.agents/skills → skills}/livemark-authoring/SKILL.md +2 -2
- package/{.agents/skills → skills}/livemark-configuration/SKILL.md +16 -5
- package/skills/livemark-customization/SKILL.md +146 -0
- package/source/actions/config/define.unit.ts +9 -0
- package/source/actions/escape/copy.ts +35 -0
- package/source/actions/escape/copy.unit.ts +51 -0
- package/source/actions/escape/list.ts +30 -0
- package/source/actions/escape/list.unit.ts +42 -0
- package/source/actions/target/build.ts +49 -69
- package/source/actions/target/build.unit.ts +95 -0
- package/source/actions/target/clear.ts +14 -0
- package/source/actions/target/clear.unit.ts +25 -0
- package/source/commands/build.ts +0 -1
- package/source/commands/clear.ts +15 -0
- package/source/commands/escape.ts +42 -59
- package/source/commands/preview.ts +0 -1
- package/source/commands/start.ts +0 -1
- package/source/components/AnsiCode.tsx +1 -1
- package/source/components/Article.tsx +8 -4
- package/source/components/Banner.tsx +12 -2
- package/source/components/BlogIndex.tsx +1 -1
- package/source/components/Callout.tsx +4 -6
- package/source/components/ChangelogIndex.tsx +1 -1
- package/source/components/ChoiceList.tsx +69 -0
- package/source/components/CodeBlock.tsx +6 -6
- package/source/components/CodeTabs.tsx +1 -1
- package/source/components/ContentTabs.tsx +1 -1
- package/source/components/DefaultCatchBoundary.tsx +4 -6
- package/source/components/Details.tsx +1 -1
- package/source/components/FileTree.tsx +1 -1
- package/source/components/Header.tsx +52 -0
- package/source/components/HeaderMenu.tsx +41 -0
- package/source/components/HeaderNav.tsx +145 -0
- package/source/components/HeaderSearch.tsx +77 -0
- package/source/components/InlineBadge.tsx +1 -1
- package/source/components/InlineToc.tsx +1 -1
- package/source/components/Layout.tsx +16 -160
- package/source/components/LinkButton.tsx +9 -1
- package/source/components/MenuSheet.tsx +92 -0
- package/source/components/MermaidRenderer.tsx +19 -8
- package/source/components/NotFound.tsx +3 -5
- package/source/components/PackageTabs.tsx +2 -2
- package/source/components/PageToolbar.tsx +11 -3
- package/source/components/PrevNext.tsx +2 -2
- package/source/components/Root.tsx +13 -0
- package/source/components/Search.tsx +28 -8
- package/source/components/SearchDialog.tsx +15 -189
- package/source/components/SheetPanel.tsx +69 -0
- package/source/components/Sidebar.tsx +27 -14
- package/source/components/SidebarArticles.tsx +4 -3
- package/source/components/SidebarLinks.tsx +3 -2
- package/source/components/SidebarPosts.tsx +3 -2
- package/source/components/SidebarReleases.tsx +3 -2
- package/source/components/SidebarSectionPicker.tsx +70 -0
- package/source/components/SiteTitle.tsx +5 -5
- package/source/components/SoundCloud.tsx +1 -1
- package/source/components/TagIndex.tsx +1 -1
- package/source/components/Theme.tsx +55 -29
- package/source/components/Toc.tsx +76 -55
- package/source/components/YouTube.tsx +1 -1
- package/source/content/article.ts +8 -13
- package/source/content-collections.ts +5 -4
- package/source/elements/alert-dialog.tsx +1 -1
- package/source/elements/alert.tsx +1 -1
- package/source/elements/badge.tsx +4 -0
- package/source/elements/button-group.tsx +4 -4
- package/source/elements/button.tsx +10 -6
- package/source/elements/calendar.tsx +1 -1
- package/source/elements/card.tsx +3 -3
- package/source/elements/command.tsx +7 -4
- package/source/elements/context-menu.tsx +5 -5
- package/source/elements/dialog.tsx +1 -1
- package/source/elements/drawer.tsx +59 -43
- package/source/elements/dropdown-menu.tsx +6 -6
- package/source/elements/empty.tsx +1 -1
- package/source/elements/field.tsx +1 -1
- package/source/elements/hover-card.tsx +1 -1
- package/source/elements/input-group.tsx +4 -4
- package/source/elements/input.tsx +1 -1
- package/source/elements/item.tsx +1 -1
- package/source/elements/menubar.tsx +8 -8
- package/source/elements/native-select.tsx +1 -1
- package/source/elements/popover.tsx +1 -1
- package/source/elements/select.tsx +3 -3
- package/source/elements/sidebar.tsx +8 -21
- package/source/elements/tabs.tsx +2 -2
- package/source/elements/textarea.tsx +1 -1
- package/source/elements/toggle-group.tsx +2 -2
- package/source/elements/toggle.tsx +1 -1
- package/source/env.d.ts +1 -0
- package/source/head.ts +7 -0
- package/source/helpers/agent-skills.ts +59 -0
- package/source/helpers/agent-skills.unit.ts +56 -0
- package/source/helpers/article-search.tsx +192 -0
- package/source/helpers/article.ts +17 -0
- package/source/helpers/dependency-dir.ts +20 -0
- package/source/helpers/dependency-dir.unit.ts +39 -0
- package/source/helpers/head.ts +105 -0
- package/source/helpers/head.unit.ts +118 -0
- package/source/helpers/llms.ts +109 -0
- package/source/helpers/llms.unit.ts +115 -0
- package/source/helpers/nav-items.tsx +102 -0
- package/source/helpers/render-inline-markdown.ts +44 -0
- package/source/helpers/render-inline-markdown.unit.ts +30 -0
- package/source/helpers/search-highlight.ts +73 -0
- package/source/helpers/search-highlight.unit.ts +42 -0
- package/source/helpers/target-export.ts +28 -0
- package/source/helpers/target-export.unit.ts +37 -0
- package/source/helpers/theme.ts +40 -6
- package/source/helpers/theme.unit.ts +32 -0
- package/source/hooks/hydrated.ts +18 -0
- package/source/index.ts +1 -0
- package/source/models/config.ts +24 -0
- package/source/models/section.ts +3 -0
- package/source/plugins/vite-agents.ts +135 -0
- package/source/plugins/vite-agents.unit.ts +26 -0
- package/source/plugins/vite-livemark.ts +54 -95
- package/source/plugins/vite-robots.ts +18 -3
- package/source/plugins/vite-robots.unit.ts +7 -0
- package/source/program.ts +2 -0
- package/source/routes/$.tsx +27 -9
- package/source/routes/__root.tsx +51 -71
- package/source/settings.ts +1 -0
- package/source/styles/general.css +59 -11
- package/source/styles/markdown.css +13 -7
- package/source/styles/shape.css +14 -0
- package/source/vite.config.ts +2 -0
- package/.agents/skills/change-review/SKILL.md +0 -47
- package/.agents/skills/livemark-customization/SKILL.md +0 -118
|
@@ -3,15 +3,13 @@ import { File, Folder } from "lucide-react";
|
|
|
3
3
|
/** Renders a file/directory tree from a JSON-serialized tree structure */
|
|
4
4
|
export function FileTree(props) {
|
|
5
5
|
const items = JSON.parse(props.tree);
|
|
6
|
-
return (_jsx("div", { className: "not-prose my-4 rounded-
|
|
6
|
+
return (_jsx("div", { className: "not-prose my-4 rounded-card border border-border bg-card p-4 font-mono text-sm", children: _jsx(TreeItems, { items: items, depth: 0 }) }));
|
|
7
7
|
}
|
|
8
8
|
function TreeItems(props) {
|
|
9
9
|
return (_jsx("ul", { className: props.depth > 0 ? "ml-4 border-l border-border pl-2" : "", children: props.items.map((item, index) => (_jsx(TreeNode, { item: item, depth: props.depth }, `${item.name}-${index}`))) }));
|
|
10
10
|
}
|
|
11
11
|
function TreeNode(props) {
|
|
12
12
|
const { item, depth } = props;
|
|
13
|
-
return (_jsxs("li", { className: "py-0.5", children: [
|
|
14
|
-
_jsxs("span", { className: "inline-flex items-center gap-2", children: [item.isDir ? (_jsx(Folder, { className: "size-4 shrink-0 text-primary" })) : (_jsx(File, { className: "size-4 shrink-0 text-muted-foreground" })), _jsx("span", { className: item.isDir ? "font-semibold" : "", children: item.name })
|
|
15
|
-
] }), item.children && item.children.length > 0 && (_jsx(TreeItems, { items: item.children, depth: depth + 1 }))] }));
|
|
13
|
+
return (_jsxs("li", { className: "py-0.5", children: [_jsxs("span", { className: "inline-flex items-center gap-2", children: [item.isDir ? (_jsx(Folder, { className: "size-4 shrink-0 text-primary" })) : (_jsx(File, { className: "size-4 shrink-0 text-muted-foreground" })), _jsx("span", { className: item.isDir ? "font-semibold" : "", children: item.name })] }), item.children && item.children.length > 0 && (_jsx(TreeItems, { items: item.children, depth: depth + 1 }))] }));
|
|
16
14
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9GaWxlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBUTNDLDBFQUEwRTtBQUMxRSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXVCO0lBQzlDLE1BQU0sS0FBSyxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWhELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyxnRkFBZ0YsWUFDN0YsS0FBQyxTQUFTLElBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFJLEdBQ2pDLENBQ1AsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUEyQztJQUM1RCxPQUFPLENBQ0wsYUFBSSxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQ3JFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDaEMsS0FBQyxRQUFRLElBQStCLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQXZELEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBb0MsQ0FDM0UsQ0FBQyxHQUNDLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxLQUF3QztJQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU3QixPQUFPLENBQ0wsY0FBSSxTQUFTLEVBQUMsUUFBUSxhQUNwQixnQkFBTSxTQUFTLEVBQUMsZ0NBQWdDLGFBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1osS0FBQyxNQUFNLElBQUMsU0FBUyxFQUFDLDhCQUE4QixHQUFHLENBQ3BELENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLHVDQUF1QyxHQUFHLENBQzNELEVBQ0QsZUFBTSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQUcsSUFBSSxDQUFDLElBQUksR0FBUSxJQUNqRSxFQUNOLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQzVDLEtBQUMsU0FBUyxJQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFJLENBQ3RELElBQ0UsQ0FDTixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGUsIEZvbGRlciB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuXG5pbnRlcmZhY2UgVHJlZUl0ZW0ge1xuICBuYW1lOiBzdHJpbmdcbiAgaXNEaXI6IGJvb2xlYW5cbiAgY2hpbGRyZW4/OiBUcmVlSXRlbVtdXG59XG5cbi8qKiBSZW5kZXJzIGEgZmlsZS9kaXJlY3RvcnkgdHJlZSBmcm9tIGEgSlNPTi1zZXJpYWxpemVkIHRyZWUgc3RydWN0dXJlICovXG5leHBvcnQgZnVuY3Rpb24gRmlsZVRyZWUocHJvcHM6IHsgdHJlZTogc3RyaW5nIH0pIHtcbiAgY29uc3QgaXRlbXM6IFRyZWVJdGVtW10gPSBKU09OLnBhcnNlKHByb3BzLnRyZWUpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS00IHJvdW5kZWQtY2FyZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1jYXJkIHAtNCBmb250LW1vbm8gdGV4dC1zbVwiPlxuICAgICAgPFRyZWVJdGVtcyBpdGVtcz17aXRlbXN9IGRlcHRoPXswfSAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmZ1bmN0aW9uIFRyZWVJdGVtcyhwcm9wczogeyBpdGVtczogVHJlZUl0ZW1bXTsgZGVwdGg6IG51bWJlciB9KSB7XG4gIHJldHVybiAoXG4gICAgPHVsIGNsYXNzTmFtZT17cHJvcHMuZGVwdGggPiAwID8gXCJtbC00IGJvcmRlci1sIGJvcmRlci1ib3JkZXIgcGwtMlwiIDogXCJcIn0+XG4gICAgICB7cHJvcHMuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICA8VHJlZU5vZGUga2V5PXtgJHtpdGVtLm5hbWV9LSR7aW5kZXh9YH0gaXRlbT17aXRlbX0gZGVwdGg9e3Byb3BzLmRlcHRofSAvPlxuICAgICAgKSl9XG4gICAgPC91bD5cbiAgKVxufVxuXG5mdW5jdGlvbiBUcmVlTm9kZShwcm9wczogeyBpdGVtOiBUcmVlSXRlbTsgZGVwdGg6IG51bWJlciB9KSB7XG4gIGNvbnN0IHsgaXRlbSwgZGVwdGggfSA9IHByb3BzXG5cbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPVwicHktMC41XCI+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAge2l0ZW0uaXNEaXIgPyAoXG4gICAgICAgICAgPEZvbGRlciBjbGFzc05hbWU9XCJzaXplLTQgc2hyaW5rLTAgdGV4dC1wcmltYXJ5XCIgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RmlsZSBjbGFzc05hbWU9XCJzaXplLTQgc2hyaW5rLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCIgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtpdGVtLmlzRGlyID8gXCJmb250LXNlbWlib2xkXCIgOiBcIlwifT57aXRlbS5uYW1lfTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIHtpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxUcmVlSXRlbXMgaXRlbXM9e2l0ZW0uY2hpbGRyZW59IGRlcHRoPXtkZXB0aCArIDF9IC8+XG4gICAgICApfVxuICAgIDwvbGk+XG4gIClcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Footer shown below article content */
|
|
2
|
-
export declare function Footer(): import("react
|
|
2
|
+
export declare function Footer(): import("react").JSX.Element;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/** Footer shown below article content */
|
|
3
3
|
export function Footer() {
|
|
4
|
-
return (_jsxs("p", { className: "mt-12 text-center text-sm text-muted-foreground", children: ["Created with ",
|
|
5
|
-
_jsx("span", { className: "text-red-500", children: "\u2764" }),
|
|
6
|
-
" and", " ", _jsx("a", { href: "https://livemark.dev", target: "_blank", rel: "noopener noreferrer", className: "font-medium hover:text-foreground transition-colors", children: "Livemark" })
|
|
7
|
-
] }));
|
|
4
|
+
return (_jsxs("p", { className: "mt-12 text-center text-sm text-muted-foreground", children: ["Created with ", _jsx("span", { className: "text-red-500", children: "\u2764" }), " and", " ", _jsx("a", { href: "https://livemark.dev", target: "_blank", rel: "noopener noreferrer", className: "font-medium hover:text-foreground transition-colors", children: "Livemark" })] }));
|
|
8
5
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sQ0FDTCxhQUFHLFNBQVMsRUFBQyxpREFBaUQsOEJBQy9DLGVBQU0sU0FBUyxFQUFDLGNBQWMsdUJBQVMsVUFBSyxHQUFHLEVBQzVELFlBQ0UsSUFBSSxFQUFDLHNCQUFzQixFQUMzQixNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsU0FBUyxFQUFDLHFEQUFxRCx5QkFHN0QsSUFDRixDQUNMLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEZvb3RlciBzaG93biBiZWxvdyBhcnRpY2xlIGNvbnRlbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gIHJldHVybiAoXG4gICAgPHAgY2xhc3NOYW1lPVwibXQtMTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIENyZWF0ZWQgd2l0aCA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIj7inaQ8L3NwYW4+IGFuZHtcIiBcIn1cbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCJodHRwczovL2xpdmVtYXJrLmRldlwiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBjbGFzc05hbWU9XCJmb250LW1lZGl1bSBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgPlxuICAgICAgICBMaXZlbWFya1xuICAgICAgPC9hPlxuICAgIDwvcD5cbiAgKVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type ComponentProps } from "react";
|
|
2
2
|
/** Wraps footnote reference links in a HoverCard that previews footnote content inline */
|
|
3
|
-
export declare function FootnoteRef(props: ComponentProps<"a">): import("react
|
|
3
|
+
export declare function FootnoteRef(props: ComponentProps<"a">): import("react").JSX.Element;
|
|
@@ -24,8 +24,6 @@ function FootnoteHoverCard(props) {
|
|
|
24
24
|
}
|
|
25
25
|
setFootnoteHtml(wrapper.innerHTML);
|
|
26
26
|
}, [props.href]);
|
|
27
|
-
return (_jsxs(HoverCard, { children: [
|
|
28
|
-
_jsx(HoverCardTrigger, { render: _jsx("a", { ...props }) }), _jsx(HoverCardContent, { className: "prose dark:prose-invert text-sm w-80 [&>p]:my-1 [&>p:first-child]:mt-0 [&>p:last-child]:mb-0", side: "top", sideOffset: 8, children: footnoteHtml ? (_jsx("div", { dangerouslySetInnerHTML: { __html: footnoteHtml } })) : (_jsx("p", { className: "text-muted-foreground", children: "Footnote not found" })) })
|
|
29
|
-
] }));
|
|
27
|
+
return (_jsxs(HoverCard, { children: [_jsx(HoverCardTrigger, { render: _jsx("a", { ...props }) }), _jsx(HoverCardContent, { className: "prose dark:prose-invert text-sm w-80 [&>p]:my-1 [&>p:first-child]:mt-0 [&>p:last-child]:mb-0", side: "top", sideOffset: 8, children: footnoteHtml ? (_jsx("div", { dangerouslySetInnerHTML: { __html: footnoteHtml } })) : (_jsx("p", { className: "text-muted-foreground", children: "Footnote not found" })) })] }));
|
|
30
28
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdG5vdGVSZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9Gb290bm90ZVJlZi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTRCLENBQUE7QUFFMUYsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUE7QUFFM0MsMEZBQTBGO0FBQzFGLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBMEI7SUFDcEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7SUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxPQUFPLGVBQU8sS0FBSyxHQUFJLENBQUE7SUFDekIsQ0FBQztJQUVELE9BQU8sS0FBQyxpQkFBaUIsT0FBSyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFBO0FBQ3JELENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQTZDO0lBQ3RFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXBELFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzVDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTTtRQUVmLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBO1FBQ2hDLEtBQUssTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztZQUMxRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDbEIsQ0FBQztRQUNELGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFaEIsT0FBTyxDQUNMLE1BQUMsU0FBUyxlQUNSLEtBQUMsZ0JBQWdCLElBQUMsTUFBTSxFQUFFLGVBQU8sS0FBSyxHQUFJLEdBQUksRUFDOUMsS0FBQyxnQkFBZ0IsSUFDZixTQUFTLEVBQUMsOEZBQThGLEVBQ3hHLElBQUksRUFBQyxLQUFLLEVBQ1YsVUFBVSxFQUFFLENBQUMsWUFFWixZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ2QsY0FBSyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBSSxDQUMzRCxDQUFDLENBQUMsQ0FBQyxDQUNGLFlBQUcsU0FBUyxFQUFDLHVCQUF1QixtQ0FBdUIsQ0FDNUQsR0FDZ0IsSUFDVCxDQUNiLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb21wb25lbnRQcm9wcywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBIb3ZlckNhcmQsIEhvdmVyQ2FyZENvbnRlbnQsIEhvdmVyQ2FyZFRyaWdnZXIgfSBmcm9tIFwiLi4vZWxlbWVudHMvaG92ZXItY2FyZC50c3hcIlxuXG5jb25zdCBGT09UTk9URV9QUkVGSVggPSBcIiN1c2VyLWNvbnRlbnQtZm4tXCJcblxuLyoqIFdyYXBzIGZvb3Rub3RlIHJlZmVyZW5jZSBsaW5rcyBpbiBhIEhvdmVyQ2FyZCB0aGF0IHByZXZpZXdzIGZvb3Rub3RlIGNvbnRlbnQgaW5saW5lICovXG5leHBvcnQgZnVuY3Rpb24gRm9vdG5vdGVSZWYocHJvcHM6IENvbXBvbmVudFByb3BzPFwiYVwiPikge1xuICBjb25zdCBocmVmID0gcHJvcHMuaHJlZiA/PyBcIlwiXG4gIGlmICghaHJlZi5zdGFydHNXaXRoKEZPT1ROT1RFX1BSRUZJWCkpIHtcbiAgICByZXR1cm4gPGEgey4uLnByb3BzfSAvPlxuICB9XG5cbiAgcmV0dXJuIDxGb290bm90ZUhvdmVyQ2FyZCB7Li4ucHJvcHN9IGhyZWY9e2hyZWZ9IC8+XG59XG5cbmZ1bmN0aW9uIEZvb3Rub3RlSG92ZXJDYXJkKHByb3BzOiBDb21wb25lbnRQcm9wczxcImFcIj4gJiB7IGhyZWY6IHN0cmluZyB9KSB7XG4gIGNvbnN0IFtmb290bm90ZUh0bWwsIHNldEZvb3Rub3RlSHRtbF0gPSB1c2VTdGF0ZShcIlwiKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBwcm9wcy5ocmVmLnNsaWNlKDEpXG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YXJnZXRJZClcbiAgICBpZiAoIWVsKSByZXR1cm5cblxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgd3JhcHBlci5pbm5lckhUTUwgPSBlbC5pbm5lckhUTUxcbiAgICBmb3IgKGNvbnN0IGJhY2tyZWYgb2Ygd3JhcHBlci5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtZm9vdG5vdGUtYmFja3JlZl1cIikpIHtcbiAgICAgIGJhY2tyZWYucmVtb3ZlKClcbiAgICB9XG4gICAgc2V0Rm9vdG5vdGVIdG1sKHdyYXBwZXIuaW5uZXJIVE1MKVxuICB9LCBbcHJvcHMuaHJlZl0pXG5cbiAgcmV0dXJuIChcbiAgICA8SG92ZXJDYXJkPlxuICAgICAgPEhvdmVyQ2FyZFRyaWdnZXIgcmVuZGVyPXs8YSB7Li4ucHJvcHN9IC8+fSAvPlxuICAgICAgPEhvdmVyQ2FyZENvbnRlbnRcbiAgICAgICAgY2xhc3NOYW1lPVwicHJvc2UgZGFyazpwcm9zZS1pbnZlcnQgdGV4dC1zbSB3LTgwIFsmPnBdOm15LTEgWyY+cDpmaXJzdC1jaGlsZF06bXQtMCBbJj5wOmxhc3QtY2hpbGRdOm1iLTBcIlxuICAgICAgICBzaWRlPVwidG9wXCJcbiAgICAgICAgc2lkZU9mZnNldD17OH1cbiAgICAgID5cbiAgICAgICAge2Zvb3Rub3RlSHRtbCA/IChcbiAgICAgICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogZm9vdG5vdGVIdG1sIH19IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+Rm9vdG5vdGUgbm90IGZvdW5kPC9wPlxuICAgICAgICApfVxuICAgICAgPC9Ib3ZlckNhcmRDb250ZW50PlxuICAgIDwvSG92ZXJDYXJkPlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Sticky site header: title, header sections and links, search and theme. `toggle`
|
|
2
|
+
* sits before the title from `lg`; `menu` opens the phone navigation */
|
|
3
|
+
export declare function Header(props: {
|
|
4
|
+
toggle?: React.ReactNode;
|
|
5
|
+
menu?: React.ReactNode;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { config } from "livemark:virtual";
|
|
3
|
+
import { useLocation, useMatch } from "@tanstack/react-router";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { cn } from "cn";
|
|
6
|
+
import { currentSection } from "../content/article.js";
|
|
7
|
+
import { activeSiteLink } from "../helpers/section.js";
|
|
8
|
+
import { HeaderMenu } from "./HeaderMenu.js";
|
|
9
|
+
import { HeaderNav } from "./HeaderNav.js";
|
|
10
|
+
import { Search } from "./Search.js";
|
|
11
|
+
import { SiteLink } from "./SiteLink.js";
|
|
12
|
+
import { SiteTitle } from "./SiteTitle.js";
|
|
13
|
+
import { Theme } from "./Theme.js";
|
|
14
|
+
/** Sticky site header: title, header sections and links, search and theme. `toggle`
|
|
15
|
+
* sits before the title from `lg`; `menu` opens the phone navigation */
|
|
16
|
+
export function Header(props) {
|
|
17
|
+
const pathname = useLocation({ select: l => l.pathname });
|
|
18
|
+
const articleRoute = useMatch({ from: "/$", shouldThrow: false });
|
|
19
|
+
const activeSection = articleRoute
|
|
20
|
+
? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
|
|
21
|
+
: undefined;
|
|
22
|
+
const siteLinkTarget = activeSiteLink(pathname, config.sections ?? []);
|
|
23
|
+
const [compactSearch, setCompactSearch] = useState(false);
|
|
24
|
+
return (_jsxs("header", { className: "sticky top-0 z-20 flex has-[[data-header-search]]:z-40 h-16 shrink-0 items-center border-b bg-background", children: [_jsxs("div", { className: cn("flex min-w-0 items-center self-stretch pl-4 lg:shrink-0", props.toggle ? "pr-4" : "lg:w-[calc(var(--sidebar-width,16rem)+4rem)]"), children: [props.toggle && _jsx("div", { className: "hidden lg:flex", children: props.toggle }), _jsx(SiteLink, { to: siteLinkTarget, className: cn("flex min-w-0 items-center gap-2", props.toggle && "lg:hidden"), children: _jsx(SiteTitle, {}) })] }), _jsx(HeaderNav, { activePrefix: activeSection?.prefix, onCompactChange: setCompactSearch }), _jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-1 pr-2 lg:pr-1", children: [_jsx(Search, { compact: compactSearch }), _jsx(Theme, {}), _jsx("div", { className: "lg:hidden", children: props.menu ?? _jsx(HeaderMenu, {}) })] })] }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNoQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBRW5DO3dFQUN3RTtBQUN4RSxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQTJEO0lBQ2hGLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3pELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDakUsTUFBTSxhQUFhLEdBQUcsWUFBWTtRQUNoQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUN6RCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ2IsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFekQsT0FBTyxDQUNMLGtCQUFRLFNBQVMsRUFBQywwR0FBMEcsYUFDMUgsZUFDRSxTQUFTLEVBQUUsRUFBRSxDQUNYLHlEQUF5RCxFQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDhDQUE4QyxDQUN2RSxhQUVBLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBSyxTQUFTLEVBQUMsZ0JBQWdCLFlBQUUsS0FBSyxDQUFDLE1BQU0sR0FBTyxFQUNyRSxLQUFDLFFBQVEsSUFDUCxFQUFFLEVBQUUsY0FBYyxFQUNsQixTQUFTLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLFlBRTdFLEtBQUMsU0FBUyxLQUFHLEdBQ0osSUFDUCxFQUNOLEtBQUMsU0FBUyxJQUNSLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUNuQyxlQUFlLEVBQUUsZ0JBQWdCLEdBQ2pDLEVBQ0YsZUFBSyxTQUFTLEVBQUMsdURBQXVELGFBQ3BFLEtBQUMsTUFBTSxJQUFDLE9BQU8sRUFBRSxhQUFhLEdBQUksRUFDbEMsS0FBQyxLQUFLLEtBQUcsRUFDVCxjQUFLLFNBQVMsRUFBQyxXQUFXLFlBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFDLFVBQVUsS0FBRyxHQUFPLElBQzNELElBQ0MsQ0FDVixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJsaXZlbWFyazp2aXJ0dWFsXCJcbmltcG9ydCB7IHVzZUxvY2F0aW9uLCB1c2VNYXRjaCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcbmltcG9ydCB7IGN1cnJlbnRTZWN0aW9uIH0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5pbXBvcnQgeyBhY3RpdmVTaXRlTGluayB9IGZyb20gXCIuLi9oZWxwZXJzL3NlY3Rpb24udHNcIlxuaW1wb3J0IHsgSGVhZGVyTWVudSB9IGZyb20gXCIuL0hlYWRlck1lbnUudHN4XCJcbmltcG9ydCB7IEhlYWRlck5hdiB9IGZyb20gXCIuL0hlYWRlck5hdi50c3hcIlxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSBcIi4vU2VhcmNoLnRzeFwiXG5pbXBvcnQgeyBTaXRlTGluayB9IGZyb20gXCIuL1NpdGVMaW5rLnRzeFwiXG5pbXBvcnQgeyBTaXRlVGl0bGUgfSBmcm9tIFwiLi9TaXRlVGl0bGUudHN4XCJcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSBcIi4vVGhlbWUudHN4XCJcblxuLyoqIFN0aWNreSBzaXRlIGhlYWRlcjogdGl0bGUsIGhlYWRlciBzZWN0aW9ucyBhbmQgbGlua3MsIHNlYXJjaCBhbmQgdGhlbWUuIGB0b2dnbGVgXG4gKiBzaXRzIGJlZm9yZSB0aGUgdGl0bGUgZnJvbSBgbGdgOyBgbWVudWAgb3BlbnMgdGhlIHBob25lIG5hdmlnYXRpb24gKi9cbmV4cG9ydCBmdW5jdGlvbiBIZWFkZXIocHJvcHM6IHsgdG9nZ2xlPzogUmVhY3QuUmVhY3ROb2RlOyBtZW51PzogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzaXRlTGlua1RhcmdldCA9IGFjdGl2ZVNpdGVMaW5rKHBhdGhuYW1lLCBjb25maWcuc2VjdGlvbnMgPz8gW10pXG4gIGNvbnN0IFtjb21wYWN0U2VhcmNoLCBzZXRDb21wYWN0U2VhcmNoXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIHJldHVybiAoXG4gICAgPGhlYWRlciBjbGFzc05hbWU9XCJzdGlja3kgdG9wLTAgei0yMCBmbGV4IGhhcy1bW2RhdGEtaGVhZGVyLXNlYXJjaF1dOnotNDAgaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIgYm9yZGVyLWIgYmctYmFja2dyb3VuZFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgIFwiZmxleCBtaW4tdy0wIGl0ZW1zLWNlbnRlciBzZWxmLXN0cmV0Y2ggcGwtNCBsZzpzaHJpbmstMFwiLFxuICAgICAgICAgIHByb3BzLnRvZ2dsZSA/IFwicHItNFwiIDogXCJsZzp3LVtjYWxjKHZhcigtLXNpZGViYXItd2lkdGgsMTZyZW0pKzRyZW0pXVwiLFxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMudG9nZ2xlICYmIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXhcIj57cHJvcHMudG9nZ2xlfTwvZGl2Pn1cbiAgICAgICAgPFNpdGVMaW5rXG4gICAgICAgICAgdG89e3NpdGVMaW5rVGFyZ2V0fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y24oXCJmbGV4IG1pbi13LTAgaXRlbXMtY2VudGVyIGdhcC0yXCIsIHByb3BzLnRvZ2dsZSAmJiBcImxnOmhpZGRlblwiKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTaXRlVGl0bGUgLz5cbiAgICAgICAgPC9TaXRlTGluaz5cbiAgICAgIDwvZGl2PlxuICAgICAgPEhlYWRlck5hdlxuICAgICAgICBhY3RpdmVQcmVmaXg9e2FjdGl2ZVNlY3Rpb24/LnByZWZpeH1cbiAgICAgICAgb25Db21wYWN0Q2hhbmdlPXtzZXRDb21wYWN0U2VhcmNofVxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWwtYXV0byBmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBnYXAtMSBwci0yIGxnOnByLTFcIj5cbiAgICAgICAgPFNlYXJjaCBjb21wYWN0PXtjb21wYWN0U2VhcmNofSAvPlxuICAgICAgICA8VGhlbWUgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpoaWRkZW5cIj57cHJvcHMubWVudSA/PyA8SGVhZGVyTWVudSAvPn08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { config } from "livemark:virtual";
|
|
3
|
+
import { useNavigate } from "@tanstack/react-router";
|
|
4
|
+
import { Menu } from "lucide-react";
|
|
5
|
+
import { Button } from "../elements/button.js";
|
|
6
|
+
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
7
|
+
import { useNavItems } from "../helpers/nav-items.js";
|
|
8
|
+
import { prefixUrl } from "../helpers/prefix-url.js";
|
|
9
|
+
import { MenuSheet } from "./MenuSheet.js";
|
|
10
|
+
/** Phone navigation for a `Header` without a sidebar: the header sections and links */
|
|
11
|
+
export function HeaderMenu() {
|
|
12
|
+
const items = useNavItems();
|
|
13
|
+
const navigate = useNavigate();
|
|
14
|
+
return (_jsx(MenuSheet, { title: "Navigation", items: items.map(item => ({
|
|
15
|
+
id: item.key,
|
|
16
|
+
label: item.suffix ? `${item.title} (${item.suffix})` : item.title,
|
|
17
|
+
icon: item.icon && _jsx(DynamicIcon, { name: item.icon, className: "size-4 shrink-0" }),
|
|
18
|
+
active: item.active,
|
|
19
|
+
onSelect: () => {
|
|
20
|
+
if (item.href)
|
|
21
|
+
window.location.assign(prefixUrl(item.href, config.base));
|
|
22
|
+
else if (item.target)
|
|
23
|
+
navigate({ to: item.target });
|
|
24
|
+
},
|
|
25
|
+
})), trigger: _jsx(Button, { variant: "ghost", size: "icon-sm", title: "Navigation", "aria-label": "Navigation", className: "cursor-pointer" }), children: _jsx(Menu, {}) }));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0hlYWRlck1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF3QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNkIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQTBCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUUzQyx1RkFBdUY7QUFDdkYsTUFBTSxVQUFVLFVBQVU7SUFDeEIsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFDM0IsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUE7SUFFOUIsT0FBTyxDQUNMLEtBQUMsU0FBUyxJQUNSLEtBQUssRUFBQyxZQUFZLEVBQ2xCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QixFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDbEUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksS0FBQyxXQUFXLElBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLGlCQUFpQixHQUFHO1lBQy9FLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksSUFBSSxDQUFDLElBQUk7b0JBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7cUJBQ25FLElBQUksSUFBSSxDQUFDLE1BQU07b0JBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1lBQ3JELENBQUM7U0FDRixDQUFDLENBQUMsRUFDSCxPQUFPLEVBQ0wsS0FBQyxNQUFNLElBQ0wsT0FBTyxFQUFDLE9BQU8sRUFDZixJQUFJLEVBQUMsU0FBUyxFQUNkLEtBQUssRUFBQyxZQUFZLGdCQUNQLFlBQVksRUFDdkIsU0FBUyxFQUFDLGdCQUFnQixHQUMxQixZQUdKLEtBQUMsSUFBSSxLQUFHLEdBQ0UsQ0FDYixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCJsaXZlbWFyazp2aXJ0dWFsXCJcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgTWVudSB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4uL2VsZW1lbnRzL2J1dHRvbi50c3hcIlxuaW1wb3J0IHsgRHluYW1pY0ljb24gfSBmcm9tIFwiLi4vaGVscGVycy9keW5hbWljLWljb24udHN4XCJcbmltcG9ydCB7IHVzZU5hdkl0ZW1zIH0gZnJvbSBcIi4uL2hlbHBlcnMvbmF2LWl0ZW1zLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IE1lbnVTaGVldCB9IGZyb20gXCIuL01lbnVTaGVldC50c3hcIlxuXG4vKiogUGhvbmUgbmF2aWdhdGlvbiBmb3IgYSBgSGVhZGVyYCB3aXRob3V0IGEgc2lkZWJhcjogdGhlIGhlYWRlciBzZWN0aW9ucyBhbmQgbGlua3MgKi9cbmV4cG9ydCBmdW5jdGlvbiBIZWFkZXJNZW51KCkge1xuICBjb25zdCBpdGVtcyA9IHVzZU5hdkl0ZW1zKClcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpXG5cbiAgcmV0dXJuIChcbiAgICA8TWVudVNoZWV0XG4gICAgICB0aXRsZT1cIk5hdmlnYXRpb25cIlxuICAgICAgaXRlbXM9e2l0ZW1zLm1hcChpdGVtID0+ICh7XG4gICAgICAgIGlkOiBpdGVtLmtleSxcbiAgICAgICAgbGFiZWw6IGl0ZW0uc3VmZml4ID8gYCR7aXRlbS50aXRsZX0gKCR7aXRlbS5zdWZmaXh9KWAgOiBpdGVtLnRpdGxlLFxuICAgICAgICBpY29uOiBpdGVtLmljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2l0ZW0uaWNvbn0gY2xhc3NOYW1lPVwic2l6ZS00IHNocmluay0wXCIgLz4sXG4gICAgICAgIGFjdGl2ZTogaXRlbS5hY3RpdmUsXG4gICAgICAgIG9uU2VsZWN0OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0uaHJlZikgd2luZG93LmxvY2F0aW9uLmFzc2lnbihwcmVmaXhVcmwoaXRlbS5ocmVmLCBjb25maWcuYmFzZSkpXG4gICAgICAgICAgZWxzZSBpZiAoaXRlbS50YXJnZXQpIG5hdmlnYXRlKHsgdG86IGl0ZW0udGFyZ2V0IH0pXG4gICAgICAgIH0sXG4gICAgICB9KSl9XG4gICAgICB0cmlnZ2VyPXtcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgc2l6ZT1cImljb24tc21cIlxuICAgICAgICAgIHRpdGxlPVwiTmF2aWdhdGlvblwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIk5hdmlnYXRpb25cIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8TWVudSAvPlxuICAgIDwvTWVudVNoZWV0PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Header sections and links from `lg`: once they outgrow the bar, Search turns
|
|
2
|
+
* compact and the rest fold into a "More" menu */
|
|
3
|
+
export declare function HeaderNav(props: {
|
|
4
|
+
activePrefix?: string;
|
|
5
|
+
onCompactChange: (compact: boolean) => void;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronDown } from "lucide-react";
|
|
3
|
+
import { useLayoutEffect, useRef, useState } from "react";
|
|
4
|
+
import { cn } from "cn";
|
|
5
|
+
import { renderNavAnchor, useNavItems } from "../helpers/nav-items.js";
|
|
6
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../elements/dropdown-menu.js";
|
|
7
|
+
// The `lg:w-56` Search field minus its 36px icon-only form
|
|
8
|
+
const SEARCH_COMPACT_SAVING = 188;
|
|
9
|
+
/** Header sections and links from `lg`: once they outgrow the bar, Search turns
|
|
10
|
+
* compact and the rest fold into a "More" menu */
|
|
11
|
+
export function HeaderNav(props) {
|
|
12
|
+
const items = useNavItems(props.activePrefix);
|
|
13
|
+
const strip = useRef(null);
|
|
14
|
+
const measure = useRef(null);
|
|
15
|
+
const [visibleCount, setVisibleCount] = useState(items.length);
|
|
16
|
+
const onCompactChange = useRef(props.onCompactChange);
|
|
17
|
+
onCompactChange.current = props.onCompactChange;
|
|
18
|
+
useLayoutEffect(() => {
|
|
19
|
+
let compact = false;
|
|
20
|
+
const fit = () => {
|
|
21
|
+
if (!strip.current || !measure.current)
|
|
22
|
+
return;
|
|
23
|
+
const style = getComputedStyle(strip.current);
|
|
24
|
+
const width = strip.current.clientWidth -
|
|
25
|
+
parseFloat(style.paddingLeft) -
|
|
26
|
+
parseFloat(style.paddingRight);
|
|
27
|
+
if (width <= 0)
|
|
28
|
+
return;
|
|
29
|
+
// Measured as if Search were full, so toggling it never feeds back into the fit
|
|
30
|
+
const room = width - (compact ? SEARCH_COMPACT_SAVING : 0);
|
|
31
|
+
const gap = parseFloat(getComputedStyle(measure.current).columnGap) || 0;
|
|
32
|
+
const widths = [...measure.current.children].map(child => child.getBoundingClientRect().width);
|
|
33
|
+
const more = widths.pop() ?? 0;
|
|
34
|
+
const total = widths.reduce((sum, w) => sum + w, 0) + gap * (widths.length - 1);
|
|
35
|
+
compact = total > room;
|
|
36
|
+
let count = widths.length;
|
|
37
|
+
if (total > room + SEARCH_COMPACT_SAVING) {
|
|
38
|
+
let used = more;
|
|
39
|
+
count = 0;
|
|
40
|
+
for (const w of widths) {
|
|
41
|
+
if (used + gap + w > room + SEARCH_COMPACT_SAVING)
|
|
42
|
+
break;
|
|
43
|
+
used += gap + w;
|
|
44
|
+
count++;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
onCompactChange.current(compact);
|
|
48
|
+
setVisibleCount(count);
|
|
49
|
+
};
|
|
50
|
+
fit();
|
|
51
|
+
const observer = new ResizeObserver(fit);
|
|
52
|
+
if (strip.current)
|
|
53
|
+
observer.observe(strip.current);
|
|
54
|
+
if (measure.current)
|
|
55
|
+
observer.observe(measure.current);
|
|
56
|
+
return () => observer.disconnect();
|
|
57
|
+
}, []);
|
|
58
|
+
const shown = items.slice(0, visibleCount);
|
|
59
|
+
const folded = items.slice(visibleCount);
|
|
60
|
+
return (_jsxs("nav", { ref: strip, className: "relative hidden w-0 min-w-0 flex-1 items-center gap-6 self-stretch overflow-hidden px-6 text-sm lg:flex xl:gap-8", children: [shown.map(item => (_jsx(HeaderNavLink, { item: item }, item.key))), folded.length > 0 && _jsx(HeaderNavMore, { items: folded }), _jsxs("div", { ref: measure, "aria-hidden": true, inert: true, className: "invisible absolute left-0 flex gap-6 whitespace-nowrap xl:gap-8", children: [items.map(item => (_jsx(HeaderNavLink, { item: item }, item.key))), _jsx(HeaderNavMoreTrigger, { active: false })] })] }));
|
|
61
|
+
}
|
|
62
|
+
function HeaderNavLink(props) {
|
|
63
|
+
return renderNavAnchor(props.item, cn("inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap text-foreground", props.item.active ? ACTIVE : IDLE));
|
|
64
|
+
}
|
|
65
|
+
function HeaderNavMore(props) {
|
|
66
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { render: _jsx(HeaderNavMoreTrigger, { active: props.items.some(item => item.active) }) }), _jsx(DropdownMenuContent, { align: "end", className: "w-auto", children: props.items.map(item => (_jsx(DropdownMenuItem, { className: cn("cursor-pointer", item.active && "font-medium"), render: renderNavAnchor(item) }, item.key))) })] }));
|
|
67
|
+
}
|
|
68
|
+
function HeaderNavMoreTrigger(props) {
|
|
69
|
+
const { active, className, ...rest } = props;
|
|
70
|
+
return (_jsxs("button", { type: "button", ...rest, className: cn("inline-flex shrink-0 cursor-pointer items-center gap-1 whitespace-nowrap text-foreground", active ? ACTIVE : IDLE, className), children: ["More", _jsx(ChevronDown, { className: "size-3.5" })] }));
|
|
71
|
+
}
|
|
72
|
+
const ACTIVE = "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5";
|
|
73
|
+
const IDLE = "opacity-80 hover:opacity-100 transition-opacity";
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTmF2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyTmF2LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDekQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN2QixPQUFPLEVBQWdCLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBMEIsQ0FBQTtBQUNyRixPQUFPLEVBQ0wsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEdBQ3BCLE1BQU0sOEJBQStCLENBQUE7QUFFdEMsMkRBQTJEO0FBQzNELE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFBO0FBRWpDO2tEQUNrRDtBQUNsRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBR3pCO0lBQ0MsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQWMsSUFBSSxDQUFDLENBQUE7SUFDdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDOUQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNyRCxlQUFlLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7SUFFL0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUE7UUFDbkIsTUFBTSxHQUFHLEdBQUcs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LENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUN2QixLQUFDLGdCQUFnQixJQUVmLFNBQVMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsRUFDN0QsTUFBTSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFGeEIsSUFBSSxDQUFDLEdBQUcsQ0FHYixDQUNILENBQUMsR0FDa0IsSUFDVCxDQUNoQixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLEtBQTJEO0lBRTNELE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBQzVDLE9BQU8sQ0FDTCxrQkFDRSxJQUFJLEVBQUMsUUFBUSxLQUNULElBQUksRUFDUixTQUFTLEVBQUUsRUFBRSxDQUNYLDBGQUEwRixFQUMxRixNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUN0QixTQUFTLENBQ1YscUJBR0QsS0FBQyxXQUFXLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBRyxJQUM3QixDQUNWLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcseURBQXlELENBQUE7QUFDeEUsTUFBTSxJQUFJLEdBQUcsaURBQWlELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcImNuXCJcbmltcG9ydCB7IHR5cGUgTmF2SXRlbSwgcmVuZGVyTmF2QW5jaG9yLCB1c2VOYXZJdGVtcyB9IGZyb20gXCIuLi9oZWxwZXJzL25hdi1pdGVtcy50c3hcIlxuaW1wb3J0IHtcbiAgRHJvcGRvd25NZW51LFxuICBEcm9wZG93bk1lbnVDb250ZW50LFxuICBEcm9wZG93bk1lbnVJdGVtLFxuICBEcm9wZG93bk1lbnVUcmlnZ2VyLFxufSBmcm9tIFwiLi4vZWxlbWVudHMvZHJvcGRvd24tbWVudS50c3hcIlxuXG4vLyBUaGUgYGxnOnctNTZgIFNlYXJjaCBmaWVsZCBtaW51cyBpdHMgMzZweCBpY29uLW9ubHkgZm9ybVxuY29uc3QgU0VBUkNIX0NPTVBBQ1RfU0FWSU5HID0gMTg4XG5cbi8qKiBIZWFkZXIgc2VjdGlvbnMgYW5kIGxpbmtzIGZyb20gYGxnYDogb25jZSB0aGV5IG91dGdyb3cgdGhlIGJhciwgU2VhcmNoIHR1cm5zXG4gKiBjb21wYWN0IGFuZCB0aGUgcmVzdCBmb2xkIGludG8gYSBcIk1vcmVcIiBtZW51ICovXG5leHBvcnQgZnVuY3Rpb24gSGVhZGVyTmF2KHByb3BzOiB7XG4gIGFjdGl2ZVByZWZpeD86IHN0cmluZ1xuICBvbkNvbXBhY3RDaGFuZ2U6IChjb21wYWN0OiBib29sZWFuKSA9PiB2b2lkXG59KSB7XG4gIGNvbnN0IGl0ZW1zID0gdXNlTmF2SXRlbXMocHJvcHMuYWN0aXZlUHJlZml4KVxuICBjb25zdCBzdHJpcCA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbClcbiAgY29uc3QgbWVhc3VyZSA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3Zpc2libGVDb3VudCwgc2V0VmlzaWJsZUNvdW50XSA9IHVzZVN0YXRlKGl0ZW1zLmxlbmd0aClcbiAgY29uc3Qgb25Db21wYWN0Q2hhbmdlID0gdXNlUmVmKHByb3BzLm9uQ29tcGFjdENoYW5nZSlcbiAgb25Db21wYWN0Q2hhbmdlLmN1cnJlbnQgPSBwcm9wcy5vbkNvbXBhY3RDaGFuZ2VcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb21wYWN0ID0gZmFsc2VcbiAgICBjb25zdCBmaXQgPSAoKSA9PiB7XG4gICAgICBpZiAoIXN0cmlwLmN1cnJlbnQgfHwgIW1lYXN1cmUuY3VycmVudCkgcmV0dXJuXG4gICAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoc3RyaXAuY3VycmVudClcbiAgICAgIGNvbnN0IHdpZHRoID1cbiAgICAgICAgc3RyaXAuY3VycmVudC5jbGllbnRXaWR0aCAtXG4gICAgICAgIHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ0xlZnQpIC1cbiAgICAgICAgcGFyc2VGbG9hdChzdHlsZS5wYWRkaW5nUmlnaHQpXG4gICAgICBpZiAod2lkdGggPD0gMCkgcmV0dXJuXG4gICAgICAvLyBNZWFzdXJlZCBhcyBpZiBTZWFyY2ggd2VyZSBmdWxsLCBzbyB0b2dnbGluZyBpdCBuZXZlciBmZWVkcyBiYWNrIGludG8gdGhlIGZpdFxuICAgICAgY29uc3Qgcm9vbSA9IHdpZHRoIC0gKGNvbXBhY3QgPyBTRUFSQ0hfQ09NUEFDVF9TQVZJTkcgOiAwKVxuICAgICAgY29uc3QgZ2FwID0gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKG1lYXN1cmUuY3VycmVudCkuY29sdW1uR2FwKSB8fCAwXG4gICAgICBjb25zdCB3aWR0aHMgPSBbLi4ubWVhc3VyZS5jdXJyZW50LmNoaWxkcmVuXS5tYXAoXG4gICAgICAgIGNoaWxkID0+IGNoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLFxuICAgICAgKVxuICAgICAgY29uc3QgbW9yZSA9IHdpZHRocy5wb3AoKSA/PyAwXG4gICAgICBjb25zdCB0b3RhbCA9IHdpZHRocy5yZWR1Y2UoKHN1bSwgdykgPT4gc3VtICsgdywgMCkgKyBnYXAgKiAod2lkdGhzLmxlbmd0aCAtIDEpXG5cbiAgICAgIGNvbXBhY3QgPSB0b3RhbCA+IHJvb21cbiAgICAgIGxldCBjb3VudCA9IHdpZHRocy5sZW5ndGhcbiAgICAgIGlmICh0b3RhbCA+IHJvb20gKyBTRUFSQ0hfQ09NUEFDVF9TQVZJTkcpIHtcbiAgICAgICAgbGV0IHVzZWQgPSBtb3JlXG4gICAgICAgIGNvdW50ID0gMFxuICAgICAgICBmb3IgKGNvbnN0IHcgb2Ygd2lkdGhzKSB7XG4gICAgICAgICAgaWYgKHVzZWQgKyBnYXAgKyB3ID4gcm9vbSArIFNFQVJDSF9DT01QQUNUX1NBVklORykgYnJlYWtcbiAgICAgICAgICB1c2VkICs9IGdhcCArIHdcbiAgICAgICAgICBjb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9uQ29tcGFjdENoYW5nZS5jdXJyZW50KGNvbXBhY3QpXG4gICAgICBzZXRWaXNpYmxlQ291bnQoY291bnQpXG4gICAgfVxuICAgIGZpdCgpXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZml0KVxuICAgIGlmIChzdHJpcC5jdXJyZW50KSBvYnNlcnZlci5vYnNlcnZlKHN0cmlwLmN1cnJlbnQpXG4gICAgaWYgKG1lYXN1cmUuY3VycmVudCkgb2JzZXJ2ZXIub2JzZXJ2ZShtZWFzdXJlLmN1cnJlbnQpXG4gICAgcmV0dXJuICgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICB9LCBbXSlcblxuICBjb25zdCBzaG93biA9IGl0ZW1zLnNsaWNlKDAsIHZpc2libGVDb3VudClcbiAgY29uc3QgZm9sZGVkID0gaXRlbXMuc2xpY2UodmlzaWJsZUNvdW50KVxuXG4gIHJldHVybiAoXG4gICAgPG5hdlxuICAgICAgcmVmPXtzdHJpcH1cbiAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGhpZGRlbiB3LTAgbWluLXctMCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC02IHNlbGYtc3RyZXRjaCBvdmVyZmxvdy1oaWRkZW4gcHgtNiB0ZXh0LXNtIGxnOmZsZXggeGw6Z2FwLThcIlxuICAgID5cbiAgICAgIHtzaG93bi5tYXAoaXRlbSA9PiAoXG4gICAgICAgIDxIZWFkZXJOYXZMaW5rIGtleT17aXRlbS5rZXl9IGl0ZW09e2l0ZW19IC8+XG4gICAgICApKX1cbiAgICAgIHtmb2xkZWQubGVuZ3RoID4gMCAmJiA8SGVhZGVyTmF2TW9yZSBpdGVtcz17Zm9sZGVkfSAvPn1cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXttZWFzdXJlfVxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICBpbmVydFxuICAgICAgICBjbGFzc05hbWU9XCJpbnZpc2libGUgYWJzb2x1dGUgbGVmdC0wIGZsZXggZ2FwLTYgd2hpdGVzcGFjZS1ub3dyYXAgeGw6Z2FwLThcIlxuICAgICAgPlxuICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgIDxIZWFkZXJOYXZMaW5rIGtleT17aXRlbS5rZXl9IGl0ZW09e2l0ZW19IC8+XG4gICAgICAgICkpfVxuICAgICAgICA8SGVhZGVyTmF2TW9yZVRyaWdnZXIgYWN0aXZlPXtmYWxzZX0gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuICApXG59XG5cbmZ1bmN0aW9uIEhlYWRlck5hdkxpbmsocHJvcHM6IHsgaXRlbTogTmF2SXRlbSB9KSB7XG4gIHJldHVybiByZW5kZXJOYXZBbmNob3IoXG4gICAgcHJvcHMuaXRlbSxcbiAgICBjbihcbiAgICAgIFwiaW5saW5lLWZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGdhcC0xLjUgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1mb3JlZ3JvdW5kXCIsXG4gICAgICBwcm9wcy5pdGVtLmFjdGl2ZSA/IEFDVElWRSA6IElETEUsXG4gICAgKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBIZWFkZXJOYXZNb3JlKHByb3BzOiB7IGl0ZW1zOiBOYXZJdGVtW10gfSkge1xuICByZXR1cm4gKFxuICAgIDxEcm9wZG93bk1lbnU+XG4gICAgICA8RHJvcGRvd25NZW51VHJpZ2dlclxuICAgICAgICByZW5kZXI9ezxIZWFkZXJOYXZNb3JlVHJpZ2dlciBhY3RpdmU9e3Byb3BzLml0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtLmFjdGl2ZSl9IC8+fVxuICAgICAgLz5cbiAgICAgIDxEcm9wZG93bk1lbnVDb250ZW50IGFsaWduPVwiZW5kXCIgY2xhc3NOYW1lPVwidy1hdXRvXCI+XG4gICAgICAgIHtwcm9wcy5pdGVtcy5tYXAoaXRlbSA9PiAoXG4gICAgICAgICAgPERyb3Bkb3duTWVudUl0ZW1cbiAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NuKFwiY3Vyc29yLXBvaW50ZXJcIiwgaXRlbS5hY3RpdmUgJiYgXCJmb250LW1lZGl1bVwiKX1cbiAgICAgICAgICAgIHJlbmRlcj17cmVuZGVyTmF2QW5jaG9yKGl0ZW0pfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9Ecm9wZG93bk1lbnVDb250ZW50PlxuICAgIDwvRHJvcGRvd25NZW51PlxuICApXG59XG5cbmZ1bmN0aW9uIEhlYWRlck5hdk1vcmVUcmlnZ2VyKFxuICBwcm9wczogUmVhY3QuQ29tcG9uZW50UHJvcHM8XCJidXR0b25cIj4gJiB7IGFjdGl2ZTogYm9vbGVhbiB9LFxuKSB7XG4gIGNvbnN0IHsgYWN0aXZlLCBjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB7Li4ucmVzdH1cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIFwiaW5saW5lLWZsZXggc2hyaW5rLTAgY3Vyc29yLXBvaW50ZXIgaXRlbXMtY2VudGVyIGdhcC0xIHdoaXRlc3BhY2Utbm93cmFwIHRleHQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBhY3RpdmUgPyBBQ1RJVkUgOiBJRExFLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICApfVxuICAgID5cbiAgICAgIE1vcmVcbiAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuY29uc3QgQUNUSVZFID0gXCJmb250LW1lZGl1bSBib3JkZXItYi0yIGJvcmRlci1mb3JlZ3JvdW5kIHBiLTAuNSAtbWItMC41XCJcbmNvbnN0IElETEUgPSBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from "react";
|
|
3
|
+
import { X } from "lucide-react";
|
|
4
|
+
import { SearchResultGroups, useArticleSearch } from "../helpers/article-search.js";
|
|
5
|
+
import { Command, CommandEmpty, CommandInput, CommandList } from "../elements/command.js";
|
|
6
|
+
/** Search field that takes over the header below `lg`, with results dropping under it */
|
|
7
|
+
export function HeaderSearch(props) {
|
|
8
|
+
const search = useArticleSearch();
|
|
9
|
+
const bar = useRef(null);
|
|
10
|
+
const [panelTop, setPanelTop] = useState();
|
|
11
|
+
// Measured, not `top-16`: while the Banner is in view it pushes the header down.
|
|
12
|
+
useLayoutEffect(() => {
|
|
13
|
+
const measure = () => setPanelTop(bar.current?.getBoundingClientRect().bottom);
|
|
14
|
+
measure();
|
|
15
|
+
window.addEventListener("scroll", measure, { passive: true });
|
|
16
|
+
window.addEventListener("resize", measure);
|
|
17
|
+
return () => {
|
|
18
|
+
window.removeEventListener("scroll", measure);
|
|
19
|
+
window.removeEventListener("resize", measure);
|
|
20
|
+
};
|
|
21
|
+
}, []);
|
|
22
|
+
// `data-header-search` lifts the header over the Toc bar and BackToTop (Layout).
|
|
23
|
+
return (_jsxs(Command, { ref: bar, "data-header-search": true, shouldFilter: false, loop: true, onKeyDown: event => {
|
|
24
|
+
if (event.key === "Escape")
|
|
25
|
+
props.onClose();
|
|
26
|
+
}, className: "absolute inset-0 z-10 overflow-visible rounded-none! bg-background p-0 lg:hidden", children: [_jsxs("div", { className: "flex h-full items-center gap-1 pl-1 pr-2", children: [_jsx("div", { className: "flex-1 [&_[data-slot=command-input-wrapper]]:p-0 [&_[data-slot=input-group]]:border-transparent! [&_[data-slot=input-group]]:bg-transparent! [&_[data-slot=input-group]]:ring-0!", children: _jsx(CommandInput, { autoFocus: true, placeholder: "Search docs...", value: search.query, onValueChange: search.searchArticles }) }), _jsx("button", { type: "button", onClick: props.onClose, "aria-label": "Close search", title: "Close search", className: "flex size-9 shrink-0 items-center justify-center rounded-control text-muted-foreground hover:bg-muted hover:text-foreground transition-colors cursor-pointer", children: _jsx(X, { className: "size-5" }) })] }), _jsx("div", { style: { top: panelTop }, className: "fixed inset-x-0 bottom-0 flex flex-col border-t bg-background p-1", children: _jsxs(CommandList, { className: "max-h-none flex-1 overscroll-contain", children: [_jsx(CommandEmpty, { children: search.query.trim()
|
|
27
|
+
? "No results found."
|
|
28
|
+
: "Type to search across all contents." }), _jsx(SearchResultGroups, { query: search.query, grouped: search.grouped, onSelect: path => {
|
|
29
|
+
props.onClose();
|
|
30
|
+
search.selectArticle(path);
|
|
31
|
+
} })] }) })] }));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSGVhZGVyU2VhcmNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ3pELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQStCLENBQUE7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF5QixDQUFBO0FBRTFGLHlGQUF5RjtBQUN6RixNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQThCO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUE7SUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQTtJQUN4QyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxHQUFHLFFBQVEsRUFBVSxDQUFBO0lBRWxELGlGQUFpRjtJQUNqRixlQUFlLENBQUMsR0FBRyxFQUFFO1FBQ25CLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUUsT0FBTyxFQUFFLENBQUE7UUFDVCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzdELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDMUMsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzdDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDL0MsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4saUZBQWlGO0lBQ2pGLE9BQU8sQ0FDTCxNQUFDLE9BQU8sSUFDTixHQUFHLEVBQUUsR0FBRyw4QkFFUixZQUFZLEVBQUUsS0FBSyxFQUNuQixJQUFJLFFBQ0osU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRO2dCQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUM3QyxDQUFDLEVBQ0QsU0FBUyxFQUFDLGtGQUFrRixhQUU1RixlQUFLLFNBQVMsRUFBQywwQ0FBMEMsYUFDdkQsY0FBSyxTQUFTLEVBQUMsa0xBQWtMLFlBQy9MLEtBQUMsWUFBWSxJQUNYLFNBQVMsUUFDVCxXQUFXLEVBQUMsZ0JBQWdCLEVBQzVCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxFQUNuQixhQUFhLEVBQUUsTUFBTSxDQUFDLGNBQWMsR0FDcEMsR0FDRSxFQUNOLGlCQUNFLElBQUksRUFBQyxRQUFRLEVBQ2IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLGdCQUNYLGNBQWMsRUFDekIsS0FBSyxFQUFDLGNBQWMsRUFDcEIsU0FBUyxFQUFDLDhKQUE4SixZQUV4SyxLQUFDLENBQUMsSUFBQyxTQUFTLEVBQUMsUUFBUSxHQUFHLEdBQ2pCLElBQ0wsRUFDTixjQUNFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFDeEIsU0FBUyxFQUFDLG1FQUFtRSxZQUU3RSxNQUFDLFdBQVcsSUFBQyxTQUFTLEVBQUMsc0NBQXNDLGFBQzNELEtBQUMsWUFBWSxjQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dDQUNsQixDQUFDLENBQUMsbUJBQW1CO2dDQUNyQixDQUFDLENBQUMscUNBQXFDLEdBQzVCLEVBQ2YsS0FBQyxrQkFBa0IsSUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQ25CLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0NBQ2YsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO2dDQUNmLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBQzVCLENBQUMsR0FDRCxJQUNVLEdBQ1YsSUFDRSxDQUNYLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IFggfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdEdyb3VwcywgdXNlQXJ0aWNsZVNlYXJjaCB9IGZyb20gXCIuLi9oZWxwZXJzL2FydGljbGUtc2VhcmNoLnRzeFwiXG5pbXBvcnQgeyBDb21tYW5kLCBDb21tYW5kRW1wdHksIENvbW1hbmRJbnB1dCwgQ29tbWFuZExpc3QgfSBmcm9tIFwiLi4vZWxlbWVudHMvY29tbWFuZC50c3hcIlxuXG4vKiogU2VhcmNoIGZpZWxkIHRoYXQgdGFrZXMgb3ZlciB0aGUgaGVhZGVyIGJlbG93IGBsZ2AsIHdpdGggcmVzdWx0cyBkcm9wcGluZyB1bmRlciBpdCAqL1xuZXhwb3J0IGZ1bmN0aW9uIEhlYWRlclNlYXJjaChwcm9wczogeyBvbkNsb3NlOiAoKSA9PiB2b2lkIH0pIHtcbiAgY29uc3Qgc2VhcmNoID0gdXNlQXJ0aWNsZVNlYXJjaCgpXG4gIGNvbnN0IGJhciA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgW3BhbmVsVG9wLCBzZXRQYW5lbFRvcF0gPSB1c2VTdGF0ZTxudW1iZXI+KClcblxuICAvLyBNZWFzdXJlZCwgbm90IGB0b3AtMTZgOiB3aGlsZSB0aGUgQmFubmVyIGlzIGluIHZpZXcgaXQgcHVzaGVzIHRoZSBoZWFkZXIgZG93bi5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBtZWFzdXJlID0gKCkgPT4gc2V0UGFuZWxUb3AoYmFyLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSlcbiAgICBtZWFzdXJlKClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBtZWFzdXJlLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCBtZWFzdXJlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBtZWFzdXJlKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgbWVhc3VyZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIGBkYXRhLWhlYWRlci1zZWFyY2hgIGxpZnRzIHRoZSBoZWFkZXIgb3ZlciB0aGUgVG9jIGJhciBhbmQgQmFja1RvVG9wIChMYXlvdXQpLlxuICByZXR1cm4gKFxuICAgIDxDb21tYW5kXG4gICAgICByZWY9e2Jhcn1cbiAgICAgIGRhdGEtaGVhZGVyLXNlYXJjaFxuICAgICAgc2hvdWxkRmlsdGVyPXtmYWxzZX1cbiAgICAgIGxvb3BcbiAgICAgIG9uS2V5RG93bj17ZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSBwcm9wcy5vbkNsb3NlKClcbiAgICAgIH19XG4gICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHotMTAgb3ZlcmZsb3ctdmlzaWJsZSByb3VuZGVkLW5vbmUhIGJnLWJhY2tncm91bmQgcC0wIGxnOmhpZGRlblwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXIgZ2FwLTEgcGwtMSBwci0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIFsmX1tkYXRhLXNsb3Q9Y29tbWFuZC1pbnB1dC13cmFwcGVyXV06cC0wIFsmX1tkYXRhLXNsb3Q9aW5wdXQtZ3JvdXBdXTpib3JkZXItdHJhbnNwYXJlbnQhIFsmX1tkYXRhLXNsb3Q9aW5wdXQtZ3JvdXBdXTpiZy10cmFuc3BhcmVudCEgWyZfW2RhdGEtc2xvdD1pbnB1dC1ncm91cF1dOnJpbmctMCFcIj5cbiAgICAgICAgICA8Q29tbWFuZElucHV0XG4gICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGRvY3MuLi5cIlxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaC5xdWVyeX1cbiAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9e3NlYXJjaC5zZWFyY2hBcnRpY2xlc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9e3Byb3BzLm9uQ2xvc2V9XG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHNlYXJjaFwiXG4gICAgICAgICAgdGl0bGU9XCJDbG9zZSBzZWFyY2hcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggc2l6ZS05IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWNvbnRyb2wgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOmJnLW11dGVkIGhvdmVyOnRleHQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8WCBjbGFzc05hbWU9XCJzaXplLTVcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17eyB0b3A6IHBhbmVsVG9wIH19XG4gICAgICAgIGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LXgtMCBib3R0b20tMCBmbGV4IGZsZXgtY29sIGJvcmRlci10IGJnLWJhY2tncm91bmQgcC0xXCJcbiAgICAgID5cbiAgICAgICAgPENvbW1hbmRMaXN0IGNsYXNzTmFtZT1cIm1heC1oLW5vbmUgZmxleC0xIG92ZXJzY3JvbGwtY29udGFpblwiPlxuICAgICAgICAgIDxDb21tYW5kRW1wdHk+XG4gICAgICAgICAgICB7c2VhcmNoLnF1ZXJ5LnRyaW0oKVxuICAgICAgICAgICAgICA/IFwiTm8gcmVzdWx0cyBmb3VuZC5cIlxuICAgICAgICAgICAgICA6IFwiVHlwZSB0byBzZWFyY2ggYWNyb3NzIGFsbCBjb250ZW50cy5cIn1cbiAgICAgICAgICA8L0NvbW1hbmRFbXB0eT5cbiAgICAgICAgICA8U2VhcmNoUmVzdWx0R3JvdXBzXG4gICAgICAgICAgICBxdWVyeT17c2VhcmNoLnF1ZXJ5fVxuICAgICAgICAgICAgZ3JvdXBlZD17c2VhcmNoLmdyb3VwZWR9XG4gICAgICAgICAgICBvblNlbGVjdD17cGF0aCA9PiB7XG4gICAgICAgICAgICAgIHByb3BzLm9uQ2xvc2UoKVxuICAgICAgICAgICAgICBzZWFyY2guc2VsZWN0QXJ0aWNsZShwYXRoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0NvbW1hbmRMaXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9Db21tYW5kPlxuICApXG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const headingComponents: {
|
|
2
|
-
h1: (props:
|
|
3
|
-
h2: (props:
|
|
4
|
-
h3: (props:
|
|
5
|
-
h4: (props:
|
|
6
|
-
h5: (props:
|
|
7
|
-
h6: (props:
|
|
2
|
+
h1: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
|
|
3
|
+
h2: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
|
|
4
|
+
h3: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
|
|
5
|
+
h4: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
|
|
6
|
+
h5: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
|
|
7
|
+
h6: (props: React.HTMLAttributes<HTMLHeadingElement>) => import("react").JSX.Element;
|
|
8
8
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Inline badge rendered from :badge text directives */
|
|
2
2
|
export declare function InlineBadge(props: {
|
|
3
3
|
label: string;
|
|
4
|
-
variant?: "default" | "secondary" | "destructive" | "outline";
|
|
5
|
-
}): import("react
|
|
4
|
+
variant?: "default" | "secondary" | "positive" | "warning" | "destructive" | "outline";
|
|
5
|
+
}): import("react").JSX.Element;
|
|
@@ -4,4 +4,4 @@ import { Badge } from "../elements/badge.js";
|
|
|
4
4
|
export function InlineBadge(props) {
|
|
5
5
|
return _jsx(Badge, { variant: props.variant, children: props.label });
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lQmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9JbmxpbmVCYWRnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBdUIsQ0FBQTtBQUU3Qyx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUczQjtJQUNDLE9BQU8sS0FBQyxLQUFLLElBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLFlBQUcsS0FBSyxDQUFDLEtBQUssR0FBUyxDQUFBO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRnZSB9IGZyb20gXCIuLi9lbGVtZW50cy9iYWRnZS50c3hcIlxuXG4vKiogSW5saW5lIGJhZGdlIHJlbmRlcmVkIGZyb20gOmJhZGdlIHRleHQgZGlyZWN0aXZlcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZUJhZGdlKHByb3BzOiB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJzZWNvbmRhcnlcIiB8IFwicG9zaXRpdmVcIiB8IFwid2FybmluZ1wiIHwgXCJkZXN0cnVjdGl2ZVwiIHwgXCJvdXRsaW5lXCJcbn0pIHtcbiAgcmV0dXJuIDxCYWRnZSB2YXJpYW50PXtwcm9wcy52YXJpYW50fT57cHJvcHMubGFiZWx9PC9CYWRnZT5cbn1cbiJdfQ==
|
|
@@ -7,8 +7,6 @@ export function InlineToc(props) {
|
|
|
7
7
|
const items = allItems.filter(item => item.depth <= maxDepth);
|
|
8
8
|
if (items.length === 0)
|
|
9
9
|
return null;
|
|
10
|
-
return (_jsxs("nav", { className: "not-prose my-8 rounded-
|
|
11
|
-
_jsx("p", { className: "text-base font-semibold mb-4", children: "Table of Contents" }), _jsx("ul", { className: "text-base space-y-2.5", children: items.map(item => (_jsx("li", { style: { paddingLeft: `${(item.depth - 2) * 1.25}rem` }, children: _jsx("a", { href: item.url, className: "text-muted-foreground hover:text-primary transition-colors", children: item.title }) }, item.url))) })
|
|
12
|
-
] }));
|
|
10
|
+
return (_jsxs("nav", { className: "not-prose my-8 rounded-card border border-border bg-card p-6", children: [_jsx("p", { className: "text-base font-semibold mb-4", children: "Table of Contents" }), _jsx("ul", { className: "text-base space-y-2.5", children: items.map(item => (_jsx("li", { style: { paddingLeft: `${(item.depth - 2) * 1.25}rem` }, children: _jsx("a", { href: item.url, className: "text-muted-foreground hover:text-primary transition-colors", children: item.title }) }, item.url))) })] }));
|
|
13
11
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lVG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSW5saW5lVG9jLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRXZELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQTRCO0lBQ3BELE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQTtJQUU3RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRW5DLE9BQU8sQ0FDTCxlQUFLLFNBQVMsRUFBQyw4REFBOEQsYUFDM0UsWUFBRyxTQUFTLEVBQUMsOEJBQThCLGtDQUFzQixFQUNqRSxhQUFJLFNBQVMsRUFBQyx1QkFBdUIsWUFDbEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2pCLGFBQW1CLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxZQUN4RSxZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUNkLFNBQVMsRUFBQyw0REFBNEQsWUFFckUsSUFBSSxDQUFDLEtBQUssR0FDVCxJQU5HLElBQUksQ0FBQyxHQUFHLENBT1osQ0FDTixDQUFDLEdBQ0MsSUFDRCxDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlVG9jSXRlbXMgfSBmcm9tIFwiLi4vaGVscGVycy90b2MtY29udGV4dC50c1wiXG5cbi8qKiBSZW5kZXJzIHRoZSBwYWdlJ3MgdGFibGUgb2YgY29udGVudHMgaW5saW5lIHdpdGhpbiB0aGUgY29udGVudCAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZVRvYyhwcm9wczogeyBtYXhMZXZlbD86IHN0cmluZyB9KSB7XG4gIGNvbnN0IGFsbEl0ZW1zID0gdXNlVG9jSXRlbXMoKVxuICBjb25zdCBtYXhEZXB0aCA9IHByb3BzLm1heExldmVsID8gTnVtYmVyKHByb3BzLm1heExldmVsKSA6IDRcbiAgY29uc3QgaXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmRlcHRoIDw9IG1heERlcHRoKVxuXG4gIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8bmF2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS04IHJvdW5kZWQtY2FyZCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1jYXJkIHAtNlwiPlxuICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgbWItNFwiPlRhYmxlIG9mIENvbnRlbnRzPC9wPlxuICAgICAgPHVsIGNsYXNzTmFtZT1cInRleHQtYmFzZSBzcGFjZS15LTIuNVwiPlxuICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgIDxsaSBrZXk9e2l0ZW0udXJsfSBzdHlsZT17eyBwYWRkaW5nTGVmdDogYCR7KGl0ZW0uZGVwdGggLSAyKSAqIDEuMjV9cmVtYCB9fT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9e2l0ZW0udXJsfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKSl9XG4gICAgICA8L3VsPlxuICAgIDwvbmF2PlxuICApXG59XG4iXX0=
|
|
@@ -1,62 +1,12 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { config } from "livemark:virtual";
|
|
3
|
-
import { Link, useLocation, useMatch } from "@tanstack/react-router";
|
|
4
|
-
import { useHotkey } from "@tanstack/react-hotkeys";
|
|
5
|
-
import { currentSection, sectionFirstArticle, sectionFlatArticles, sortedArticles, } from "../content/article.js";
|
|
6
|
-
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
7
|
-
import { prefixUrl } from "../helpers/prefix-url.js";
|
|
8
|
-
import { activeSiteLink, customSectionActive } from "../helpers/section.js";
|
|
9
2
|
import { SidebarInset, SidebarProvider, SidebarTrigger, useSidebar, } from "../elements/sidebar.js";
|
|
10
3
|
import { BackToTop } from "./BackToTop.js";
|
|
11
4
|
import { Banner } from "./Banner.js";
|
|
5
|
+
import { Header } from "./Header.js";
|
|
12
6
|
import { Sidebar } from "./Sidebar.js";
|
|
13
|
-
|
|
14
|
-
import { SiteTitle } from "./SiteTitle.js";
|
|
15
|
-
function splatFor(pathname) {
|
|
16
|
-
return { _splat: pathname.replace(/^\/|\/$/g, "") };
|
|
17
|
-
}
|
|
7
|
+
/** Site chrome around a page: banner, header, sidebar and back-to-top */
|
|
18
8
|
export function Layout(props) {
|
|
19
|
-
|
|
20
|
-
const articleRoute = useMatch({ from: "/$", shouldThrow: false });
|
|
21
|
-
const activeSection = articleRoute
|
|
22
|
-
? currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`)
|
|
23
|
-
: undefined;
|
|
24
|
-
const siteLinkTarget = activeSiteLink(pathname, config.sections ?? []);
|
|
25
|
-
useHotkey("J", () => window.scrollBy({ top: window.innerHeight * 0.8, behavior: "smooth" }));
|
|
26
|
-
useHotkey("K", () => window.scrollBy({ top: -window.innerHeight * 0.8, behavior: "smooth" }));
|
|
27
|
-
const sections = config.sections;
|
|
28
|
-
const header = (_jsxs("header", { className: "sticky top-0 z-20 flex h-16 shrink-0 items-center border-b bg-background", children: [
|
|
29
|
-
_jsx("div", { className: `flex items-center self-stretch pl-4 ${props.withSidebar ? "pr-4" : "lg:pr-20"}`, children: props.withSidebar ? (_jsxs(_Fragment, { children: [
|
|
30
|
-
_jsx("div", { className: "hidden lg:flex", children: _jsx(SidebarTrigger, {}) }), _jsx(SiteLink, { to: siteLinkTarget, className: "lg:hidden flex items-center gap-2", children: _jsx(SiteTitle, {}) })
|
|
31
|
-
] })) : (_jsx(SiteLink, { to: siteLinkTarget, className: "flex items-center gap-2", children: _jsx(SiteTitle, {}) })) }), _jsxs("div", { className: "hidden lg:flex flex-1 items-center gap-8 self-stretch px-6 text-sm", children: [sections?.length ? (sections
|
|
32
|
-
.filter(section => section.position === "header")
|
|
33
|
-
.map(section => {
|
|
34
|
-
const icon = section.icon;
|
|
35
|
-
if (section.type === "custom") {
|
|
36
|
-
const isActive = customSectionActive(section.url, pathname);
|
|
37
|
-
return (_jsxs("a", { href: prefixUrl(section.url, config.base), className: `inline-flex items-center gap-1.5 text-foreground ${isActive
|
|
38
|
-
? "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5"
|
|
39
|
-
: "opacity-80 hover:opacity-100 transition-opacity"}`, children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-3.5" }), _jsx("span", { children: section.title })
|
|
40
|
-
] }, section.url));
|
|
41
|
-
}
|
|
42
|
-
const isActive = activeSection?.prefix === section.prefix;
|
|
43
|
-
const target = section.type === "blog" || section.type === "changelog"
|
|
44
|
-
? section.prefix
|
|
45
|
-
: sectionFirstArticle.get(section.prefix);
|
|
46
|
-
const latestVersion = section.type === "changelog" && section.version
|
|
47
|
-
? sortedArticles.find(a => a.path === sectionFlatArticles.get(section.prefix)?.[0])?.title
|
|
48
|
-
: undefined;
|
|
49
|
-
return (_jsxs(Link, { to: target === "/" ? "/" : "/$", params: target && target !== "/" ? splatFor(target) : {}, className: `inline-flex items-center gap-1.5 text-foreground ${isActive
|
|
50
|
-
? "font-medium border-b-2 border-foreground pb-0.5 -mb-0.5"
|
|
51
|
-
: "opacity-80 hover:opacity-100 transition-opacity"}`, children: [icon && _jsx(DynamicIcon, { name: icon, className: "size-3.5" }), _jsxs("span", { children: [section.title, latestVersion && (_jsxs("span", { className: "opacity-80", children: [" (", latestVersion, ")"] }))] })
|
|
52
|
-
] }, section.prefix));
|
|
53
|
-
})) : (_jsx(Link, { to: "/", className: "text-foreground font-medium underline underline-offset-4", children: "Docs" })), config.links
|
|
54
|
-
?.filter(link => link.position === "header" &&
|
|
55
|
-
(!link.prefix || link.prefix === activeSection?.prefix))
|
|
56
|
-
.map(link => (_jsxs("a", { href: prefixUrl(link.url, config.base), className: "text-foreground opacity-80 hover:opacity-100 transition-opacity", children: [link.icon && (_jsx(DynamicIcon, { name: link.icon, className: "inline size-3.5 align-[-0.125em]" })), " ", link.title] }, link.url))), _jsx(Banner, {})
|
|
57
|
-
] }), _jsx("div", { className: "lg:hidden ml-auto pr-2", children: _jsx(SidebarTrigger, {}) })
|
|
58
|
-
] }));
|
|
59
|
-
return (_jsx(SidebarProvider, { defaultOpen: !!props.withSidebar, children: _jsx(SidebarShell, { withSidebar: props.withSidebar, header: header, children: props.children }) }, props.withSidebar ? "sidebar" : "mini"));
|
|
9
|
+
return (_jsxs(_Fragment, { children: [_jsx(Banner, {}), _jsx(SidebarProvider, { defaultOpen: !!props.withSidebar, children: _jsx(SidebarShell, { withSidebar: props.withSidebar, children: props.children }) }, props.withSidebar ? "sidebar" : "mini")] }));
|
|
60
10
|
}
|
|
61
11
|
function SidebarShell(props) {
|
|
62
12
|
const { isMobile, setOpenMobile } = useSidebar();
|
|
@@ -66,9 +16,6 @@ function SidebarShell(props) {
|
|
|
66
16
|
if (event.target.closest("a"))
|
|
67
17
|
setOpenMobile(false);
|
|
68
18
|
};
|
|
69
|
-
return (_jsxs("div", { style: { display: "contents" }, onClick: onClick, children: [
|
|
70
|
-
_jsx(Sidebar, { withSidebar: props.withSidebar }), _jsxs(SidebarInset, { children: [props.header, _jsx("main", { className: "flex-1", children: props.children }), _jsx(BackToTop, {})
|
|
71
|
-
] })
|
|
72
|
-
] }));
|
|
19
|
+
return (_jsxs("div", { style: { display: "contents" }, onClick: onClick, children: [_jsx(Sidebar, { withSidebar: props.withSidebar }), _jsxs(SidebarInset, { children: [_jsx(Header, { toggle: props.withSidebar && _jsx(SidebarTrigger, {}), menu: _jsx(SidebarTrigger, {}) }), _jsx("main", { className: "flex-1", children: props.children }), _jsx(BackToTop, {})] })] }));
|
|
73
20
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFpQixDQUFBO0FBRTNDLFNBQVMsUUFBUSxDQUFDLFFBQWdCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQTtBQUNyRCxDQUFDO0FBRUQsTUFBTSxVQUFV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LENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FNM0IsQ0FDbkIsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUlyQjtJQUNDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUF1QyxFQUFFLEVBQUU7UUFDMUQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFNO1FBQ3JCLElBQUssS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0RSxDQUFDLENBQUE7SUFDRCxPQUFPLENBQ0wsZUFBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU87WUFDbkQsS0FBQyxPQUFPLElBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQUksRUFDM0MsTUFBQyxZQUFZLGVBQ1YsS0FBSyxDQUFDLE1BQU0sRUFDYixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRztvQkFDQTtZQUNYLENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwibGl2ZW1hcms6dmlydHVhbFwiXG5pbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2ggfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyB1c2VIb3RrZXkgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LWhvdGtleXNcIlxuaW1wb3J0IHtcbiAgY3VycmVudFNlY3Rpb24sXG4gIHNlY3Rpb25GaXJzdEFydGljbGUsXG4gIHNlY3Rpb25GbGF0QXJ0aWNsZXMsXG4gIHNvcnRlZEFydGljbGVzLFxufSBmcm9tIFwiLi4vY29udGVudC9hcnRpY2xlLnRzXCJcbmltcG9ydCB7IER5bmFtaWNJY29uIH0gZnJvbSBcIi4uL2hlbHBlcnMvZHluYW1pYy1pY29uLnRzeFwiXG5pbXBvcnQgeyBwcmVmaXhVcmwgfSBmcm9tIFwiLi4vaGVscGVycy9wcmVmaXgtdXJsLnRzXCJcbmltcG9ydCB7IGFjdGl2ZVNpdGVMaW5rLCBjdXN0b21TZWN0aW9uQWN0aXZlIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VjdGlvbi50c1wiXG5pbXBvcnQge1xuICBTaWRlYmFySW5zZXQsXG4gIFNpZGViYXJQcm92aWRlcixcbiAgU2lkZWJhclRyaWdnZXIsXG4gIHVzZVNpZGViYXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy9zaWRlYmFyLnRzeFwiXG5pbXBvcnQgeyBCYWNrVG9Ub3AgfSBmcm9tIFwiLi9CYWNrVG9Ub3AudHN4XCJcbmltcG9ydCB7IEJhbm5lciB9IGZyb20gXCIuL0Jhbm5lci50c3hcIlxuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gXCIuL1NpZGViYXIudHN4XCJcbmltcG9ydCB7IFNpdGVMaW5rIH0gZnJvbSBcIi4vU2l0ZUxpbmsudHN4XCJcbmltcG9ydCB7IFNpdGVUaXRsZSB9IGZyb20gXCIuL1NpdGVUaXRsZS50c3hcIlxuXG5mdW5jdGlvbiBzcGxhdEZvcihwYXRobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IF9zcGxhdDogcGF0aG5hbWUucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExheW91dChwcm9wczogeyB3aXRoU2lkZWJhcj86IGJvb2xlYW47IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VMb2NhdGlvbih7IHNlbGVjdDogbCA9PiBsLnBhdGhuYW1lIH0pXG4gIGNvbnN0IGFydGljbGVSb3V0ZSA9IHVzZU1hdGNoKHsgZnJvbTogXCIvJFwiLCBzaG91bGRUaHJvdzogZmFsc2UgfSlcbiAgY29uc3QgYWN0aXZlU2VjdGlvbiA9IGFydGljbGVSb3V0ZVxuICAgID8gY3VycmVudFNlY3Rpb24oYC8ke3BhdGhuYW1lLnJlcGxhY2UoL15cXC98XFwvJC9nLCBcIlwiKX0vYClcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBzaXRlTGlua1RhcmdldCA9IGFjdGl2ZVNpdGVMaW5rKHBhdGhuYW1lLCBjb25maWcuc2VjdGlvbnMgPz8gW10pXG5cbiAgdXNlSG90a2V5KFwiSlwiLCAoKSA9PlxuICAgIHdpbmRvdy5zY3JvbGxCeSh7IHRvcDogd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuICB1c2VIb3RrZXkoXCJLXCIsICgpID0+XG4gICAgd2luZG93LnNjcm9sbEJ5KHsgdG9wOiAtd2luZG93LmlubmVySGVpZ2h0ICogMC44LCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KSxcbiAgKVxuXG4gIGNvbnN0IHNlY3Rpb25zID0gY29uZmlnLnNlY3Rpb25zXG5cbiAgY29uc3QgaGVhZGVyID0gKFxuICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwic3RpY2t5IHRvcC0wIHotMjAgZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBib3JkZXItYiBiZy1iYWNrZ3JvdW5kXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YGZsZXggaXRlbXMtY2VudGVyIHNlbGYtc3RyZXRjaCBwbC00ICR7cHJvcHMud2l0aFNpZGViYXIgPyBcInByLTRcIiA6IFwibGc6cHItMjBcIn1gfVxuICAgICAgPlxuICAgICAgICB7cHJvcHMud2l0aFNpZGViYXIgPyAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXhcIj5cbiAgICAgICAgICAgICAgPFNpZGViYXJUcmlnZ2VyIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTaXRlTGluayB0bz17c2l0ZUxpbmtUYXJnZXR9IGNsYXNzTmFtZT1cImxnOmhpZGRlbiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICA8U2l0ZVRpdGxlIC8+XG4gICAgICAgICAgICA8L1NpdGVMaW5rPlxuICAgICAgICAgIDwvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxTaXRlTGluayB0bz17c2l0ZUxpbmtUYXJnZXR9IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8U2l0ZVRpdGxlIC8+XG4gICAgICAgICAgPC9TaXRlTGluaz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbGc6ZmxleCBmbGV4LTEgaXRlbXMtY2VudGVyIGdhcC04IHNlbGYtc3RyZXRjaCBweC02IHRleHQtc21cIj5cbiAgICAgICAge3NlY3Rpb25zPy5sZW5ndGggPyAoXG4gICAgICAgICAgc2VjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoc2VjdGlvbiA9PiBzZWN0aW9uLnBvc2l0aW9uID09PSBcImhlYWRlclwiKVxuICAgICAgICAgICAgLm1hcChzZWN0aW9uID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaWNvbiA9IHNlY3Rpb24uaWNvblxuICAgICAgICAgICAgICBpZiAoc2VjdGlvbi50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBjdXN0b21TZWN0aW9uQWN0aXZlKHNlY3Rpb24udXJsLCBwYXRobmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAga2V5PXtzZWN0aW9uLnVybH1cbiAgICAgICAgICAgICAgICAgICAgaHJlZj17cHJlZml4VXJsKHNlY3Rpb24udXJsLCBjb25maWcuYmFzZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHRleHQtZm9yZWdyb3VuZCAke1xuICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiZm9udC1tZWRpdW0gYm9yZGVyLWItMiBib3JkZXItZm9yZWdyb3VuZCBwYi0wLjUgLW1iLTAuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwib3BhY2l0eS04MCBob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2ljb24gJiYgPER5bmFtaWNJY29uIG5hbWU9e2ljb259IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz59XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPntzZWN0aW9uLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVTZWN0aW9uPy5wcmVmaXggPT09IHNlY3Rpb24ucHJlZml4XG4gICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9XG4gICAgICAgICAgICAgICAgc2VjdGlvbi50eXBlID09PSBcImJsb2dcIiB8fCBzZWN0aW9uLnR5cGUgPT09IFwiY2hhbmdlbG9nXCJcbiAgICAgICAgICAgICAgICAgID8gc2VjdGlvbi5wcmVmaXhcbiAgICAgICAgICAgICAgICAgIDogc2VjdGlvbkZpcnN0QXJ0aWNsZS5nZXQoc2VjdGlvbi5wcmVmaXgpXG4gICAgICAgICAgICAgIGNvbnN0IGxhdGVzdFZlcnNpb24gPVxuICAgICAgICAgICAgICAgIHNlY3Rpb24udHlwZSA9PT0gXCJjaGFuZ2Vsb2dcIiAmJiBzZWN0aW9uLnZlcnNpb25cbiAgICAgICAgICAgICAgICAgID8gc29ydGVkQXJ0aWNsZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBhID0+IGEucGF0aCA9PT0gc2VjdGlvbkZsYXRBcnRpY2xlcy5nZXQoc2VjdGlvbi5wcmVmaXgpPy5bMF0sXG4gICAgICAgICAgICAgICAgICAgICk/LnRpdGxlXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICBrZXk9e3NlY3Rpb24ucHJlZml4fVxuICAgICAgICAgICAgICAgICAgdG89e3RhcmdldCA9PT0gXCIvXCIgPyBcIi9cIiA6IFwiLyRcIn1cbiAgICAgICAgICAgICAgICAgIHBhcmFtcz17dGFyZ2V0ICYmIHRhcmdldCAhPT0gXCIvXCIgPyBzcGxhdEZvcih0YXJnZXQpIDoge319XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LWZvcmVncm91bmQgJHtcbiAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiZm9udC1tZWRpdW0gYm9yZGVyLWItMiBib3JkZXItZm9yZWdyb3VuZCBwYi0wLjUgLW1iLTAuNVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIm9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtpY29uICYmIDxEeW5hbWljSWNvbiBuYW1lPXtpY29ufSBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+fVxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICB7bGF0ZXN0VmVyc2lvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwib3BhY2l0eS04MFwiPiAoe2xhdGVzdFZlcnNpb259KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIHRvPVwiL1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgZm9udC1tZWRpdW0gdW5kZXJsaW5lIHVuZGVybGluZS1vZmZzZXQtNFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgRG9jc1xuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKX1cbiAgICAgICAge2NvbmZpZy5saW5rc1xuICAgICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgICAgbGluayA9PlxuICAgICAgICAgICAgICBsaW5rLnBvc2l0aW9uID09PSBcImhlYWRlclwiICYmXG4gICAgICAgICAgICAgICghbGluay5wcmVmaXggfHwgbGluay5wcmVmaXggPT09IGFjdGl2ZVNlY3Rpb24/LnByZWZpeCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAobGluayA9PiAoXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBrZXk9e2xpbmsudXJsfVxuICAgICAgICAgICAgICBocmVmPXtwcmVmaXhVcmwobGluay51cmwsIGNvbmZpZy5iYXNlKX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1mb3JlZ3JvdW5kIG9wYWNpdHktODAgaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xpbmsuaWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgPER5bmFtaWNJY29uXG4gICAgICAgICAgICAgICAgICBuYW1lPXtsaW5rLmljb259XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUgc2l6ZS0zLjUgYWxpZ24tWy0wLjEyNWVtXVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX17XCIgXCJ9XG4gICAgICAgICAgICAgIHtsaW5rLnRpdGxlfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICkpfVxuICAgICAgICA8QmFubmVyIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGc6aGlkZGVuIG1sLWF1dG8gcHItMlwiPlxuICAgICAgICA8U2lkZWJhclRyaWdnZXIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZWJhclByb3ZpZGVyXG4gICAgICBrZXk9e3Byb3BzLndpdGhTaWRlYmFyID8gXCJzaWRlYmFyXCIgOiBcIm1pbmlcIn1cbiAgICAgIGRlZmF1bHRPcGVuPXshIXByb3BzLndpdGhTaWRlYmFyfVxuICAgID5cbiAgICAgIDxTaWRlYmFyU2hlbGwgd2l0aFNpZGViYXI9e3Byb3BzLndpdGhTaWRlYmFyfSBoZWFkZXI9e2hlYWRlcn0+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvU2lkZWJhclNoZWxsPlxuICAgIDwvU2lkZWJhclByb3ZpZGVyPlxuICApXG59XG5cbmZ1bmN0aW9uIFNpZGViYXJTaGVsbChwcm9wczoge1xuICB3aXRoU2lkZWJhcj86IGJvb2xlYW5cbiAgaGVhZGVyOiBSZWFjdC5SZWFjdE5vZGVcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgeyBpc01vYmlsZSwgc2V0T3Blbk1vYmlsZSB9ID0gdXNlU2lkZWJhcigpXG4gIGNvbnN0IG9uQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc01vYmlsZSkgcmV0dXJuXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoXCJhXCIpKSBzZXRPcGVuTW9iaWxlKGZhbHNlKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImNvbnRlbnRzXCIgfX0gb25DbGljaz17b25DbGlja30+XG4gICAgICA8U2lkZWJhciB3aXRoU2lkZWJhcj17cHJvcHMud2l0aFNpZGViYXJ9IC8+XG4gICAgICA8U2lkZWJhckluc2V0PlxuICAgICAgICB7cHJvcHMuaGVhZGVyfVxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJmbGV4LTFcIj57cHJvcHMuY2hpbGRyZW59PC9tYWluPlxuICAgICAgICA8QmFja1RvVG9wIC8+XG4gICAgICA8L1NpZGViYXJJbnNldD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl19
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvTGF5b3V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLHdCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWUsQ0FBQTtBQUV2Qyx5RUFBeUU7QUFDekUsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUE0RDtJQUNqRixPQUFPLENBQ0wsOEJBQ0UsS0FBQyxNQUFNLEtBQUcsRUFDVixLQUFDLGVBQWUsSUFFZCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLFlBRWhDLEtBQUMsWUFBWSxJQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxZQUFHLEtBQUssQ0FBQyxRQUFRLEdBQWdCLElBSHhFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUkzQixJQUNqQixDQUNKLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBNEQ7SUFDaEYsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUNoRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQXVDLEVBQUUsRUFBRTtRQUMxRCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU07UUFDckIsSUFBSyxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RFLENBQUMsQ0FBQTtJQUNELE9BQU8sQ0FDTCxlQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxhQUNuRCxLQUFDLE9BQU8sSUFBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsR0FBSSxFQUMzQyxNQUFDLFlBQVksZUFDWCxLQUFDLE1BQU0sSUFDTCxNQUFNLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFDLGNBQWMsS0FBRyxFQUMvQyxJQUFJLEVBQUUsS0FBQyxjQUFjLEtBQUcsR0FDeEIsRUFDRixlQUFNLFNBQVMsRUFBQyxRQUFRLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBUSxFQUNoRCxLQUFDLFNBQVMsS0FBRyxJQUNBLElBQ1gsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNpZGViYXJJbnNldCxcbiAgU2lkZWJhclByb3ZpZGVyLFxuICBTaWRlYmFyVHJpZ2dlcixcbiAgdXNlU2lkZWJhcixcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL3NpZGViYXIudHN4XCJcbmltcG9ydCB7IEJhY2tUb1RvcCB9IGZyb20gXCIuL0JhY2tUb1RvcC50c3hcIlxuaW1wb3J0IHsgQmFubmVyIH0gZnJvbSBcIi4vQmFubmVyLnRzeFwiXG5pbXBvcnQgeyBIZWFkZXIgfSBmcm9tIFwiLi9IZWFkZXIudHN4XCJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi9TaWRlYmFyLnRzeFwiXG5cbi8qKiBTaXRlIGNocm9tZSBhcm91bmQgYSBwYWdlOiBiYW5uZXIsIGhlYWRlciwgc2lkZWJhciBhbmQgYmFjay10by10b3AgKi9cbmV4cG9ydCBmdW5jdGlvbiBMYXlvdXQocHJvcHM6IHsgd2l0aFNpZGViYXI/OiBib29sZWFuOyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCYW5uZXIgLz5cbiAgICAgIDxTaWRlYmFyUHJvdmlkZXJcbiAgICAgICAga2V5PXtwcm9wcy53aXRoU2lkZWJhciA/IFwic2lkZWJhclwiIDogXCJtaW5pXCJ9XG4gICAgICAgIGRlZmF1bHRPcGVuPXshIXByb3BzLndpdGhTaWRlYmFyfVxuICAgICAgPlxuICAgICAgICA8U2lkZWJhclNoZWxsIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0+e3Byb3BzLmNoaWxkcmVufTwvU2lkZWJhclNoZWxsPlxuICAgICAgPC9TaWRlYmFyUHJvdmlkZXI+XG4gICAgPC8+XG4gIClcbn1cblxuZnVuY3Rpb24gU2lkZWJhclNoZWxsKHByb3BzOiB7IHdpdGhTaWRlYmFyPzogYm9vbGVhbjsgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCB7IGlzTW9iaWxlLCBzZXRPcGVuTW9iaWxlIH0gPSB1c2VTaWRlYmFyKClcbiAgY29uc3Qgb25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzTW9iaWxlKSByZXR1cm5cbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcImFcIikpIHNldE9wZW5Nb2JpbGUoZmFsc2UpXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9fSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTaWRlYmFyIHdpdGhTaWRlYmFyPXtwcm9wcy53aXRoU2lkZWJhcn0gLz5cbiAgICAgIDxTaWRlYmFySW5zZXQ+XG4gICAgICAgIDxIZWFkZXJcbiAgICAgICAgICB0b2dnbGU9e3Byb3BzLndpdGhTaWRlYmFyICYmIDxTaWRlYmFyVHJpZ2dlciAvPn1cbiAgICAgICAgICBtZW51PXs8U2lkZWJhclRyaWdnZXIgLz59XG4gICAgICAgIC8+XG4gICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMVwiPntwcm9wcy5jaGlsZHJlbn08L21haW4+XG4gICAgICAgIDxCYWNrVG9Ub3AgLz5cbiAgICAgIDwvU2lkZWJhckluc2V0PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
export declare function LinkButton(props: {
|
|
3
3
|
href: string;
|
|
4
4
|
label: string;
|
|
5
|
-
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link";
|
|
5
|
+
variant?: "default" | "outline" | "secondary" | "ghost" | "positive" | "warning" | "destructive" | "link";
|
|
6
6
|
size?: "default" | "sm" | "lg";
|
|
7
|
-
}): import("react
|
|
7
|
+
}): import("react").JSX.Element;
|
|
@@ -8,4 +8,4 @@ export function LinkButton(props) {
|
|
|
8
8
|
size: props.size,
|
|
9
9
|
}), "no-underline"), children: props.label }));
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlua0J1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0xpbmtCdXR0b24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXdCLENBQUE7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUV2QixnRUFBZ0U7QUFDaEUsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQWExQjtJQUNDLE9BQU8sQ0FDTCxZQUNFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNoQixTQUFTLEVBQUUsRUFBRSxDQUNYLGNBQWMsQ0FBQztZQUNiLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQyxFQUNGLGNBQWMsQ0FDZixZQUVBLEtBQUssQ0FBQyxLQUFLLEdBQ1YsQ0FDTCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1dHRvblZhcmlhbnRzIH0gZnJvbSBcIi4uL2VsZW1lbnRzL2J1dHRvbi50c3hcIlxuaW1wb3J0IHsgY24gfSBmcm9tIFwiY25cIlxuXG4vKiogU3R5bGVkIGxpbmsgYnV0dG9uIHJlbmRlcmVkIGZyb20gOjpidXR0b24gbGVhZiBkaXJlY3RpdmVzICovXG5leHBvcnQgZnVuY3Rpb24gTGlua0J1dHRvbihwcm9wczoge1xuICBocmVmOiBzdHJpbmdcbiAgbGFiZWw6IHN0cmluZ1xuICB2YXJpYW50PzpcbiAgICB8IFwiZGVmYXVsdFwiXG4gICAgfCBcIm91dGxpbmVcIlxuICAgIHwgXCJzZWNvbmRhcnlcIlxuICAgIHwgXCJnaG9zdFwiXG4gICAgfCBcInBvc2l0aXZlXCJcbiAgICB8IFwid2FybmluZ1wiXG4gICAgfCBcImRlc3RydWN0aXZlXCJcbiAgICB8IFwibGlua1wiXG4gIHNpemU/OiBcImRlZmF1bHRcIiB8IFwic21cIiB8IFwibGdcIlxufSkge1xuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICBocmVmPXtwcm9wcy5ocmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgYnV0dG9uVmFyaWFudHMoe1xuICAgICAgICAgIHZhcmlhbnQ6IHByb3BzLnZhcmlhbnQsXG4gICAgICAgICAgc2l6ZTogcHJvcHMuc2l6ZSxcbiAgICAgICAgfSksXG4gICAgICAgIFwibm8tdW5kZXJsaW5lXCIsXG4gICAgICApfVxuICAgID5cbiAgICAgIHtwcm9wcy5sYWJlbH1cbiAgICA8L2E+XG4gIClcbn1cbiJdfQ==
|