livemark 0.7.1 → 0.8.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/package.json +14 -14
- package/source/actions/changelog/build.ts +245 -0
- package/source/actions/changelog/build.unit.ts +69 -0
- package/source/actions/config/define.ts +11 -0
- package/source/actions/config/define.unit.ts +33 -0
- package/source/actions/config/load.ts +22 -0
- package/source/actions/config/load.unit.ts +30 -0
- package/source/commands/build.ts +21 -0
- package/source/commands/escape.ts +77 -0
- package/source/commands/preview.ts +25 -0
- package/source/commands/start.ts +26 -0
- package/{build/website → source}/components/Article.tsx +12 -2
- package/{build/website → source}/components/Callout.tsx +1 -1
- package/{build/website → source}/components/Layout.tsx +3 -14
- package/{build/website → source}/components/LinkButton.tsx +1 -1
- package/{build/website → source}/components/PageToolbar.tsx +21 -8
- package/{build/website → source}/components/Section.tsx +1 -1
- package/{build/website → source}/components/SectionHeader.tsx +1 -1
- package/{build/website/components/MiniSidebar.tsx → source/components/Sidebar.tsx} +21 -5
- package/{build/website/components/Sidebar.tsx → source/components/SidebarArticles.tsx} +22 -55
- package/source/components/SidebarPosts.tsx +129 -0
- package/source/components/SidebarReleases.tsx +85 -0
- package/{build/website → source}/content-collections.ts +2 -2
- package/{build/website → source}/elements/accordion.tsx +1 -1
- package/{build/website → source}/elements/alert-dialog.tsx +1 -1
- package/{build/website → source}/elements/alert.tsx +1 -1
- package/{build/website → source}/elements/aspect-ratio.tsx +1 -1
- package/{build/website → source}/elements/avatar.tsx +1 -1
- package/{build/website → source}/elements/badge.tsx +1 -1
- package/{build/website → source}/elements/breadcrumb.tsx +1 -1
- package/{build/website → source}/elements/button-group.tsx +1 -1
- package/{build/website → source}/elements/button.tsx +1 -1
- package/{build/website → source}/elements/calendar.tsx +1 -1
- package/{build/website → source}/elements/card.tsx +1 -1
- package/{build/website → source}/elements/carousel.tsx +1 -1
- package/{build/website → source}/elements/chart.tsx +1 -1
- package/{build/website → source}/elements/checkbox.tsx +1 -1
- package/{build/website → source}/elements/command.tsx +1 -1
- package/{build/website → source}/elements/context-menu.tsx +1 -1
- package/{build/website → source}/elements/dialog.tsx +1 -1
- package/{build/website → source}/elements/drawer.tsx +1 -1
- package/{build/website → source}/elements/dropdown-menu.tsx +1 -1
- package/{build/website → source}/elements/empty.tsx +1 -1
- package/{build/website → source}/elements/field.tsx +1 -1
- package/{build/website → source}/elements/hover-card.tsx +1 -1
- package/{build/website → source}/elements/input-group.tsx +1 -1
- package/{build/website → source}/elements/input-otp.tsx +1 -1
- package/{build/website → source}/elements/input.tsx +1 -1
- package/{build/website → source}/elements/item.tsx +1 -1
- package/{build/website → source}/elements/kbd.tsx +1 -1
- package/{build/website → source}/elements/label.tsx +1 -1
- package/{build/website → source}/elements/menubar.tsx +1 -1
- package/{build/website → source}/elements/native-select.tsx +1 -1
- package/{build/website → source}/elements/navigation-menu.tsx +1 -1
- package/{build/website → source}/elements/pagination.tsx +1 -1
- package/{build/website → source}/elements/popover.tsx +1 -1
- package/{build/website → source}/elements/progress.tsx +1 -1
- package/{build/website → source}/elements/radio-group.tsx +1 -1
- package/{build/website → source}/elements/resizable.tsx +1 -1
- package/{build/website → source}/elements/scroll-area.tsx +1 -1
- package/{build/website → source}/elements/select.tsx +1 -1
- package/{build/website → source}/elements/separator.tsx +1 -1
- package/{build/website → source}/elements/sheet.tsx +1 -1
- package/{build/website → source}/elements/sidebar.tsx +7 -4
- package/{build/website → source}/elements/skeleton.tsx +1 -1
- package/{build/website → source}/elements/slider.tsx +1 -1
- package/{build/website → source}/elements/spinner.tsx +1 -1
- package/{build/website → source}/elements/switch.tsx +1 -1
- package/{build/website → source}/elements/table.tsx +1 -1
- package/{build/website → source}/elements/tabs.tsx +1 -1
- package/{build/website → source}/elements/textarea.tsx +1 -1
- package/{build/website → source}/elements/toggle-group.tsx +1 -1
- package/{build/website → source}/elements/toggle.tsx +1 -1
- package/{build/website → source}/elements/tooltip.tsx +1 -1
- package/source/entrypoints/main.ts +12 -0
- package/{build/website → source}/env.d.ts +1 -1
- package/source/helpers/program.ts +6 -0
- package/{build/website → source}/helpers/section.ts +1 -1
- package/source/hooks/media.ts +29 -0
- package/source/index.ts +1 -0
- package/{build/website → source}/models/article.ts +4 -0
- package/source/models/config.ts +51 -0
- package/source/models/link.ts +11 -0
- package/source/models/patch.ts +9 -0
- package/source/models/section.ts +45 -0
- package/source/models/theme.ts +74 -0
- package/{build/website → source}/plugins/vite-livemark.ts +0 -7
- package/source/program.ts +18 -0
- package/source/settings.ts +6 -0
- package/{build/website → source}/vite.config.ts +4 -3
- package/{build → target}/actions/changelog/build.d.ts +1 -0
- package/target/actions/changelog/build.js +187 -0
- package/target/actions/changelog/build.unit.js +66 -0
- package/target/actions/config/define.js +8 -0
- package/target/actions/config/define.unit.js +29 -0
- package/target/actions/config/load.js +25 -0
- package/target/actions/config/load.unit.js +23 -0
- package/target/client.d.ts +1 -0
- package/target/client.js +6 -0
- package/target/commands/build.js +14 -0
- package/target/commands/escape.js +56 -0
- package/target/commands/preview.js +18 -0
- package/target/commands/start.js +19 -0
- package/target/components/Abbr.d.ts +5 -0
- package/target/components/Abbr.js +9 -0
- package/target/components/AnsiCode.d.ts +4 -0
- package/target/components/AnsiCode.js +6 -0
- package/target/components/Article.d.ts +5 -0
- package/target/components/Article.js +105 -0
- package/target/components/BackToTop.d.ts +3 -0
- package/target/components/BackToTop.js +19 -0
- package/target/components/Banner.d.ts +2 -0
- package/target/components/Banner.js +12 -0
- package/target/components/BlogIndex.d.ts +4 -0
- package/target/components/BlogIndex.js +62 -0
- package/target/components/Breadcrumbs.d.ts +1 -0
- package/target/components/Breadcrumbs.js +13 -0
- package/target/components/Callout.d.ts +8 -0
- package/target/components/Callout.js +43 -0
- package/target/components/Card.d.ts +7 -0
- package/target/components/Card.js +17 -0
- package/target/components/Cards.d.ts +4 -0
- package/target/components/Cards.js +6 -0
- package/target/components/ChangelogIndex.d.ts +4 -0
- package/target/components/ChangelogIndex.js +57 -0
- package/target/components/CodeBlock.d.ts +1 -0
- package/target/components/CodeBlock.js +47 -0
- package/target/components/CodeTabs.d.ts +6 -0
- package/target/components/CodeTabs.js +49 -0
- package/target/components/Column.d.ts +4 -0
- package/target/components/Column.js +6 -0
- package/target/components/Columns.d.ts +5 -0
- package/target/components/Columns.js +10 -0
- package/target/components/Content.d.ts +3 -0
- package/target/components/Content.js +5 -0
- package/target/components/ContentTab.d.ts +5 -0
- package/target/components/ContentTab.js +6 -0
- package/target/components/ContentTabs.d.ts +5 -0
- package/target/components/ContentTabs.js +47 -0
- package/target/components/DefaultCatchBoundary.d.ts +2 -0
- package/target/components/DefaultCatchBoundary.js +20 -0
- package/target/components/DefinitionList.d.ts +7 -0
- package/target/components/DefinitionList.js +14 -0
- package/target/components/Details.d.ts +5 -0
- package/target/components/Details.js +13 -0
- package/target/components/FileTree.d.ts +4 -0
- package/target/components/FileTree.js +17 -0
- package/target/components/Footer.d.ts +2 -0
- package/target/components/Footer.js +9 -0
- package/target/components/FootnoteRef.d.ts +3 -0
- package/target/components/FootnoteRef.js +31 -0
- package/target/components/Heading.d.ts +8 -0
- package/target/components/Heading.js +18 -0
- package/target/components/InlineBadge.d.ts +5 -0
- package/target/components/InlineBadge.js +7 -0
- package/target/components/InlineIcon.d.ts +5 -0
- package/target/components/InlineIcon.js +10 -0
- package/target/components/InlineToc.d.ts +4 -0
- package/target/components/InlineToc.js +14 -0
- package/target/components/Layout.d.ts +4 -0
- package/target/components/Layout.js +65 -0
- package/target/components/LinkButton.d.ts +7 -0
- package/target/components/LinkButton.js +11 -0
- package/target/components/Mermaid.d.ts +4 -0
- package/target/components/Mermaid.js +8 -0
- package/target/components/MermaidRenderer.d.ts +4 -0
- package/target/components/MermaidRenderer.js +32 -0
- package/target/components/NotFound.d.ts +3 -0
- package/target/components/NotFound.js +10 -0
- package/target/components/PackageTabs.d.ts +9 -0
- package/target/components/PackageTabs.js +28 -0
- package/target/components/PageToolbar.d.ts +7 -0
- package/target/components/PageToolbar.js +34 -0
- package/target/components/PrevNext.d.ts +4 -0
- package/target/components/PrevNext.js +34 -0
- package/target/components/Search.d.ts +2 -0
- package/target/components/Search.js +16 -0
- package/target/components/SearchDialog.d.ts +5 -0
- package/target/components/SearchDialog.js +139 -0
- package/target/components/Section.d.ts +5 -0
- package/target/components/Section.js +8 -0
- package/target/components/SectionHeader.d.ts +7 -0
- package/target/components/SectionHeader.js +7 -0
- package/target/components/Sidebar.d.ts +4 -0
- package/target/components/Sidebar.js +33 -0
- package/target/components/SidebarArticles.d.ts +2 -0
- package/target/components/SidebarArticles.js +45 -0
- package/target/components/SidebarLinks.d.ts +4 -0
- package/target/components/SidebarLinks.js +26 -0
- package/target/components/SidebarPosts.d.ts +2 -0
- package/target/components/SidebarPosts.js +53 -0
- package/target/components/SidebarReleases.d.ts +2 -0
- package/target/components/SidebarReleases.js +35 -0
- package/target/components/SidebarSections.d.ts +4 -0
- package/target/components/SidebarSections.js +36 -0
- package/target/components/SiteTitle.d.ts +2 -0
- package/target/components/SiteTitle.js +12 -0
- package/target/components/SortableTable.d.ts +5 -0
- package/target/components/SortableTable.js +63 -0
- package/target/components/SoundCloud.d.ts +4 -0
- package/target/components/SoundCloud.js +7 -0
- package/target/components/TagIndex.d.ts +5 -0
- package/target/components/TagIndex.js +64 -0
- package/target/components/Theme.d.ts +1 -0
- package/target/components/Theme.js +21 -0
- package/target/components/Toc.d.ts +12 -0
- package/target/components/Toc.js +128 -0
- package/target/components/YouTube.d.ts +4 -0
- package/target/components/YouTube.js +6 -0
- package/target/components/ZoomImage.d.ts +4 -0
- package/target/components/ZoomImage.js +26 -0
- package/target/content/article.d.ts +43 -0
- package/target/content/article.js +54 -0
- package/target/content/tag.d.ts +2 -0
- package/target/content/tag.js +30 -0
- package/target/content-collections.d.ts +2 -0
- package/target/content-collections.js +192 -0
- package/target/elements/accordion.d.ts +6 -0
- package/target/elements/accordion.js +19 -0
- package/target/elements/alert-dialog.d.ts +18 -0
- package/target/elements/alert-dialog.js +44 -0
- package/target/elements/alert.d.ts +9 -0
- package/target/elements/alert.js +28 -0
- package/target/elements/aspect-ratio.d.ts +4 -0
- package/target/elements/aspect-ratio.js +9 -0
- package/target/elements/avatar.d.ts +11 -0
- package/target/elements/avatar.js +23 -0
- package/target/elements/badge.d.ts +7 -0
- package/target/elements/badge.js +34 -0
- package/target/elements/breadcrumb.d.ts +9 -0
- package/target/elements/breadcrumb.js +39 -0
- package/target/elements/button-group.d.ts +10 -0
- package/target/elements/button-group.js +37 -0
- package/target/elements/button.d.ts +8 -0
- package/target/elements/button.js +35 -0
- package/target/elements/calendar.d.ts +10 -0
- package/target/elements/calendar.js +76 -0
- package/target/elements/card.d.ts +11 -0
- package/target/elements/card.js +25 -0
- package/target/elements/carousel.d.ts +28 -0
- package/target/elements/carousel.js +95 -0
- package/target/elements/chart.d.ts +44 -0
- package/target/elements/chart.js +140 -0
- package/target/elements/checkbox.d.ts +3 -0
- package/target/elements/checkbox.js +9 -0
- package/target/elements/collapsible.d.ts +5 -0
- package/target/elements/collapsible.js +13 -0
- package/target/elements/command.d.ts +23 -0
- package/target/elements/command.js +42 -0
- package/target/elements/context-menu.d.ts +29 -0
- package/target/elements/context-menu.js +54 -0
- package/target/elements/dialog.d.ts +16 -0
- package/target/elements/dialog.js +41 -0
- package/target/elements/direction.d.ts +1 -0
- package/target/elements/direction.js +2 -0
- package/target/elements/drawer.d.ts +12 -0
- package/target/elements/drawer.js +38 -0
- package/target/elements/dropdown-menu.d.ts +24 -0
- package/target/elements/dropdown-menu.js +54 -0
- package/target/elements/empty.d.ts +11 -0
- package/target/elements/empty.js +34 -0
- package/target/elements/field.d.ts +24 -0
- package/target/elements/field.js +69 -0
- package/target/elements/hover-card.d.ts +5 -0
- package/target/elements/hover-card.js +14 -0
- package/target/elements/input-group.d.ts +18 -0
- package/target/elements/input-group.js +60 -0
- package/target/elements/input-otp.d.ts +11 -0
- package/target/elements/input-otp.js +21 -0
- package/target/elements/input.d.ts +2 -0
- package/target/elements/input.js +8 -0
- package/target/elements/item.d.ts +21 -0
- package/target/elements/item.js +79 -0
- package/target/elements/kbd.d.ts +3 -0
- package/target/elements/kbd.js +10 -0
- package/target/elements/label.d.ts +2 -0
- package/target/elements/label.js +8 -0
- package/target/elements/menubar.d.ts +29 -0
- package/target/elements/menubar.js +58 -0
- package/target/elements/native-select.d.ts +8 -0
- package/target/elements/native-select.js +16 -0
- package/target/elements/navigation-menu.d.ts +11 -0
- package/target/elements/navigation-menu.js +34 -0
- package/target/elements/pagination.d.ts +17 -0
- package/target/elements/pagination.js +33 -0
- package/target/elements/popover.d.ts +9 -0
- package/target/elements/popover.js +23 -0
- package/target/elements/progress.d.ts +7 -0
- package/target/elements/progress.js +21 -0
- package/target/elements/radio-group.d.ts +5 -0
- package/target/elements/radio-group.js +12 -0
- package/target/elements/resizable.d.ts +7 -0
- package/target/elements/resizable.js +14 -0
- package/target/elements/scroll-area.d.ts +4 -0
- package/target/elements/scroll-area.js +13 -0
- package/target/elements/select.d.ts +15 -0
- package/target/elements/select.js +39 -0
- package/target/elements/separator.d.ts +3 -0
- package/target/elements/separator.js +8 -0
- package/target/elements/sheet.d.ts +13 -0
- package/target/elements/sheet.js +41 -0
- package/target/elements/sidebar.d.ts +63 -0
- package/target/elements/sidebar.js +272 -0
- package/target/elements/skeleton.d.ts +2 -0
- package/target/elements/skeleton.js +7 -0
- package/target/elements/slider.d.ts +3 -0
- package/target/elements/slider.js +15 -0
- package/target/elements/sonner.d.ts +3 -0
- package/target/elements/sonner.js +23 -0
- package/target/elements/spinner.d.ts +2 -0
- package/target/elements/spinner.js +8 -0
- package/target/elements/switch.d.ts +5 -0
- package/target/elements/switch.js +8 -0
- package/target/elements/table.d.ts +9 -0
- package/target/elements/table.js +28 -0
- package/target/elements/tabs.d.ts +10 -0
- package/target/elements/tabs.js +29 -0
- package/target/elements/textarea.d.ts +2 -0
- package/target/elements/textarea.js +7 -0
- package/target/elements/toggle-group.d.ts +10 -0
- package/target/elements/toggle-group.js +24 -0
- package/target/elements/toggle.d.ts +8 -0
- package/target/elements/toggle.js +26 -0
- package/target/elements/tooltip.d.ts +6 -0
- package/target/elements/tooltip.js +18 -0
- package/target/entrypoints/main.js +12 -0
- package/target/helpers/article-icon.d.ts +3 -0
- package/target/helpers/article-icon.js +34 -0
- package/target/helpers/article.d.ts +24 -0
- package/target/helpers/article.js +73 -0
- package/target/helpers/changelog-source.d.ts +7 -0
- package/target/helpers/changelog-source.js +16 -0
- package/target/helpers/changelog-source.unit.d.ts +1 -0
- package/target/helpers/changelog-source.unit.js +33 -0
- package/target/helpers/dynamic-icon-resolver.d.ts +5 -0
- package/target/helpers/dynamic-icon-resolver.js +17 -0
- package/target/helpers/dynamic-icon.d.ts +5 -0
- package/target/helpers/dynamic-icon.js +8 -0
- package/target/helpers/favicon.d.ts +2 -0
- package/target/helpers/favicon.js +11 -0
- package/target/helpers/model.d.ts +3 -0
- package/target/helpers/model.js +4 -0
- package/target/helpers/program.js +5 -0
- package/target/helpers/resolve-asset-path.d.ts +2 -0
- package/target/helpers/resolve-asset-path.js +9 -0
- package/target/helpers/resolve-includes.d.ts +2 -0
- package/target/helpers/resolve-includes.js +113 -0
- package/target/helpers/resolve-includes.unit.d.ts +1 -0
- package/target/helpers/resolve-includes.unit.js +76 -0
- package/target/helpers/search-text.d.ts +2 -0
- package/target/helpers/search-text.js +16 -0
- package/target/helpers/section.d.ts +13 -0
- package/target/helpers/section.js +39 -0
- package/target/helpers/section.unit.d.ts +1 -0
- package/target/helpers/section.unit.js +62 -0
- package/target/helpers/theme.d.ts +5 -0
- package/target/helpers/theme.js +23 -0
- package/target/helpers/toc-context.d.ts +5 -0
- package/target/helpers/toc-context.js +8 -0
- package/target/helpers/toc.d.ts +3 -0
- package/target/helpers/toc.js +41 -0
- package/target/helpers/toc.unit.d.ts +1 -0
- package/target/helpers/toc.unit.js +65 -0
- package/target/hooks/in-view.d.ts +4 -0
- package/target/hooks/in-view.js +23 -0
- package/target/hooks/media.d.ts +6 -0
- package/target/hooks/media.js +25 -0
- package/target/index.js +2 -0
- package/target/models/article.d.ts +57 -0
- package/target/models/article.js +21 -0
- package/{build → target}/models/config.d.ts +10 -0
- package/target/models/config.js +34 -0
- package/target/models/link.js +9 -0
- package/{build → target}/models/patch.d.ts +5 -0
- package/target/models/patch.js +7 -0
- package/target/models/section.js +26 -0
- package/target/models/theme.js +73 -0
- package/target/models/toc.d.ts +5 -0
- package/target/models/toc.js +2 -0
- package/target/plugins/rehype-inline-code.d.ts +19 -0
- package/target/plugins/rehype-inline-code.js +55 -0
- package/target/plugins/rehype-task-list-a11y.d.ts +10 -0
- package/target/plugins/rehype-task-list-a11y.js +29 -0
- package/target/plugins/remark-abbr.d.ts +6 -0
- package/target/plugins/remark-abbr.js +39 -0
- package/target/plugins/remark-abbr.unit.d.ts +1 -0
- package/target/plugins/remark-abbr.unit.js +79 -0
- package/target/plugins/remark-ansi.d.ts +8 -0
- package/target/plugins/remark-ansi.js +239 -0
- package/target/plugins/remark-ansi.unit.d.ts +1 -0
- package/target/plugins/remark-ansi.unit.js +134 -0
- package/target/plugins/remark-badge.d.ts +6 -0
- package/target/plugins/remark-badge.js +43 -0
- package/target/plugins/remark-badge.unit.d.ts +1 -0
- package/target/plugins/remark-badge.unit.js +76 -0
- package/target/plugins/remark-button.d.ts +6 -0
- package/target/plugins/remark-button.js +52 -0
- package/target/plugins/remark-button.unit.d.ts +1 -0
- package/target/plugins/remark-button.unit.js +105 -0
- package/target/plugins/remark-callout.d.ts +4 -0
- package/target/plugins/remark-callout.js +39 -0
- package/target/plugins/remark-card.d.ts +4 -0
- package/target/plugins/remark-card.js +66 -0
- package/target/plugins/remark-code-tabs.d.ts +4 -0
- package/target/plugins/remark-code-tabs.js +72 -0
- package/target/plugins/remark-columns.d.ts +4 -0
- package/target/plugins/remark-columns.js +54 -0
- package/target/plugins/remark-custom-heading-id.d.ts +14 -0
- package/target/plugins/remark-custom-heading-id.js +54 -0
- package/target/plugins/remark-custom-heading-id.unit.d.ts +1 -0
- package/target/plugins/remark-custom-heading-id.unit.js +91 -0
- package/target/plugins/remark-deflist.d.ts +4 -0
- package/target/plugins/remark-deflist.js +31 -0
- package/target/plugins/remark-details.d.ts +4 -0
- package/target/plugins/remark-details.js +33 -0
- package/target/plugins/remark-filetree.d.ts +12 -0
- package/target/plugins/remark-filetree.js +61 -0
- package/target/plugins/remark-filetree.unit.d.ts +1 -0
- package/target/plugins/remark-filetree.unit.js +87 -0
- package/target/plugins/remark-github-callout.d.ts +4 -0
- package/target/plugins/remark-github-callout.js +62 -0
- package/target/plugins/remark-icon.d.ts +4 -0
- package/target/plugins/remark-icon.js +36 -0
- package/target/plugins/remark-image.d.ts +9 -0
- package/target/plugins/remark-image.js +26 -0
- package/target/plugins/remark-media.d.ts +6 -0
- package/target/plugins/remark-media.js +52 -0
- package/target/plugins/remark-media.unit.d.ts +1 -0
- package/target/plugins/remark-media.unit.js +54 -0
- package/target/plugins/remark-mermaid.d.ts +4 -0
- package/target/plugins/remark-mermaid.js +20 -0
- package/target/plugins/remark-npm.d.ts +4 -0
- package/target/plugins/remark-npm.js +32 -0
- package/target/plugins/remark-steps.d.ts +6 -0
- package/target/plugins/remark-steps.js +30 -0
- package/target/plugins/remark-steps.unit.d.ts +1 -0
- package/target/plugins/remark-steps.unit.js +65 -0
- package/target/plugins/remark-tab.d.ts +6 -0
- package/target/plugins/remark-tab.js +76 -0
- package/target/plugins/remark-tab.unit.d.ts +1 -0
- package/target/plugins/remark-tab.unit.js +156 -0
- package/target/plugins/remark-toc.d.ts +6 -0
- package/target/plugins/remark-toc.js +33 -0
- package/target/plugins/remark-toc.unit.d.ts +1 -0
- package/target/plugins/remark-toc.unit.js +57 -0
- package/target/plugins/shiki-icon.d.ts +16 -0
- package/target/plugins/shiki-icon.js +66 -0
- package/target/plugins/shiki-line-highlight.d.ts +27 -0
- package/target/plugins/shiki-line-highlight.js +140 -0
- package/target/plugins/vite-livemark.d.ts +13 -0
- package/target/plugins/vite-livemark.js +76 -0
- package/target/program.js +18 -0
- package/target/routeTree.gen.d.ts +57 -0
- package/target/routeTree.gen.js +27 -0
- package/target/router.d.ts +6 -0
- package/target/router.js +26 -0
- package/target/routes/$.d.ts +1 -0
- package/target/routes/$.js +85 -0
- package/target/routes/__root.d.ts +1 -0
- package/target/routes/__root.js +69 -0
- package/target/server.d.ts +2 -0
- package/target/server.js +7 -0
- package/target/settings.d.ts +2 -0
- package/target/settings.js +7 -0
- package/target/utils/style.d.ts +2 -0
- package/target/utils/style.js +6 -0
- package/target/vite.config.d.ts +2 -0
- package/target/vite.config.js +64 -0
- package/build/actions/changelog/build.js +0 -158
- package/build/actions/changelog/build.unit.js +0 -66
- package/build/actions/config/define.js +0 -8
- package/build/actions/config/define.unit.js +0 -29
- package/build/actions/config/load.js +0 -25
- package/build/actions/config/load.unit.js +0 -23
- package/build/commands/build.js +0 -14
- package/build/commands/escape.js +0 -56
- package/build/commands/preview.js +0 -18
- package/build/commands/start.js +0 -19
- package/build/docs/markdown/includes/example.d.ts +0 -58
- package/build/docs/markdown/includes/example.js +0 -5
- package/build/entrypoints/main.js +0 -12
- package/build/helpers/program.js +0 -5
- package/build/index.js +0 -2
- package/build/livemark.config.d.ts +0 -58
- package/build/livemark.config.js +0 -25
- package/build/models/config.js +0 -34
- package/build/models/link.js +0 -9
- package/build/models/patch.js +0 -7
- package/build/models/section.js +0 -26
- package/build/models/theme.js +0 -73
- package/build/program.js +0 -16
- package/build/vite.config.d.ts +0 -2
- package/build/vite.config.js +0 -48
- package/build/website/components/BlogSidebar.tsx +0 -162
- package/build/website/components/ChangelogSidebar.tsx +0 -120
- package/build/website/hooks/media.ts +0 -19
- /package/{build/website → source}/assets/logo.svg +0 -0
- /package/{build/website → source}/client.tsx +0 -0
- /package/{build/website → source}/components/Abbr.tsx +0 -0
- /package/{build/website → source}/components/AnsiCode.tsx +0 -0
- /package/{build/website → source}/components/BackToTop.tsx +0 -0
- /package/{build/website → source}/components/Banner.tsx +0 -0
- /package/{build/website → source}/components/BlogIndex.tsx +0 -0
- /package/{build/website → source}/components/Breadcrumbs.tsx +0 -0
- /package/{build/website → source}/components/Card.tsx +0 -0
- /package/{build/website → source}/components/Cards.tsx +0 -0
- /package/{build/website → source}/components/ChangelogIndex.tsx +0 -0
- /package/{build/website → source}/components/CodeBlock.tsx +0 -0
- /package/{build/website → source}/components/CodeTabs.tsx +0 -0
- /package/{build/website → source}/components/Column.tsx +0 -0
- /package/{build/website → source}/components/Columns.tsx +0 -0
- /package/{build/website → source}/components/Content.tsx +0 -0
- /package/{build/website → source}/components/ContentTab.tsx +0 -0
- /package/{build/website → source}/components/ContentTabs.tsx +0 -0
- /package/{build/website → source}/components/DefaultCatchBoundary.tsx +0 -0
- /package/{build/website → source}/components/DefinitionList.tsx +0 -0
- /package/{build/website → source}/components/Details.tsx +0 -0
- /package/{build/website → source}/components/FileTree.tsx +0 -0
- /package/{build/website → source}/components/Footer.tsx +0 -0
- /package/{build/website → source}/components/FootnoteRef.tsx +0 -0
- /package/{build/website → source}/components/Heading.tsx +0 -0
- /package/{build/website → source}/components/InlineBadge.tsx +0 -0
- /package/{build/website → source}/components/InlineIcon.tsx +0 -0
- /package/{build/website → source}/components/InlineToc.tsx +0 -0
- /package/{build/website → source}/components/Mermaid.tsx +0 -0
- /package/{build/website → source}/components/MermaidRenderer.tsx +0 -0
- /package/{build/website → source}/components/NotFound.tsx +0 -0
- /package/{build/website → source}/components/PackageTabs.tsx +0 -0
- /package/{build/website → source}/components/PrevNext.tsx +0 -0
- /package/{build/website → source}/components/Search.tsx +0 -0
- /package/{build/website → source}/components/SearchDialog.tsx +0 -0
- /package/{build/website → source}/components/SidebarLinks.tsx +0 -0
- /package/{build/website → source}/components/SidebarSections.tsx +0 -0
- /package/{build/website → source}/components/SiteTitle.tsx +0 -0
- /package/{build/website → source}/components/SortableTable.tsx +0 -0
- /package/{build/website → source}/components/SoundCloud.tsx +0 -0
- /package/{build/website → source}/components/TagIndex.tsx +0 -0
- /package/{build/website → source}/components/Theme.tsx +0 -0
- /package/{build/website → source}/components/Toc.tsx +0 -0
- /package/{build/website → source}/components/YouTube.tsx +0 -0
- /package/{build/website → source}/components/ZoomImage.tsx +0 -0
- /package/{build/website → source}/content/article.ts +0 -0
- /package/{build/website → source}/content/tag.ts +0 -0
- /package/{build/website → source}/elements/collapsible.tsx +0 -0
- /package/{build/website → source}/elements/direction.tsx +0 -0
- /package/{build/website → source}/elements/sonner.tsx +0 -0
- /package/{build/website → source}/helpers/article-icon.ts +0 -0
- /package/{build/website → source}/helpers/article.ts +0 -0
- /package/{build/website → source}/helpers/changelog-source.ts +0 -0
- /package/{build/website → source}/helpers/changelog-source.unit.ts +0 -0
- /package/{build/website → source}/helpers/dynamic-icon-resolver.tsx +0 -0
- /package/{build/website → source}/helpers/dynamic-icon.tsx +0 -0
- /package/{build/website → source}/helpers/favicon.ts +0 -0
- /package/{build/website → source}/helpers/model.ts +0 -0
- /package/{build/website → source}/helpers/resolve-asset-path.ts +0 -0
- /package/{build/website → source}/helpers/resolve-includes.ts +0 -0
- /package/{build/website → source}/helpers/resolve-includes.unit.ts +0 -0
- /package/{build/website → source}/helpers/search-text.ts +0 -0
- /package/{build/website → source}/helpers/section.unit.ts +0 -0
- /package/{build/website → source}/helpers/theme.ts +0 -0
- /package/{build/website → source}/helpers/toc-context.ts +0 -0
- /package/{build/website → source}/helpers/toc.ts +0 -0
- /package/{build/website → source}/helpers/toc.unit.ts +0 -0
- /package/{build/website → source}/hooks/in-view.ts +0 -0
- /package/{build/website → source}/models/toc.ts +0 -0
- /package/{build/website → source}/plugins/rehype-inline-code.ts +0 -0
- /package/{build/website → source}/plugins/rehype-task-list-a11y.ts +0 -0
- /package/{build/website → source}/plugins/remark-abbr.ts +0 -0
- /package/{build/website → source}/plugins/remark-abbr.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-ansi.ts +0 -0
- /package/{build/website → source}/plugins/remark-ansi.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-badge.ts +0 -0
- /package/{build/website → source}/plugins/remark-badge.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-button.ts +0 -0
- /package/{build/website → source}/plugins/remark-button.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-callout.ts +0 -0
- /package/{build/website → source}/plugins/remark-card.ts +0 -0
- /package/{build/website → source}/plugins/remark-code-tabs.ts +0 -0
- /package/{build/website → source}/plugins/remark-columns.ts +0 -0
- /package/{build/website → source}/plugins/remark-custom-heading-id.ts +0 -0
- /package/{build/website → source}/plugins/remark-custom-heading-id.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-deflist.ts +0 -0
- /package/{build/website → source}/plugins/remark-details.ts +0 -0
- /package/{build/website → source}/plugins/remark-filetree.ts +0 -0
- /package/{build/website → source}/plugins/remark-filetree.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-github-callout.ts +0 -0
- /package/{build/website → source}/plugins/remark-icon.ts +0 -0
- /package/{build/website → source}/plugins/remark-image.ts +0 -0
- /package/{build/website → source}/plugins/remark-media.ts +0 -0
- /package/{build/website → source}/plugins/remark-media.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-mermaid.ts +0 -0
- /package/{build/website → source}/plugins/remark-npm.ts +0 -0
- /package/{build/website → source}/plugins/remark-steps.ts +0 -0
- /package/{build/website → source}/plugins/remark-steps.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-tab.ts +0 -0
- /package/{build/website → source}/plugins/remark-tab.unit.ts +0 -0
- /package/{build/website → source}/plugins/remark-toc.ts +0 -0
- /package/{build/website → source}/plugins/remark-toc.unit.ts +0 -0
- /package/{build/website → source}/plugins/shiki-icon.ts +0 -0
- /package/{build/website → source}/plugins/shiki-line-highlight.ts +0 -0
- /package/{build/website → source}/routeTree.gen.ts +0 -0
- /package/{build/website → source}/router.tsx +0 -0
- /package/{build/website → source}/routes/$.tsx +0 -0
- /package/{build/website → source}/routes/__root.tsx +0 -0
- /package/{build/website → source}/server.ts +0 -0
- /package/{build/website → source}/styles/general.css +0 -0
- /package/{build/website → source}/styles/markdown.css +0 -0
- /package/{build/website/helpers → source/utils}/style.ts +0 -0
- /package/{build → target}/actions/changelog/build.unit.d.ts +0 -0
- /package/{build → target}/actions/config/define.d.ts +0 -0
- /package/{build → target}/actions/config/define.unit.d.ts +0 -0
- /package/{build → target}/actions/config/load.d.ts +0 -0
- /package/{build → target}/actions/config/load.unit.d.ts +0 -0
- /package/{build → target}/commands/build.d.ts +0 -0
- /package/{build → target}/commands/escape.d.ts +0 -0
- /package/{build → target}/commands/preview.d.ts +0 -0
- /package/{build → target}/commands/start.d.ts +0 -0
- /package/{build → target}/entrypoints/main.d.ts +0 -0
- /package/{build → target}/helpers/program.d.ts +0 -0
- /package/{build → target}/index.d.ts +0 -0
- /package/{build → target}/models/link.d.ts +0 -0
- /package/{build → target}/models/section.d.ts +0 -0
- /package/{build → target}/models/theme.d.ts +0 -0
- /package/{build → target}/program.d.ts +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Check, ChevronDown, Clipboard, WrapText } from "lucide-react";
|
|
3
|
+
import { useRef, useState } from "react";
|
|
4
|
+
import { Tooltip, TooltipContent, TooltipTrigger, } from "../elements/tooltip.js";
|
|
5
|
+
export function CodeBlock(props) {
|
|
6
|
+
const [copied, setCopied] = useState(false);
|
|
7
|
+
const [wrap, setWrap] = useState(false);
|
|
8
|
+
const [expanded, setExpanded] = useState(false);
|
|
9
|
+
const preRef = useRef(null);
|
|
10
|
+
const extra = props;
|
|
11
|
+
const meta = extra["data-meta"];
|
|
12
|
+
const title = meta?.match(/title="([^"]+)"/)?.[1];
|
|
13
|
+
const maxLines = meta?.match(/maxLines=(\d+)/)?.[1];
|
|
14
|
+
const icon = extra.icon;
|
|
15
|
+
const style = props.style;
|
|
16
|
+
const collapsedHeight = maxLines
|
|
17
|
+
? `${Number(maxLines) * 1.5 + 1.75}rem`
|
|
18
|
+
: undefined;
|
|
19
|
+
const handleCopy = () => {
|
|
20
|
+
const text = preRef.current?.textContent ?? "";
|
|
21
|
+
navigator.clipboard.writeText(text);
|
|
22
|
+
setCopied(true);
|
|
23
|
+
setTimeout(() => setCopied(false), 2000);
|
|
24
|
+
};
|
|
25
|
+
const handleWrapToggle = () => {
|
|
26
|
+
setWrap(prev => !prev);
|
|
27
|
+
};
|
|
28
|
+
return (_jsxs("figure", { className: "shiki not-prose my-4 relative rounded-xl border shadow-sm overflow-hidden text-sm bg-sidebar dark:bg-sidebar", style: { ...style, backgroundColor: undefined }, children: [title ? (_jsxs("div", { className: "flex items-center gap-2 h-9.5 border-b px-4 text-muted-foreground", children: [icon && (_jsx("span", { className: "size-3.5 [&>svg]:size-full", dangerouslySetInnerHTML: { __html: icon } })), _jsx("span", { className: "flex-1 truncate text-xs font-medium", children: title }), _jsxs(Tooltip, { children: [
|
|
29
|
+
_jsx(TooltipTrigger, { onClick: handleWrapToggle, "aria-label": wrap ? "Disable wrap" : "Enable wrap", className: `-me-2 p-1.5 rounded-md hover:text-foreground transition-colors ${wrap ? "text-foreground" : ""}`, children: _jsx(WrapText, { className: "size-3.5" }) }), _jsx(TooltipContent, { children: wrap ? "Disable wrap" : "Enable wrap" })
|
|
30
|
+
] }), _jsxs(Tooltip, { children: [
|
|
31
|
+
_jsx(TooltipTrigger, { onClick: handleCopy, "aria-label": copied ? "Copied" : "Copy code", className: "-me-2 p-1.5 rounded-md hover:text-foreground transition-colors", children: copied ? (_jsx(Check, { className: "size-3.5" })) : (_jsx(Clipboard, { className: "size-3.5" })) }), _jsx(TooltipContent, { children: copied ? "Copied!" : "Copy code" })
|
|
32
|
+
] })
|
|
33
|
+
] })) : (_jsxs("div", { className: "empty:hidden absolute top-2 right-2 z-10 backdrop-blur-lg rounded-lg text-muted-foreground", children: [
|
|
34
|
+
_jsxs(Tooltip, { children: [
|
|
35
|
+
_jsx(TooltipTrigger, { onClick: handleWrapToggle, "aria-label": wrap ? "Disable wrap" : "Enable wrap", className: `p-1.5 rounded-md hover:text-foreground transition-colors ${wrap ? "text-foreground" : ""}`, children: _jsx(WrapText, { className: "size-3.5" }) }), _jsx(TooltipContent, { children: wrap ? "Disable wrap" : "Enable wrap" })
|
|
36
|
+
] }), _jsxs(Tooltip, { children: [
|
|
37
|
+
_jsx(TooltipTrigger, { onClick: handleCopy, "aria-label": copied ? "Copied" : "Copy code", className: "p-1.5 rounded-md hover:text-foreground transition-colors", children: copied ? (_jsx(Check, { className: "size-3.5" })) : (_jsx(Clipboard, { className: "size-3.5" })) }), _jsx(TooltipContent, { children: copied ? "Copied!" : "Copy code" })
|
|
38
|
+
] })
|
|
39
|
+
] })), _jsx("div", { className: "text-[0.8125rem] py-3.5 overflow-auto transition-[max-height] duration-300", style: {
|
|
40
|
+
maxHeight: collapsedHeight && !expanded ? collapsedHeight : "600px",
|
|
41
|
+
}, children: _jsx("pre", { ...props, ref: preRef, style: undefined, className: wrap
|
|
42
|
+
? "min-w-full whitespace-pre-wrap break-words [&>code]:flex [&>code]:flex-col"
|
|
43
|
+
: "min-w-full w-max [&>code]:flex [&>code]:flex-col" }) }), collapsedHeight && !expanded && (_jsxs("button", { type: "button", onClick: () => setExpanded(true), className: "flex items-center justify-center gap-1 w-full py-1.5 text-xs text-muted-foreground hover:text-foreground border-t cursor-pointer transition-colors", children: [
|
|
44
|
+
_jsx(ChevronDown, { className: "size-3.5" }),
|
|
45
|
+
"Expand"] }))] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUJsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvQ29kZUJsb2NrLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUN4QyxPQUFPLEVBQ0wsT0FBTyxFQUNQLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSx3QkFBeUIsQ0FBQTtBQUVoQyxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWtDO0lBQzFELE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUE7SUFDM0MsTUFBTSxLQUFLLEdBQUcsS0FBZ0MsQ0FBQTtJQUM5QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUF1QixDQUFBO0lBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25ELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUEwQixDQUFBO0lBQzdDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUEyQyxDQUFBO0lBQy9ELE1BQU0sZUFBZSxHQUFHLFFBQVE7UUFDOUIsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLEtBQUs7UUFDdkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUViLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRTtRQUN0QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUE7UUFDOUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDLENBQUE7SUFFRCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hCLENBQUMsQ0FBQTtJQUVELE9BQU8sQ0FDTCxrQkFDRSxTQUFTLEVBQUMsOEdBQThHLEVBQ3hILEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsYUFFOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNQLGVBQUssU0FBUyxFQUFDLG1FQUFtRSxhQUMvRSxJQUFJLElBQUksQ0FDUCxlQUNFLFNBQVMsRUFBQyw0QkFBNEIsRUFDdEMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQ3pDLENBQ0gsRUFDRCxlQUFNLFNBQVMsRUFBQyxxQ0FBcUMsWUFBRSxLQUFLLEdBQVEsRUFDcEUsTUFBQyxPQUFPOzRCQUNOLEtBQUMsY0FBYyxJQUNiLE9BQU8sRUFBRSxnQkFBZ0IsZ0JBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFDakQsU0FBUyxFQUFFLGtFQUFrRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFFNUcsS0FBQyxRQUFRLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBRyxHQUNsQixFQUNqQixLQUFDLGNBQWMsY0FDWixJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxHQUN2Qjs0QkFDVCxFQUNWLE1BQUMsT0FBTzs0QkFDTixLQUFDLGNBQWMsSUFDYixPQUFPLEVBQUUsVUFBVSxnQkFDUCxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUMzQyxTQUFTLEVBQUMsZ0VBQWdFLFlBRXpFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDUixLQUFDLEtBQUssSUFBQyxTQUFTLEVBQUMsVUFBVSxHQUFHLENBQy9CLENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxTQUFTLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBRyxDQUNuQyxHQUNjLEVBQ2pCLEtBQUMsY0FBYyxjQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQWtCOzRCQUMzRDtvQkFDTixDQUNQLENBQUMsQ0FBQyxDQUFDLENBQ0YsZUFBSyxTQUFTLEVBQUMsNEZBQTRGO29CQUN6RyxNQUFDLE9BQU87NEJBQ04sS0FBQyxjQUFjLElBQ2IsT0FBTyxFQUFFLGdCQUFnQixnQkFDYixJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUNqRCxTQUFTLEVBQUUsNERBQTRELElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUV0RyxLQUFDLFFBQVEsSUFBQyxTQUFTLEVBQUMsVUFBVSxHQUFHLEdBQ2xCLEVBQ2pCLEtBQUMsY0FBYyxjQUNaLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQ3ZCOzRCQUNULEVBQ1YsTUFBQyxPQUFPOzRCQUNOLEtBQUMsY0FBYyxJQUNiLE9BQU8sRUFBRSxVQUFVLGdCQUNQLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQzNDLFNBQVMsRUFBQywwREFBMEQsWUFFbkUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNSLEtBQUMsS0FBSyxJQUFDLFNBQVMsRUFBQyxVQUFVLEdBQUcsQ0FDL0IsQ0FBQyxDQUFDLENBQUMsQ0FDRixLQUFDLFNBQVMsSUFBQyxTQUFTLEVBQUMsVUFBVSxHQUFHLENBQ25DLEdBQ2MsRUFDakIsS0FBQyxjQUFjLGNBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBa0I7NEJBQzNEO29CQUNOLENBQ1AsRUFDRCxjQUNFLFNBQVMsRUFBQyw0RUFBNEUsRUFDdEYsS0FBSyxFQUFFO29CQUNMLFNBQVMsRUFBRSxlQUFlLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTztpQkFDcEUsWUFFRCxpQkFDTSxLQUFLLEVBQ1QsR0FBRyxFQUFFLE1BQU0sRUFDWCxLQUFLLEVBQUUsU0FBUyxFQUNoQixTQUFTLEVBQ1AsSUFBSTt3QkFDRixDQUFDLENBQUMsNEVBQTRFO3dCQUM5RSxDQUFDLENBQUMsa0RBQWtELEdBRXhELEdBQ0UsRUFDTCxlQUFlLElBQUksQ0FBQyxRQUFRLElBQUksQ0FDL0Isa0JBQ0UsSUFBSSxFQUFDLFFBQVEsRUFDYixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUNoQyxTQUFTLEVBQUMsb0pBQW9KO29CQUU5SixLQUFDLFdBQVcsSUFBQyxTQUFTLEVBQUMsVUFBVSxHQUFHO2dDQUU3QixDQUNWLElBQ00sQ0FDVixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoZWNrLCBDaGV2cm9uRG93biwgQ2xpcGJvYXJkLCBXcmFwVGV4dCB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1xuICBUb29sdGlwLFxuICBUb29sdGlwQ29udGVudCxcbiAgVG9vbHRpcFRyaWdnZXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy90b29sdGlwLnRzeFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBDb2RlQmxvY2socHJvcHM6IFJlYWN0LkNvbXBvbmVudFByb3BzPFwicHJlXCI+KSB7XG4gIGNvbnN0IFtjb3BpZWQsIHNldENvcGllZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3dyYXAsIHNldFdyYXBdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHByZVJlZiA9IHVzZVJlZjxIVE1MUHJlRWxlbWVudD4obnVsbClcbiAgY29uc3QgZXh0cmEgPSBwcm9wcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBjb25zdCBtZXRhID0gZXh0cmFbXCJkYXRhLW1ldGFcIl0gYXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGNvbnN0IHRpdGxlID0gbWV0YT8ubWF0Y2goL3RpdGxlPVwiKFteXCJdKylcIi8pPy5bMV1cbiAgY29uc3QgbWF4TGluZXMgPSBtZXRhPy5tYXRjaCgvbWF4TGluZXM9KFxcZCspLyk/LlsxXVxuICBjb25zdCBpY29uID0gZXh0cmEuaWNvbiBhcyBzdHJpbmcgfCB1bmRlZmluZWRcbiAgY29uc3Qgc3R5bGUgPSBwcm9wcy5zdHlsZSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkXG4gIGNvbnN0IGNvbGxhcHNlZEhlaWdodCA9IG1heExpbmVzXG4gICAgPyBgJHtOdW1iZXIobWF4TGluZXMpICogMS41ICsgMS43NX1yZW1gXG4gICAgOiB1bmRlZmluZWRcblxuICBjb25zdCBoYW5kbGVDb3B5ID0gKCkgPT4ge1xuICAgIGNvbnN0IHRleHQgPSBwcmVSZWYuY3VycmVudD8udGV4dENvbnRlbnQgPz8gXCJcIlxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpXG4gICAgc2V0Q29waWVkKHRydWUpXG4gICAgc2V0VGltZW91dCgoKSA9PiBzZXRDb3BpZWQoZmFsc2UpLCAyMDAwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV3JhcFRvZ2dsZSA9ICgpID0+IHtcbiAgICBzZXRXcmFwKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmaWd1cmVcbiAgICAgIGNsYXNzTmFtZT1cInNoaWtpIG5vdC1wcm9zZSBteS00IHJlbGF0aXZlIHJvdW5kZWQteGwgYm9yZGVyIHNoYWRvdy1zbSBvdmVyZmxvdy1oaWRkZW4gdGV4dC1zbSBiZy1zaWRlYmFyIGRhcms6Ymctc2lkZWJhclwiXG4gICAgICBzdHlsZT17eyAuLi5zdHlsZSwgYmFja2dyb3VuZENvbG9yOiB1bmRlZmluZWQgfX1cbiAgICA+XG4gICAgICB7dGl0bGUgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaC05LjUgYm9yZGVyLWIgcHgtNCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgICB7aWNvbiAmJiAoXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzaXplLTMuNSBbJj5zdmddOnNpemUtZnVsbFwiXG4gICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogaWNvbiB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXgtMSB0cnVuY2F0ZSB0ZXh0LXhzIGZvbnQtbWVkaXVtXCI+e3RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICA8VG9vbHRpcD5cbiAgICAgICAgICAgIDxUb29sdGlwVHJpZ2dlclxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVXcmFwVG9nZ2xlfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt3cmFwID8gXCJEaXNhYmxlIHdyYXBcIiA6IFwiRW5hYmxlIHdyYXBcIn1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgLW1lLTIgcC0xLjUgcm91bmRlZC1tZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQgdHJhbnNpdGlvbi1jb2xvcnMgJHt3cmFwID8gXCJ0ZXh0LWZvcmVncm91bmRcIiA6IFwiXCJ9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFdyYXBUZXh0IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgIDwvVG9vbHRpcFRyaWdnZXI+XG4gICAgICAgICAgICA8VG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgIHt3cmFwID8gXCJEaXNhYmxlIHdyYXBcIiA6IFwiRW5hYmxlIHdyYXBcIn1cbiAgICAgICAgICAgIDwvVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgICAgPFRvb2x0aXBUcmlnZ2VyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNvcHl9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2NvcGllZCA/IFwiQ29waWVkXCIgOiBcIkNvcHkgY29kZVwifVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCItbWUtMiBwLTEuNSByb3VuZGVkLW1kIGhvdmVyOnRleHQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjb3BpZWQgPyAoXG4gICAgICAgICAgICAgICAgPENoZWNrIGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8Q2xpcGJvYXJkIGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvVG9vbHRpcFRyaWdnZXI+XG4gICAgICAgICAgICA8VG9vbHRpcENvbnRlbnQ+e2NvcGllZCA/IFwiQ29waWVkIVwiIDogXCJDb3B5IGNvZGVcIn08L1Rvb2x0aXBDb250ZW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVtcHR5OmhpZGRlbiBhYnNvbHV0ZSB0b3AtMiByaWdodC0yIHotMTAgYmFja2Ryb3AtYmx1ci1sZyByb3VuZGVkLWxnIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgIDxUb29sdGlwPlxuICAgICAgICAgICAgPFRvb2x0aXBUcmlnZ2VyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVdyYXBUb2dnbGV9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3dyYXAgPyBcIkRpc2FibGUgd3JhcFwiIDogXCJFbmFibGUgd3JhcFwifVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BwLTEuNSByb3VuZGVkLW1kIGhvdmVyOnRleHQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWNvbG9ycyAke3dyYXAgPyBcInRleHQtZm9yZWdyb3VuZFwiIDogXCJcIn1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8V3JhcFRleHQgY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPlxuICAgICAgICAgICAgPC9Ub29sdGlwVHJpZ2dlcj5cbiAgICAgICAgICAgIDxUb29sdGlwQ29udGVudD5cbiAgICAgICAgICAgICAge3dyYXAgPyBcIkRpc2FibGUgd3JhcFwiIDogXCJFbmFibGUgd3JhcFwifVxuICAgICAgICAgICAgPC9Ub29sdGlwQ29udGVudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgPFRvb2x0aXA+XG4gICAgICAgICAgICA8VG9vbHRpcFRyaWdnZXJcbiAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ29weX1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17Y29waWVkID8gXCJDb3BpZWRcIiA6IFwiQ29weSBjb2RlXCJ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMS41IHJvdW5kZWQtbWQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NvcGllZCA/IChcbiAgICAgICAgICAgICAgICA8Q2hlY2sgY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxDbGlwYm9hcmQgY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Ub29sdGlwVHJpZ2dlcj5cbiAgICAgICAgICAgIDxUb29sdGlwQ29udGVudD57Y29waWVkID8gXCJDb3BpZWQhXCIgOiBcIkNvcHkgY29kZVwifTwvVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cInRleHQtWzAuODEyNXJlbV0gcHktMy41IG92ZXJmbG93LWF1dG8gdHJhbnNpdGlvbi1bbWF4LWhlaWdodF0gZHVyYXRpb24tMzAwXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBtYXhIZWlnaHQ6IGNvbGxhcHNlZEhlaWdodCAmJiAhZXhwYW5kZWQgPyBjb2xsYXBzZWRIZWlnaHQgOiBcIjYwMHB4XCIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxwcmVcbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgcmVmPXtwcmVSZWZ9XG4gICAgICAgICAgc3R5bGU9e3VuZGVmaW5lZH1cbiAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgd3JhcFxuICAgICAgICAgICAgICA/IFwibWluLXctZnVsbCB3aGl0ZXNwYWNlLXByZS13cmFwIGJyZWFrLXdvcmRzIFsmPmNvZGVdOmZsZXggWyY+Y29kZV06ZmxleC1jb2xcIlxuICAgICAgICAgICAgICA6IFwibWluLXctZnVsbCB3LW1heCBbJj5jb2RlXTpmbGV4IFsmPmNvZGVdOmZsZXgtY29sXCJcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtjb2xsYXBzZWRIZWlnaHQgJiYgIWV4cGFuZGVkICYmIChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEV4cGFuZGVkKHRydWUpfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0xIHctZnVsbCBweS0xLjUgdGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIGJvcmRlci10IGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxDaGV2cm9uRG93biBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgICAgICAgRXhwYW5kXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKX1cbiAgICA8L2ZpZ3VyZT5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Children, useEffect, useState } from "react";
|
|
3
|
+
/** Tabbed code block component for grouping multiple code blocks with optional sync */
|
|
4
|
+
export function CodeTabs(props) {
|
|
5
|
+
const names = JSON.parse(props.tabs);
|
|
6
|
+
const children = Children.toArray(props.children);
|
|
7
|
+
const getInitialIndex = () => {
|
|
8
|
+
if (!props.sync)
|
|
9
|
+
return 0;
|
|
10
|
+
const saved = typeof window !== "undefined"
|
|
11
|
+
? localStorage.getItem("livemark-tab-" + props.sync)
|
|
12
|
+
: null;
|
|
13
|
+
if (!saved)
|
|
14
|
+
return 0;
|
|
15
|
+
const idx = names.indexOf(saved);
|
|
16
|
+
return idx >= 0 ? idx : 0;
|
|
17
|
+
};
|
|
18
|
+
const [active, setActive] = useState(getInitialIndex);
|
|
19
|
+
const handleSelect = (i) => {
|
|
20
|
+
setActive(i);
|
|
21
|
+
if (props.sync) {
|
|
22
|
+
localStorage.setItem("livemark-tab-" + props.sync, names[i]);
|
|
23
|
+
window.dispatchEvent(new CustomEvent("livemark-tab-sync", {
|
|
24
|
+
detail: { sync: props.sync, title: names[i] },
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (!props.sync)
|
|
30
|
+
return;
|
|
31
|
+
const handler = (e) => {
|
|
32
|
+
const { sync, title } = e.detail;
|
|
33
|
+
if (sync !== props.sync)
|
|
34
|
+
return;
|
|
35
|
+
const idx = names.indexOf(title);
|
|
36
|
+
if (idx >= 0)
|
|
37
|
+
setActive(idx);
|
|
38
|
+
};
|
|
39
|
+
window.addEventListener("livemark-tab-sync", handler);
|
|
40
|
+
return () => window.removeEventListener("livemark-tab-sync", handler);
|
|
41
|
+
}, [props.sync, names]);
|
|
42
|
+
return (_jsxs("div", { className: "not-prose my-4 rounded-xl border shadow-sm overflow-hidden text-sm bg-sidebar dark:bg-sidebar", children: [
|
|
43
|
+
_jsx("div", { className: "flex border-b", children: names.map((name, i) => (_jsx("button", { type: "button", onClick: () => handleSelect(i), className: `px-4 py-2 text-xs font-medium transition-colors cursor-pointer ${i === active
|
|
44
|
+
? "text-foreground border-b-2 border-primary -mb-px"
|
|
45
|
+
: "text-muted-foreground hover:text-foreground"}`, children: name }, name))) }), children.map((child, i) => (_jsx("div", { className: i === active
|
|
46
|
+
? "[&>figure]:my-0 [&>figure]:rounded-none [&>figure]:border-0 [&>figure]:shadow-none"
|
|
47
|
+
: "hidden", children: child }, names[i])))] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZVRhYnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9Db2RlVGFicy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUVyRCx1RkFBdUY7QUFDdkYsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUl4QjtJQUNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBYSxDQUFBO0lBQ2hELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRWpELE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN6QixNQUFNLEtBQUssR0FDVCxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQzNCLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDVixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEMsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUE7SUFFRCxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUVyRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ2pDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNaLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQTtZQUM3RCxNQUFNLENBQUMsYUFBYSxDQUNsQixJQUFJLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRTtnQkFDbkMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTthQUM5QyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQUUsT0FBTTtRQUN2QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQ25CLENBQ0QsQ0FBQyxNQUFNLENBQUE7WUFDUixJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSTtnQkFBRSxPQUFNO1lBQy9CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDaEMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsQ0FBQyxDQUFBO1FBQ0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3JELE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUV2QixPQUFPLENBQ0wsZUFBSyxTQUFTLEVBQUMsK0ZBQStGO1lBQzVHLGNBQUssU0FBUyxFQUFDLGVBQWUsWUFDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3RCLGlCQUVFLElBQUksRUFBQyxRQUFRLEVBQ2IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDOUIsU0FBUyxFQUFFLGtFQUNULENBQUMsS0FBSyxNQUFNO3dCQUNWLENBQUMsQ0FBQyxrREFBa0Q7d0JBQ3BELENBQUMsQ0FBQyw2Q0FDTixFQUFFLFlBRUQsSUFBSSxJQVRBLElBQUksQ0FVRixDQUNWLENBQUMsR0FDRSxFQUNMLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUMxQixjQUVFLFNBQVMsRUFDUCxDQUFDLEtBQUssTUFBTTtvQkFDVixDQUFDLENBQUMsb0ZBQW9GO29CQUN0RixDQUFDLENBQUMsUUFBUSxZQUdiLEtBQUssSUFQRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBUVQsQ0FDUCxDQUFDLElBQ0UsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoaWxkcmVuLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcblxuLyoqIFRhYmJlZCBjb2RlIGJsb2NrIGNvbXBvbmVudCBmb3IgZ3JvdXBpbmcgbXVsdGlwbGUgY29kZSBibG9ja3Mgd2l0aCBvcHRpb25hbCBzeW5jICovXG5leHBvcnQgZnVuY3Rpb24gQ29kZVRhYnMocHJvcHM6IHtcbiAgdGFiczogc3RyaW5nXG4gIHN5bmM/OiBzdHJpbmdcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCBuYW1lcyA9IEpTT04ucGFyc2UocHJvcHMudGFicykgYXMgc3RyaW5nW11cbiAgY29uc3QgY2hpbGRyZW4gPSBDaGlsZHJlbi50b0FycmF5KHByb3BzLmNoaWxkcmVuKVxuXG4gIGNvbnN0IGdldEluaXRpYWxJbmRleCA9ICgpID0+IHtcbiAgICBpZiAoIXByb3BzLnN5bmMpIHJldHVybiAwXG4gICAgY29uc3Qgc2F2ZWQgPVxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICA/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGl2ZW1hcmstdGFiLVwiICsgcHJvcHMuc3luYylcbiAgICAgICAgOiBudWxsXG4gICAgaWYgKCFzYXZlZCkgcmV0dXJuIDBcbiAgICBjb25zdCBpZHggPSBuYW1lcy5pbmRleE9mKHNhdmVkKVxuICAgIHJldHVybiBpZHggPj0gMCA/IGlkeCA6IDBcbiAgfVxuXG4gIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZShnZXRJbml0aWFsSW5kZXgpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKGk6IG51bWJlcikgPT4ge1xuICAgIHNldEFjdGl2ZShpKVxuICAgIGlmIChwcm9wcy5zeW5jKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImxpdmVtYXJrLXRhYi1cIiArIHByb3BzLnN5bmMsIG5hbWVzW2ldISlcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoXCJsaXZlbWFyay10YWItc3luY1wiLCB7XG4gICAgICAgICAgZGV0YWlsOiB7IHN5bmM6IHByb3BzLnN5bmMsIHRpdGxlOiBuYW1lc1tpXSB9LFxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvcHMuc3luYykgcmV0dXJuXG4gICAgY29uc3QgaGFuZGxlciA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBzeW5jLCB0aXRsZSB9ID0gKFxuICAgICAgICBlIGFzIEN1c3RvbUV2ZW50PHsgc3luYzogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0+XG4gICAgICApLmRldGFpbFxuICAgICAgaWYgKHN5bmMgIT09IHByb3BzLnN5bmMpIHJldHVyblxuICAgICAgY29uc3QgaWR4ID0gbmFtZXMuaW5kZXhPZih0aXRsZSlcbiAgICAgIGlmIChpZHggPj0gMCkgc2V0QWN0aXZlKGlkeClcbiAgICB9XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsaXZlbWFyay10YWItc3luY1wiLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImxpdmVtYXJrLXRhYi1zeW5jXCIsIGhhbmRsZXIpXG4gIH0sIFtwcm9wcy5zeW5jLCBuYW1lc10pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS00IHJvdW5kZWQteGwgYm9yZGVyIHNoYWRvdy1zbSBvdmVyZmxvdy1oaWRkZW4gdGV4dC1zbSBiZy1zaWRlYmFyIGRhcms6Ymctc2lkZWJhclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGJvcmRlci1iXCI+XG4gICAgICAgIHtuYW1lcy5tYXAoKG5hbWUsIGkpID0+IChcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdChpKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTQgcHktMiB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGN1cnNvci1wb2ludGVyICR7XG4gICAgICAgICAgICAgIGkgPT09IGFjdGl2ZVxuICAgICAgICAgICAgICAgID8gXCJ0ZXh0LWZvcmVncm91bmQgYm9yZGVyLWItMiBib3JkZXItcHJpbWFyeSAtbWItcHhcIlxuICAgICAgICAgICAgICAgIDogXCJ0ZXh0LW11dGVkLWZvcmVncm91bmQgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kXCJcbiAgICAgICAgICAgIH1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAge2NoaWxkcmVuLm1hcCgoY2hpbGQsIGkpID0+IChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGtleT17bmFtZXNbaV19XG4gICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgIGkgPT09IGFjdGl2ZVxuICAgICAgICAgICAgICA/IFwiWyY+ZmlndXJlXTpteS0wIFsmPmZpZ3VyZV06cm91bmRlZC1ub25lIFsmPmZpZ3VyZV06Ym9yZGVyLTAgWyY+ZmlndXJlXTpzaGFkb3ctbm9uZVwiXG4gICAgICAgICAgICAgIDogXCJoaWRkZW5cIlxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Single column within a Columns grid */
|
|
3
|
+
export function Column(props) {
|
|
4
|
+
return _jsx("div", { className: "max-w-none", children: props.children });
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvQ29sdW1uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMENBQTBDO0FBQzFDLE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBb0M7SUFDekQsT0FBTyxjQUFLLFNBQVMsRUFBQyxZQUFZLFlBQUUsS0FBSyxDQUFDLFFBQVEsR0FBTyxDQUFBO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBDb2x1bW5zIGdyaWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBDb2x1bW4ocHJvcHM6IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LW5vbmVcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Grid layout for arranging content side by side */
|
|
3
|
+
export function Columns(props) {
|
|
4
|
+
const cols = props.cols ? parseInt(props.cols, 10) : undefined;
|
|
5
|
+
const style = cols
|
|
6
|
+
? { gridTemplateColumns: `repeat(${cols}, 1fr)` }
|
|
7
|
+
: undefined;
|
|
8
|
+
return (_jsx("div", { className: "grid gap-6 my-4 sm:grid-cols-2", style: style, children: props.children }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0NvbHVtbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFtRDtJQUN6RSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlELE1BQU0sS0FBSyxHQUFHLElBQUk7UUFDaEIsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxJQUFJLFFBQVEsRUFBRTtRQUNqRCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ2IsT0FBTyxDQUNMLGNBQUssU0FBUyxFQUFDLGdDQUFnQyxFQUFDLEtBQUssRUFBRSxLQUFLLFlBQ3pELEtBQUssQ0FBQyxRQUFRLEdBQ1gsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBHcmlkIGxheW91dCBmb3IgYXJyYW5naW5nIGNvbnRlbnQgc2lkZSBieSBzaWRlICovXG5leHBvcnQgZnVuY3Rpb24gQ29sdW1ucyhwcm9wczogeyBjb2xzPzogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgY29uc3QgY29scyA9IHByb3BzLmNvbHMgPyBwYXJzZUludChwcm9wcy5jb2xzLCAxMCkgOiB1bmRlZmluZWRcbiAgY29uc3Qgc3R5bGUgPSBjb2xzXG4gICAgPyB7IGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHtjb2xzfSwgMWZyKWAgfVxuICAgIDogdW5kZWZpbmVkXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG15LTQgc206Z3JpZC1jb2xzLTJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function Content(props) {
|
|
3
|
+
return (_jsx("div", { className: "w-full max-w-7xl mx-auto px-4 md:px-10", children: props.children }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0NvbnRlbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQW9DO0lBQzFELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyx3Q0FBd0MsWUFDcEQsS0FBSyxDQUFDLFFBQVEsR0FDWCxDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIENvbnRlbnQocHJvcHM6IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgbWF4LXctN3hsIG14LWF1dG8gcHgtNCBtZDpweC0xMFwiPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Simple wrapper that provides a title prop for ContentTabs to read */
|
|
3
|
+
export function ContentTab(props) {
|
|
4
|
+
return _jsx("div", { children: props.children });
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGVudFRhYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0NvbnRlbnRUYWIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUcxQjtJQUNDLE9BQU8sd0JBQU0sS0FBSyxDQUFDLFFBQVEsR0FBTyxDQUFBO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2ltcGxlIHdyYXBwZXIgdGhhdCBwcm92aWRlcyBhIHRpdGxlIHByb3AgZm9yIENvbnRlbnRUYWJzIHRvIHJlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBDb250ZW50VGFiKHByb3BzOiB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICByZXR1cm4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Children, isValidElement, useEffect, useState } from "react";
|
|
3
|
+
/** Tabbed container component for grouping content tabs with optional sync across groups */
|
|
4
|
+
export function ContentTabs(props) {
|
|
5
|
+
const children = Children.toArray(props.children);
|
|
6
|
+
const titles = children.map(child => isValidElement(child) ? child.props.title : "");
|
|
7
|
+
const getInitialIndex = () => {
|
|
8
|
+
if (!props.sync)
|
|
9
|
+
return 0;
|
|
10
|
+
const saved = typeof window !== "undefined"
|
|
11
|
+
? localStorage.getItem("livemark-tab-" + props.sync)
|
|
12
|
+
: null;
|
|
13
|
+
if (!saved)
|
|
14
|
+
return 0;
|
|
15
|
+
const idx = titles.indexOf(saved);
|
|
16
|
+
return idx >= 0 ? idx : 0;
|
|
17
|
+
};
|
|
18
|
+
const [active, setActive] = useState(getInitialIndex);
|
|
19
|
+
const handleSelect = (i) => {
|
|
20
|
+
setActive(i);
|
|
21
|
+
if (props.sync) {
|
|
22
|
+
localStorage.setItem("livemark-tab-" + props.sync, titles[i]);
|
|
23
|
+
window.dispatchEvent(new CustomEvent("livemark-tab-sync", {
|
|
24
|
+
detail: { sync: props.sync, title: titles[i] },
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (!props.sync)
|
|
30
|
+
return;
|
|
31
|
+
const handler = (e) => {
|
|
32
|
+
const { sync, title } = e.detail;
|
|
33
|
+
if (sync !== props.sync)
|
|
34
|
+
return;
|
|
35
|
+
const idx = titles.indexOf(title);
|
|
36
|
+
if (idx >= 0)
|
|
37
|
+
setActive(idx);
|
|
38
|
+
};
|
|
39
|
+
window.addEventListener("livemark-tab-sync", handler);
|
|
40
|
+
return () => window.removeEventListener("livemark-tab-sync", handler);
|
|
41
|
+
}, [props.sync, titles]);
|
|
42
|
+
return (_jsxs("div", { className: "not-prose my-4 rounded-xl border bg-card", children: [
|
|
43
|
+
_jsx("div", { className: "flex border-b", children: titles.map((title, i) => (_jsx("button", { type: "button", onClick: () => handleSelect(i), className: `px-4 py-2 text-sm font-medium transition-colors cursor-pointer ${i === active
|
|
44
|
+
? "text-foreground border-b-2 border-primary -mb-px"
|
|
45
|
+
: "text-muted-foreground hover:text-foreground"}`, children: title }, title))) }), children.map((child, i) => (_jsx("div", { className: i === active ? "p-4 prose dark:prose-invert max-w-none" : "hidden", children: child }, titles[i])))] }));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGVudFRhYnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9Db250ZW50VGFicy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFckUsNEZBQTRGO0FBQzVGLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FHM0I7SUFDQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNqRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2xDLGNBQWMsQ0FBb0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2xFLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUE7UUFDekIsTUFBTSxLQUFLLEdBQ1QsT0FBTyxNQUFNLEtBQUssV0FBVztZQUMzQixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNwRCxDQUFDLENBQUMsSUFBSSxDQUFBO1FBQ1YsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFBO0lBRUQsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUE7SUFFckQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRTtRQUNqQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDWixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUE7WUFDOUQsTUFBTSxDQUFDLGFBQWEsQ0FDbEIsSUFBSSxXQUFXLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ25DLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDL0MsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUFFLE9BQU07UUFDdkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFRLEVBQUUsRUFBRTtZQUMzQixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUNuQixDQUNELENBQUMsTUFBTSxDQUFBO1lBQ1IsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUk7Z0JBQUUsT0FBTTtZQUMvQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2pDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzlCLENBQUMsQ0FBQTtRQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNyRCxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUN2RSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFFeEIsT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFDLDBDQUEwQztZQUN2RCxjQUFLLFNBQVMsRUFBQyxlQUFlLFlBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN4QixpQkFFRSxJQUFJLEVBQUMsUUFBUSxFQUNiLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQzlCLFNBQVMsRUFBRSxrRUFDVCxDQUFDLEtBQUssTUFBTTt3QkFDVixDQUFDLENBQUMsa0RBQWtEO3dCQUNwRCxDQUFDLENBQUMsNkNBQ04sRUFBRSxZQUVELEtBQUssSUFURCxLQUFLLENBVUgsQ0FDVixDQUFDLEdBQ0UsRUFDTCxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDMUIsY0FFRSxTQUFTLEVBQ1AsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsd0NBQXdDLENBQUMsQ0FBQyxDQUFDLFFBQVEsWUFHbkUsS0FBSyxJQUxELE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FNVixDQUNQLENBQUMsSUFDRSxDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hpbGRyZW4sIGlzVmFsaWRFbGVtZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcblxuLyoqIFRhYmJlZCBjb250YWluZXIgY29tcG9uZW50IGZvciBncm91cGluZyBjb250ZW50IHRhYnMgd2l0aCBvcHRpb25hbCBzeW5jIGFjcm9zcyBncm91cHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBDb250ZW50VGFicyhwcm9wczoge1xuICBzeW5jPzogc3RyaW5nXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBDaGlsZHJlbi50b0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICBjb25zdCB0aXRsZXMgPSBjaGlsZHJlbi5tYXAoY2hpbGQgPT5cbiAgICBpc1ZhbGlkRWxlbWVudDx7IHRpdGxlOiBzdHJpbmcgfT4oY2hpbGQpID8gY2hpbGQucHJvcHMudGl0bGUgOiBcIlwiLFxuICApXG5cbiAgY29uc3QgZ2V0SW5pdGlhbEluZGV4ID0gKCkgPT4ge1xuICAgIGlmICghcHJvcHMuc3luYykgcmV0dXJuIDBcbiAgICBjb25zdCBzYXZlZCA9XG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiXG4gICAgICAgID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsaXZlbWFyay10YWItXCIgKyBwcm9wcy5zeW5jKVxuICAgICAgICA6IG51bGxcbiAgICBpZiAoIXNhdmVkKSByZXR1cm4gMFxuICAgIGNvbnN0IGlkeCA9IHRpdGxlcy5pbmRleE9mKHNhdmVkKVxuICAgIHJldHVybiBpZHggPj0gMCA/IGlkeCA6IDBcbiAgfVxuXG4gIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZShnZXRJbml0aWFsSW5kZXgpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKGk6IG51bWJlcikgPT4ge1xuICAgIHNldEFjdGl2ZShpKVxuICAgIGlmIChwcm9wcy5zeW5jKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImxpdmVtYXJrLXRhYi1cIiArIHByb3BzLnN5bmMsIHRpdGxlc1tpXSEpXG4gICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFwibGl2ZW1hcmstdGFiLXN5bmNcIiwge1xuICAgICAgICAgIGRldGFpbDogeyBzeW5jOiBwcm9wcy5zeW5jLCB0aXRsZTogdGl0bGVzW2ldIH0sXG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwcm9wcy5zeW5jKSByZXR1cm5cbiAgICBjb25zdCBoYW5kbGVyID0gKGU6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB7IHN5bmMsIHRpdGxlIH0gPSAoXG4gICAgICAgIGUgYXMgQ3VzdG9tRXZlbnQ8eyBzeW5jOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfT5cbiAgICAgICkuZGV0YWlsXG4gICAgICBpZiAoc3luYyAhPT0gcHJvcHMuc3luYykgcmV0dXJuXG4gICAgICBjb25zdCBpZHggPSB0aXRsZXMuaW5kZXhPZih0aXRsZSlcbiAgICAgIGlmIChpZHggPj0gMCkgc2V0QWN0aXZlKGlkeClcbiAgICB9XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsaXZlbWFyay10YWItc3luY1wiLCBoYW5kbGVyKVxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImxpdmVtYXJrLXRhYi1zeW5jXCIsIGhhbmRsZXIpXG4gIH0sIFtwcm9wcy5zeW5jLCB0aXRsZXNdKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJub3QtcHJvc2UgbXktNCByb3VuZGVkLXhsIGJvcmRlciBiZy1jYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggYm9yZGVyLWJcIj5cbiAgICAgICAge3RpdGxlcy5tYXAoKHRpdGxlLCBpKSA9PiAoXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAga2V5PXt0aXRsZX1cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlU2VsZWN0KGkpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgY3Vyc29yLXBvaW50ZXIgJHtcbiAgICAgICAgICAgICAgaSA9PT0gYWN0aXZlXG4gICAgICAgICAgICAgICAgPyBcInRleHQtZm9yZWdyb3VuZCBib3JkZXItYi0yIGJvcmRlci1wcmltYXJ5IC1tYi1weFwiXG4gICAgICAgICAgICAgICAgOiBcInRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmRcIlxuICAgICAgICAgICAgfWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuICAgICAge2NoaWxkcmVuLm1hcCgoY2hpbGQsIGkpID0+IChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGtleT17dGl0bGVzW2ldfVxuICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICBpID09PSBhY3RpdmUgPyBcInAtNCBwcm9zZSBkYXJrOnByb3NlLWludmVydCBtYXgtdy1ub25lXCIgOiBcImhpZGRlblwiXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ErrorComponent, Link, rootRouteId, useMatch, useRouter, } from "@tanstack/react-router";
|
|
3
|
+
export function DefaultCatchBoundary({ error }) {
|
|
4
|
+
const router = useRouter();
|
|
5
|
+
const isRoot = useMatch({
|
|
6
|
+
strict: false,
|
|
7
|
+
select: state => state.id === rootRouteId,
|
|
8
|
+
});
|
|
9
|
+
console.error(error);
|
|
10
|
+
return (_jsxs("div", { className: "min-h-[60vh] flex flex-col items-center justify-center gap-6 px-4", children: [
|
|
11
|
+
_jsx(ErrorComponent, { error: error }), _jsxs("div", { className: "flex gap-3 items-center flex-wrap", children: [
|
|
12
|
+
_jsx("button", { type: "button", onClick: () => {
|
|
13
|
+
router.invalidate();
|
|
14
|
+
}, className: "bg-primary text-primary-foreground px-4 py-2 text-sm font-medium hover:bg-primary/80 transition-colors", children: "Try Again" }), isRoot ? (_jsx(Link, { to: "/", className: "border border-border px-4 py-2 text-sm font-medium hover:bg-card transition-colors", children: "Home" })) : (_jsx(Link, { to: "/", className: "border border-border px-4 py-2 text-sm font-medium hover:bg-card transition-colors", onClick: (e) => {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
window.history.back();
|
|
17
|
+
}, children: "Go Back" }))] })
|
|
18
|
+
] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdENhdGNoQm91bmRhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9EZWZhdWx0Q2F0Y2hCb3VuZGFyeS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDTCxjQUFjLEVBQ2QsSUFBSSxFQUNKLFdBQVcsRUFDWCxRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEVBQUUsS0FBSyxFQUF1QjtJQUNqRSxNQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUMxQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdEIsTUFBTSxFQUFFLEtBQUs7UUFDYixNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLFdBQVc7S0FDMUMsQ0FBQyxDQUFBO0lBRUYsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVwQixPQUFPLENBQ0wsZUFBSyxTQUFTLEVBQUMsbUVBQW1FO1lBQ2hGLEtBQUMsY0FBYyxJQUFDLEtBQUssRUFBRSxLQUFLLEdBQUksRUFDaEMsZUFBSyxTQUFTLEVBQUMsbUNBQW1DO29CQUNoRCxpQkFDRSxJQUFJLEVBQUMsUUFBUSxFQUNiLE9BQU8sRUFBRSxHQUFHLEVBQUU7NEJBQ1osTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFBO3dCQUNyQixDQUFDLEVBQ0QsU0FBUyxFQUFDLHdHQUF3RywwQkFHM0csRUFDUixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ1IsS0FBQyxJQUFJLElBQ0gsRUFBRSxFQUFDLEdBQUcsRUFDTixTQUFTLEVBQUMsb0ZBQW9GLHFCQUd6RixDQUNSLENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxJQUFJLElBQ0gsRUFBRSxFQUFDLEdBQUcsRUFDTixTQUFTLEVBQUMsb0ZBQW9GLEVBQzlGLE9BQU8sRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFOzRCQUNsQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7NEJBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7d0JBQ3ZCLENBQUMsd0JBR0ksQ0FDUixJQUNHO1lBQ0YsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXJyb3JDb21wb25lbnRQcm9wcyB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7XG4gIEVycm9yQ29tcG9uZW50LFxuICBMaW5rLFxuICByb290Um91dGVJZCxcbiAgdXNlTWF0Y2gsXG4gIHVzZVJvdXRlcixcbn0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdENhdGNoQm91bmRhcnkoeyBlcnJvciB9OiBFcnJvckNvbXBvbmVudFByb3BzKSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gIGNvbnN0IGlzUm9vdCA9IHVzZU1hdGNoKHtcbiAgICBzdHJpY3Q6IGZhbHNlLFxuICAgIHNlbGVjdDogc3RhdGUgPT4gc3RhdGUuaWQgPT09IHJvb3RSb3V0ZUlkLFxuICB9KVxuXG4gIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLVs2MHZoXSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtNiBweC00XCI+XG4gICAgICA8RXJyb3JDb21wb25lbnQgZXJyb3I9e2Vycm9yfSAvPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0zIGl0ZW1zLWNlbnRlciBmbGV4LXdyYXBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHJvdXRlci5pbnZhbGlkYXRlKClcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgcHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gaG92ZXI6YmctcHJpbWFyeS84MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgID5cbiAgICAgICAgICBUcnkgQWdhaW5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIHtpc1Jvb3QgPyAoXG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIHRvPVwiL1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJib3JkZXIgYm9yZGVyLWJvcmRlciBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSBob3ZlcjpiZy1jYXJkIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBIb21lXG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICB0bz1cIi9cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYm9yZGVyIGJvcmRlci1ib3JkZXIgcHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gaG92ZXI6YmctY2FyZCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICBvbkNsaWNrPXsoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgR28gQmFja1xuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
/** Styled wrapper for definition lists produced by remark-definition-list */
|
|
3
|
+
export declare function DefinitionList(props: ComponentProps<"dl">): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
/** Styled definition term rendered as bold text */
|
|
5
|
+
export declare function DefinitionTerm(props: ComponentProps<"dt">): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
/** Styled definition detail with a left border accent */
|
|
7
|
+
export declare function DefinitionDetail(props: ComponentProps<"dd">): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Styled wrapper for definition lists produced by remark-definition-list */
|
|
3
|
+
export function DefinitionList(props) {
|
|
4
|
+
return _jsx("dl", { ...props, className: "not-prose space-y-4" });
|
|
5
|
+
}
|
|
6
|
+
/** Styled definition term rendered as bold text */
|
|
7
|
+
export function DefinitionTerm(props) {
|
|
8
|
+
return _jsx("dt", { ...props, className: "text-foreground font-semibold" });
|
|
9
|
+
}
|
|
10
|
+
/** Styled definition detail with a left border accent */
|
|
11
|
+
export function DefinitionDetail(props) {
|
|
12
|
+
return (_jsx("dd", { ...props, className: "ml-0 pl-4 border-l-2 border-border text-muted-foreground" }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmaW5pdGlvbkxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9EZWZpbml0aW9uTGlzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLDZFQUE2RTtBQUM3RSxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQTJCO0lBQ3hELE9BQU8sZ0JBQVEsS0FBSyxFQUFFLFNBQVMsRUFBQyxxQkFBcUIsR0FBRyxDQUFBO0FBQzFELENBQUM7QUFFRCxtREFBbUQ7QUFDbkQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUEyQjtJQUN4RCxPQUFPLGdCQUFRLEtBQUssRUFBRSxTQUFTLEVBQUMsK0JBQStCLEdBQUcsQ0FBQTtBQUNwRSxDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUEyQjtJQUMxRCxPQUFPLENBQ0wsZ0JBQ00sS0FBSyxFQUNULFNBQVMsRUFBQywwREFBMEQsR0FDcEUsQ0FDSCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50UHJvcHMgfSBmcm9tIFwicmVhY3RcIlxuXG4vKiogU3R5bGVkIHdyYXBwZXIgZm9yIGRlZmluaXRpb24gbGlzdHMgcHJvZHVjZWQgYnkgcmVtYXJrLWRlZmluaXRpb24tbGlzdCAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmluaXRpb25MaXN0KHByb3BzOiBDb21wb25lbnRQcm9wczxcImRsXCI+KSB7XG4gIHJldHVybiA8ZGwgey4uLnByb3BzfSBjbGFzc05hbWU9XCJub3QtcHJvc2Ugc3BhY2UteS00XCIgLz5cbn1cblxuLyoqIFN0eWxlZCBkZWZpbml0aW9uIHRlcm0gcmVuZGVyZWQgYXMgYm9sZCB0ZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gRGVmaW5pdGlvblRlcm0ocHJvcHM6IENvbXBvbmVudFByb3BzPFwiZHRcIj4pIHtcbiAgcmV0dXJuIDxkdCB7Li4ucHJvcHN9IGNsYXNzTmFtZT1cInRleHQtZm9yZWdyb3VuZCBmb250LXNlbWlib2xkXCIgLz5cbn1cblxuLyoqIFN0eWxlZCBkZWZpbml0aW9uIGRldGFpbCB3aXRoIGEgbGVmdCBib3JkZXIgYWNjZW50ICovXG5leHBvcnQgZnVuY3Rpb24gRGVmaW5pdGlvbkRldGFpbChwcm9wczogQ29tcG9uZW50UHJvcHM8XCJkZFwiPikge1xuICByZXR1cm4gKFxuICAgIDxkZFxuICAgICAgey4uLnByb3BzfVxuICAgICAgY2xhc3NOYW1lPVwibWwtMCBwbC00IGJvcmRlci1sLTIgYm9yZGVyLWJvcmRlciB0ZXh0LW11dGVkLWZvcmVncm91bmRcIlxuICAgIC8+XG4gIClcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { ChevronRight } from "lucide-react";
|
|
4
|
+
import { Collapsible, CollapsibleTrigger, CollapsibleContent, } from "../elements/collapsible.js";
|
|
5
|
+
/** Collapsible content section with a summary label */
|
|
6
|
+
export function Details(props) {
|
|
7
|
+
const [open, setOpen] = useState(false);
|
|
8
|
+
return (_jsxs(Collapsible, { open: open, onOpenChange: setOpen, className: "not-prose my-4 rounded-xl border border-border bg-card px-4 py-3", children: [
|
|
9
|
+
_jsxs(CollapsibleTrigger, { className: "flex w-full cursor-pointer items-center gap-2 text-sm font-semibold select-none", children: [
|
|
10
|
+
_jsx(ChevronRight, { className: `size-4 shrink-0 transition-transform ${open ? "rotate-90" : ""}` }), props.summary] }), _jsx(CollapsibleContent, { className: "mt-3 text-sm [&>p]:my-1 [&>p:first-child]:mt-0 [&>p:last-child]:mb-0", children: props.children })
|
|
11
|
+
] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGV0YWlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0RldGFpbHMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUNMLFdBQVcsRUFDWCxrQkFBa0IsRUFDbEIsa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTZCLENBQUE7QUFFcEMsdURBQXVEO0FBQ3ZELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBcUQ7SUFDM0UsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFdkMsT0FBTyxDQUNMLE1BQUMsV0FBVyxJQUNWLElBQUksRUFBRSxJQUFJLEVBQ1YsWUFBWSxFQUFFLE9BQU8sRUFDckIsU0FBUyxFQUFDLGtFQUFrRTtZQUU1RSxNQUFDLGtCQUFrQixJQUFDLFNBQVMsRUFBQyxpRkFBaUY7b0JBQzdHLEtBQUMsWUFBWSxJQUNYLFNBQVMsRUFBRSx3Q0FBd0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUM1RSxFQUNELEtBQUssQ0FBQyxPQUFPLElBQ0ssRUFDckIsS0FBQyxrQkFBa0IsSUFBQyxTQUFTLEVBQUMsc0VBQXNFLFlBQ2pHLEtBQUssQ0FBQyxRQUFRLEdBQ0k7WUFDVCxDQUNmLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgQ2hldnJvblJpZ2h0IH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQge1xuICBDb2xsYXBzaWJsZSxcbiAgQ29sbGFwc2libGVUcmlnZ2VyLFxuICBDb2xsYXBzaWJsZUNvbnRlbnQsXG59IGZyb20gXCIuLi9lbGVtZW50cy9jb2xsYXBzaWJsZS50c3hcIlxuXG4vKiogQ29sbGFwc2libGUgY29udGVudCBzZWN0aW9uIHdpdGggYSBzdW1tYXJ5IGxhYmVsICovXG5leHBvcnQgZnVuY3Rpb24gRGV0YWlscyhwcm9wczogeyBzdW1tYXJ5OiBzdHJpbmc7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICByZXR1cm4gKFxuICAgIDxDb2xsYXBzaWJsZVxuICAgICAgb3Blbj17b3Blbn1cbiAgICAgIG9uT3BlbkNoYW5nZT17c2V0T3Blbn1cbiAgICAgIGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBteS00IHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctY2FyZCBweC00IHB5LTNcIlxuICAgID5cbiAgICAgIDxDb2xsYXBzaWJsZVRyaWdnZXIgY2xhc3NOYW1lPVwiZmxleCB3LWZ1bGwgY3Vyc29yLXBvaW50ZXIgaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtc20gZm9udC1zZW1pYm9sZCBzZWxlY3Qtbm9uZVwiPlxuICAgICAgICA8Q2hldnJvblJpZ2h0XG4gICAgICAgICAgY2xhc3NOYW1lPXtgc2l6ZS00IHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtICR7b3BlbiA/IFwicm90YXRlLTkwXCIgOiBcIlwifWB9XG4gICAgICAgIC8+XG4gICAgICAgIHtwcm9wcy5zdW1tYXJ5fVxuICAgICAgPC9Db2xsYXBzaWJsZVRyaWdnZXI+XG4gICAgICA8Q29sbGFwc2libGVDb250ZW50IGNsYXNzTmFtZT1cIm10LTMgdGV4dC1zbSBbJj5wXTpteS0xIFsmPnA6Zmlyc3QtY2hpbGRdOm10LTAgWyY+cDpsYXN0LWNoaWxkXTptYi0wXCI+XG4gICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvQ29sbGFwc2libGVDb250ZW50PlxuICAgIDwvQ29sbGFwc2libGU+XG4gIClcbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { File, Folder } from "lucide-react";
|
|
3
|
+
/** Renders a file/directory tree from a JSON-serialized tree structure */
|
|
4
|
+
export function FileTree(props) {
|
|
5
|
+
const items = JSON.parse(props.tree);
|
|
6
|
+
return (_jsx("div", { className: "not-prose my-4 rounded-xl border border-border bg-card p-4 font-mono text-sm", children: _jsx(TreeItems, { items: items, depth: 0 }) }));
|
|
7
|
+
}
|
|
8
|
+
function TreeItems(props) {
|
|
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
|
+
}
|
|
11
|
+
function TreeNode(props) {
|
|
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 }))] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVRyZWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9GaWxlVHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBUTNDLDBFQUEwRTtBQUMxRSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXVCO0lBQzlDLE1BQU0sS0FBSyxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWhELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyw4RUFBOEUsWUFDM0YsS0FBQyxTQUFTLElBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFJLEdBQ2pDLENBQ1AsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUEyQztJQUM1RCxPQUFPLENBQ0wsYUFBSSxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQ3JFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDaEMsS0FBQyxRQUFRLElBRVAsSUFBSSxFQUFFLElBQUksRUFDVixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFGYixHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLENBRzVCLENBQ0gsQ0FBQyxHQUNDLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxLQUF3QztJQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU3QixPQUFPLENBQ0wsY0FBSSxTQUFTLEVBQUMsUUFBUTtZQUNwQixnQkFBTSxTQUFTLEVBQUMsZ0NBQWdDLGFBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1osS0FBQyxNQUFNLElBQUMsU0FBUyxFQUFDLDhCQUE4QixHQUFHLENBQ3BELENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLHVDQUF1QyxHQUFHLENBQzNELEVBQ0QsZUFBTSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQUcsSUFBSSxDQUFDLElBQUksR0FBUTtvQkFDakUsRUFDTixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUM1QyxLQUFDLFNBQVMsSUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsR0FBSSxDQUN0RCxJQUNFLENBQ04sQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlLCBGb2xkZXIgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcblxuaW50ZXJmYWNlIFRyZWVJdGVtIHtcbiAgbmFtZTogc3RyaW5nXG4gIGlzRGlyOiBib29sZWFuXG4gIGNoaWxkcmVuPzogVHJlZUl0ZW1bXVxufVxuXG4vKiogUmVuZGVycyBhIGZpbGUvZGlyZWN0b3J5IHRyZWUgZnJvbSBhIEpTT04tc2VyaWFsaXplZCB0cmVlIHN0cnVjdHVyZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIEZpbGVUcmVlKHByb3BzOiB7IHRyZWU6IHN0cmluZyB9KSB7XG4gIGNvbnN0IGl0ZW1zOiBUcmVlSXRlbVtdID0gSlNPTi5wYXJzZShwcm9wcy50cmVlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJub3QtcHJvc2UgbXktNCByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWNhcmQgcC00IGZvbnQtbW9ubyB0ZXh0LXNtXCI+XG4gICAgICA8VHJlZUl0ZW1zIGl0ZW1zPXtpdGVtc30gZGVwdGg9ezB9IC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZnVuY3Rpb24gVHJlZUl0ZW1zKHByb3BzOiB7IGl0ZW1zOiBUcmVlSXRlbVtdOyBkZXB0aDogbnVtYmVyIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8dWwgY2xhc3NOYW1lPXtwcm9wcy5kZXB0aCA+IDAgPyBcIm1sLTQgYm9yZGVyLWwgYm9yZGVyLWJvcmRlciBwbC0yXCIgOiBcIlwifT5cbiAgICAgIHtwcm9wcy5pdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgIDxUcmVlTm9kZVxuICAgICAgICAgIGtleT17YCR7aXRlbS5uYW1lfS0ke2luZGV4fWB9XG4gICAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgICBkZXB0aD17cHJvcHMuZGVwdGh9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L3VsPlxuICApXG59XG5cbmZ1bmN0aW9uIFRyZWVOb2RlKHByb3BzOiB7IGl0ZW06IFRyZWVJdGVtOyBkZXB0aDogbnVtYmVyIH0pIHtcbiAgY29uc3QgeyBpdGVtLCBkZXB0aCB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxsaSBjbGFzc05hbWU9XCJweS0wLjVcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICB7aXRlbS5pc0RpciA/IChcbiAgICAgICAgICA8Rm9sZGVyIGNsYXNzTmFtZT1cInNpemUtNCBzaHJpbmstMCB0ZXh0LXByaW1hcnlcIiAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxGaWxlIGNsYXNzTmFtZT1cInNpemUtNCBzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIiAvPlxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2l0ZW0uaXNEaXIgPyBcImZvbnQtc2VtaWJvbGRcIiA6IFwiXCJ9PntpdGVtLm5hbWV9PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAge2l0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPFRyZWVJdGVtcyBpdGVtcz17aXRlbS5jaGlsZHJlbn0gZGVwdGg9e2RlcHRoICsgMX0gLz5cbiAgICAgICl9XG4gICAgPC9saT5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/** Footer shown below article content */
|
|
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://github.com/datisthq/livemark", target: "_blank", rel: "noopener noreferrer", className: "font-medium hover:text-foreground transition-colors", children: "Livemark" })
|
|
7
|
+
] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUNBQXlDO0FBQ3pDLE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sQ0FDTCxhQUFHLFNBQVMsRUFBQyxpREFBaUQ7WUFDL0MsZUFBTSxTQUFTLEVBQUMsY0FBYyx1QkFBUztvQkFBSyxHQUFHLEVBQzVELFlBQ0UsSUFBSSxFQUFDLHNDQUFzQyxFQUMzQyxNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsU0FBUyxFQUFDLHFEQUFxRCx5QkFHN0Q7WUFDRixDQUNMLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEZvb3RlciBzaG93biBiZWxvdyBhcnRpY2xlIGNvbnRlbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBGb290ZXIoKSB7XG4gIHJldHVybiAoXG4gICAgPHAgY2xhc3NOYW1lPVwibXQtMTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIENyZWF0ZWQgd2l0aCA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXJlZC01MDBcIj7inaQ8L3NwYW4+IGFuZHtcIiBcIn1cbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vZGF0aXN0aHEvbGl2ZW1hcmtcIlxuICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiZm9udC1tZWRpdW0gaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgID5cbiAgICAgICAgTGl2ZW1hcmtcbiAgICAgIDwvYT5cbiAgICA8L3A+XG4gIClcbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { HoverCard, HoverCardContent, HoverCardTrigger, } from "../elements/hover-card.js";
|
|
4
|
+
const FOOTNOTE_PREFIX = "#user-content-fn-";
|
|
5
|
+
/** Wraps footnote reference links in a HoverCard that previews footnote content inline */
|
|
6
|
+
export function FootnoteRef(props) {
|
|
7
|
+
const href = props.href ?? "";
|
|
8
|
+
if (!href.startsWith(FOOTNOTE_PREFIX)) {
|
|
9
|
+
return _jsx("a", { ...props });
|
|
10
|
+
}
|
|
11
|
+
return _jsx(FootnoteHoverCard, { ...props, href: href });
|
|
12
|
+
}
|
|
13
|
+
function FootnoteHoverCard(props) {
|
|
14
|
+
const [footnoteHtml, setFootnoteHtml] = useState("");
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
const targetId = props.href.slice(1);
|
|
17
|
+
const el = document.getElementById(targetId);
|
|
18
|
+
if (!el)
|
|
19
|
+
return;
|
|
20
|
+
const wrapper = document.createElement("div");
|
|
21
|
+
wrapper.innerHTML = el.innerHTML;
|
|
22
|
+
for (const backref of wrapper.querySelectorAll("[data-footnote-backref]")) {
|
|
23
|
+
backref.remove();
|
|
24
|
+
}
|
|
25
|
+
setFootnoteHtml(wrapper.innerHTML);
|
|
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
|
+
] }));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9vdG5vdGVSZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9Gb290bm90ZVJlZi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUNoRSxPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixnQkFBZ0IsR0FDakIsTUFBTSwyQkFBNEIsQ0FBQTtBQUVuQyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQTtBQUUzQywwRkFBMEY7QUFDMUYsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUEwQjtJQUNwRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sZUFBTyxLQUFLLEdBQUksQ0FBQTtJQUN6QixDQUFDO0lBRUQsT0FBTyxLQUFDLGlCQUFpQixPQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsS0FBNkM7SUFDdEUsTUFBTSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFcEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDNUMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFNO1FBRWYsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM3QyxPQUFPLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUE7UUFDaEMsS0FBSyxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO1lBQzFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNsQixDQUFDO1FBQ0QsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNwQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUVoQixPQUFPLENBQ0wsTUFBQyxTQUFTO1lBQ1IsS0FBQyxnQkFBZ0IsSUFBQyxNQUFNLEVBQUUsZUFBTyxLQUFLLEdBQUksR0FBSSxFQUM5QyxLQUFDLGdCQUFnQixJQUNmLFNBQVMsRUFBQyw4RkFBOEYsRUFDeEcsSUFBSSxFQUFDLEtBQUssRUFDVixVQUFVLEVBQUUsQ0FBQyxZQUVaLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDZCxjQUFLLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFJLENBQzNELENBQUMsQ0FBQyxDQUFDLENBQ0YsWUFBRyxTQUFTLEVBQUMsdUJBQXVCLG1DQUF1QixDQUM1RCxHQUNnQjtZQUNULENBQ2IsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENvbXBvbmVudFByb3BzLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7XG4gIEhvdmVyQ2FyZCxcbiAgSG92ZXJDYXJkQ29udGVudCxcbiAgSG92ZXJDYXJkVHJpZ2dlcixcbn0gZnJvbSBcIi4uL2VsZW1lbnRzL2hvdmVyLWNhcmQudHN4XCJcblxuY29uc3QgRk9PVE5PVEVfUFJFRklYID0gXCIjdXNlci1jb250ZW50LWZuLVwiXG5cbi8qKiBXcmFwcyBmb290bm90ZSByZWZlcmVuY2UgbGlua3MgaW4gYSBIb3ZlckNhcmQgdGhhdCBwcmV2aWV3cyBmb290bm90ZSBjb250ZW50IGlubGluZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIEZvb3Rub3RlUmVmKHByb3BzOiBDb21wb25lbnRQcm9wczxcImFcIj4pIHtcbiAgY29uc3QgaHJlZiA9IHByb3BzLmhyZWYgPz8gXCJcIlxuICBpZiAoIWhyZWYuc3RhcnRzV2l0aChGT09UTk9URV9QUkVGSVgpKSB7XG4gICAgcmV0dXJuIDxhIHsuLi5wcm9wc30gLz5cbiAgfVxuXG4gIHJldHVybiA8Rm9vdG5vdGVIb3ZlckNhcmQgey4uLnByb3BzfSBocmVmPXtocmVmfSAvPlxufVxuXG5mdW5jdGlvbiBGb290bm90ZUhvdmVyQ2FyZChwcm9wczogQ29tcG9uZW50UHJvcHM8XCJhXCI+ICYgeyBocmVmOiBzdHJpbmcgfSkge1xuICBjb25zdCBbZm9vdG5vdGVIdG1sLCBzZXRGb290bm90ZUh0bWxdID0gdXNlU3RhdGUoXCJcIilcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldElkID0gcHJvcHMuaHJlZi5zbGljZSgxKVxuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0SWQpXG4gICAgaWYgKCFlbCkgcmV0dXJuXG5cbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKVxuICAgIHdyYXBwZXIuaW5uZXJIVE1MID0gZWwuaW5uZXJIVE1MXG4gICAgZm9yIChjb25zdCBiYWNrcmVmIG9mIHdyYXBwZXIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLWZvb3Rub3RlLWJhY2tyZWZdXCIpKSB7XG4gICAgICBiYWNrcmVmLnJlbW92ZSgpXG4gICAgfVxuICAgIHNldEZvb3Rub3RlSHRtbCh3cmFwcGVyLmlubmVySFRNTClcbiAgfSwgW3Byb3BzLmhyZWZdKVxuXG4gIHJldHVybiAoXG4gICAgPEhvdmVyQ2FyZD5cbiAgICAgIDxIb3ZlckNhcmRUcmlnZ2VyIHJlbmRlcj17PGEgey4uLnByb3BzfSAvPn0gLz5cbiAgICAgIDxIb3ZlckNhcmRDb250ZW50XG4gICAgICAgIGNsYXNzTmFtZT1cInByb3NlIGRhcms6cHJvc2UtaW52ZXJ0IHRleHQtc20gdy04MCBbJj5wXTpteS0xIFsmPnA6Zmlyc3QtY2hpbGRdOm10LTAgWyY+cDpsYXN0LWNoaWxkXTptYi0wXCJcbiAgICAgICAgc2lkZT1cInRvcFwiXG4gICAgICAgIHNpZGVPZmZzZXQ9ezh9XG4gICAgICA+XG4gICAgICAgIHtmb290bm90ZUh0bWwgPyAoXG4gICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGZvb3Rub3RlSHRtbCB9fSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPkZvb3Rub3RlIG5vdCBmb3VuZDwvcD5cbiAgICAgICAgKX1cbiAgICAgIDwvSG92ZXJDYXJkQ29udGVudD5cbiAgICA8L0hvdmVyQ2FyZD5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const headingComponents: {
|
|
2
|
+
h1: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
h2: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
h3: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
h4: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
h5: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
h6: (props: import("react").HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Heading component that wraps content in an anchor link to itself */
|
|
3
|
+
function createHeading(Tag) {
|
|
4
|
+
return function Heading(props) {
|
|
5
|
+
if (!props.id)
|
|
6
|
+
return _jsx(Tag, { ...props });
|
|
7
|
+
return (_jsx(Tag, { ...props, children: _jsx("a", { href: `#${props.id}`, children: props.children }) }));
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export const headingComponents = {
|
|
11
|
+
h1: createHeading("h1"),
|
|
12
|
+
h2: createHeading("h2"),
|
|
13
|
+
h3: createHeading("h3"),
|
|
14
|
+
h4: createHeading("h4"),
|
|
15
|
+
h5: createHeading("h5"),
|
|
16
|
+
h6: createHeading("h6"),
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0hlYWRpbmcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1RUFBdUU7QUFDdkUsU0FBUyxhQUFhLENBQUMsR0FBNEM7SUFDakUsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUErQztRQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLEtBQUMsR0FBRyxPQUFLLEtBQUssR0FBSSxDQUFBO1FBQ3hDLE9BQU8sQ0FDTCxLQUFDLEdBQUcsT0FBSyxLQUFLLFlBQ1osWUFBRyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLFlBQUcsS0FBSyxDQUFDLFFBQVEsR0FBSyxHQUN6QyxDQUNQLENBQUE7SUFDSCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDdkIsRUFBRSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUM7Q0FDeEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBIZWFkaW5nIGNvbXBvbmVudCB0aGF0IHdyYXBzIGNvbnRlbnQgaW4gYW4gYW5jaG9yIGxpbmsgdG8gaXRzZWxmICovXG5mdW5jdGlvbiBjcmVhdGVIZWFkaW5nKFRhZzogXCJoMVwiIHwgXCJoMlwiIHwgXCJoM1wiIHwgXCJoNFwiIHwgXCJoNVwiIHwgXCJoNlwiKSB7XG4gIHJldHVybiBmdW5jdGlvbiBIZWFkaW5nKHByb3BzOiBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MSGVhZGluZ0VsZW1lbnQ+KSB7XG4gICAgaWYgKCFwcm9wcy5pZCkgcmV0dXJuIDxUYWcgey4uLnByb3BzfSAvPlxuICAgIHJldHVybiAoXG4gICAgICA8VGFnIHsuLi5wcm9wc30+XG4gICAgICAgIDxhIGhyZWY9e2AjJHtwcm9wcy5pZH1gfT57cHJvcHMuY2hpbGRyZW59PC9hPlxuICAgICAgPC9UYWc+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBoZWFkaW5nQ29tcG9uZW50cyA9IHtcbiAgaDE6IGNyZWF0ZUhlYWRpbmcoXCJoMVwiKSxcbiAgaDI6IGNyZWF0ZUhlYWRpbmcoXCJoMlwiKSxcbiAgaDM6IGNyZWF0ZUhlYWRpbmcoXCJoM1wiKSxcbiAgaDQ6IGNyZWF0ZUhlYWRpbmcoXCJoNFwiKSxcbiAgaDU6IGNyZWF0ZUhlYWRpbmcoXCJoNVwiKSxcbiAgaDY6IGNyZWF0ZUhlYWRpbmcoXCJoNlwiKSxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "../elements/badge.js";
|
|
3
|
+
/** Inline badge rendered from :badge text directives */
|
|
4
|
+
export function InlineBadge(props) {
|
|
5
|
+
return _jsx(Badge, { variant: props.variant, children: props.label });
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lQmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9JbmxpbmVCYWRnZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBdUIsQ0FBQTtBQUU3Qyx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUczQjtJQUNDLE9BQU8sS0FBQyxLQUFLLElBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLFlBQUcsS0FBSyxDQUFDLEtBQUssR0FBUyxDQUFBO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRnZSB9IGZyb20gXCIuLi9lbGVtZW50cy9iYWRnZS50c3hcIlxuXG4vKiogSW5saW5lIGJhZGdlIHJlbmRlcmVkIGZyb20gOmJhZGdlIHRleHQgZGlyZWN0aXZlcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZUJhZGdlKHByb3BzOiB7XG4gIGxhYmVsOiBzdHJpbmdcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJzZWNvbmRhcnlcIiB8IFwiZGVzdHJ1Y3RpdmVcIiB8IFwib3V0bGluZVwiXG59KSB7XG4gIHJldHVybiA8QmFkZ2UgdmFyaWFudD17cHJvcHMudmFyaWFudH0+e3Byb3BzLmxhYmVsfTwvQmFkZ2U+XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
3
|
+
/** Renders a Lucide icon inline by name */
|
|
4
|
+
export function InlineIcon(props) {
|
|
5
|
+
const className = props.className
|
|
6
|
+
? `inline-block size-4 align-text-bottom ${props.className}`
|
|
7
|
+
: "inline-block size-4 align-text-bottom";
|
|
8
|
+
return _jsx(DynamicIcon, { name: props.name, className: className });
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lSWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0lubGluZUljb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTZCLENBQUE7QUFFekQsMkNBQTJDO0FBQzNDLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBMkM7SUFDcEUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDL0IsQ0FBQyxDQUFDLHlDQUF5QyxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQzVELENBQUMsQ0FBQyx1Q0FBdUMsQ0FBQTtJQUUzQyxPQUFPLEtBQUMsV0FBVyxJQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUksQ0FBQTtBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY0ljb24gfSBmcm9tIFwiLi4vaGVscGVycy9keW5hbWljLWljb24udHN4XCJcblxuLyoqIFJlbmRlcnMgYSBMdWNpZGUgaWNvbiBpbmxpbmUgYnkgbmFtZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIElubGluZUljb24ocHJvcHM6IHsgbmFtZTogc3RyaW5nOyBjbGFzc05hbWU/OiBzdHJpbmcgfSkge1xuICBjb25zdCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWVcbiAgICA/IGBpbmxpbmUtYmxvY2sgc2l6ZS00IGFsaWduLXRleHQtYm90dG9tICR7cHJvcHMuY2xhc3NOYW1lfWBcbiAgICA6IFwiaW5saW5lLWJsb2NrIHNpemUtNCBhbGlnbi10ZXh0LWJvdHRvbVwiXG5cbiAgcmV0dXJuIDxEeW5hbWljSWNvbiBuYW1lPXtwcm9wcy5uYW1lfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gLz5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useTocItems } from "../helpers/toc-context.js";
|
|
3
|
+
/** Renders the page's table of contents inline within the content */
|
|
4
|
+
export function InlineToc(props) {
|
|
5
|
+
const allItems = useTocItems();
|
|
6
|
+
const maxDepth = props.maxLevel ? Number(props.maxLevel) : 4;
|
|
7
|
+
const items = allItems.filter(item => item.depth <= maxDepth);
|
|
8
|
+
if (items.length === 0)
|
|
9
|
+
return null;
|
|
10
|
+
return (_jsxs("nav", { className: "not-prose my-8 rounded-xl border border-border bg-card p-6", children: [
|
|
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
|
+
] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lVG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvSW5saW5lVG9jLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRXZELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQTRCO0lBQ3BELE1BQU0sUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsQ0FBQTtJQUU3RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRW5DLE9BQU8sQ0FDTCxlQUFLLFNBQVMsRUFBQyw0REFBNEQ7WUFDekUsWUFBRyxTQUFTLEVBQUMsOEJBQThCLGtDQUFzQixFQUNqRSxhQUFJLFNBQVMsRUFBQyx1QkFBdUIsWUFDbEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ2pCLGFBRUUsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLFlBRXZELFlBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQ2QsU0FBUyxFQUFDLDREQUE0RCxZQUVyRSxJQUFJLENBQUMsS0FBSyxHQUNULElBUkMsSUFBSSxDQUFDLEdBQUcsQ0FTVixDQUNOLENBQUMsR0FDQztZQUNELENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VUb2NJdGVtcyB9IGZyb20gXCIuLi9oZWxwZXJzL3RvYy1jb250ZXh0LnRzXCJcblxuLyoqIFJlbmRlcnMgdGhlIHBhZ2UncyB0YWJsZSBvZiBjb250ZW50cyBpbmxpbmUgd2l0aGluIHRoZSBjb250ZW50ICovXG5leHBvcnQgZnVuY3Rpb24gSW5saW5lVG9jKHByb3BzOiB7IG1heExldmVsPzogc3RyaW5nIH0pIHtcbiAgY29uc3QgYWxsSXRlbXMgPSB1c2VUb2NJdGVtcygpXG4gIGNvbnN0IG1heERlcHRoID0gcHJvcHMubWF4TGV2ZWwgPyBOdW1iZXIocHJvcHMubWF4TGV2ZWwpIDogNFxuICBjb25zdCBpdGVtcyA9IGFsbEl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uZGVwdGggPD0gbWF4RGVwdGgpXG5cbiAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxuYXYgY2xhc3NOYW1lPVwibm90LXByb3NlIG15LTggcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLWJvcmRlciBiZy1jYXJkIHAtNlwiPlxuICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGQgbWItNFwiPlRhYmxlIG9mIENvbnRlbnRzPC9wPlxuICAgICAgPHVsIGNsYXNzTmFtZT1cInRleHQtYmFzZSBzcGFjZS15LTIuNVwiPlxuICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAga2V5PXtpdGVtLnVybH1cbiAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdMZWZ0OiBgJHsoaXRlbS5kZXB0aCAtIDIpICogMS4yNX1yZW1gIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgaHJlZj17aXRlbS51cmx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aXRlbS50aXRsZX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICApKX1cbiAgICAgIDwvdWw+XG4gICAgPC9uYXY+XG4gIClcbn1cbiJdfQ==
|