livemark 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/build/actions/config/define.d.ts +6 -0
- package/build/actions/config/define.unit.js +8 -1
- package/build/actions/escape/copy.d.ts +11 -0
- package/build/actions/escape/copy.js +29 -0
- package/build/actions/escape/copy.unit.d.ts +1 -0
- package/build/actions/escape/copy.unit.js +37 -0
- package/build/actions/escape/list.d.ts +12 -0
- package/build/actions/escape/list.js +27 -0
- package/build/actions/escape/list.unit.d.ts +1 -0
- package/build/actions/escape/list.unit.js +36 -0
- package/build/actions/target/build.d.ts +9 -26
- package/build/actions/target/build.js +50 -71
- package/build/actions/target/build.unit.d.ts +1 -0
- package/build/actions/target/build.unit.js +76 -0
- package/build/actions/target/clear.d.ts +4 -0
- package/build/actions/target/clear.js +14 -0
- package/build/actions/target/clear.unit.d.ts +1 -0
- package/build/actions/target/clear.unit.js +23 -0
- package/build/commands/build.js +1 -2
- package/build/commands/clear.d.ts +5 -0
- package/build/commands/clear.js +15 -0
- package/build/commands/escape.d.ts +4 -3
- package/build/commands/escape.js +45 -48
- package/build/commands/preview.js +1 -2
- package/build/commands/start.js +1 -2
- package/build/components/Abbr.d.ts +1 -1
- package/build/components/Abbr.js +2 -4
- package/build/components/AnsiCode.d.ts +1 -1
- package/build/components/AnsiCode.js +2 -2
- package/build/components/Article.d.ts +2 -1
- package/build/components/Article.js +7 -14
- package/build/components/BackToTop.d.ts +1 -1
- package/build/components/Banner.d.ts +2 -2
- package/build/components/Banner.js +7 -3
- package/build/components/BlogIndex.d.ts +1 -1
- package/build/components/BlogIndex.js +2 -11
- package/build/components/Breadcrumbs.d.ts +1 -1
- package/build/components/Breadcrumbs.js +2 -3
- package/build/components/Callout.d.ts +1 -1
- package/build/components/Callout.js +5 -9
- package/build/components/Card.d.ts +1 -1
- package/build/components/Card.js +2 -3
- package/build/components/Cards.d.ts +1 -1
- package/build/components/ChangelogIndex.d.ts +1 -1
- package/build/components/ChangelogIndex.js +2 -11
- package/build/components/ChoiceList.d.ts +15 -0
- package/build/components/ChoiceList.js +13 -0
- package/build/components/CodeBlock.d.ts +1 -1
- package/build/components/CodeBlock.js +3 -16
- package/build/components/CodeTabs.d.ts +1 -1
- package/build/components/CodeTabs.js +2 -3
- package/build/components/Column.d.ts +1 -1
- package/build/components/Columns.d.ts +1 -1
- package/build/components/Content.d.ts +1 -1
- package/build/components/ContentTab.d.ts +1 -1
- package/build/components/ContentTabs.d.ts +1 -1
- package/build/components/ContentTabs.js +2 -3
- package/build/components/DefaultCatchBoundary.d.ts +1 -1
- package/build/components/DefaultCatchBoundary.js +5 -7
- package/build/components/DefinitionList.d.ts +3 -3
- package/build/components/Details.d.ts +1 -1
- package/build/components/Details.js +2 -5
- package/build/components/FileTree.d.ts +1 -1
- package/build/components/FileTree.js +3 -5
- package/build/components/Footer.d.ts +1 -1
- package/build/components/Footer.js +2 -5
- package/build/components/FootnoteRef.d.ts +1 -1
- package/build/components/FootnoteRef.js +2 -4
- package/build/components/Header.d.ts +6 -0
- package/build/components/Header.js +26 -0
- package/build/components/HeaderMenu.d.ts +2 -0
- package/build/components/HeaderMenu.js +27 -0
- package/build/components/HeaderNav.d.ts +6 -0
- package/build/components/HeaderNav.js +74 -0
- package/build/components/HeaderSearch.d.ts +4 -0
- package/build/components/HeaderSearch.js +33 -0
- package/build/components/Heading.d.ts +6 -6
- package/build/components/InlineBadge.d.ts +2 -2
- package/build/components/InlineBadge.js +1 -1
- package/build/components/InlineIcon.d.ts +1 -1
- package/build/components/InlineToc.d.ts +1 -1
- package/build/components/InlineToc.js +2 -4
- package/build/components/Layout.d.ts +2 -1
- package/build/components/Layout.js +5 -58
- package/build/components/LinkButton.d.ts +2 -2
- package/build/components/LinkButton.js +1 -1
- package/build/components/MenuSheet.d.ts +22 -0
- package/build/components/MenuSheet.js +27 -0
- package/build/components/Mermaid.d.ts +1 -1
- package/build/components/MermaidRenderer.d.ts +1 -1
- package/build/components/MermaidRenderer.js +20 -8
- package/build/components/NotFound.d.ts +1 -1
- package/build/components/NotFound.js +3 -6
- package/build/components/PackageTabs.d.ts +1 -1
- package/build/components/PackageTabs.js +3 -7
- package/build/components/PageToolbar.d.ts +1 -1
- package/build/components/PageToolbar.js +2 -10
- package/build/components/PrevNext.d.ts +1 -1
- package/build/components/PrevNext.js +2 -10
- package/build/components/Root.d.ts +4 -0
- package/build/components/Root.js +8 -0
- package/build/components/Search.d.ts +5 -2
- package/build/components/Search.js +11 -9
- package/build/components/SearchDialog.d.ts +1 -1
- package/build/components/SearchDialog.js +10 -133
- package/build/components/Section.d.ts +1 -1
- package/build/components/SectionHeader.d.ts +1 -1
- package/build/components/SheetPanel.d.ts +12 -0
- package/build/components/SheetPanel.js +19 -0
- package/build/components/Sidebar.d.ts +1 -1
- package/build/components/Sidebar.js +12 -14
- package/build/components/SidebarArticles.d.ts +4 -1
- package/build/components/SidebarArticles.js +5 -9
- package/build/components/SidebarLinks.d.ts +4 -1
- package/build/components/SidebarLinks.js +6 -9
- package/build/components/SidebarPosts.d.ts +4 -1
- package/build/components/SidebarPosts.js +7 -23
- package/build/components/SidebarReleases.d.ts +4 -1
- package/build/components/SidebarReleases.js +5 -15
- package/build/components/SidebarSectionPicker.d.ts +8 -0
- package/build/components/SidebarSectionPicker.js +31 -0
- package/build/components/SidebarSections.d.ts +1 -1
- package/build/components/SidebarSections.js +5 -9
- package/build/components/SiteLink.d.ts +1 -1
- package/build/components/SiteTitle.d.ts +1 -1
- package/build/components/SiteTitle.js +2 -6
- package/build/components/SortableTable.d.ts +1 -1
- package/build/components/SoundCloud.d.ts +1 -1
- package/build/components/SoundCloud.js +2 -2
- package/build/components/TagIndex.d.ts +1 -1
- package/build/components/TagIndex.js +2 -11
- package/build/components/Theme.d.ts +2 -1
- package/build/components/Theme.js +35 -15
- package/build/components/Toc.d.ts +5 -4
- package/build/components/Toc.js +35 -35
- package/build/components/YouTube.d.ts +1 -1
- package/build/components/YouTube.js +2 -2
- package/build/components/ZoomImage.d.ts +1 -1
- package/build/content-collections.js +5 -1
- package/build/elements/accordion.d.ts +4 -4
- package/build/elements/accordion.js +2 -3
- package/build/elements/alert-dialog.d.ts +12 -12
- package/build/elements/alert-dialog.js +2 -4
- package/build/elements/alert.d.ts +4 -4
- package/build/elements/alert.js +2 -2
- package/build/elements/aspect-ratio.d.ts +1 -1
- package/build/elements/avatar.d.ts +6 -6
- package/build/elements/badge.d.ts +1 -1
- package/build/elements/badge.js +3 -1
- package/build/elements/breadcrumb.d.ts +6 -6
- package/build/elements/breadcrumb.js +2 -4
- package/build/elements/button-group.d.ts +2 -2
- package/build/elements/button-group.js +5 -5
- package/build/elements/button.d.ts +2 -2
- package/build/elements/button.js +9 -7
- package/build/elements/calendar.d.ts +2 -2
- package/build/elements/calendar.js +2 -2
- package/build/elements/card.d.ts +7 -7
- package/build/elements/card.js +4 -4
- package/build/elements/carousel.d.ts +5 -5
- package/build/elements/carousel.js +3 -7
- package/build/elements/chart.d.ts +6 -6
- package/build/elements/chart.js +5 -11
- package/build/elements/checkbox.d.ts +1 -1
- package/build/elements/collapsible.d.ts +3 -3
- package/build/elements/command.d.ts +9 -9
- package/build/elements/command.js +5 -11
- package/build/elements/context-menu.d.ts +15 -15
- package/build/elements/context-menu.js +6 -9
- package/build/elements/dialog.d.ts +10 -10
- package/build/elements/dialog.js +2 -6
- package/build/elements/drawer.d.ts +14 -12
- package/build/elements/drawer.js +14 -15
- package/build/elements/dropdown-menu.d.ts +15 -15
- package/build/elements/dropdown-menu.js +7 -10
- package/build/elements/empty.d.ts +6 -6
- package/build/elements/empty.js +2 -2
- package/build/elements/field.d.ts +10 -10
- package/build/elements/field.js +3 -4
- package/build/elements/hover-card.d.ts +3 -3
- package/build/elements/hover-card.js +2 -2
- package/build/elements/input-group.d.ts +7 -7
- package/build/elements/input-group.js +5 -5
- package/build/elements/input-otp.d.ts +4 -4
- package/build/elements/input.d.ts +1 -1
- package/build/elements/input.js +2 -2
- package/build/elements/item.d.ts +9 -9
- package/build/elements/item.js +2 -2
- package/build/elements/kbd.d.ts +2 -2
- package/build/elements/label.d.ts +1 -1
- package/build/elements/menubar.d.ts +16 -16
- package/build/elements/menubar.js +9 -11
- package/build/elements/native-select.d.ts +3 -3
- package/build/elements/native-select.js +2 -4
- package/build/elements/navigation-menu.d.ts +8 -8
- package/build/elements/navigation-menu.js +3 -5
- package/build/elements/pagination.d.ts +7 -7
- package/build/elements/pagination.js +4 -10
- package/build/elements/popover.d.ts +6 -6
- package/build/elements/popover.js +2 -2
- package/build/elements/progress.d.ts +5 -5
- package/build/elements/progress.js +2 -3
- package/build/elements/radio-group.d.ts +2 -2
- package/build/elements/resizable.d.ts +3 -3
- package/build/elements/scroll-area.d.ts +2 -2
- package/build/elements/scroll-area.js +2 -4
- package/build/elements/select.d.ts +9 -9
- package/build/elements/select.js +4 -9
- package/build/elements/separator.d.ts +1 -1
- package/build/elements/sheet.d.ts +8 -8
- package/build/elements/sheet.js +2 -6
- package/build/elements/sidebar.d.ts +19 -19
- package/build/elements/sidebar.js +15 -37
- package/build/elements/skeleton.d.ts +1 -1
- package/build/elements/slider.d.ts +2 -1
- package/build/elements/slider.js +2 -3
- package/build/elements/sonner.d.ts +1 -1
- package/build/elements/spinner.d.ts +1 -1
- package/build/elements/switch.d.ts +1 -1
- package/build/elements/table.d.ts +8 -8
- package/build/elements/tabs.d.ts +4 -4
- package/build/elements/tabs.js +3 -3
- package/build/elements/textarea.d.ts +1 -1
- package/build/elements/textarea.js +2 -2
- package/build/elements/toggle-group.d.ts +3 -2
- package/build/elements/toggle-group.js +3 -3
- package/build/elements/toggle.d.ts +1 -1
- package/build/elements/toggle.js +2 -2
- package/build/elements/tooltip.d.ts +4 -4
- package/build/elements/tooltip.js +2 -3
- package/build/head.d.ts +4 -0
- package/build/head.js +6 -0
- package/build/helpers/article-search.d.ts +19 -0
- package/build/helpers/article-search.js +134 -0
- package/build/helpers/dependency-dir.d.ts +5 -0
- package/build/helpers/dependency-dir.js +20 -0
- package/build/helpers/dependency-dir.unit.d.ts +1 -0
- package/build/helpers/dependency-dir.unit.js +25 -0
- package/build/helpers/dynamic-icon-resolver.d.ts +1 -1
- package/build/helpers/dynamic-icon.d.ts +1 -1
- package/build/helpers/head.d.ts +53 -0
- package/build/helpers/head.js +69 -0
- package/build/helpers/head.unit.d.ts +1 -0
- package/build/helpers/head.unit.js +108 -0
- package/build/helpers/nav-items.d.ts +11 -0
- package/build/helpers/nav-items.js +65 -0
- package/build/helpers/render-inline-markdown.d.ts +1 -0
- package/build/helpers/render-inline-markdown.js +34 -0
- package/build/helpers/render-inline-markdown.unit.d.ts +1 -0
- package/build/helpers/render-inline-markdown.unit.js +20 -0
- package/build/helpers/search-highlight.d.ts +8 -0
- package/build/helpers/search-highlight.js +59 -0
- package/build/helpers/search-highlight.unit.d.ts +1 -0
- package/build/helpers/search-highlight.unit.js +36 -0
- package/build/helpers/target-export.d.ts +9 -0
- package/build/helpers/target-export.js +24 -0
- package/build/helpers/target-export.unit.d.ts +1 -0
- package/build/helpers/target-export.unit.js +25 -0
- package/build/helpers/theme.d.ts +6 -2
- package/build/helpers/theme.js +40 -7
- package/build/helpers/theme.unit.d.ts +1 -0
- package/build/helpers/theme.unit.js +30 -0
- package/build/hooks/hydrated.d.ts +2 -0
- package/build/hooks/hydrated.js +15 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -1
- package/build/models/config.d.ts +32 -6
- package/build/models/config.js +10 -1
- package/build/models/section.d.ts +4 -2
- package/build/models/section.js +1 -1
- package/build/plugins/vite-livemark.d.ts +4 -5
- package/build/plugins/vite-livemark.js +56 -90
- package/build/program.js +4 -2
- package/build/routes/$.d.ts +4 -1
- package/build/routes/$.js +20 -9
- package/build/routes/__root.js +29 -63
- package/build/settings.js +2 -1
- package/package.json +68 -66
- package/{.agents/skills → skills}/livemark-authoring/SKILL.md +2 -2
- package/{.agents/skills → skills}/livemark-configuration/SKILL.md +12 -5
- package/skills/livemark-customization/SKILL.md +145 -0
- package/source/actions/config/define.unit.ts +9 -0
- package/source/actions/escape/copy.ts +35 -0
- package/source/actions/escape/copy.unit.ts +51 -0
- package/source/actions/escape/list.ts +30 -0
- package/source/actions/escape/list.unit.ts +42 -0
- package/source/actions/target/build.ts +49 -69
- package/source/actions/target/build.unit.ts +95 -0
- package/source/actions/target/clear.ts +14 -0
- package/source/actions/target/clear.unit.ts +25 -0
- package/source/commands/build.ts +0 -1
- package/source/commands/clear.ts +15 -0
- package/source/commands/escape.ts +42 -59
- package/source/commands/preview.ts +0 -1
- package/source/commands/start.ts +0 -1
- package/source/components/AnsiCode.tsx +1 -1
- package/source/components/Article.tsx +8 -4
- package/source/components/Banner.tsx +12 -2
- package/source/components/BlogIndex.tsx +1 -1
- package/source/components/Callout.tsx +4 -6
- package/source/components/ChangelogIndex.tsx +1 -1
- package/source/components/ChoiceList.tsx +69 -0
- package/source/components/CodeBlock.tsx +6 -6
- package/source/components/CodeTabs.tsx +1 -1
- package/source/components/ContentTabs.tsx +1 -1
- package/source/components/DefaultCatchBoundary.tsx +4 -6
- package/source/components/Details.tsx +1 -1
- package/source/components/FileTree.tsx +1 -1
- package/source/components/Header.tsx +52 -0
- package/source/components/HeaderMenu.tsx +41 -0
- package/source/components/HeaderNav.tsx +145 -0
- package/source/components/HeaderSearch.tsx +77 -0
- package/source/components/InlineBadge.tsx +1 -1
- package/source/components/InlineToc.tsx +1 -1
- package/source/components/Layout.tsx +16 -160
- package/source/components/LinkButton.tsx +9 -1
- package/source/components/MenuSheet.tsx +92 -0
- package/source/components/MermaidRenderer.tsx +19 -8
- package/source/components/NotFound.tsx +3 -5
- package/source/components/PackageTabs.tsx +2 -2
- package/source/components/PageToolbar.tsx +11 -3
- package/source/components/PrevNext.tsx +2 -2
- package/source/components/Root.tsx +13 -0
- package/source/components/Search.tsx +28 -8
- package/source/components/SearchDialog.tsx +15 -189
- package/source/components/SheetPanel.tsx +69 -0
- package/source/components/Sidebar.tsx +27 -14
- package/source/components/SidebarArticles.tsx +4 -3
- package/source/components/SidebarLinks.tsx +3 -2
- package/source/components/SidebarPosts.tsx +3 -2
- package/source/components/SidebarReleases.tsx +3 -2
- package/source/components/SidebarSectionPicker.tsx +70 -0
- package/source/components/SiteTitle.tsx +5 -5
- package/source/components/SoundCloud.tsx +1 -1
- package/source/components/TagIndex.tsx +1 -1
- package/source/components/Theme.tsx +55 -29
- package/source/components/Toc.tsx +76 -55
- package/source/components/YouTube.tsx +1 -1
- package/source/content-collections.ts +4 -0
- package/source/elements/alert-dialog.tsx +1 -1
- package/source/elements/alert.tsx +1 -1
- package/source/elements/badge.tsx +4 -0
- package/source/elements/button-group.tsx +4 -4
- package/source/elements/button.tsx +10 -6
- package/source/elements/calendar.tsx +1 -1
- package/source/elements/card.tsx +3 -3
- package/source/elements/command.tsx +7 -4
- package/source/elements/context-menu.tsx +5 -5
- package/source/elements/dialog.tsx +1 -1
- package/source/elements/drawer.tsx +59 -43
- package/source/elements/dropdown-menu.tsx +6 -6
- package/source/elements/empty.tsx +1 -1
- package/source/elements/field.tsx +1 -1
- package/source/elements/hover-card.tsx +1 -1
- package/source/elements/input-group.tsx +4 -4
- package/source/elements/input.tsx +1 -1
- package/source/elements/item.tsx +1 -1
- package/source/elements/menubar.tsx +8 -8
- package/source/elements/native-select.tsx +1 -1
- package/source/elements/popover.tsx +1 -1
- package/source/elements/select.tsx +3 -3
- package/source/elements/sidebar.tsx +8 -21
- package/source/elements/tabs.tsx +2 -2
- package/source/elements/textarea.tsx +1 -1
- package/source/elements/toggle-group.tsx +2 -2
- package/source/elements/toggle.tsx +1 -1
- package/source/env.d.ts +1 -0
- package/source/head.ts +7 -0
- package/source/helpers/article-search.tsx +192 -0
- package/source/helpers/dependency-dir.ts +20 -0
- package/source/helpers/dependency-dir.unit.ts +39 -0
- package/source/helpers/head.ts +94 -0
- package/source/helpers/head.unit.ts +116 -0
- package/source/helpers/nav-items.tsx +102 -0
- package/source/helpers/render-inline-markdown.ts +44 -0
- package/source/helpers/render-inline-markdown.unit.ts +30 -0
- package/source/helpers/search-highlight.ts +73 -0
- package/source/helpers/search-highlight.unit.ts +42 -0
- package/source/helpers/target-export.ts +28 -0
- package/source/helpers/target-export.unit.ts +37 -0
- package/source/helpers/theme.ts +40 -6
- package/source/helpers/theme.unit.ts +32 -0
- package/source/hooks/hydrated.ts +18 -0
- package/source/index.ts +1 -0
- package/source/models/config.ts +13 -0
- package/source/models/section.ts +3 -0
- package/source/plugins/vite-livemark.ts +54 -95
- package/source/program.ts +2 -0
- package/source/routes/$.tsx +27 -9
- package/source/routes/__root.tsx +51 -71
- package/source/settings.ts +1 -0
- package/source/styles/general.css +59 -11
- package/source/styles/markdown.css +13 -7
- package/source/styles/shape.css +14 -0
- package/.agents/skills/change-review/SKILL.md +0 -47
- package/.agents/skills/livemark-customization/SKILL.md +0 -118
package/build/helpers/theme.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
const STORAGE_KEY = "livemark-theme";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
const DARK_QUERY = "(prefers-color-scheme: dark)";
|
|
3
|
+
export function resolveTheme(pref, prefersDark) {
|
|
4
|
+
if (pref === "system")
|
|
5
|
+
return prefersDark ? "dark" : "light";
|
|
6
|
+
return pref;
|
|
5
7
|
}
|
|
6
8
|
export function activateTheme(theme) {
|
|
7
9
|
if (theme === "dark") {
|
|
@@ -16,8 +18,39 @@ export function getCurrentTheme() {
|
|
|
16
18
|
? "dark"
|
|
17
19
|
: "light";
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
// Mirrors `buildThemeScript`: anything but an explicit light or dark follows the OS.
|
|
22
|
+
export function getThemePref() {
|
|
23
|
+
let stored = null;
|
|
24
|
+
try {
|
|
25
|
+
stored = localStorage.getItem(STORAGE_KEY);
|
|
26
|
+
}
|
|
27
|
+
catch { }
|
|
28
|
+
return stored === "light" || stored === "dark" ? stored : "system";
|
|
29
|
+
}
|
|
30
|
+
export function setTheme(pref) {
|
|
31
|
+
applyThemePref(pref);
|
|
32
|
+
try {
|
|
33
|
+
localStorage.setItem(STORAGE_KEY, pref);
|
|
34
|
+
}
|
|
35
|
+
catch { }
|
|
36
|
+
}
|
|
37
|
+
// Returns the OS listener's cleanup, so an effect StrictMode runs twice keeps one.
|
|
38
|
+
export function startTheme() {
|
|
39
|
+
const query = matchMedia(DARK_QUERY);
|
|
40
|
+
const handleChange = () => {
|
|
41
|
+
if (getThemePref() === "system")
|
|
42
|
+
applyThemePref("system");
|
|
43
|
+
};
|
|
44
|
+
applyThemePref(getThemePref());
|
|
45
|
+
query.addEventListener("change", handleChange);
|
|
46
|
+
return () => query.removeEventListener("change", handleChange);
|
|
47
|
+
}
|
|
48
|
+
// The pre-paint twin of `startTheme`, inlined in <head> so a dark reader never sees
|
|
49
|
+
// the light palette flash before hydration.
|
|
50
|
+
export function buildThemeScript() {
|
|
51
|
+
return `try{var t=localStorage.getItem(${JSON.stringify(STORAGE_KEY)})}catch(e){}if(t==="dark"||(t!=="light"&&matchMedia(${JSON.stringify(DARK_QUERY)}).matches))document.documentElement.classList.add("dark");`;
|
|
52
|
+
}
|
|
53
|
+
function applyThemePref(pref) {
|
|
54
|
+
activateTheme(resolveTheme(pref, matchMedia(DARK_QUERY).matches));
|
|
22
55
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaGVscGVycy90aGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQTtBQUNwQyxNQUFNLFVBQVUsR0FBRyw4QkFBOEIsQ0FBQTtBQUtqRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQWUsRUFBRSxXQUFvQjtJQUNoRSxJQUFJLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO0lBQzVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBWTtJQUN4QyxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNyQixVQUFVLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNELENBQUM7U0FBTSxDQUFDO1FBQ04sVUFBVSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDcEUsQ0FBQyxDQUFDLE1BQU07UUFDUixDQUFDLENBQUMsT0FBTyxDQUFBO0FBQ2IsQ0FBQztBQUVELHFGQUFxRjtBQUNyRixNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLE1BQU0sR0FBa0IsSUFBSSxDQUFBO0lBQ2hDLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO0lBQ1YsT0FBTyxNQUFNLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO0FBQ3BFLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQWU7SUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BCLElBQUksQ0FBQztRQUNILFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO0FBQ1osQ0FBQztBQUVELG1GQUFtRjtBQUNuRixNQUFNLFVBQVUsVUFBVTtJQUN4QixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDcEMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLElBQUksWUFBWSxFQUFFLEtBQUssUUFBUTtZQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMzRCxDQUFDLENBQUE7SUFDRCxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUM5QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzlDLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQTtBQUNoRSxDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLDRDQUE0QztBQUM1QyxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sa0NBQWtDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLHVEQUF1RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyw0REFBNEQsQ0FBQTtBQUNuTixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsSUFBZTtJQUNyQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU1RPUkFHRV9LRVkgPSBcImxpdmVtYXJrLXRoZW1lXCJcbmNvbnN0IERBUktfUVVFUlkgPSBcIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylcIlxuXG5leHBvcnQgdHlwZSBUaGVtZSA9IFwibGlnaHRcIiB8IFwiZGFya1wiXG5leHBvcnQgdHlwZSBUaGVtZVByZWYgPSBUaGVtZSB8IFwic3lzdGVtXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUaGVtZShwcmVmOiBUaGVtZVByZWYsIHByZWZlcnNEYXJrOiBib29sZWFuKTogVGhlbWUge1xuICBpZiAocHJlZiA9PT0gXCJzeXN0ZW1cIikgcmV0dXJuIHByZWZlcnNEYXJrID8gXCJkYXJrXCIgOiBcImxpZ2h0XCJcbiAgcmV0dXJuIHByZWZcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGl2YXRlVGhlbWUodGhlbWU6IFRoZW1lKSB7XG4gIGlmICh0aGVtZSA9PT0gXCJkYXJrXCIpIHtcbiAgICBnbG9iYWxUaGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKVxuICB9IGVsc2Uge1xuICAgIGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRUaGVtZSgpOiBUaGVtZSB7XG4gIHJldHVybiBnbG9iYWxUaGlzLmRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiZGFya1wiKVxuICAgID8gXCJkYXJrXCJcbiAgICA6IFwibGlnaHRcIlxufVxuXG4vLyBNaXJyb3JzIGBidWlsZFRoZW1lU2NyaXB0YDogYW55dGhpbmcgYnV0IGFuIGV4cGxpY2l0IGxpZ2h0IG9yIGRhcmsgZm9sbG93cyB0aGUgT1MuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhlbWVQcmVmKCk6IFRoZW1lUHJlZiB7XG4gIGxldCBzdG9yZWQ6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIHRyeSB7XG4gICAgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpXG4gIH0gY2F0Y2gge31cbiAgcmV0dXJuIHN0b3JlZCA9PT0gXCJsaWdodFwiIHx8IHN0b3JlZCA9PT0gXCJkYXJrXCIgPyBzdG9yZWQgOiBcInN5c3RlbVwiXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUaGVtZShwcmVmOiBUaGVtZVByZWYpIHtcbiAgYXBwbHlUaGVtZVByZWYocHJlZilcbiAgdHJ5IHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSwgcHJlZilcbiAgfSBjYXRjaCB7fVxufVxuXG4vLyBSZXR1cm5zIHRoZSBPUyBsaXN0ZW5lcidzIGNsZWFudXAsIHNvIGFuIGVmZmVjdCBTdHJpY3RNb2RlIHJ1bnMgdHdpY2Uga2VlcHMgb25lLlxuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0VGhlbWUoKSB7XG4gIGNvbnN0IHF1ZXJ5ID0gbWF0Y2hNZWRpYShEQVJLX1FVRVJZKVxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKGdldFRoZW1lUHJlZigpID09PSBcInN5c3RlbVwiKSBhcHBseVRoZW1lUHJlZihcInN5c3RlbVwiKVxuICB9XG4gIGFwcGx5VGhlbWVQcmVmKGdldFRoZW1lUHJlZigpKVxuICBxdWVyeS5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIGhhbmRsZUNoYW5nZSlcbiAgcmV0dXJuICgpID0+IHF1ZXJ5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgaGFuZGxlQ2hhbmdlKVxufVxuXG4vLyBUaGUgcHJlLXBhaW50IHR3aW4gb2YgYHN0YXJ0VGhlbWVgLCBpbmxpbmVkIGluIDxoZWFkPiBzbyBhIGRhcmsgcmVhZGVyIG5ldmVyIHNlZXNcbi8vIHRoZSBsaWdodCBwYWxldHRlIGZsYXNoIGJlZm9yZSBoeWRyYXRpb24uXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUaGVtZVNjcmlwdCgpIHtcbiAgcmV0dXJuIGB0cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oJHtKU09OLnN0cmluZ2lmeShTVE9SQUdFX0tFWSl9KX1jYXRjaChlKXt9aWYodD09PVwiZGFya1wifHwodCE9PVwibGlnaHRcIiYmbWF0Y2hNZWRpYSgke0pTT04uc3RyaW5naWZ5KERBUktfUVVFUlkpfSkubWF0Y2hlcykpZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJkYXJrXCIpO2Bcbn1cblxuZnVuY3Rpb24gYXBwbHlUaGVtZVByZWYocHJlZjogVGhlbWVQcmVmKSB7XG4gIGFjdGl2YXRlVGhlbWUocmVzb2x2ZVRoZW1lKHByZWYsIG1hdGNoTWVkaWEoREFSS19RVUVSWSkubWF0Y2hlcykpXG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vite-plus/test";
|
|
2
|
+
import { buildThemeScript, resolveTheme } from "./theme.js";
|
|
3
|
+
function runThemeScript(stored, prefersDark) {
|
|
4
|
+
const classes = new Set();
|
|
5
|
+
vi.stubGlobal("localStorage", { getItem: () => stored });
|
|
6
|
+
vi.stubGlobal("matchMedia", () => ({ matches: prefersDark }));
|
|
7
|
+
vi.stubGlobal("document", {
|
|
8
|
+
documentElement: { classList: { add: (name) => classes.add(name) } },
|
|
9
|
+
});
|
|
10
|
+
new Function(buildThemeScript())();
|
|
11
|
+
vi.unstubAllGlobals();
|
|
12
|
+
return classes.has("dark") ? "dark" : "light";
|
|
13
|
+
}
|
|
14
|
+
describe("buildThemeScript", () => {
|
|
15
|
+
it.each([
|
|
16
|
+
["light", false],
|
|
17
|
+
["light", true],
|
|
18
|
+
["dark", false],
|
|
19
|
+
["dark", true],
|
|
20
|
+
["system", false],
|
|
21
|
+
["system", true],
|
|
22
|
+
])("paints what resolveTheme(%s, prefersDark %s) does", (pref, dark) => {
|
|
23
|
+
expect(runThemeScript(pref, dark)).toBe(resolveTheme(pref, dark));
|
|
24
|
+
});
|
|
25
|
+
it.each([null, "", "auto"])("follows the OS for a stored %j", stored => {
|
|
26
|
+
expect(runThemeScript(stored, true)).toBe("dark");
|
|
27
|
+
expect(runThemeScript(stored, false)).toBe("light");
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUudW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9oZWxwZXJzL3RoZW1lLnVuaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFM0QsU0FBUyxjQUFjLENBQUMsTUFBcUIsRUFBRSxXQUFvQjtJQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQ2pDLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDeEQsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDN0QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUU7UUFDeEIsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7S0FDN0UsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFDbEMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDckIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvQyxDQUFDO0FBRUQsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNoQyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ04sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQ2hCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztRQUNmLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztRQUNmLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUNkLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztRQUNqQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7S0FDUixDQUFDLENBQUMsbURBQW1ELEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDOUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFNLENBQUMsRUFBRTtRQUNyRSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNqRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyRCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSBcInZpdGUtcGx1cy90ZXN0XCJcbmltcG9ydCB7IGJ1aWxkVGhlbWVTY3JpcHQsIHJlc29sdmVUaGVtZSB9IGZyb20gXCIuL3RoZW1lLnRzXCJcblxuZnVuY3Rpb24gcnVuVGhlbWVTY3JpcHQoc3RvcmVkOiBzdHJpbmcgfCBudWxsLCBwcmVmZXJzRGFyazogYm9vbGVhbikge1xuICBjb25zdCBjbGFzc2VzID0gbmV3IFNldDxzdHJpbmc+KClcbiAgdmkuc3R1Ykdsb2JhbChcImxvY2FsU3RvcmFnZVwiLCB7IGdldEl0ZW06ICgpID0+IHN0b3JlZCB9KVxuICB2aS5zdHViR2xvYmFsKFwibWF0Y2hNZWRpYVwiLCAoKSA9PiAoeyBtYXRjaGVzOiBwcmVmZXJzRGFyayB9KSlcbiAgdmkuc3R1Ykdsb2JhbChcImRvY3VtZW50XCIsIHtcbiAgICBkb2N1bWVudEVsZW1lbnQ6IHsgY2xhc3NMaXN0OiB7IGFkZDogKG5hbWU6IHN0cmluZykgPT4gY2xhc3Nlcy5hZGQobmFtZSkgfSB9LFxuICB9KVxuICBuZXcgRnVuY3Rpb24oYnVpbGRUaGVtZVNjcmlwdCgpKSgpXG4gIHZpLnVuc3R1YkFsbEdsb2JhbHMoKVxuICByZXR1cm4gY2xhc3Nlcy5oYXMoXCJkYXJrXCIpID8gXCJkYXJrXCIgOiBcImxpZ2h0XCJcbn1cblxuZGVzY3JpYmUoXCJidWlsZFRoZW1lU2NyaXB0XCIsICgpID0+IHtcbiAgaXQuZWFjaChbXG4gICAgW1wibGlnaHRcIiwgZmFsc2VdLFxuICAgIFtcImxpZ2h0XCIsIHRydWVdLFxuICAgIFtcImRhcmtcIiwgZmFsc2VdLFxuICAgIFtcImRhcmtcIiwgdHJ1ZV0sXG4gICAgW1wic3lzdGVtXCIsIGZhbHNlXSxcbiAgICBbXCJzeXN0ZW1cIiwgdHJ1ZV0sXG4gIF0gYXMgY29uc3QpKFwicGFpbnRzIHdoYXQgcmVzb2x2ZVRoZW1lKCVzLCBwcmVmZXJzRGFyayAlcykgZG9lc1wiLCAocHJlZiwgZGFyaykgPT4ge1xuICAgIGV4cGVjdChydW5UaGVtZVNjcmlwdChwcmVmLCBkYXJrKSkudG9CZShyZXNvbHZlVGhlbWUocHJlZiwgZGFyaykpXG4gIH0pXG5cbiAgaXQuZWFjaChbbnVsbCwgXCJcIiwgXCJhdXRvXCJdKShcImZvbGxvd3MgdGhlIE9TIGZvciBhIHN0b3JlZCAlalwiLCBzdG9yZWQgPT4ge1xuICAgIGV4cGVjdChydW5UaGVtZVNjcmlwdChzdG9yZWQsIHRydWUpKS50b0JlKFwiZGFya1wiKVxuICAgIGV4cGVjdChydW5UaGVtZVNjcmlwdChzdG9yZWQsIGZhbHNlKSkudG9CZShcImxpZ2h0XCIpXG4gIH0pXG59KVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useSyncExternalStore } from "react";
|
|
2
|
+
/** False during SSR and the hydrating render, true from the first client render on. */
|
|
3
|
+
export function useHydrated() {
|
|
4
|
+
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
5
|
+
}
|
|
6
|
+
function subscribe() {
|
|
7
|
+
return () => { };
|
|
8
|
+
}
|
|
9
|
+
function getSnapshot() {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
function getServerSnapshot() {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlkcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvaG9va3MvaHlkcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRTVDLHVGQUF1RjtBQUN2RixNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQUN4RSxDQUFDO0FBRUQsU0FBUyxTQUFTO0lBQ2hCLE9BQU8sR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFBO0FBQ2pCLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDO0FBRUQsU0FBUyxpQkFBaUI7SUFDeEIsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3luY0V4dGVybmFsU3RvcmUgfSBmcm9tIFwicmVhY3RcIlxuXG4vKiogRmFsc2UgZHVyaW5nIFNTUiBhbmQgdGhlIGh5ZHJhdGluZyByZW5kZXIsIHRydWUgZnJvbSB0aGUgZmlyc3QgY2xpZW50IHJlbmRlciBvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VIeWRyYXRlZCgpIHtcbiAgcmV0dXJuIHVzZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KVxufVxuXG5mdW5jdGlvbiBzdWJzY3JpYmUoKSB7XG4gIHJldHVybiAoKSA9PiB7fVxufVxuXG5mdW5jdGlvbiBnZXRTbmFwc2hvdCgpIHtcbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gZ2V0U2VydmVyU25hcHNob3QoKSB7XG4gIHJldHVybiBmYWxzZVxufVxuIl19
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { defineConfig } from "./actions/config/define.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vYWN0aW9ucy9jb25maWcvZGVmaW5lLnRzXCJcbmV4cG9ydCB0eXBlIHsgUm9vdEhlYWQgfSBmcm9tIFwiLi9oZWxwZXJzL2hlYWQudHNcIlxuIl19
|
package/build/models/config.d.ts
CHANGED
|
@@ -13,6 +13,14 @@ export type ViteOverride = ViteUserConfig | ((env: ConfigEnv) => ViteUserConfig
|
|
|
13
13
|
* `/repo/` in production for GitHub Pages). The build pipeline
|
|
14
14
|
* resolves it to a string before any runtime sees it. */
|
|
15
15
|
export type Base = string | ((command: "build" | "serve") => string | undefined);
|
|
16
|
+
/** Extra site-wide `<head>` tags, appended after Livemark's defaults. A meta tag
|
|
17
|
+
* sharing a default's `name` or `property` replaces it. */
|
|
18
|
+
export type Head = z.infer<typeof Head>;
|
|
19
|
+
export declare const Head: z.ZodObject<{
|
|
20
|
+
meta: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
21
|
+
links: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
22
|
+
scripts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
16
24
|
/**
|
|
17
25
|
* User-provided configuration for Livemark.
|
|
18
26
|
*
|
|
@@ -32,6 +40,7 @@ export declare const UserConfig: z.ZodObject<{
|
|
|
32
40
|
logo: z.ZodOptional<z.ZodString>;
|
|
33
41
|
title: z.ZodDefault<z.ZodString>;
|
|
34
42
|
description: z.ZodDefault<z.ZodString>;
|
|
43
|
+
banner: z.ZodOptional<z.ZodString>;
|
|
35
44
|
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
36
45
|
exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
37
46
|
codeThemeLight: z.ZodDefault<z.ZodEnum<{
|
|
@@ -113,7 +122,7 @@ export declare const UserConfig: z.ZodObject<{
|
|
|
113
122
|
sidebar: "sidebar";
|
|
114
123
|
}>>;
|
|
115
124
|
}, z.core.$strip>>>;
|
|
116
|
-
sections: z.ZodOptional<z.ZodArray<z.
|
|
125
|
+
sections: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
117
126
|
icon: z.ZodOptional<z.ZodString>;
|
|
118
127
|
title: z.ZodString;
|
|
119
128
|
position: z.ZodDefault<z.ZodEnum<{
|
|
@@ -163,7 +172,7 @@ export declare const UserConfig: z.ZodObject<{
|
|
|
163
172
|
siteLink: z.ZodOptional<z.ZodString>;
|
|
164
173
|
type: z.ZodLiteral<"custom">;
|
|
165
174
|
url: z.ZodString;
|
|
166
|
-
}, z.core.$strip>], "type"
|
|
175
|
+
}, z.core.$strip>], "type">, unknown>>>;
|
|
167
176
|
patches: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
168
177
|
file: z.ZodString;
|
|
169
178
|
article: z.ZodObject<{
|
|
@@ -186,6 +195,11 @@ export declare const UserConfig: z.ZodObject<{
|
|
|
186
195
|
}>>>;
|
|
187
196
|
}, z.core.$strict>;
|
|
188
197
|
}, z.core.$strip>>>;
|
|
198
|
+
head: z.ZodOptional<z.ZodObject<{
|
|
199
|
+
meta: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
200
|
+
links: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
201
|
+
scripts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
202
|
+
}, z.core.$strip>>;
|
|
189
203
|
vite: z.ZodOptional<z.ZodUnknown>;
|
|
190
204
|
}, z.core.$strip>;
|
|
191
205
|
/** Website configuration injected at build time via Vite define.
|
|
@@ -198,6 +212,7 @@ export declare const WebsiteConfig: z.ZodObject<{
|
|
|
198
212
|
logo: z.ZodOptional<z.ZodString>;
|
|
199
213
|
title: z.ZodDefault<z.ZodString>;
|
|
200
214
|
description: z.ZodDefault<z.ZodString>;
|
|
215
|
+
banner: z.ZodOptional<z.ZodString>;
|
|
201
216
|
links: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
202
217
|
url: z.ZodString;
|
|
203
218
|
title: z.ZodString;
|
|
@@ -208,7 +223,7 @@ export declare const WebsiteConfig: z.ZodObject<{
|
|
|
208
223
|
sidebar: "sidebar";
|
|
209
224
|
}>>;
|
|
210
225
|
}, z.core.$strip>>>;
|
|
211
|
-
sections: z.ZodOptional<z.ZodArray<z.
|
|
226
|
+
sections: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
212
227
|
icon: z.ZodOptional<z.ZodString>;
|
|
213
228
|
title: z.ZodString;
|
|
214
229
|
position: z.ZodDefault<z.ZodEnum<{
|
|
@@ -258,7 +273,12 @@ export declare const WebsiteConfig: z.ZodObject<{
|
|
|
258
273
|
siteLink: z.ZodOptional<z.ZodString>;
|
|
259
274
|
type: z.ZodLiteral<"custom">;
|
|
260
275
|
url: z.ZodString;
|
|
261
|
-
}, z.core.$strip>], "type"
|
|
276
|
+
}, z.core.$strip>], "type">, unknown>>>;
|
|
277
|
+
head: z.ZodOptional<z.ZodObject<{
|
|
278
|
+
meta: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
279
|
+
links: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
280
|
+
scripts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
281
|
+
}, z.core.$strip>>;
|
|
262
282
|
base: z.ZodOptional<z.ZodString>;
|
|
263
283
|
}, z.core.$strip>;
|
|
264
284
|
/**
|
|
@@ -288,6 +308,7 @@ export declare const Config: z.ZodObject<{
|
|
|
288
308
|
logo: z.ZodOptional<z.ZodString>;
|
|
289
309
|
title: z.ZodDefault<z.ZodString>;
|
|
290
310
|
description: z.ZodDefault<z.ZodString>;
|
|
311
|
+
banner: z.ZodOptional<z.ZodString>;
|
|
291
312
|
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
292
313
|
exclude: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
293
314
|
codeThemeLight: z.ZodDefault<z.ZodEnum<{
|
|
@@ -369,7 +390,7 @@ export declare const Config: z.ZodObject<{
|
|
|
369
390
|
sidebar: "sidebar";
|
|
370
391
|
}>>;
|
|
371
392
|
}, z.core.$strip>>>;
|
|
372
|
-
sections: z.ZodOptional<z.ZodArray<z.
|
|
393
|
+
sections: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
373
394
|
icon: z.ZodOptional<z.ZodString>;
|
|
374
395
|
title: z.ZodString;
|
|
375
396
|
position: z.ZodDefault<z.ZodEnum<{
|
|
@@ -419,7 +440,7 @@ export declare const Config: z.ZodObject<{
|
|
|
419
440
|
siteLink: z.ZodOptional<z.ZodString>;
|
|
420
441
|
type: z.ZodLiteral<"custom">;
|
|
421
442
|
url: z.ZodString;
|
|
422
|
-
}, z.core.$strip>], "type"
|
|
443
|
+
}, z.core.$strip>], "type">, unknown>>>;
|
|
423
444
|
patches: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
424
445
|
file: z.ZodString;
|
|
425
446
|
article: z.ZodObject<{
|
|
@@ -442,6 +463,11 @@ export declare const Config: z.ZodObject<{
|
|
|
442
463
|
}>>>;
|
|
443
464
|
}, z.core.$strict>;
|
|
444
465
|
}, z.core.$strip>>>;
|
|
466
|
+
head: z.ZodOptional<z.ZodObject<{
|
|
467
|
+
meta: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
468
|
+
links: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
469
|
+
scripts: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
470
|
+
}, z.core.$strip>>;
|
|
445
471
|
vite: z.ZodOptional<z.ZodUnknown>;
|
|
446
472
|
root: z.ZodString;
|
|
447
473
|
configPath: z.ZodString;
|
package/build/models/config.js
CHANGED
|
@@ -3,6 +3,11 @@ import { Link } from "./link.js";
|
|
|
3
3
|
import { Patch } from "./patch.js";
|
|
4
4
|
import { Section } from "./section.js";
|
|
5
5
|
import { CodeThemeDark, CodeThemeLight } from "./theme.js";
|
|
6
|
+
export const Head = z.object({
|
|
7
|
+
meta: z.array(z.record(z.string(), z.string())).optional(),
|
|
8
|
+
links: z.array(z.record(z.string(), z.string())).optional(),
|
|
9
|
+
scripts: z.array(z.record(z.string(), z.string())).optional(),
|
|
10
|
+
});
|
|
6
11
|
export const UserConfig = z.object({
|
|
7
12
|
site: z.string().optional(),
|
|
8
13
|
// Stored as `unknown` in the schema (zod can't type a function and
|
|
@@ -15,6 +20,7 @@ export const UserConfig = z.object({
|
|
|
15
20
|
logo: z.string().optional(),
|
|
16
21
|
title: z.string().default("Livemark"),
|
|
17
22
|
description: z.string().default("Markdown site generator"),
|
|
23
|
+
banner: z.string().optional(),
|
|
18
24
|
include: z.union([z.string(), z.array(z.string())]).default("**/*.md"),
|
|
19
25
|
exclude: z.union([z.string(), z.array(z.string())]).optional(),
|
|
20
26
|
codeThemeLight: CodeThemeLight.default("catppuccin-latte"),
|
|
@@ -22,6 +28,7 @@ export const UserConfig = z.object({
|
|
|
22
28
|
links: z.array(Link).optional(),
|
|
23
29
|
sections: z.array(Section).optional(),
|
|
24
30
|
patches: z.array(Patch).optional(),
|
|
31
|
+
head: Head.optional(),
|
|
25
32
|
// Stored as `unknown` in the schema (zod can't type a Vite UserConfig
|
|
26
33
|
// or a function returning one meaningfully); the public TypeScript
|
|
27
34
|
// surface above lifts it back to ViteOverride for editor support.
|
|
@@ -33,8 +40,10 @@ export const WebsiteConfig = UserConfig.pick({
|
|
|
33
40
|
site: true,
|
|
34
41
|
favicon: true,
|
|
35
42
|
logo: true,
|
|
43
|
+
banner: true,
|
|
36
44
|
links: true,
|
|
37
45
|
sections: true,
|
|
46
|
+
head: true,
|
|
38
47
|
}).extend({
|
|
39
48
|
base: z.string().optional(),
|
|
40
49
|
});
|
|
@@ -43,4 +52,4 @@ export const SystemConfig = z.object({
|
|
|
43
52
|
configPath: z.string(),
|
|
44
53
|
});
|
|
45
54
|
export const Config = UserConfig.merge(SystemConfig);
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL21vZGVscy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUV2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQXNCMUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDM0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDOUQsQ0FBQyxDQUFBO0FBY0YsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsbUVBQW1FO0lBQ25FLGtFQUFrRTtJQUNsRSxpRUFBaUU7SUFDakUsbUVBQW1FO0lBQ25FLGdFQUFnRTtJQUNoRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDckMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7SUFDMUQsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUN0RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUQsY0FBYyxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDMUQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDeEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9CLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7SUFDckIsc0VBQXNFO0lBQ3RFLG1FQUFtRTtJQUNuRSxrRUFBa0U7SUFDbEUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDN0IsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDM0MsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUsSUFBSTtJQUNqQixJQUFJLEVBQUUsSUFBSTtJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsUUFBUSxFQUFFLElBQUk7SUFDZCxJQUFJLEVBQUUsSUFBSTtDQUNYLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM1QixDQUFDLENBQUE7QUFNRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUE7QUFjRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcbmltcG9ydCB0eXBlIHsgQ29uZmlnRW52LCBVc2VyQ29uZmlnIGFzIFZpdGVVc2VyQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IHsgTGluayB9IGZyb20gXCIuL2xpbmsudHNcIlxuaW1wb3J0IHsgUGF0Y2ggfSBmcm9tIFwiLi9wYXRjaC50c1wiXG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSBcIi4vc2VjdGlvbi50c1wiXG5pbXBvcnQgeyBDb2RlVGhlbWVEYXJrLCBDb2RlVGhlbWVMaWdodCB9IGZyb20gXCIuL3RoZW1lLnRzXCJcblxuLyoqIEVzY2FwZSBoYXRjaCBmb3IgYXJiaXRyYXJ5IFZpdGUgY29uZmlnIOKAlCBhY2NlcHRzIGVpdGhlciBhIGNvbmZpZ1xuICogIG9iamVjdCAoc2ltcGxlIG92ZXJyaWRlcykgb3IgYSBmdW5jdGlvbiBmb3JtIChgKGVudikgPT4gY29uZmlnYCxcbiAqICBtYXRjaGluZyBWaXRlJ3Mgb3duIGBkZWZpbmVDb25maWdgKS4gTWVyZ2VkIG9uIHRvcCBvZiBsaXZlbWFyaydzXG4gKiAgZGVmYXVsdHMgdmlhIGBtZXJnZUNvbmZpZ2AsIHNvIHBsdWdpbiBhcnJheXMgY29uY2F0ZW5hdGUsIGRlZmluZXNcbiAqICBtZXJnZSwgZXRjLiBVc2UgdGhpcyBmb3IgZGVwbG95bWVudC10YXJnZXQgdHdlYWtzIChlLmcuIENGIFdvcmtlcnNcbiAqICB2aWEgYGVudmlyb25tZW50cy5zc3IucmVzb2x2ZS5jb25kaXRpb25zOiBbXCJ3b3JrZXJkXCIsIC4uLl1gKS4gKi9cbmV4cG9ydCB0eXBlIFZpdGVPdmVycmlkZSA9XG4gIHwgVml0ZVVzZXJDb25maWdcbiAgfCAoKGVudjogQ29uZmlnRW52KSA9PiBWaXRlVXNlckNvbmZpZyB8IFByb21pc2U8Vml0ZVVzZXJDb25maWc+KVxuXG4vKiogU3ViLXBhdGggbW91bnQuIFN0cmluZyBmb3JtIGlzIHVzZWQgYXMtaXM7IGZ1bmN0aW9uIGZvcm0gaXMgY2FsbGVkXG4gKiAgd2l0aCBWaXRlJ3MgYGNvbW1hbmRgIChgXCJzZXJ2ZVwiYCBpbiBkZXYsIGBcImJ1aWxkXCJgIGluIHByb2R1Y3Rpb24pIHNvXG4gKiAgdGhlIHVzZXIgY2FuIGJyYW5jaCAodHlwaWNhbCBjYXNlOiBzZXJ2ZSBhdCBgL2AgaW4gZGV2IGJ1dCBhdFxuICogIGAvcmVwby9gIGluIHByb2R1Y3Rpb24gZm9yIEdpdEh1YiBQYWdlcykuIFRoZSBidWlsZCBwaXBlbGluZVxuICogIHJlc29sdmVzIGl0IHRvIGEgc3RyaW5nIGJlZm9yZSBhbnkgcnVudGltZSBzZWVzIGl0LiAqL1xuZXhwb3J0IHR5cGUgQmFzZSA9IHN0cmluZyB8ICgoY29tbWFuZDogXCJidWlsZFwiIHwgXCJzZXJ2ZVwiKSA9PiBzdHJpbmcgfCB1bmRlZmluZWQpXG5cbi8qKiBFeHRyYSBzaXRlLXdpZGUgYDxoZWFkPmAgdGFncywgYXBwZW5kZWQgYWZ0ZXIgTGl2ZW1hcmsncyBkZWZhdWx0cy4gQSBtZXRhIHRhZ1xuICogIHNoYXJpbmcgYSBkZWZhdWx0J3MgYG5hbWVgIG9yIGBwcm9wZXJ0eWAgcmVwbGFjZXMgaXQuICovXG5leHBvcnQgdHlwZSBIZWFkID0gei5pbmZlcjx0eXBlb2YgSGVhZD5cbmV4cG9ydCBjb25zdCBIZWFkID0gei5vYmplY3Qoe1xuICBtZXRhOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpKS5vcHRpb25hbCgpLFxuICBsaW5rczogei5hcnJheSh6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKSkub3B0aW9uYWwoKSxcbiAgc2NyaXB0czogei5hcnJheSh6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKSkub3B0aW9uYWwoKSxcbn0pXG5cbi8qKlxuICogVXNlci1wcm92aWRlZCBjb25maWd1cmF0aW9uIGZvciBMaXZlbWFyay5cbiAqXG4gKiBgdml0ZWAgYW5kIGBiYXNlYCBhcmUgbGlmdGVkIGZyb20gYHVua25vd25gIHRvIHRoZWlyIHB1YmxpYyB0eXBlcyBzb1xuICogYGRlZmluZUNvbmZpZ2Agc2hvd3MgdGhlIHJpZ2h0IHNoYXBlIGluIGVkaXRvcnMuIFVzZSB0aGlzIHR5cGUgZm9yXG4gKiB0aGUgaW5wdXQgdG8gYGRlZmluZUNvbmZpZ2Ag4oCUIGl0IGtlZXBzIGRlZmF1bHRlZCBmaWVsZHMgb3B0aW9uYWxcbiAqIChiZWNhdXNlIHpvZCBpbnB1dCDiiaAgb3V0cHV0IGZvciBmaWVsZHMgd2l0aCBgLmRlZmF1bHQoKWApLlxuICovXG5leHBvcnQgdHlwZSBVc2VyQ29uZmlnID0gT21pdDx6LmlucHV0PHR5cGVvZiBVc2VyQ29uZmlnPiwgXCJ2aXRlXCIgfCBcImJhc2VcIj4gJiB7XG4gIHZpdGU/OiBWaXRlT3ZlcnJpZGVcbiAgYmFzZT86IEJhc2Vcbn1cbmV4cG9ydCBjb25zdCBVc2VyQ29uZmlnID0gei5vYmplY3Qoe1xuICBzaXRlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIC8vIFN0b3JlZCBhcyBgdW5rbm93bmAgaW4gdGhlIHNjaGVtYSAoem9kIGNhbid0IHR5cGUgYSBmdW5jdGlvbiBhbmRcbiAgLy8gc3RyaW5nIHVuaW9uIG1lYW5pbmdmdWxseSk7IHRoZSBwdWJsaWMgVHlwZVNjcmlwdCBzdXJmYWNlIGFib3ZlXG4gIC8vIGxpZnRzIGl0IGJhY2sgdG8gYEJhc2VgIGZvciBlZGl0b3Igc3VwcG9ydC4gVGhlIGJ1aWxkIHBpcGVsaW5lXG4gIC8vIHJlc29sdmVzIGl0IHZpYSBgcmVzb2x2ZUJhc2UoKWAgYmVmb3JlIGFueSBydW50aW1lIGNvbnN1bWVyIHNlZXNcbiAgLy8gaXQsIHNvIHRoZSBydW50aW1lIGBXZWJzaXRlQ29uZmlnLmJhc2VgIGlzIHN0cmljdGx5IGBzdHJpbmdgLlxuICBiYXNlOiB6LnVua25vd24oKS5vcHRpb25hbCgpLFxuICBmYXZpY29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGxvZ286IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkuZGVmYXVsdChcIkxpdmVtYXJrXCIpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5kZWZhdWx0KFwiTWFya2Rvd24gc2l0ZSBnZW5lcmF0b3JcIiksXG4gIGJhbm5lcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpbmNsdWRlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkuZGVmYXVsdChcIioqLyoubWRcIiksXG4gIGV4Y2x1ZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHouYXJyYXkoei5zdHJpbmcoKSldKS5vcHRpb25hbCgpLFxuICBjb2RlVGhlbWVMaWdodDogQ29kZVRoZW1lTGlnaHQuZGVmYXVsdChcImNhdHBwdWNjaW4tbGF0dGVcIiksXG4gIGNvZGVUaGVtZURhcms6IENvZGVUaGVtZURhcmsuZGVmYXVsdChcImNhdHBwdWNjaW4tbW9jaGFcIiksXG4gIGxpbmtzOiB6LmFycmF5KExpbmspLm9wdGlvbmFsKCksXG4gIHNlY3Rpb25zOiB6LmFycmF5KFNlY3Rpb24pLm9wdGlvbmFsKCksXG4gIHBhdGNoZXM6IHouYXJyYXkoUGF0Y2gpLm9wdGlvbmFsKCksXG4gIGhlYWQ6IEhlYWQub3B0aW9uYWwoKSxcbiAgLy8gU3RvcmVkIGFzIGB1bmtub3duYCBpbiB0aGUgc2NoZW1hICh6b2QgY2FuJ3QgdHlwZSBhIFZpdGUgVXNlckNvbmZpZ1xuICAvLyBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBvbmUgbWVhbmluZ2Z1bGx5KTsgdGhlIHB1YmxpYyBUeXBlU2NyaXB0XG4gIC8vIHN1cmZhY2UgYWJvdmUgbGlmdHMgaXQgYmFjayB0byBWaXRlT3ZlcnJpZGUgZm9yIGVkaXRvciBzdXBwb3J0LlxuICB2aXRlOiB6LnVua25vd24oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIFdlYnNpdGUgY29uZmlndXJhdGlvbiBpbmplY3RlZCBhdCBidWlsZCB0aW1lIHZpYSBWaXRlIGRlZmluZS5cbiAqICBgYmFzZWAgaXMgc3RyaWN0bHkgYSBzdHJpbmcgaGVyZSDigJQgdGhlIGJ1aWxkIHBpcGVsaW5lIGhhcyBhbHJlYWR5XG4gKiAgcmVzb2x2ZWQgYW55IGZ1bmN0aW9uIGZvcm0gdmlhIGByZXNvbHZlQmFzZSgpYC4gKi9cbmV4cG9ydCB0eXBlIFdlYnNpdGVDb25maWcgPSB6LmluZmVyPHR5cGVvZiBXZWJzaXRlQ29uZmlnPlxuZXhwb3J0IGNvbnN0IFdlYnNpdGVDb25maWcgPSBVc2VyQ29uZmlnLnBpY2soe1xuICB0aXRsZTogdHJ1ZSxcbiAgZGVzY3JpcHRpb246IHRydWUsXG4gIHNpdGU6IHRydWUsXG4gIGZhdmljb246IHRydWUsXG4gIGxvZ286IHRydWUsXG4gIGJhbm5lcjogdHJ1ZSxcbiAgbGlua3M6IHRydWUsXG4gIHNlY3Rpb25zOiB0cnVlLFxuICBoZWFkOiB0cnVlLFxufSkuZXh0ZW5kKHtcbiAgYmFzZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSlcblxuLyoqXG4gKiBTeXN0ZW0tY29tcHV0ZWQgY29uZmlndXJhdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbmZpZyBmaWxlIGxvY2F0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTeXN0ZW1Db25maWcgPSB6LmluZmVyPHR5cGVvZiBTeXN0ZW1Db25maWc+XG5leHBvcnQgY29uc3QgU3lzdGVtQ29uZmlnID0gei5vYmplY3Qoe1xuICByb290OiB6LnN0cmluZygpLFxuICBjb25maWdQYXRoOiB6LnN0cmluZygpLFxufSlcblxuLyoqXG4gKiBGdWxseSByZXNvbHZlZCBMaXZlbWFyayBjb25maWd1cmF0aW9uLlxuICpcbiAqIGB2aXRlYCBzdGF5cyBgdW5rbm93bmAgYmVjYXVzZSB0aGF0J3Mgd2hhdCB0aGUgcnVudGltZSBzY2hlbWFcbiAqIHByb2R1Y2VzIOKAlCBjb25zdW1lci1mYWNpbmcgdHlwaW5nIGhhcHBlbnMgdmlhIHtAbGluayBVc2VyQ29uZmlnfSBzb1xuICogYGRlZmluZUNvbmZpZ2Agc2hvd3MgdGhlIHJpZ2h0IHNoYXBlIGluIGVkaXRvcnMuIGBiYXNlYCBpcyBsaWZ0ZWQgdG9cbiAqIGBzdHJpbmcgfCB1bmRlZmluZWRgIGJlY2F1c2UgYGxvYWRDb25maWcoKWAgcmVzb2x2ZXMgYW55IGZ1bmN0aW9uXG4gKiBmb3JtIHZpYSBgcmVzb2x2ZUJhc2UoKWAgYmVmb3JlIHJldHVybmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gT21pdDx6LmluZmVyPHR5cGVvZiBDb25maWc+LCBcImJhc2VcIj4gJiB7XG4gIGJhc2U/OiBzdHJpbmdcbn1cbmV4cG9ydCBjb25zdCBDb25maWcgPSBVc2VyQ29uZmlnLm1lcmdlKFN5c3RlbUNvbmZpZylcbiJdfQ==
|
|
@@ -69,7 +69,7 @@ export declare const CustomSection: z.ZodObject<{
|
|
|
69
69
|
* `{ title, prefix }` entries keep working.
|
|
70
70
|
*/
|
|
71
71
|
export type Section = z.infer<typeof Section>;
|
|
72
|
-
export declare const Section: z.
|
|
72
|
+
export declare const Section: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
73
73
|
icon: z.ZodOptional<z.ZodString>;
|
|
74
74
|
title: z.ZodString;
|
|
75
75
|
position: z.ZodDefault<z.ZodEnum<{
|
|
@@ -119,4 +119,6 @@ export declare const Section: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodD
|
|
|
119
119
|
siteLink: z.ZodOptional<z.ZodString>;
|
|
120
120
|
type: z.ZodLiteral<"custom">;
|
|
121
121
|
url: z.ZodString;
|
|
122
|
-
}, z.core.$strip>], "type"
|
|
122
|
+
}, z.core.$strip>], "type">, unknown>;
|
|
123
|
+
/** A section that owns a URL prefix — every type except `custom`. */
|
|
124
|
+
export type RoutedSection = Exclude<Section, CustomSection>;
|
package/build/models/section.js
CHANGED
|
@@ -37,4 +37,4 @@ export const Section = z.preprocess(input => {
|
|
|
37
37
|
ChangelogSection,
|
|
38
38
|
CustomSection,
|
|
39
39
|
]));
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXZCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pELFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2hDLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUMxQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNuQixDQUFDLENBQUE7QUFJRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDbkIsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDaEMsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDOUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2hCLENBQUMsQ0FBQTtBQVFGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUNqQyxLQUFLLENBQUMsRUFBRTtJQUNOLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLEtBQWdDLENBQUE7SUFDL0MsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ25FLENBQUMsRUFDRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzNCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGFBQWE7Q0FDZCxDQUFDLENBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuY29uc3QgQmFzZVNlY3Rpb24gPSB6Lm9iamVjdCh7XG4gIGljb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oW1wiaGVhZGVyXCIsIFwic2lkZWJhclwiXSkuZGVmYXVsdChcImhlYWRlclwiKSxcbiAgc2l0ZVRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNpdGVEZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzaXRlTGluazogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIERlZmF1bHQgc2VjdGlvbjogcmVuZGVycyBhcnRpY2xlcy4gKi9cbmV4cG9ydCB0eXBlIEFydGljbGVTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQXJ0aWNsZVNlY3Rpb24+XG5leHBvcnQgY29uc3QgQXJ0aWNsZVNlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhcnRpY2xlXCIpLFxuICBwcmVmaXg6IHouc3RyaW5nKCksXG59KVxuXG4vKiogQmxvZyBzZWN0aW9uOiBkYXRlLXNvcnRlZCBwb3N0cyB3aXRoIHRhZ3MgYW5kIGluZGV4LiAqL1xuZXhwb3J0IHR5cGUgQmxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBCbG9nU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBCbG9nU2VjdGlvbiA9IEJhc2VTZWN0aW9uLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImJsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbn0pXG5cbi8qKiBDaGFuZ2Vsb2cgc2VjdGlvbjogc2luZ2xlIGZpbGUgb3IgR2l0SHViIHJlbGVhc2VzLCBzcGxpdCBwZXIgdmVyc2lvbi4gKi9cbmV4cG9ydCB0eXBlIENoYW5nZWxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBDaGFuZ2Vsb2dTZWN0aW9uPlxuZXhwb3J0IGNvbnN0IENoYW5nZWxvZ1NlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJjaGFuZ2Vsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbiAgc291cmNlOiB6LnN0cmluZygpLFxuICB2ZXJzaW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIEN1c3RvbSBzZWN0aW9uOiByZW5kZXJzIGFzIGEgbGluayB0byBhbiBhcmJpdHJhcnkgVVJMIOKAlCBhYnNvbHV0ZVxuICogIChgaHR0cHM6Ly/igKZgKSBvciBpbnRlcm5hbCAoYC9jaGFuZ2Vsb2dgKS4gSW50ZXJuYWwgVVJMcyBwYXJ0aWNpcGF0ZVxuICogIGluIGFjdGl2ZS1zdGF0ZSBoaWdobGlnaHRpbmcgbGlrZSByb3V0ZWQgc2VjdGlvbnMuICovXG5leHBvcnQgdHlwZSBDdXN0b21TZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQ3VzdG9tU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBDdXN0b21TZWN0aW9uID0gQmFzZVNlY3Rpb24uZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiY3VzdG9tXCIpLFxuICB1cmw6IHouc3RyaW5nKCksXG59KVxuXG4vKipcbiAqIEEgc2l0ZSBzZWN0aW9uLiBEaXNjcmltaW5hdGVkIG9uIGB0eXBlYC5cbiAqIFdoZW4gYHR5cGVgIGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIFwiYXJ0aWNsZVwiIHNvIHBsYWluXG4gKiBgeyB0aXRsZSwgcHJlZml4IH1gIGVudHJpZXMga2VlcCB3b3JraW5nLlxuICovXG5leHBvcnQgdHlwZSBTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBTZWN0aW9uID0gei5wcmVwcm9jZXNzKFxuICBpbnB1dCA9PiB7XG4gICAgaWYgKGlucHV0ID09PSBudWxsIHx8IHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgICAgcmV0dXJuIGlucHV0XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZCA9IGlucHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgcmV0dXJuIFwidHlwZVwiIGluIHJlY29yZCA/
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9tb2RlbHMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXZCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pELFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2hDLENBQUMsQ0FBQTtBQUlGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQy9DLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUMxQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNuQixDQUFDLENBQUE7QUFJRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDbkIsQ0FBQyxDQUFBO0FBSUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDNUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDaEMsQ0FBQyxDQUFBO0FBTUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDOUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0NBQ2hCLENBQUMsQ0FBQTtBQVFGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsVUFBVSxDQUNqQyxLQUFLLENBQUMsRUFBRTtJQUNOLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLEtBQWdDLENBQUE7SUFDL0MsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ25FLENBQUMsRUFDRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQzNCLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGFBQWE7Q0FDZCxDQUFDLENBQ0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCJcblxuY29uc3QgQmFzZVNlY3Rpb24gPSB6Lm9iamVjdCh7XG4gIGljb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oW1wiaGVhZGVyXCIsIFwic2lkZWJhclwiXSkuZGVmYXVsdChcImhlYWRlclwiKSxcbiAgc2l0ZVRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNpdGVEZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzaXRlTGluazogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIERlZmF1bHQgc2VjdGlvbjogcmVuZGVycyBhcnRpY2xlcy4gKi9cbmV4cG9ydCB0eXBlIEFydGljbGVTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQXJ0aWNsZVNlY3Rpb24+XG5leHBvcnQgY29uc3QgQXJ0aWNsZVNlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhcnRpY2xlXCIpLFxuICBwcmVmaXg6IHouc3RyaW5nKCksXG59KVxuXG4vKiogQmxvZyBzZWN0aW9uOiBkYXRlLXNvcnRlZCBwb3N0cyB3aXRoIHRhZ3MgYW5kIGluZGV4LiAqL1xuZXhwb3J0IHR5cGUgQmxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBCbG9nU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBCbG9nU2VjdGlvbiA9IEJhc2VTZWN0aW9uLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImJsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbn0pXG5cbi8qKiBDaGFuZ2Vsb2cgc2VjdGlvbjogc2luZ2xlIGZpbGUgb3IgR2l0SHViIHJlbGVhc2VzLCBzcGxpdCBwZXIgdmVyc2lvbi4gKi9cbmV4cG9ydCB0eXBlIENoYW5nZWxvZ1NlY3Rpb24gPSB6LmluZmVyPHR5cGVvZiBDaGFuZ2Vsb2dTZWN0aW9uPlxuZXhwb3J0IGNvbnN0IENoYW5nZWxvZ1NlY3Rpb24gPSBCYXNlU2VjdGlvbi5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJjaGFuZ2Vsb2dcIiksXG4gIHByZWZpeDogei5zdHJpbmcoKSxcbiAgc291cmNlOiB6LnN0cmluZygpLFxuICB2ZXJzaW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSlcblxuLyoqIEN1c3RvbSBzZWN0aW9uOiByZW5kZXJzIGFzIGEgbGluayB0byBhbiBhcmJpdHJhcnkgVVJMIOKAlCBhYnNvbHV0ZVxuICogIChgaHR0cHM6Ly/igKZgKSBvciBpbnRlcm5hbCAoYC9jaGFuZ2Vsb2dgKS4gSW50ZXJuYWwgVVJMcyBwYXJ0aWNpcGF0ZVxuICogIGluIGFjdGl2ZS1zdGF0ZSBoaWdobGlnaHRpbmcgbGlrZSByb3V0ZWQgc2VjdGlvbnMuICovXG5leHBvcnQgdHlwZSBDdXN0b21TZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgQ3VzdG9tU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBDdXN0b21TZWN0aW9uID0gQmFzZVNlY3Rpb24uZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiY3VzdG9tXCIpLFxuICB1cmw6IHouc3RyaW5nKCksXG59KVxuXG4vKipcbiAqIEEgc2l0ZSBzZWN0aW9uLiBEaXNjcmltaW5hdGVkIG9uIGB0eXBlYC5cbiAqIFdoZW4gYHR5cGVgIGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIFwiYXJ0aWNsZVwiIHNvIHBsYWluXG4gKiBgeyB0aXRsZSwgcHJlZml4IH1gIGVudHJpZXMga2VlcCB3b3JraW5nLlxuICovXG5leHBvcnQgdHlwZSBTZWN0aW9uID0gei5pbmZlcjx0eXBlb2YgU2VjdGlvbj5cbmV4cG9ydCBjb25zdCBTZWN0aW9uID0gei5wcmVwcm9jZXNzKFxuICBpbnB1dCA9PiB7XG4gICAgaWYgKGlucHV0ID09PSBudWxsIHx8IHR5cGVvZiBpbnB1dCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgICAgcmV0dXJuIGlucHV0XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZCA9IGlucHV0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgcmV0dXJuIFwidHlwZVwiIGluIHJlY29yZCA/IHJlY29yZCA6IHsgLi4ucmVjb3JkLCB0eXBlOiBcImFydGljbGVcIiB9XG4gIH0sXG4gIHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gICAgQXJ0aWNsZVNlY3Rpb24sXG4gICAgQmxvZ1NlY3Rpb24sXG4gICAgQ2hhbmdlbG9nU2VjdGlvbixcbiAgICBDdXN0b21TZWN0aW9uLFxuICBdKSxcbilcblxuLyoqIEEgc2VjdGlvbiB0aGF0IG93bnMgYSBVUkwgcHJlZml4IOKAlCBldmVyeSB0eXBlIGV4Y2VwdCBgY3VzdG9tYC4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlZFNlY3Rpb24gPSBFeGNsdWRlPFNlY3Rpb24sIEN1c3RvbVNlY3Rpb24+XG4iXX0=
|
|
@@ -3,10 +3,9 @@ import type { Config } from "../models/config.ts";
|
|
|
3
3
|
export interface LivemarkOptions {
|
|
4
4
|
config: Config;
|
|
5
5
|
}
|
|
6
|
-
/** Owns the
|
|
6
|
+
/** Owns the project's `.livemark/.target/` mount: synthesizes it via
|
|
7
7
|
* `buildTarget()`, returns the Vite config that anchors there, and
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* redirection, no realpath surprises. */
|
|
8
|
+
* copies `.livemark/` edits (plus livemark's `source/` in its own dev)
|
|
9
|
+
* into the target. Vite watches the target natively, so its own HMR
|
|
10
|
+
* decides between Fast Refresh, CSS updates and a page reload. */
|
|
12
11
|
export declare function livemark(opts: LivemarkOptions): Plugin;
|