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,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip, TooltipContent, TooltipTrigger, } from "../elements/tooltip.js";
|
|
3
|
+
/** Renders an abbreviation with a shadcn tooltip showing its full form */
|
|
4
|
+
export function Abbr(props) {
|
|
5
|
+
return (_jsxs(Tooltip, { children: [
|
|
6
|
+
_jsx(TooltipTrigger, { className: "border-b border-dotted border-muted-foreground cursor-help", children: props.text }), _jsx(TooltipContent, { children: props.title })
|
|
7
|
+
] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJici5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0FiYnIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSx3QkFBeUIsQ0FBQTtBQUVoQywwRUFBMEU7QUFDMUUsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUFzQztJQUN6RCxPQUFPLENBQ0wsTUFBQyxPQUFPO1lBQ04sS0FBQyxjQUFjLElBQUMsU0FBUyxFQUFDLDREQUE0RCxZQUNuRixLQUFLLENBQUMsSUFBSSxHQUNJLEVBQ2pCLEtBQUMsY0FBYyxjQUFFLEtBQUssQ0FBQyxLQUFLLEdBQWtCO1lBQ3RDLENBQ1gsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBUb29sdGlwLFxuICBUb29sdGlwQ29udGVudCxcbiAgVG9vbHRpcFRyaWdnZXIsXG59IGZyb20gXCIuLi9lbGVtZW50cy90b29sdGlwLnRzeFwiXG5cbi8qKiBSZW5kZXJzIGFuIGFiYnJldmlhdGlvbiB3aXRoIGEgc2hhZGNuIHRvb2x0aXAgc2hvd2luZyBpdHMgZnVsbCBmb3JtICovXG5leHBvcnQgZnVuY3Rpb24gQWJicihwcm9wczogeyB0ZXh0OiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSkge1xuICByZXR1cm4gKFxuICAgIDxUb29sdGlwPlxuICAgICAgPFRvb2x0aXBUcmlnZ2VyIGNsYXNzTmFtZT1cImJvcmRlci1iIGJvcmRlci1kb3R0ZWQgYm9yZGVyLW11dGVkLWZvcmVncm91bmQgY3Vyc29yLWhlbHBcIj5cbiAgICAgICAge3Byb3BzLnRleHR9XG4gICAgICA8L1Rvb2x0aXBUcmlnZ2VyPlxuICAgICAgPFRvb2x0aXBDb250ZW50Pntwcm9wcy50aXRsZX08L1Rvb2x0aXBDb250ZW50PlxuICAgIDwvVG9vbHRpcD5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Renders pre-formatted HTML produced from ANSI escape sequences */
|
|
3
|
+
export function AnsiCode(props) {
|
|
4
|
+
return (_jsx("figure", { className: "shiki not-prose my-4 relative rounded-xl border shadow-sm overflow-hidden text-sm bg-sidebar dark:bg-sidebar", children: _jsx("div", { className: "text-[0.8125rem] py-3.5 overflow-auto", children: _jsx("pre", { className: "min-w-full w-max", children: _jsx("code", { className: "flex flex-col", dangerouslySetInnerHTML: { __html: props.html } }) }) }) }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5zaUNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9BbnNpQ29kZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXVCO0lBQzlDLE9BQU8sQ0FDTCxpQkFBUSxTQUFTLEVBQUMsOEdBQThHLFlBQzlILGNBQUssU0FBUyxFQUFDLHVDQUF1QyxZQUNwRCxjQUFLLFNBQVMsRUFBQyxrQkFBa0IsWUFDL0IsZUFDRSxTQUFTLEVBQUMsZUFBZSxFQUN6Qix1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQy9DLEdBQ0UsR0FDRixHQUNDLENBQ1YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUmVuZGVycyBwcmUtZm9ybWF0dGVkIEhUTUwgcHJvZHVjZWQgZnJvbSBBTlNJIGVzY2FwZSBzZXF1ZW5jZXMgKi9cbmV4cG9ydCBmdW5jdGlvbiBBbnNpQ29kZShwcm9wczogeyBodG1sOiBzdHJpbmcgfSkge1xuICByZXR1cm4gKFxuICAgIDxmaWd1cmUgY2xhc3NOYW1lPVwic2hpa2kgbm90LXByb3NlIG15LTQgcmVsYXRpdmUgcm91bmRlZC14bCBib3JkZXIgc2hhZG93LXNtIG92ZXJmbG93LWhpZGRlbiB0ZXh0LXNtIGJnLXNpZGViYXIgZGFyazpiZy1zaWRlYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtWzAuODEyNXJlbV0gcHktMy41IG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgPHByZSBjbGFzc05hbWU9XCJtaW4tdy1mdWxsIHctbWF4XCI+XG4gICAgICAgICAgPGNvZGVcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2xcIlxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBwcm9wcy5odG1sIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9wcmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZ3VyZT5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { MDXContent } from "@content-collections/mdx/react";
|
|
3
|
+
import { Calendar, History, User } from "lucide-react";
|
|
4
|
+
import { TocContext } from "../helpers/toc-context.js";
|
|
5
|
+
import { Abbr } from "./Abbr.js";
|
|
6
|
+
import { AnsiCode } from "./AnsiCode.js";
|
|
7
|
+
import { Callout } from "./Callout.js";
|
|
8
|
+
import { Card } from "./Card.js";
|
|
9
|
+
import { Cards } from "./Cards.js";
|
|
10
|
+
import { CodeBlock } from "./CodeBlock.js";
|
|
11
|
+
import { CodeTabs } from "./CodeTabs.js";
|
|
12
|
+
import { Column } from "./Column.js";
|
|
13
|
+
import { Columns } from "./Columns.js";
|
|
14
|
+
import { ContentTab } from "./ContentTab.js";
|
|
15
|
+
import { ContentTabs } from "./ContentTabs.js";
|
|
16
|
+
import { DefinitionDetail, DefinitionList, DefinitionTerm, } from "./DefinitionList.js";
|
|
17
|
+
import { Details } from "./Details.js";
|
|
18
|
+
import { FileTree } from "./FileTree.js";
|
|
19
|
+
import { Footer } from "./Footer.js";
|
|
20
|
+
import { FootnoteRef } from "./FootnoteRef.js";
|
|
21
|
+
import { headingComponents } from "./Heading.js";
|
|
22
|
+
import { InlineBadge } from "./InlineBadge.js";
|
|
23
|
+
import { InlineIcon } from "./InlineIcon.js";
|
|
24
|
+
import { InlineToc } from "./InlineToc.js";
|
|
25
|
+
import { LinkButton } from "./LinkButton.js";
|
|
26
|
+
import { Mermaid } from "./Mermaid.js";
|
|
27
|
+
import { PackageTabs } from "./PackageTabs.js";
|
|
28
|
+
import { PageToolbar } from "./PageToolbar.js";
|
|
29
|
+
import { PrevNext } from "./PrevNext.js";
|
|
30
|
+
import { SortableTable, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "./SortableTable.js";
|
|
31
|
+
import { SoundCloud } from "./SoundCloud.js";
|
|
32
|
+
import { MobileToc, Toc } from "./Toc.js";
|
|
33
|
+
import { YouTube } from "./YouTube.js";
|
|
34
|
+
import { ZoomImage } from "./ZoomImage.js";
|
|
35
|
+
import { Separator } from "../elements/separator.js";
|
|
36
|
+
/** Full-page article layout: MDX content, table of contents, toolbar, prev/next, footer */
|
|
37
|
+
export function Article(props) {
|
|
38
|
+
const { article } = props;
|
|
39
|
+
const lastUpdated = formatDate(article.lastUpdated);
|
|
40
|
+
const publishedDate = formatDate(article.date);
|
|
41
|
+
const authors = article.author
|
|
42
|
+
? Array.isArray(article.author)
|
|
43
|
+
? article.author
|
|
44
|
+
: [article.author]
|
|
45
|
+
: [];
|
|
46
|
+
const hasMeta = publishedDate || authors.length > 0 || lastUpdated;
|
|
47
|
+
const H1 = (headingProps) => (_jsxs(_Fragment, { children: [
|
|
48
|
+
_jsx("h1", { ...headingProps, children: headingProps.id ? (_jsx("a", { href: `#${headingProps.id}`, children: headingProps.children })) : (headingProps.children) }), hasMeta && (_jsxs("p", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-6", children: [authors.length > 0 && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
49
|
+
_jsx(User, { className: "size-3.5" }), authors.join(", ")] })), publishedDate && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
50
|
+
_jsx(Calendar, { className: "size-3.5" }),
|
|
51
|
+
"Published ", publishedDate] })), lastUpdated && (_jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
52
|
+
_jsx(History, { className: "size-3.5" }),
|
|
53
|
+
"Updated ", lastUpdated] }))] })), article.image && (_jsx("img", { src: article.image, alt: "", className: "!mt-0 !mb-6 w-full rounded-xl border shadow-sm" }))] }));
|
|
54
|
+
return (_jsxs(TocContext.Provider, { value: article.tocItems, children: [article.toc !== false && (_jsx(MobileToc, { items: article.tocItems, children: _jsx(PageToolbar, { file: article.file, sourceUrl: article.sourceUrl, sourceAction: article.sourceAction, content: article.content }) })), _jsxs("div", { className: "flex flex-1 gap-10 p-4 pt-8 md:p-10", children: [
|
|
55
|
+
_jsxs("div", { className: "flex-1 min-w-0 mx-auto max-w-3xl", children: [
|
|
56
|
+
_jsx("div", { className: "prose dark:prose-invert max-w-none", children: _jsx(MDXContent, { code: article.mdx, components: {
|
|
57
|
+
hr: Separator,
|
|
58
|
+
img: ZoomImage,
|
|
59
|
+
pre: CodeBlock,
|
|
60
|
+
table: SortableTable,
|
|
61
|
+
thead: TableHeader,
|
|
62
|
+
tbody: TableBody,
|
|
63
|
+
tr: TableRow,
|
|
64
|
+
th: TableHead,
|
|
65
|
+
td: TableCell,
|
|
66
|
+
a: FootnoteRef,
|
|
67
|
+
Abbr,
|
|
68
|
+
AnsiCode,
|
|
69
|
+
Callout,
|
|
70
|
+
Card,
|
|
71
|
+
Cards,
|
|
72
|
+
Column,
|
|
73
|
+
Columns,
|
|
74
|
+
CodeTabs,
|
|
75
|
+
ContentTab,
|
|
76
|
+
ContentTabs,
|
|
77
|
+
DefinitionDetail,
|
|
78
|
+
DefinitionList,
|
|
79
|
+
DefinitionTerm,
|
|
80
|
+
Details,
|
|
81
|
+
FileTree,
|
|
82
|
+
InlineBadge,
|
|
83
|
+
InlineIcon,
|
|
84
|
+
InlineToc,
|
|
85
|
+
LinkButton,
|
|
86
|
+
Mermaid,
|
|
87
|
+
PackageTabs,
|
|
88
|
+
SoundCloud,
|
|
89
|
+
YouTube,
|
|
90
|
+
...headingComponents,
|
|
91
|
+
h1: H1,
|
|
92
|
+
} }) }), _jsx(PrevNext, { path: article.path }), _jsx(Footer, {})
|
|
93
|
+
] }), article.toc !== false && (_jsx(Toc, { items: article.tocItems, children: _jsx(PageToolbar, { file: article.file, sourceUrl: article.sourceUrl, sourceAction: article.sourceAction, content: article.content }) }))] })
|
|
94
|
+
] }));
|
|
95
|
+
}
|
|
96
|
+
function formatDate(iso) {
|
|
97
|
+
if (!iso)
|
|
98
|
+
return undefined;
|
|
99
|
+
return new Date(iso).toLocaleDateString("en-US", {
|
|
100
|
+
year: "numeric",
|
|
101
|
+
month: "short",
|
|
102
|
+
day: "numeric",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0FydGljbGUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBWSxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVksQ0FBQTtBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBYSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBaUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZ0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEdBQ2YsTUFBTSxxQkFBc0IsQ0FBQTtBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFnQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVB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STt3Q0FDSixLQUFLO3dDQUNMLE1BQU07d0NBQ04sT0FBTzt3Q0FDUCxRQUFRO3dDQUNSLFVBQVU7d0NBQ1YsV0FBVzt3Q0FDWCxnQkFBZ0I7d0NBQ2hCLGNBQWM7d0NBQ2QsY0FBYzt3Q0FDZCxPQUFPO3dDQUNQLFFBQVE7d0NBQ1IsV0FBVzt3Q0FDWCxVQUFVO3dDQUNWLFNBQVM7d0NBQ1QsVUFBVTt3Q0FDVixPQUFPO3dDQUNQLFdBQVc7d0NBQ1gsVUFBVTt3Q0FDVixPQUFPO3dDQUNQLEdBQUcsaUJBQWlCO3dDQUNwQixFQUFFLEVBQUUsRUFBRTtxQ0FDUCxHQUNELEdBQ0UsRUFDTixLQUFDLFFBQVEsSUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksR0FBSSxFQUNoQyxLQUFDLE1BQU0sS0FBRzs0QkFDTixFQUNMLE9BQU8sQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLENBQ3hCLEtBQUMsR0FBRyxJQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxZQUMxQixLQUFDLFdBQVcsSUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQzVCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxFQUNsQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sR0FDeEIsR0FDRSxDQUNQLElBQ0c7WUFDYyxDQUN2QixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVk7SUFDOUIsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUMxQixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtRQUMvQyxJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxPQUFPO1FBQ2QsR0FBRyxFQUFFLFNBQVM7S0FDZixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTURYQ29udGVudCB9IGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy9tZHgvcmVhY3RcIlxuaW1wb3J0IHsgQ2FsZW5kYXIsIEhpc3RvcnksIFVzZXIgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB0eXBlIHsgQXJ0aWNsZVZpZXcgfSBmcm9tIFwiLi4vbW9kZWxzL2FydGljbGUudHNcIlxuaW1wb3J0IHsgVG9jQ29udGV4dCB9IGZyb20gXCIuLi9oZWxwZXJzL3RvYy1jb250ZXh0LnRzXCJcbmltcG9ydCB7IEFiYnIgfSBmcm9tIFwiLi9BYmJyLnRzeFwiXG5pbXBvcnQgeyBBbnNpQ29kZSB9IGZyb20gXCIuL0Fuc2lDb2RlLnRzeFwiXG5pbXBvcnQgeyBDYWxsb3V0IH0gZnJvbSBcIi4vQ2FsbG91dC50c3hcIlxuaW1wb3J0IHsgQ2FyZCB9IGZyb20gXCIuL0NhcmQudHN4XCJcbmltcG9ydCB7IENhcmRzIH0gZnJvbSBcIi4vQ2FyZHMudHN4XCJcbmltcG9ydCB7IENvZGVCbG9jayB9IGZyb20gXCIuL0NvZGVCbG9jay50c3hcIlxuaW1wb3J0IHsgQ29kZVRhYnMgfSBmcm9tIFwiLi9Db2RlVGFicy50c3hcIlxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSBcIi4vQ29sdW1uLnRzeFwiXG5pbXBvcnQgeyBDb2x1bW5zIH0gZnJvbSBcIi4vQ29sdW1ucy50c3hcIlxuaW1wb3J0IHsgQ29udGVudFRhYiB9IGZyb20gXCIuL0NvbnRlbnRUYWIudHN4XCJcbmltcG9ydCB7IENvbnRlbnRUYWJzIH0gZnJvbSBcIi4vQ29udGVudFRhYnMudHN4XCJcbmltcG9ydCB7XG4gIERlZmluaXRpb25EZXRhaWwsXG4gIERlZmluaXRpb25MaXN0LFxuICBEZWZpbml0aW9uVGVybSxcbn0gZnJvbSBcIi4vRGVmaW5pdGlvbkxpc3QudHN4XCJcbmltcG9ydCB7IERldGFpbHMgfSBmcm9tIFwiLi9EZXRhaWxzLnRzeFwiXG5pbXBvcnQgeyBGaWxlVHJlZSB9IGZyb20gXCIuL0ZpbGVUcmVlLnRzeFwiXG5pbXBvcnQgeyBGb290ZXIgfSBmcm9tIFwiLi9Gb290ZXIudHN4XCJcbmltcG9ydCB7IEZvb3Rub3RlUmVmIH0gZnJvbSBcIi4vRm9vdG5vdGVSZWYudHN4XCJcbmltcG9ydCB7IGhlYWRpbmdDb21wb25lbnRzIH0gZnJvbSBcIi4vSGVhZGluZy50c3hcIlxuaW1wb3J0IHsgSW5saW5lQmFkZ2UgfSBmcm9tIFwiLi9JbmxpbmVCYWRnZS50c3hcIlxuaW1wb3J0IHsgSW5saW5lSWNvbiB9IGZyb20gXCIuL0lubGluZUljb24udHN4XCJcbmltcG9ydCB7IElubGluZVRvYyB9IGZyb20gXCIuL0lubGluZVRvYy50c3hcIlxuaW1wb3J0IHsgTGlua0J1dHRvbiB9IGZyb20gXCIuL0xpbmtCdXR0b24udHN4XCJcbmltcG9ydCB7IE1lcm1haWQgfSBmcm9tIFwiLi9NZXJtYWlkLnRzeFwiXG5pbXBvcnQgeyBQYWNrYWdlVGFicyB9IGZyb20gXCIuL1BhY2thZ2VUYWJzLnRzeFwiXG5pbXBvcnQgeyBQYWdlVG9vbGJhciB9IGZyb20gXCIuL1BhZ2VUb29sYmFyLnRzeFwiXG5pbXBvcnQgeyBQcmV2TmV4dCB9IGZyb20gXCIuL1ByZXZOZXh0LnRzeFwiXG5pbXBvcnQge1xuICBTb3J0YWJsZVRhYmxlLFxuICBUYWJsZUJvZHksXG4gIFRhYmxlQ2VsbCxcbiAgVGFibGVIZWFkLFxuICBUYWJsZUhlYWRlcixcbiAgVGFibGVSb3csXG59IGZyb20gXCIuL1NvcnRhYmxlVGFibGUudHN4XCJcbmltcG9ydCB7IFNvdW5kQ2xvdWQgfSBmcm9tIFwiLi9Tb3VuZENsb3VkLnRzeFwiXG5pbXBvcnQgeyBNb2JpbGVUb2MsIFRvYyB9IGZyb20gXCIuL1RvYy50c3hcIlxuaW1wb3J0IHsgWW91VHViZSB9IGZyb20gXCIuL1lvdVR1YmUudHN4XCJcbmltcG9ydCB7IFpvb21JbWFnZSB9IGZyb20gXCIuL1pvb21JbWFnZS50c3hcIlxuaW1wb3J0IHsgU2VwYXJhdG9yIH0gZnJvbSBcIi4uL2VsZW1lbnRzL3NlcGFyYXRvci50c3hcIlxuXG4vKiogRnVsbC1wYWdlIGFydGljbGUgbGF5b3V0OiBNRFggY29udGVudCwgdGFibGUgb2YgY29udGVudHMsIHRvb2xiYXIsIHByZXYvbmV4dCwgZm9vdGVyICovXG5leHBvcnQgZnVuY3Rpb24gQXJ0aWNsZShwcm9wczogeyBhcnRpY2xlOiBBcnRpY2xlVmlldyB9KSB7XG4gIGNvbnN0IHsgYXJ0aWNsZSB9ID0gcHJvcHNcbiAgY29uc3QgbGFzdFVwZGF0ZWQgPSBmb3JtYXREYXRlKGFydGljbGUubGFzdFVwZGF0ZWQpXG4gIGNvbnN0IHB1Ymxpc2hlZERhdGUgPSBmb3JtYXREYXRlKGFydGljbGUuZGF0ZSlcbiAgY29uc3QgYXV0aG9ycyA9IGFydGljbGUuYXV0aG9yXG4gICAgPyBBcnJheS5pc0FycmF5KGFydGljbGUuYXV0aG9yKVxuICAgICAgPyBhcnRpY2xlLmF1dGhvclxuICAgICAgOiBbYXJ0aWNsZS5hdXRob3JdXG4gICAgOiBbXVxuICBjb25zdCBoYXNNZXRhID0gcHVibGlzaGVkRGF0ZSB8fCBhdXRob3JzLmxlbmd0aCA+IDAgfHwgbGFzdFVwZGF0ZWRcblxuICBjb25zdCBIMSA9IChoZWFkaW5nUHJvcHM6IFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkaW5nRWxlbWVudD4pID0+IChcbiAgICA8PlxuICAgICAgPGgxIHsuLi5oZWFkaW5nUHJvcHN9PlxuICAgICAgICB7aGVhZGluZ1Byb3BzLmlkID8gKFxuICAgICAgICAgIDxhIGhyZWY9e2AjJHtoZWFkaW5nUHJvcHMuaWR9YH0+e2hlYWRpbmdQcm9wcy5jaGlsZHJlbn08L2E+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgaGVhZGluZ1Byb3BzLmNoaWxkcmVuXG4gICAgICAgICl9XG4gICAgICA8L2gxPlxuICAgICAge2hhc01ldGEgJiYgKFxuICAgICAgICA8cCBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLXgtMyBnYXAteS0xIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kICEtbXQtNCAhbWItNlwiPlxuICAgICAgICAgIHthdXRob3JzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNVwiPlxuICAgICAgICAgICAgICA8VXNlciBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgICAgICAgICAgIHthdXRob3JzLmpvaW4oXCIsIFwiKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtwdWJsaXNoZWREYXRlICYmIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgPENhbGVuZGFyIGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgICAgUHVibGlzaGVkIHtwdWJsaXNoZWREYXRlfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2xhc3RVcGRhdGVkICYmIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgPEhpc3RvcnkgY2xhc3NOYW1lPVwic2l6ZS0zLjVcIiAvPlxuICAgICAgICAgICAgICBVcGRhdGVkIHtsYXN0VXBkYXRlZH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L3A+XG4gICAgICApfVxuICAgICAge2FydGljbGUuaW1hZ2UgJiYgKFxuICAgICAgICA8aW1nXG4gICAgICAgICAgc3JjPXthcnRpY2xlLmltYWdlfVxuICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiIW10LTAgIW1iLTYgdy1mdWxsIHJvdW5kZWQteGwgYm9yZGVyIHNoYWRvdy1zbVwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8VG9jQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YXJ0aWNsZS50b2NJdGVtc30+XG4gICAgICB7YXJ0aWNsZS50b2MgIT09IGZhbHNlICYmIChcbiAgICAgICAgPE1vYmlsZVRvYyBpdGVtcz17YXJ0aWNsZS50b2NJdGVtc30+XG4gICAgICAgICAgPFBhZ2VUb29sYmFyXG4gICAgICAgICAgICBmaWxlPXthcnRpY2xlLmZpbGV9XG4gICAgICAgICAgICBzb3VyY2VVcmw9e2FydGljbGUuc291cmNlVXJsfVxuICAgICAgICAgICAgc291cmNlQWN0aW9uPXthcnRpY2xlLnNvdXJjZUFjdGlvbn1cbiAgICAgICAgICAgIGNvbnRlbnQ9e2FydGljbGUuY29udGVudH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L01vYmlsZVRvYz5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGdhcC0xMCBwLTQgcHQtOCBtZDpwLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTAgbXgtYXV0byBtYXgtdy0zeGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb3NlIGRhcms6cHJvc2UtaW52ZXJ0IG1heC13LW5vbmVcIj5cbiAgICAgICAgICAgIDxNRFhDb250ZW50XG4gICAgICAgICAgICAgIGNvZGU9e2FydGljbGUubWR4fVxuICAgICAgICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgICAgICAgaHI6IFNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICBpbWc6IFpvb21JbWFnZSxcbiAgICAgICAgICAgICAgICBwcmU6IENvZGVCbG9jayxcbiAgICAgICAgICAgICAgICB0YWJsZTogU29ydGFibGVUYWJsZSxcbiAgICAgICAgICAgICAgICB0aGVhZDogVGFibGVIZWFkZXIsXG4gICAgICAgICAgICAgICAgdGJvZHk6IFRhYmxlQm9keSxcbiAgICAgICAgICAgICAgICB0cjogVGFibGVSb3csXG4gICAgICAgICAgICAgICAgdGg6IFRhYmxlSGVhZCxcbiAgICAgICAgICAgICAgICB0ZDogVGFibGVDZWxsLFxuICAgICAgICAgICAgICAgIGE6IEZvb3Rub3RlUmVmLFxuICAgICAgICAgICAgICAgIEFiYnIsXG4gICAgICAgICAgICAgICAgQW5zaUNvZGUsXG4gICAgICAgICAgICAgICAgQ2FsbG91dCxcbiAgICAgICAgICAgICAgICBDYXJkLFxuICAgICAgICAgICAgICAgIENhcmRzLFxuICAgICAgICAgICAgICAgIENvbHVtbixcbiAgICAgICAgICAgICAgICBDb2x1bW5zLFxuICAgICAgICAgICAgICAgIENvZGVUYWJzLFxuICAgICAgICAgICAgICAgIENvbnRlbnRUYWIsXG4gICAgICAgICAgICAgICAgQ29udGVudFRhYnMsXG4gICAgICAgICAgICAgICAgRGVmaW5pdGlvbkRldGFpbCxcbiAgICAgICAgICAgICAgICBEZWZpbml0aW9uTGlzdCxcbiAgICAgICAgICAgICAgICBEZWZpbml0aW9uVGVybSxcbiAgICAgICAgICAgICAgICBEZXRhaWxzLFxuICAgICAgICAgICAgICAgIEZpbGVUcmVlLFxuICAgICAgICAgICAgICAgIElubGluZUJhZGdlLFxuICAgICAgICAgICAgICAgIElubGluZUljb24sXG4gICAgICAgICAgICAgICAgSW5saW5lVG9jLFxuICAgICAgICAgICAgICAgIExpbmtCdXR0b24sXG4gICAgICAgICAgICAgICAgTWVybWFpZCxcbiAgICAgICAgICAgICAgICBQYWNrYWdlVGFicyxcbiAgICAgICAgICAgICAgICBTb3VuZENsb3VkLFxuICAgICAgICAgICAgICAgIFlvdVR1YmUsXG4gICAgICAgICAgICAgICAgLi4uaGVhZGluZ0NvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgaDE6IEgxLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8UHJldk5leHQgcGF0aD17YXJ0aWNsZS5wYXRofSAvPlxuICAgICAgICAgIDxGb290ZXIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHthcnRpY2xlLnRvYyAhPT0gZmFsc2UgJiYgKFxuICAgICAgICAgIDxUb2MgaXRlbXM9e2FydGljbGUudG9jSXRlbXN9PlxuICAgICAgICAgICAgPFBhZ2VUb29sYmFyXG4gICAgICAgICAgICAgIGZpbGU9e2FydGljbGUuZmlsZX1cbiAgICAgICAgICAgICAgc291cmNlVXJsPXthcnRpY2xlLnNvdXJjZVVybH1cbiAgICAgICAgICAgICAgc291cmNlQWN0aW9uPXthcnRpY2xlLnNvdXJjZUFjdGlvbn1cbiAgICAgICAgICAgICAgY29udGVudD17YXJ0aWNsZS5jb250ZW50fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1RvYz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvVG9jQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5mdW5jdGlvbiBmb3JtYXREYXRlKGlzbz86IHN0cmluZykge1xuICBpZiAoIWlzbykgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1VU1wiLCB7XG4gICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgbW9udGg6IFwic2hvcnRcIixcbiAgICBkYXk6IFwibnVtZXJpY1wiLFxuICB9KVxufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ArrowUp } from "lucide-react";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { Button } from "../elements/button.js";
|
|
5
|
+
/** Floating button that scrolls the page back to the top once the user
|
|
6
|
+
* has scrolled past a threshold. */
|
|
7
|
+
export function BackToTop() {
|
|
8
|
+
const [visible, setVisible] = useState(false);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const onScroll = () => setVisible(window.scrollY > 400);
|
|
11
|
+
onScroll();
|
|
12
|
+
window.addEventListener("scroll", onScroll, { passive: true });
|
|
13
|
+
return () => window.removeEventListener("scroll", onScroll);
|
|
14
|
+
}, []);
|
|
15
|
+
return (_jsx(Button, { type: "button", variant: "outline", "aria-label": "Back to top", onClick: () => window.scrollTo({ top: 0, behavior: "smooth" }), className: `fixed bottom-6 right-6 z-30 size-10 rounded-full shadow-md transition-all duration-200 ${visible
|
|
16
|
+
? "opacity-100 translate-y-0 pointer-events-auto"
|
|
17
|
+
: "opacity-0 translate-y-2 pointer-events-none"}`, children: _jsx(ArrowUp, { className: "size-4" }) }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFja1RvVG9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvQmFja1RvVG9wLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXdCLENBQUE7QUFFL0M7b0NBQ29DO0FBQ3BDLE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTdDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQTtRQUN2RCxRQUFRLEVBQUUsQ0FBQTtRQUNWLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDOUQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzdELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE9BQU8sQ0FDTCxLQUFDLE1BQU0sSUFDTCxJQUFJLEVBQUMsUUFBUSxFQUNiLE9BQU8sRUFBQyxTQUFTLGdCQUNOLGFBQWEsRUFDeEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUM5RCxTQUFTLEVBQUUsMEZBQ1QsT0FBTztZQUNMLENBQUMsQ0FBQywrQ0FBK0M7WUFDakQsQ0FBQyxDQUFDLDZDQUNOLEVBQUUsWUFFRixLQUFDLE9BQU8sSUFBQyxTQUFTLEVBQUMsUUFBUSxHQUFHLEdBQ3ZCLENBQ1YsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcnJvd1VwIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9lbGVtZW50cy9idXR0b24udHN4XCJcblxuLyoqIEZsb2F0aW5nIGJ1dHRvbiB0aGF0IHNjcm9sbHMgdGhlIHBhZ2UgYmFjayB0byB0aGUgdG9wIG9uY2UgdGhlIHVzZXJcbiAqIGhhcyBzY3JvbGxlZCBwYXN0IGEgdGhyZXNob2xkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJhY2tUb1RvcCgpIHtcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHNldFZpc2libGUod2luZG93LnNjcm9sbFkgPiA0MDApXG4gICAgb25TY3JvbGwoKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG9uU2Nyb2xsLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwpXG4gIH0sIFtdKVxuXG4gIHJldHVybiAoXG4gICAgPEJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiQmFjayB0byB0b3BcIlxuICAgICAgb25DbGljaz17KCkgPT4gd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KX1cbiAgICAgIGNsYXNzTmFtZT17YGZpeGVkIGJvdHRvbS02IHJpZ2h0LTYgei0zMCBzaXplLTEwIHJvdW5kZWQtZnVsbCBzaGFkb3ctbWQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwICR7XG4gICAgICAgIHZpc2libGVcbiAgICAgICAgICA/IFwib3BhY2l0eS0xMDAgdHJhbnNsYXRlLXktMCBwb2ludGVyLWV2ZW50cy1hdXRvXCJcbiAgICAgICAgICA6IFwib3BhY2l0eS0wIHRyYW5zbGF0ZS15LTIgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICB9YH1cbiAgICA+XG4gICAgICA8QXJyb3dVcCBjbGFzc05hbWU9XCJzaXplLTRcIiAvPlxuICAgIDwvQnV0dG9uPlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Star, MessageCircle } from "lucide-react";
|
|
3
|
+
/** Technical preview banner displayed in the header */
|
|
4
|
+
export function Banner() {
|
|
5
|
+
return (_jsx("div", { className: "hidden md:flex flex-1 items-center justify-end", children: _jsx("div", { className: "rounded-xl border border-primary/20 bg-primary/2 dark:bg-primary/5 shadow-xs px-3 py-1.5 text-sm text-primary", children: _jsxs("span", { children: ["This project is in technical preview.", " ", _jsxs("a", { href: "https://github.com/datisthq/livemark", target: "_blank", rel: "noopener noreferrer", className: "font-semibold hover:underline underline-offset-2", children: [
|
|
6
|
+
_jsx(Star, { className: "inline size-3.5 align-[-0.125em]" }),
|
|
7
|
+
" Star on GitHub"] }), " ", "and", " ", _jsxs("a", { href: "https://github.com/datisthq/livemark/discussions", target: "_blank", rel: "noopener noreferrer", className: "font-semibold hover:underline underline-offset-2", children: [
|
|
8
|
+
_jsx(MessageCircle, { className: "inline size-3.5 align-[-0.125em]" }),
|
|
9
|
+
" share feedback!"] })
|
|
10
|
+
] }) }) }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvQmFubmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFbEQsdURBQXVEO0FBQ3ZELE1BQU0sVUFBVSxNQUFNO0lBQ3BCLE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyxnREFBZ0QsWUFDN0QsY0FBSyxTQUFTLEVBQUMsK0dBQStHLFlBQzVILG9FQUN3QyxHQUFHLEVBQ3pDLGFBQ0UsSUFBSSxFQUFDLHNDQUFzQyxFQUMzQyxNQUFNLEVBQUMsUUFBUSxFQUNmLEdBQUcsRUFBQyxxQkFBcUIsRUFDekIsU0FBUyxFQUFDLGtEQUFrRDs0QkFFNUQsS0FBQyxJQUFJLElBQUMsU0FBUyxFQUFDLGtDQUFrQyxHQUFHO2lEQUNuRCxFQUFDLEdBQUcsU0FDSixHQUFHLEVBQ1AsYUFDRSxJQUFJLEVBQUMsa0RBQWtELEVBQ3ZELE1BQU0sRUFBQyxRQUFRLEVBQ2YsR0FBRyxFQUFDLHFCQUFxQixFQUN6QixTQUFTLEVBQUMsa0RBQWtEOzRCQUU1RCxLQUFDLGFBQWEsSUFBQyxTQUFTLEVBQUMsa0NBQWtDLEdBQUc7a0RBRTVEO29CQUNDLEdBQ0gsR0FDRixDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhciwgTWVzc2FnZUNpcmNsZSB9IGZyb20gXCJsdWNpZGUtcmVhY3RcIlxuXG4vKiogVGVjaG5pY2FsIHByZXZpZXcgYmFubmVyIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyICovXG5leHBvcnQgZnVuY3Rpb24gQmFubmVyKCkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIG1kOmZsZXggZmxleC0xIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLXhsIGJvcmRlciBib3JkZXItcHJpbWFyeS8yMCBiZy1wcmltYXJ5LzIgZGFyazpiZy1wcmltYXJ5LzUgc2hhZG93LXhzIHB4LTMgcHktMS41IHRleHQtc20gdGV4dC1wcmltYXJ5XCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIFRoaXMgcHJvamVjdCBpcyBpbiB0ZWNobmljYWwgcHJldmlldy57XCIgXCJ9XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vZGF0aXN0aHEvbGl2ZW1hcmtcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCBob3Zlcjp1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC0yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3RhciBjbGFzc05hbWU9XCJpbmxpbmUgc2l6ZS0zLjUgYWxpZ24tWy0wLjEyNWVtXVwiIC8+IFN0YXIgb24gR2l0SHViXG4gICAgICAgICAgPC9hPntcIiBcIn1cbiAgICAgICAgICBhbmR7XCIgXCJ9XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vZGF0aXN0aHEvbGl2ZW1hcmsvZGlzY3Vzc2lvbnNcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZCBob3Zlcjp1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC0yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8TWVzc2FnZUNpcmNsZSBjbGFzc05hbWU9XCJpbmxpbmUgc2l6ZS0zLjUgYWxpZ24tWy0wLjEyNWVtXVwiIC8+IHNoYXJlXG4gICAgICAgICAgICBmZWVkYmFjayFcbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Link } from "@tanstack/react-router";
|
|
3
|
+
import { History } from "lucide-react";
|
|
4
|
+
import { currentSection, sectionFlatArticles, sortedArticles, } from "../content/article.js";
|
|
5
|
+
import { Separator } from "../elements/separator.js";
|
|
6
|
+
import { TocContext } from "../helpers/toc-context.js";
|
|
7
|
+
import { Footer } from "./Footer.js";
|
|
8
|
+
import { PageToolbar } from "./PageToolbar.js";
|
|
9
|
+
import { MobileToc, Toc } from "./Toc.js";
|
|
10
|
+
/** Auto-generated blog index listing all posts by date */
|
|
11
|
+
export function BlogIndex(props) {
|
|
12
|
+
const section = currentSection(props.sectionPrefix);
|
|
13
|
+
const flat = sectionFlatArticles.get(props.sectionPrefix) ?? [];
|
|
14
|
+
const posts = flat
|
|
15
|
+
.map(p => sortedArticles.find(a => a.path === p))
|
|
16
|
+
.filter(a => a !== undefined);
|
|
17
|
+
const tocItems = posts.map(post => ({
|
|
18
|
+
url: `#${slugOf(post.path)}`,
|
|
19
|
+
title: post.title,
|
|
20
|
+
depth: 2,
|
|
21
|
+
}));
|
|
22
|
+
const content = [
|
|
23
|
+
`# ${section?.title ?? "Blog"}`,
|
|
24
|
+
...posts.map(post => {
|
|
25
|
+
const parts = [`## ${post.title}`];
|
|
26
|
+
if (post.date)
|
|
27
|
+
parts.push(formatDate(post.date));
|
|
28
|
+
if (post.author) {
|
|
29
|
+
parts.push(Array.isArray(post.author) ? post.author.join(", ") : post.author);
|
|
30
|
+
}
|
|
31
|
+
if (post.description)
|
|
32
|
+
parts.push("", post.description);
|
|
33
|
+
return parts.join("\n");
|
|
34
|
+
}),
|
|
35
|
+
].join("\n\n");
|
|
36
|
+
return (_jsxs(TocContext.Provider, { value: tocItems, children: [
|
|
37
|
+
_jsx(MobileToc, { items: tocItems, children: _jsx(PageToolbar, { content: content }) }), _jsxs("div", { className: "flex flex-1 gap-10 p-4 pt-8 md:p-10", children: [
|
|
38
|
+
_jsxs("div", { className: "flex-1 min-w-0 mx-auto max-w-3xl", children: [
|
|
39
|
+
_jsxs("div", { className: "prose dark:prose-invert max-w-none mb-8", children: [
|
|
40
|
+
_jsx("h1", { id: "top", children: _jsx("a", { href: "#top", children: section?.title ?? "Blog" }) }), posts[0]?.date && (_jsx("p", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-0", children: _jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
41
|
+
_jsx(History, { className: "size-3.5" }),
|
|
42
|
+
"Updated ", formatDate(posts[0].date)] }) }))] }), _jsx("div", { className: "space-y-6", children: posts.map((post, i) => (_jsxs("article", { id: slugOf(post.path), children: [i > 0 && _jsx(Separator, { className: "mb-6" }), _jsx("h2", { className: "text-2xl", children: _jsx(Link, { to: "/$", params: { _splat: post.path.replace(/^\/|\/$/g, "") }, className: "font-medium hover:text-primary transition-colors", children: post.title }) }), _jsxs("p", { className: "text-sm text-muted-foreground mt-1 flex gap-3", children: [post.date && _jsx("span", { children: formatDate(post.date) }), post.author && (_jsx("span", { children: Array.isArray(post.author)
|
|
43
|
+
? post.author.join(", ")
|
|
44
|
+
: post.author }))] }), post.description && (_jsx("p", { className: "text-muted-foreground mt-2", children: post.description }))] }, post.path))) }), _jsx("div", { className: "mt-10", children: _jsx(Footer, {}) })
|
|
45
|
+
] }), _jsx(Toc, { items: tocItems, children: _jsx(PageToolbar, { content: content }) })
|
|
46
|
+
] })
|
|
47
|
+
] }));
|
|
48
|
+
}
|
|
49
|
+
function slugOf(path) {
|
|
50
|
+
return (path
|
|
51
|
+
.replace(/^\/|\/$/g, "")
|
|
52
|
+
.split("/")
|
|
53
|
+
.pop() ?? "");
|
|
54
|
+
}
|
|
55
|
+
function formatDate(iso) {
|
|
56
|
+
return new Date(iso).toLocaleDateString("en-US", {
|
|
57
|
+
year: "numeric",
|
|
58
|
+
month: "short",
|
|
59
|
+
day: "numeric",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvZ0luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbXBvbmVudHMvQmxvZ0luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxFQUNMLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUE7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEyQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBbUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVcsQ0FBQTtBQUUxQywwREFBMEQ7QUFDMUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFnQztJQUN4RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ25ELE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUk7U0FDZixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNoRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUE7SUFFL0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxD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YWN0LXJvdXRlclwiXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQge1xuICBjdXJyZW50U2VjdGlvbixcbiAgc2VjdGlvbkZsYXRBcnRpY2xlcyxcbiAgc29ydGVkQXJ0aWNsZXMsXG59IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHsgU2VwYXJhdG9yIH0gZnJvbSBcIi4uL2VsZW1lbnRzL3NlcGFyYXRvci50c3hcIlxuaW1wb3J0IHsgVG9jQ29udGV4dCB9IGZyb20gXCIuLi9oZWxwZXJzL3RvYy1jb250ZXh0LnRzXCJcbmltcG9ydCB7IEZvb3RlciB9IGZyb20gXCIuL0Zvb3Rlci50c3hcIlxuaW1wb3J0IHsgUGFnZVRvb2xiYXIgfSBmcm9tIFwiLi9QYWdlVG9vbGJhci50c3hcIlxuaW1wb3J0IHsgTW9iaWxlVG9jLCBUb2MgfSBmcm9tIFwiLi9Ub2MudHN4XCJcblxuLyoqIEF1dG8tZ2VuZXJhdGVkIGJsb2cgaW5kZXggbGlzdGluZyBhbGwgcG9zdHMgYnkgZGF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJsb2dJbmRleChwcm9wczogeyBzZWN0aW9uUHJlZml4OiBzdHJpbmcgfSkge1xuICBjb25zdCBzZWN0aW9uID0gY3VycmVudFNlY3Rpb24ocHJvcHMuc2VjdGlvblByZWZpeClcbiAgY29uc3QgZmxhdCA9IHNlY3Rpb25GbGF0QXJ0aWNsZXMuZ2V0KHByb3BzLnNlY3Rpb25QcmVmaXgpID8/IFtdXG4gIGNvbnN0IHBvc3RzID0gZmxhdFxuICAgIC5tYXAocCA9PiBzb3J0ZWRBcnRpY2xlcy5maW5kKGEgPT4gYS5wYXRoID09PSBwKSlcbiAgICAuZmlsdGVyKGEgPT4gYSAhPT0gdW5kZWZpbmVkKVxuXG4gIGNvbnN0IHRvY0l0ZW1zID0gcG9zdHMubWFwKHBvc3QgPT4gKHtcbiAgICB1cmw6IGAjJHtzbHVnT2YocG9zdC5wYXRoKX1gLFxuICAgIHRpdGxlOiBwb3N0LnRpdGxlLFxuICAgIGRlcHRoOiAyLFxuICB9KSlcblxuICBjb25zdCBjb250ZW50ID0gW1xuICAgIGAjICR7c2VjdGlvbj8udGl0bGUgPz8gXCJCbG9nXCJ9YCxcbiAgICAuLi5wb3N0cy5tYXAocG9zdCA9PiB7XG4gICAgICBjb25zdCBwYXJ0cyA9IFtgIyMgJHtwb3N0LnRpdGxlfWBdXG4gICAgICBpZiAocG9zdC5kYXRlKSBwYXJ0cy5wdXNoKGZvcm1hdERhdGUocG9zdC5kYXRlKSlcbiAgICAgIGlmIChwb3N0LmF1dGhvcikge1xuICAgICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICAgIEFycmF5LmlzQXJyYXkocG9zdC5hdXRob3IpID8gcG9zdC5hdXRob3Iuam9pbihcIiwgXCIpIDogcG9zdC5hdXRob3IsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChwb3N0LmRlc2NyaXB0aW9uKSBwYXJ0cy5wdXNoKFwiXCIsIHBvc3QuZGVzY3JpcHRpb24pXG4gICAgICByZXR1cm4gcGFydHMuam9pbihcIlxcblwiKVxuICAgIH0pLFxuICBdLmpvaW4oXCJcXG5cXG5cIilcblxuICByZXR1cm4gKFxuICAgIDxUb2NDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0b2NJdGVtc30+XG4gICAgICA8TW9iaWxlVG9jIGl0ZW1zPXt0b2NJdGVtc30+XG4gICAgICAgIDxQYWdlVG9vbGJhciBjb250ZW50PXtjb250ZW50fSAvPlxuICAgICAgPC9Nb2JpbGVUb2M+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGdhcC0xMCBwLTQgcHQtOCBtZDpwLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTAgbXgtYXV0byBtYXgtdy0zeGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb3NlIGRhcms6cHJvc2UtaW52ZXJ0IG1heC13LW5vbmUgbWItOFwiPlxuICAgICAgICAgICAgPGgxIGlkPVwidG9wXCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCIjdG9wXCI+e3NlY3Rpb24/LnRpdGxlID8/IFwiQmxvZ1wifTwvYT5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICB7cG9zdHNbMF0/LmRhdGUgJiYgKFxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLXgtMyBnYXAteS0xIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kICEtbXQtNCAhbWItMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgICAgICAgICAgICAgIDxIaXN0b3J5IGNsYXNzTmFtZT1cInNpemUtMy41XCIgLz5cbiAgICAgICAgICAgICAgICAgIFVwZGF0ZWQge2Zvcm1hdERhdGUocG9zdHNbMF0uZGF0ZSl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICAgICAgICB7cG9zdHMubWFwKChwb3N0LCBpKSA9PiAoXG4gICAgICAgICAgICAgIDxhcnRpY2xlIGtleT17cG9zdC5wYXRofSBpZD17c2x1Z09mKHBvc3QucGF0aCl9PlxuICAgICAgICAgICAgICAgIHtpID4gMCAmJiA8U2VwYXJhdG9yIGNsYXNzTmFtZT1cIm1iLTZcIiAvPn1cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC0yeGxcIj5cbiAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgIHRvPVwiLyRcIlxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM9e3sgX3NwbGF0OiBwb3N0LnBhdGgucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIGhvdmVyOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtwb3N0LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmQgbXQtMSBmbGV4IGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICB7cG9zdC5kYXRlICYmIDxzcGFuPntmb3JtYXREYXRlKHBvc3QuZGF0ZSl9PC9zcGFuPn1cbiAgICAgICAgICAgICAgICAgIHtwb3N0LmF1dGhvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIHtBcnJheS5pc0FycmF5KHBvc3QuYXV0aG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwb3N0LmF1dGhvci5qb2luKFwiLCBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcG9zdC5hdXRob3J9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIHtwb3N0LmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbXV0ZWQtZm9yZWdyb3VuZCBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIHtwb3N0LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMTBcIj5cbiAgICAgICAgICAgIDxGb290ZXIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxUb2MgaXRlbXM9e3RvY0l0ZW1zfT5cbiAgICAgICAgICA8UGFnZVRvb2xiYXIgY29udGVudD17Y29udGVudH0gLz5cbiAgICAgICAgPC9Ub2M+XG4gICAgICA8L2Rpdj5cbiAgICA8L1RvY0NvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZnVuY3Rpb24gc2x1Z09mKHBhdGg6IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIHBhdGhcbiAgICAgIC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIilcbiAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgIC5wb3AoKSA/PyBcIlwiXG4gIClcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGF0ZShpc286IHN0cmluZykge1xuICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1VU1wiLCB7XG4gICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgbW9udGg6IFwic2hvcnRcIixcbiAgICBkYXk6IFwibnVtZXJpY1wiLFxuICB9KVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Breadcrumbs(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Link, useLocation, useMatches } from "@tanstack/react-router";
|
|
3
|
+
import { currentSection } from "../content/article.js";
|
|
4
|
+
export function Breadcrumbs() {
|
|
5
|
+
const matches = useMatches();
|
|
6
|
+
const last = matches[matches.length - 1];
|
|
7
|
+
const loaderData = last?.loaderData;
|
|
8
|
+
const pathname = useLocation({ select: l => l.pathname });
|
|
9
|
+
const section = currentSection(`/${pathname.replace(/^\/|\/$/g, "")}/`);
|
|
10
|
+
return (_jsxs("nav", { className: "flex items-center gap-1.5 text-sm text-muted-foreground", children: [
|
|
11
|
+
_jsx(Link, { to: "/", className: "hover:text-foreground transition-colors", children: section?.title ?? import.meta.env.CONFIG.title }), _jsx("span", { children: "/" }), loaderData?.title && (_jsx("span", { className: "text-foreground font-medium", children: loaderData.title }))] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJlYWRjcnVtYnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9CcmVhZGNydW1icy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUV0RCxNQUFNLFVBQVUsV0FBVztJQUN6QixNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUM1QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEVBQUUsVUFBNEMsQ0FBQTtJQUNyRSxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUN6RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFdkUsT0FBTyxDQUNMLGVBQUssU0FBUyxFQUFDLHlEQUF5RDtZQUN0RSxLQUFDLElBQUksSUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyx5Q0FBeUMsWUFDN0QsT0FBTyxFQUFFLEtBQUssSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FDMUMsRUFDUCwrQkFBYyxFQUNiLFVBQVUsRUFBRSxLQUFLLElBQUksQ0FDcEIsZUFBTSxTQUFTLEVBQUMsNkJBQTZCLFlBQUUsVUFBVSxDQUFDLEtBQUssR0FBUSxDQUN4RSxJQUNHLENBQ1AsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rLCB1c2VMb2NhdGlvbiwgdXNlTWF0Y2hlcyB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtcm91dGVyXCJcbmltcG9ydCB7IGN1cnJlbnRTZWN0aW9uIH0gZnJvbSBcIi4uL2NvbnRlbnQvYXJ0aWNsZS50c1wiXG5cbmV4cG9ydCBmdW5jdGlvbiBCcmVhZGNydW1icygpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IHVzZU1hdGNoZXMoKVxuICBjb25zdCBsYXN0ID0gbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdXG4gIGNvbnN0IGxvYWRlckRhdGEgPSBsYXN0Py5sb2FkZXJEYXRhIGFzIHsgdGl0bGU/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZFxuICBjb25zdCBwYXRobmFtZSA9IHVzZUxvY2F0aW9uKHsgc2VsZWN0OiBsID0+IGwucGF0aG5hbWUgfSlcbiAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKGAvJHtwYXRobmFtZS5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIil9L2ApXG5cbiAgcmV0dXJuIChcbiAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgdGV4dC1zbSB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgIDxMaW5rIHRvPVwiL1wiIGNsYXNzTmFtZT1cImhvdmVyOnRleHQtZm9yZWdyb3VuZCB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICB7c2VjdGlvbj8udGl0bGUgPz8gaW1wb3J0Lm1ldGEuZW52LkNPTkZJRy50aXRsZX1cbiAgICAgIDwvTGluaz5cbiAgICAgIDxzcGFuPi88L3NwYW4+XG4gICAgICB7bG9hZGVyRGF0YT8udGl0bGUgJiYgKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWZvcmVncm91bmQgZm9udC1tZWRpdW1cIj57bG9hZGVyRGF0YS50aXRsZX08L3NwYW4+XG4gICAgICApfVxuICAgIDwvbmF2PlxuICApXG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type CalloutType = "note" | "tip" | "info" | "warning" | "danger";
|
|
2
|
+
/** Styled callout block for notes, tips, warnings, and other admonitions */
|
|
3
|
+
export declare function Callout(props: {
|
|
4
|
+
type?: CalloutType;
|
|
5
|
+
title?: string;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { AlertTriangle, Flame, Info, Lightbulb } from "lucide-react";
|
|
3
|
+
import { cn } from "../utils/style.js";
|
|
4
|
+
const configs = {
|
|
5
|
+
note: {
|
|
6
|
+
icon: Info,
|
|
7
|
+
label: "Note",
|
|
8
|
+
classes: "border-blue-500/30 bg-blue-50/50 text-blue-900 dark:bg-blue-950/30 dark:text-blue-200",
|
|
9
|
+
},
|
|
10
|
+
info: {
|
|
11
|
+
icon: Info,
|
|
12
|
+
label: "Info",
|
|
13
|
+
classes: "border-blue-500/30 bg-blue-50/50 text-blue-900 dark:bg-blue-950/30 dark:text-blue-200",
|
|
14
|
+
},
|
|
15
|
+
tip: {
|
|
16
|
+
icon: Lightbulb,
|
|
17
|
+
label: "Tip",
|
|
18
|
+
classes: "border-green-500/30 bg-green-50/50 text-green-900 dark:bg-green-950/30 dark:text-green-200",
|
|
19
|
+
},
|
|
20
|
+
warning: {
|
|
21
|
+
icon: AlertTriangle,
|
|
22
|
+
label: "Warning",
|
|
23
|
+
classes: "border-yellow-500/30 bg-yellow-50/50 text-yellow-900 dark:bg-yellow-950/30 dark:text-yellow-200",
|
|
24
|
+
},
|
|
25
|
+
danger: {
|
|
26
|
+
icon: Flame,
|
|
27
|
+
label: "Danger",
|
|
28
|
+
classes: "border-red-500/30 bg-red-50/50 text-red-900 dark:bg-red-950/30 dark:text-red-200",
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
/** Styled callout block for notes, tips, warnings, and other admonitions */
|
|
32
|
+
export function Callout(props) {
|
|
33
|
+
const type = props.type ?? "note";
|
|
34
|
+
const config = configs[type];
|
|
35
|
+
const Icon = config.icon;
|
|
36
|
+
const title = props.title ?? config.label;
|
|
37
|
+
return (_jsxs("aside", { className: cn("not-prose my-4 rounded-xl border px-4 py-3", config.classes), children: [
|
|
38
|
+
_jsxs("div", { className: "flex items-center gap-2 font-semibold text-sm mb-2", children: [
|
|
39
|
+
_jsx(Icon, { className: "size-4 shrink-0" }), _jsx("span", { children: title })
|
|
40
|
+
] }), _jsx("div", { className: "text-sm [&>p]:my-1 [&>p:first-child]:mt-0 [&>p:last-child]:mb-0", children: props.children })
|
|
41
|
+
] }));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbG91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0NhbGxvdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3BFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQVV0QyxNQUFNLE9BQU8sR0FBdUM7SUFDbEQsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLElBQUk7UUFDVixLQUFLLEVBQUUsTUFBTTtRQUNiLE9BQU8sRUFDTCx1RkFBdUY7S0FDMUY7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxNQUFNO1FBQ2IsT0FBTyxFQUNMLHVGQUF1RjtLQUMxRjtJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLEtBQUs7UUFDWixPQUFPLEVBQ0wsNEZBQTRGO0tBQy9GO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLFNBQVM7UUFDaEIsT0FBTyxFQUNMLGlHQUFpRztLQUNwRztJQUNELE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLFFBQVE7UUFDZixPQUFPLEVBQ0wsa0ZBQWtGO0tBQ3JGO0NBQ0YsQ0FBQTtBQUVELDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBSXZCO0lBQ0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUE7SUFDakMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzVCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUE7SUFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFBO0lBRXpDLE9BQU8sQ0FDTCxpQkFDRSxTQUFTLEVBQUUsRUFBRSxDQUNYLDRDQUE0QyxFQUM1QyxNQUFNLENBQUMsT0FBTyxDQUNmO1lBRUQsZUFBSyxTQUFTLEVBQUMsb0RBQW9EO29CQUNqRSxLQUFDLElBQUksSUFBQyxTQUFTLEVBQUMsaUJBQWlCLEdBQUcsRUFDcEMseUJBQU8sS0FBSyxHQUFRO29CQUNoQixFQUNOLGNBQUssU0FBUyxFQUFDLGlFQUFpRSxZQUM3RSxLQUFLLENBQUMsUUFBUSxHQUNYO1lBQ0EsQ0FDVCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsZXJ0VHJpYW5nbGUsIEZsYW1lLCBJbmZvLCBMaWdodGJ1bGIgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCJcbmltcG9ydCB7IGNuIH0gZnJvbSBcIi4uL3V0aWxzL3N0eWxlLnRzXCJcblxudHlwZSBDYWxsb3V0VHlwZSA9IFwibm90ZVwiIHwgXCJ0aXBcIiB8IFwiaW5mb1wiIHwgXCJ3YXJuaW5nXCIgfCBcImRhbmdlclwiXG5cbmludGVyZmFjZSBDYWxsb3V0Q29uZmlnIHtcbiAgaWNvbjogUmVhY3QuRWxlbWVudFR5cGVcbiAgbGFiZWw6IHN0cmluZ1xuICBjbGFzc2VzOiBzdHJpbmdcbn1cblxuY29uc3QgY29uZmlnczogUmVjb3JkPENhbGxvdXRUeXBlLCBDYWxsb3V0Q29uZmlnPiA9IHtcbiAgbm90ZToge1xuICAgIGljb246IEluZm8sXG4gICAgbGFiZWw6IFwiTm90ZVwiLFxuICAgIGNsYXNzZXM6XG4gICAgICBcImJvcmRlci1ibHVlLTUwMC8zMCBiZy1ibHVlLTUwLzUwIHRleHQtYmx1ZS05MDAgZGFyazpiZy1ibHVlLTk1MC8zMCBkYXJrOnRleHQtYmx1ZS0yMDBcIixcbiAgfSxcbiAgaW5mbzoge1xuICAgIGljb246IEluZm8sXG4gICAgbGFiZWw6IFwiSW5mb1wiLFxuICAgIGNsYXNzZXM6XG4gICAgICBcImJvcmRlci1ibHVlLTUwMC8zMCBiZy1ibHVlLTUwLzUwIHRleHQtYmx1ZS05MDAgZGFyazpiZy1ibHVlLTk1MC8zMCBkYXJrOnRleHQtYmx1ZS0yMDBcIixcbiAgfSxcbiAgdGlwOiB7XG4gICAgaWNvbjogTGlnaHRidWxiLFxuICAgIGxhYmVsOiBcIlRpcFwiLFxuICAgIGNsYXNzZXM6XG4gICAgICBcImJvcmRlci1ncmVlbi01MDAvMzAgYmctZ3JlZW4tNTAvNTAgdGV4dC1ncmVlbi05MDAgZGFyazpiZy1ncmVlbi05NTAvMzAgZGFyazp0ZXh0LWdyZWVuLTIwMFwiLFxuICB9LFxuICB3YXJuaW5nOiB7XG4gICAgaWNvbjogQWxlcnRUcmlhbmdsZSxcbiAgICBsYWJlbDogXCJXYXJuaW5nXCIsXG4gICAgY2xhc3NlczpcbiAgICAgIFwiYm9yZGVyLXllbGxvdy01MDAvMzAgYmcteWVsbG93LTUwLzUwIHRleHQteWVsbG93LTkwMCBkYXJrOmJnLXllbGxvdy05NTAvMzAgZGFyazp0ZXh0LXllbGxvdy0yMDBcIixcbiAgfSxcbiAgZGFuZ2VyOiB7XG4gICAgaWNvbjogRmxhbWUsXG4gICAgbGFiZWw6IFwiRGFuZ2VyXCIsXG4gICAgY2xhc3NlczpcbiAgICAgIFwiYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwLzUwIHRleHQtcmVkLTkwMCBkYXJrOmJnLXJlZC05NTAvMzAgZGFyazp0ZXh0LXJlZC0yMDBcIixcbiAgfSxcbn1cblxuLyoqIFN0eWxlZCBjYWxsb3V0IGJsb2NrIGZvciBub3RlcywgdGlwcywgd2FybmluZ3MsIGFuZCBvdGhlciBhZG1vbml0aW9ucyAqL1xuZXhwb3J0IGZ1bmN0aW9uIENhbGxvdXQocHJvcHM6IHtcbiAgdHlwZT86IENhbGxvdXRUeXBlXG4gIHRpdGxlPzogc3RyaW5nXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgdHlwZSA9IHByb3BzLnR5cGUgPz8gXCJub3RlXCJcbiAgY29uc3QgY29uZmlnID0gY29uZmlnc1t0eXBlXVxuICBjb25zdCBJY29uID0gY29uZmlnLmljb25cbiAgY29uc3QgdGl0bGUgPSBwcm9wcy50aXRsZSA/PyBjb25maWcubGFiZWxcblxuICByZXR1cm4gKFxuICAgIDxhc2lkZVxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgXCJub3QtcHJvc2UgbXktNCByb3VuZGVkLXhsIGJvcmRlciBweC00IHB5LTNcIixcbiAgICAgICAgY29uZmlnLmNsYXNzZXMsXG4gICAgICApfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgZm9udC1zZW1pYm9sZCB0ZXh0LXNtIG1iLTJcIj5cbiAgICAgICAgPEljb24gY2xhc3NOYW1lPVwic2l6ZS00IHNocmluay0wXCIgLz5cbiAgICAgICAgPHNwYW4+e3RpdGxlfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIFsmPnBdOm15LTEgWyY+cDpmaXJzdC1jaGlsZF06bXQtMCBbJj5wOmxhc3QtY2hpbGRdOm1iLTBcIj5cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgPC9hc2lkZT5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Link } from "@tanstack/react-router";
|
|
3
|
+
import { DynamicIcon } from "../helpers/dynamic-icon.js";
|
|
4
|
+
import { Card as CardElement, CardContent, CardHeader, CardTitle, } from "../elements/card.js";
|
|
5
|
+
/** Card component with optional icon, title, description, and link */
|
|
6
|
+
export function Card(props) {
|
|
7
|
+
const card = (_jsxs(CardElement, { size: "sm", className: "transition-colors hover:bg-accent", children: [
|
|
8
|
+
_jsx(CardHeader, { children: _jsxs(CardTitle, { className: "flex items-center gap-2", children: [props.icon && (_jsx(DynamicIcon, { name: props.icon, className: "size-5 text-primary" })), props.title] }) }), props.children && (_jsx(CardContent, { children: _jsx("div", { className: "text-muted-foreground text-sm", children: props.children }) }))] }));
|
|
9
|
+
if (props.href?.startsWith("http")) {
|
|
10
|
+
return (_jsx("a", { href: props.href, target: "_blank", rel: "noopener noreferrer", children: card }));
|
|
11
|
+
}
|
|
12
|
+
if (props.href) {
|
|
13
|
+
return _jsx(Link, { to: props.href, children: card });
|
|
14
|
+
}
|
|
15
|
+
return card;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9jb21wb25lbnRzL0NhcmQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE2QixDQUFBO0FBQ3pELE9BQU8sRUFDTCxJQUFJLElBQUksV0FBVyxFQUNuQixXQUFXLEVBQ1gsVUFBVSxFQUNWLFNBQVMsR0FDVixNQUFNLHFCQUFzQixDQUFBO0FBRTdCLHNFQUFzRTtBQUN0RSxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBS3BCO0lBQ0MsTUFBTSxJQUFJLEdBQUcsQ0FDWCxNQUFDLFdBQVcsSUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBQyxtQ0FBbUM7WUFDbEUsS0FBQyxVQUFVLGNBQ1QsTUFBQyxTQUFTLElBQUMsU0FBUyxFQUFDLHlCQUF5QixhQUMzQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQ2IsS0FBQyxXQUFXLElBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLHFCQUFxQixHQUFHLENBQ2xFLEVBQ0EsS0FBSyxDQUFDLEtBQUssSUFDRixHQUNELEVBQ1osS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUNqQixLQUFDLFdBQVcsY0FDVixjQUFLLFNBQVMsRUFBQywrQkFBK0IsWUFBRSxLQUFLLENBQUMsUUFBUSxHQUFPLEdBQ3pELENBQ2YsSUFDVyxDQUNmLENBQUE7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUNMLFlBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMscUJBQXFCLFlBQzNELElBQUksR0FDSCxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPLEtBQUMsSUFBSSxJQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsSUFBSSxZQUFHLElBQUksR0FBUSxDQUFBO0lBQzVDLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rIH0gZnJvbSBcIkB0YW5zdGFjay9yZWFjdC1yb3V0ZXJcIlxuaW1wb3J0IHsgRHluYW1pY0ljb24gfSBmcm9tIFwiLi4vaGVscGVycy9keW5hbWljLWljb24udHN4XCJcbmltcG9ydCB7XG4gIENhcmQgYXMgQ2FyZEVsZW1lbnQsXG4gIENhcmRDb250ZW50LFxuICBDYXJkSGVhZGVyLFxuICBDYXJkVGl0bGUsXG59IGZyb20gXCIuLi9lbGVtZW50cy9jYXJkLnRzeFwiXG5cbi8qKiBDYXJkIGNvbXBvbmVudCB3aXRoIG9wdGlvbmFsIGljb24sIHRpdGxlLCBkZXNjcmlwdGlvbiwgYW5kIGxpbmsgKi9cbmV4cG9ydCBmdW5jdGlvbiBDYXJkKHByb3BzOiB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgaHJlZj86IHN0cmluZ1xuICBpY29uPzogc3RyaW5nXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIGNvbnN0IGNhcmQgPSAoXG4gICAgPENhcmRFbGVtZW50IHNpemU9XCJzbVwiIGNsYXNzTmFtZT1cInRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWFjY2VudFwiPlxuICAgICAgPENhcmRIZWFkZXI+XG4gICAgICAgIDxDYXJkVGl0bGUgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICB7cHJvcHMuaWNvbiAmJiAoXG4gICAgICAgICAgICA8RHluYW1pY0ljb24gbmFtZT17cHJvcHMuaWNvbn0gY2xhc3NOYW1lPVwic2l6ZS01IHRleHQtcHJpbWFyeVwiIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7cHJvcHMudGl0bGV9XG4gICAgICAgIDwvQ2FyZFRpdGxlPlxuICAgICAgPC9DYXJkSGVhZGVyPlxuICAgICAge3Byb3BzLmNoaWxkcmVuICYmIChcbiAgICAgICAgPENhcmRDb250ZW50PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHRleHQtc21cIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+XG4gICAgICAgIDwvQ2FyZENvbnRlbnQ+XG4gICAgICApfVxuICAgIDwvQ2FyZEVsZW1lbnQ+XG4gIClcblxuICBpZiAocHJvcHMuaHJlZj8uc3RhcnRzV2l0aChcImh0dHBcIikpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGEgaHJlZj17cHJvcHMuaHJlZn0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgICB7Y2FyZH1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cblxuICBpZiAocHJvcHMuaHJlZikge1xuICAgIHJldHVybiA8TGluayB0bz17cHJvcHMuaHJlZn0+e2NhcmR9PC9MaW5rPlxuICB9XG5cbiAgcmV0dXJuIGNhcmRcbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/** Grid container for card components */
|
|
3
|
+
export function Cards(props) {
|
|
4
|
+
return (_jsx("div", { className: "not-prose grid grid-cols-1 gap-4 my-4 sm:grid-cols-2", children: props.children }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FyZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9DYXJkcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlDQUF5QztBQUN6QyxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQW9DO0lBQ3hELE9BQU8sQ0FDTCxjQUFLLFNBQVMsRUFBQyxzREFBc0QsWUFDbEUsS0FBSyxDQUFDLFFBQVEsR0FDWCxDQUNQLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEdyaWQgY29udGFpbmVyIGZvciBjYXJkIGNvbXBvbmVudHMgKi9cbmV4cG9ydCBmdW5jdGlvbiBDYXJkcyhwcm9wczogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5vdC1wcm9zZSBncmlkIGdyaWQtY29scy0xIGdhcC00IG15LTQgc206Z3JpZC1jb2xzLTJcIj5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Link } from "@tanstack/react-router";
|
|
3
|
+
import { History } from "lucide-react";
|
|
4
|
+
import { currentSection, sectionFlatArticles, sortedArticles, } from "../content/article.js";
|
|
5
|
+
import { Separator } from "../elements/separator.js";
|
|
6
|
+
import { TocContext } from "../helpers/toc-context.js";
|
|
7
|
+
import { Footer } from "./Footer.js";
|
|
8
|
+
import { PageToolbar } from "./PageToolbar.js";
|
|
9
|
+
import { MobileToc, Toc } from "./Toc.js";
|
|
10
|
+
/** Auto-generated changelog index listing all versions by date */
|
|
11
|
+
export function ChangelogIndex(props) {
|
|
12
|
+
const section = currentSection(props.sectionPrefix);
|
|
13
|
+
const flat = sectionFlatArticles.get(props.sectionPrefix) ?? [];
|
|
14
|
+
const entries = flat
|
|
15
|
+
.map(p => sortedArticles.find(a => a.path === p))
|
|
16
|
+
.filter(a => a !== undefined);
|
|
17
|
+
const tocItems = entries.map(entry => ({
|
|
18
|
+
url: `#${slugOf(entry.path)}`,
|
|
19
|
+
title: entry.title,
|
|
20
|
+
depth: 2,
|
|
21
|
+
}));
|
|
22
|
+
const content = [
|
|
23
|
+
`# ${section?.title ?? "Changelog"}`,
|
|
24
|
+
...entries.map(entry => {
|
|
25
|
+
const parts = [`## ${entry.title}`];
|
|
26
|
+
if (entry.date)
|
|
27
|
+
parts.push(formatDate(entry.date));
|
|
28
|
+
if (entry.description)
|
|
29
|
+
parts.push("", entry.description);
|
|
30
|
+
return parts.join("\n");
|
|
31
|
+
}),
|
|
32
|
+
].join("\n\n");
|
|
33
|
+
return (_jsxs(TocContext.Provider, { value: tocItems, children: [
|
|
34
|
+
_jsx(MobileToc, { items: tocItems, children: _jsx(PageToolbar, { content: content }) }), _jsxs("div", { className: "flex flex-1 gap-10 p-4 pt-8 md:p-10", children: [
|
|
35
|
+
_jsxs("div", { className: "flex-1 min-w-0 mx-auto max-w-3xl", children: [
|
|
36
|
+
_jsxs("div", { className: "prose dark:prose-invert max-w-none mb-8", children: [
|
|
37
|
+
_jsx("h1", { id: "top", children: _jsx("a", { href: "#top", children: section?.title ?? "Changelog" }) }), entries[0]?.date && (_jsx("p", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-muted-foreground !-mt-4 !mb-0", children: _jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
38
|
+
_jsx(History, { className: "size-3.5" }),
|
|
39
|
+
"Updated ", formatDate(entries[0].date)] }) }))] }), _jsx("div", { className: "space-y-6", children: entries.map((entry, i) => (_jsxs("article", { id: slugOf(entry.path), children: [i > 0 && _jsx(Separator, { className: "mb-6" }), _jsx("h2", { className: "text-2xl", children: _jsx(Link, { to: "/$", params: { _splat: entry.path.replace(/^\/|\/$/g, "") }, className: "font-medium hover:text-primary transition-colors", children: entry.title }) }), entry.date && (_jsx("p", { className: "text-sm text-muted-foreground mt-1", children: formatDate(entry.date) })), entry.description && (_jsx("p", { className: "text-muted-foreground mt-2", children: entry.description }))] }, entry.path))) }), _jsx("div", { className: "mt-10", children: _jsx(Footer, {}) })
|
|
40
|
+
] }), _jsx(Toc, { items: tocItems, children: _jsx(PageToolbar, { content: content }) })
|
|
41
|
+
] })
|
|
42
|
+
] }));
|
|
43
|
+
}
|
|
44
|
+
function slugOf(path) {
|
|
45
|
+
return (path
|
|
46
|
+
.replace(/^\/|\/$/g, "")
|
|
47
|
+
.split("/")
|
|
48
|
+
.pop() ?? "");
|
|
49
|
+
}
|
|
50
|
+
function formatDate(iso) {
|
|
51
|
+
return new Date(iso).toLocaleDateString("en-US", {
|
|
52
|
+
year: "numeric",
|
|
53
|
+
month: "short",
|
|
54
|
+
day: "numeric",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlbG9nSW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tcG9uZW50cy9DaGFuZ2Vsb2dJbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGNBQWMsR0FDZixNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMkIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQW1CLENBQUE7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFXLENBQUE7QUFFMUMsa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBZ0M7SUFDN0QsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNuRCxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFJO1NBQ2pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2hELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQTtJQUUvQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxHQUFHLEVBQUUsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzdCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixLQUFLLEVBQUUsQ0FBQztLQUNULENBQUMsQ0FBQyxDQUFBO0lBRUgsTUFBTSxPQUFPLEdBQUc7UUFDZCxLQUFLLE9BQU8sRUFBRSxLQUFLLElBQUksV0FBVyxFQUFFO1FBQ3BDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7WUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUNsRCxJQUFJLEtBQUssQ0FBQyxXQUFXO2dCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN4RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekIsQ0FBQyxDQUFDO0tBQ0gsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFZCxPQUFPLENBQ0wsTUFBQyxVQUFVLENBQUMsUUFBUSxJQUFDLEtBQUssRUFBRSxRQUFRO1lBQ2xDLEtBQUMsU0FBUyxJQUFDLEtBQUssRUFBRSxRQUFRLFlBQ3hCLEtBQUMsV0FBVyxJQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUksR0FDdkIsRUFDWixlQUFLLFNBQVMsRUFBQyxxQ0FBcUM7b0JBQ2xELGVBQUssU0FBUyxFQUFDLGtDQUFrQzs0QkFDL0MsZUFBSyxTQUFTLEVBQUMseUNBQXlDO29DQUN0RCxhQUFJLEVBQUUsRUFBQyxLQUFLLFlBQ1YsWUFBRyxJQUFJLEVBQUMsTUFBTSxZQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksV0FBVyxHQUFLLEdBQy9DLEVBQ0osT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUNuQixZQUFHLFNBQVMsRUFBQyx3RkFBd0YsWUFDbkcsZ0JBQU0sU0FBUyxFQUFDLDJCQUEyQjtnREFDekMsS0FBQyxPQUFPLElBQUMsU0FBUyxFQUFDLFVBQVUsR0FBRzs0REFDdkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFDL0IsR0FDTCxDQUNMLElBQ0csRUFDTixjQUFLLFNBQVMsRUFBQyxXQUFXLFlBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN6QixtQkFBMEIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQzdDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBQyxTQUFTLElBQUMsU0FBUyxFQUFDLE1BQU0sR0FBRyxFQUN4QyxhQUFJLFNBQVMsRUFBQyxVQUFVLFlBQ3RCLEtBQUMsSUFBSSxJQUNILEVBQUUsRUFBQyxJQUFJLEVBQ1AsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUN0RCxTQUFTLEVBQUMsa0RBQWtELFlBRTNELEtBQUssQ0FBQyxLQUFLLEdBQ1AsR0FDSixFQUNKLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FDYixZQUFHLFNBQVMsRUFBQyxvQ0FBb0MsWUFDOUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FDckIsQ0FDTCxFQUNBLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FDcEIsWUFBRyxTQUFTLEVBQUMsNEJBQTRCLFlBQ3RDLEtBQUssQ0FBQyxXQUFXLEdBQ2hCLENBQ0wsS0FwQlcsS0FBSyxDQUFDLElBQUksQ0FxQmQsQ0FDWCxDQUFDLEdBQ0UsRUFDTixjQUFLLFNBQVMsRUFBQyxPQUFPLFlBQ3BCLEtBQUMsTUFBTSxLQUFHLEdBQ047NEJBQ0YsRUFDTixLQUFDLEdBQUcsSUFBQyxLQUFLLEVBQUUsUUFBUSxZQUNsQixLQUFDLFdBQVcsSUFBQyxPQUFPLEVBQUUsT0FBTyxHQUFJLEdBQzdCO29CQUNGO1lBQ2MsQ0FDdkIsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxJQUFZO0lBQzFCLE9BQU8sQ0FDTCxJQUFJO1NBQ0QsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7U0FDdkIsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FDZixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7UUFDL0MsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsT0FBTztRQUNkLEdBQUcsRUFBRSxTQUFTO0tBQ2YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbmsgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXJvdXRlclwiXG5pbXBvcnQgeyBIaXN0b3J5IH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiXG5pbXBvcnQge1xuICBjdXJyZW50U2VjdGlvbixcbiAgc2VjdGlvbkZsYXRBcnRpY2xlcyxcbiAgc29ydGVkQXJ0aWNsZXMsXG59IGZyb20gXCIuLi9jb250ZW50L2FydGljbGUudHNcIlxuaW1wb3J0IHsgU2VwYXJhdG9yIH0gZnJvbSBcIi4uL2VsZW1lbnRzL3NlcGFyYXRvci50c3hcIlxuaW1wb3J0IHsgVG9jQ29udGV4dCB9IGZyb20gXCIuLi9oZWxwZXJzL3RvYy1jb250ZXh0LnRzXCJcbmltcG9ydCB7IEZvb3RlciB9IGZyb20gXCIuL0Zvb3Rlci50c3hcIlxuaW1wb3J0IHsgUGFnZVRvb2xiYXIgfSBmcm9tIFwiLi9QYWdlVG9vbGJhci50c3hcIlxuaW1wb3J0IHsgTW9iaWxlVG9jLCBUb2MgfSBmcm9tIFwiLi9Ub2MudHN4XCJcblxuLyoqIEF1dG8tZ2VuZXJhdGVkIGNoYW5nZWxvZyBpbmRleCBsaXN0aW5nIGFsbCB2ZXJzaW9ucyBieSBkYXRlICovXG5leHBvcnQgZnVuY3Rpb24gQ2hhbmdlbG9nSW5kZXgocHJvcHM6IHsgc2VjdGlvblByZWZpeDogc3RyaW5nIH0pIHtcbiAgY29uc3Qgc2VjdGlvbiA9IGN1cnJlbnRTZWN0aW9uKHByb3BzLnNlY3Rpb25QcmVmaXgpXG4gIGNvbnN0IGZsYXQgPSBzZWN0aW9uRmxhdEFydGljbGVzLmdldChwcm9wcy5zZWN0aW9uUHJlZml4KSA/PyBbXVxuICBjb25zdCBlbnRyaWVzID0gZmxhdFxuICAgIC5tYXAocCA9PiBzb3J0ZWRBcnRpY2xlcy5maW5kKGEgPT4gYS5wYXRoID09PSBwKSlcbiAgICAuZmlsdGVyKGEgPT4gYSAhPT0gdW5kZWZpbmVkKVxuXG4gIGNvbnN0IHRvY0l0ZW1zID0gZW50cmllcy5tYXAoZW50cnkgPT4gKHtcbiAgICB1cmw6IGAjJHtzbHVnT2YoZW50cnkucGF0aCl9YCxcbiAgICB0aXRsZTogZW50cnkudGl0bGUsXG4gICAgZGVwdGg6IDIsXG4gIH0pKVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBbXG4gICAgYCMgJHtzZWN0aW9uPy50aXRsZSA/PyBcIkNoYW5nZWxvZ1wifWAsXG4gICAgLi4uZW50cmllcy5tYXAoZW50cnkgPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBbYCMjICR7ZW50cnkudGl0bGV9YF1cbiAgICAgIGlmIChlbnRyeS5kYXRlKSBwYXJ0cy5wdXNoKGZvcm1hdERhdGUoZW50cnkuZGF0ZSkpXG4gICAgICBpZiAoZW50cnkuZGVzY3JpcHRpb24pIHBhcnRzLnB1c2goXCJcIiwgZW50cnkuZGVzY3JpcHRpb24pXG4gICAgICByZXR1cm4gcGFydHMuam9pbihcIlxcblwiKVxuICAgIH0pLFxuICBdLmpvaW4oXCJcXG5cXG5cIilcblxuICByZXR1cm4gKFxuICAgIDxUb2NDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0b2NJdGVtc30+XG4gICAgICA8TW9iaWxlVG9jIGl0ZW1zPXt0b2NJdGVtc30+XG4gICAgICAgIDxQYWdlVG9vbGJhciBjb250ZW50PXtjb250ZW50fSAvPlxuICAgICAgPC9Nb2JpbGVUb2M+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC0xIGdhcC0xMCBwLTQgcHQtOCBtZDpwLTEwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTAgbXgtYXV0byBtYXgtdy0zeGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInByb3NlIGRhcms6cHJvc2UtaW52ZXJ0IG1heC13LW5vbmUgbWItOFwiPlxuICAgICAgICAgICAgPGgxIGlkPVwidG9wXCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCIjdG9wXCI+e3NlY3Rpb24/LnRpdGxlID8/IFwiQ2hhbmdlbG9nXCJ9PC9hPlxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIHtlbnRyaWVzWzBdPy5kYXRlICYmIChcbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC14LTMgZ2FwLXktMSB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCAhLW10LTQgIW1iLTBcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41XCI+XG4gICAgICAgICAgICAgICAgICA8SGlzdG9yeSBjbGFzc05hbWU9XCJzaXplLTMuNVwiIC8+XG4gICAgICAgICAgICAgICAgICBVcGRhdGVkIHtmb3JtYXREYXRlKGVudHJpZXNbMF0uZGF0ZSl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS02XCI+XG4gICAgICAgICAgICB7ZW50cmllcy5tYXAoKGVudHJ5LCBpKSA9PiAoXG4gICAgICAgICAgICAgIDxhcnRpY2xlIGtleT17ZW50cnkucGF0aH0gaWQ9e3NsdWdPZihlbnRyeS5wYXRoKX0+XG4gICAgICAgICAgICAgICAge2kgPiAwICYmIDxTZXBhcmF0b3IgY2xhc3NOYW1lPVwibWItNlwiIC8+fVxuICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bFwiPlxuICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgdG89XCIvJFwiXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcz17eyBfc3BsYXQ6IGVudHJ5LnBhdGgucmVwbGFjZSgvXlxcL3xcXC8kL2csIFwiXCIpIH19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIGhvdmVyOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtlbnRyeS50aXRsZX1cbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIHtlbnRyeS5kYXRlICYmIChcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG10LTFcIj5cbiAgICAgICAgICAgICAgICAgICAge2Zvcm1hdERhdGUoZW50cnkuZGF0ZSl9XG4gICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7ZW50cnkuZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAge2VudHJ5LmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMTBcIj5cbiAgICAgICAgICAgIDxGb290ZXIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxUb2MgaXRlbXM9e3RvY0l0ZW1zfT5cbiAgICAgICAgICA8UGFnZVRvb2xiYXIgY29udGVudD17Y29udGVudH0gLz5cbiAgICAgICAgPC9Ub2M+XG4gICAgICA8L2Rpdj5cbiAgICA8L1RvY0NvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZnVuY3Rpb24gc2x1Z09mKHBhdGg6IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIHBhdGhcbiAgICAgIC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgXCJcIilcbiAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgIC5wb3AoKSA/PyBcIlwiXG4gIClcbn1cblxuZnVuY3Rpb24gZm9ybWF0RGF0ZShpc286IHN0cmluZykge1xuICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1VU1wiLCB7XG4gICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgbW9udGg6IFwic2hvcnRcIixcbiAgICBkYXk6IFwibnVtZXJpY1wiLFxuICB9KVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function CodeBlock(props: React.ComponentProps<"pre">): import("react/jsx-runtime").JSX.Element;
|