export const CROWDFUNDING_URL = "https://crowdrepublic.ru/" as const; export const SITE_LINKS = { features: "#features", howItWorks: "#how-it-works", platforms: "#platforms", pricing: "#pricing", faq: "#faq", download: "#platforms", // buy: "https://donate.stream/ttrpgplayer", enterKey: "#pricing", support: "mailto:player.ttrpg@gmail.com", } as const; /** VK Video showcase — https://vkvideo.ru/video-238917656_456239017 */ export const SHOWCASE_VIDEO = { pageUrl: "https://vkvideo.ru/video-238917656_456239017", embedUrl: "https://vk.com/video_ext.php?oid=-238917656&id=456239017&hd=2", } as const; /** Same feed as electron-builder `publish.url` in dnd_player/package.json */ export const UPDATE_FEED_BASE = "https://updates.mailib.ru/"; /** Fixed artifact names — version lives only in latest*.yml on the server */ export const DOWNLOAD_ARTIFACTS = { windows: "TTRPGPlayer-Setup.exe", macos: { x64: "TTRPGPlayer-x64.dmg", arm64: "TTRPGPlayer-arm64.dmg", }, linux: { x64: "TTRPGPlayer-x64.AppImage", arm64: "TTRPGPlayer-arm64.AppImage", }, } as const; function artifactUrl(filename: string): string { return `${UPDATE_FEED_BASE}${filename}`; } export const DOWNLOAD_LINKS = { windows: artifactUrl(DOWNLOAD_ARTIFACTS.windows), macos: { x64: artifactUrl(DOWNLOAD_ARTIFACTS.macos.x64), arm64: artifactUrl(DOWNLOAD_ARTIFACTS.macos.arm64), }, linux: { x64: artifactUrl(DOWNLOAD_ARTIFACTS.linux.x64), arm64: artifactUrl(DOWNLOAD_ARTIFACTS.linux.arm64), }, } as const; export type DownloadLinks = typeof DOWNLOAD_LINKS; export const NAV_LINK_KEYS = [ "features", "howItWorks", "platforms", "pricing", "faq", ] as const; export type NavLinkKey = (typeof NAV_LINK_KEYS)[number]; export const NAV_HREFS: Record = { features: SITE_LINKS.features, howItWorks: SITE_LINKS.howItWorks, platforms: SITE_LINKS.platforms, pricing: SITE_LINKS.pricing, faq: SITE_LINKS.faq, }; export const AUDIENCE_CARD_IDS = ["gm", "prep", "table"] as const; export const BENEFIT_CARD_IDS = [ "allInOne", "sync", "immersion", "branching", "portable", "pro", ] as const; export const FEATURE_VARIANTS = [ "editor", "control", "presentation", "atmosphere", ] as const; export type FeatureVariant = (typeof FEATURE_VARIANTS)[number]; export const STEP_IDS = ["create", "launch", "run"] as const; export const PLATFORM_IDS = ["windows", "macos", "linux"] as const; export type PlatformId = (typeof PLATFORM_IDS)[number]; export const PRICING_TIER_IDS = ["basic", "master", "legend"] as const; export type PricingTierId = (typeof PRICING_TIER_IDS)[number]; export const RECOMMENDED_PRICING_TIER: PricingTierId = "master"; export const FAQ_IDS = [ "what", "internet", "monitor", "activate", "os", ] as const; export type FaqId = (typeof FAQ_IDS)[number]; export const HERO_HIGHLIGHT_IDS = ["offline", "secondScreen"] as const; export const REQUIRED_SECTION_IDS = [ "features", "how-it-works", "platforms", "pricing", "faq", ] as const;