{"version":3,"sources":["Homepage.tsx"],"sourcesContent":["import { Component } from \"uix/components/Component.ts\";\nimport { Icon } from \"uix-components/Defaults/Icon.tsx\";\nimport { InfoCard } from \"uix-components/Cards/InfoCard.tsx\";\nimport { HomepageHeader } from \"common/HomepageHeader.tsx\";\nimport { Sitemap } from \"uix-components/Defaults/Sitemap.tsx\";\nimport { type Library } from \"backend/lib_manager.ts\";\nimport removeMarkdown from \"./lib/markdown-to-text.ts\";\nimport { unytOpenGraphImageGenerator } from \"common/UnytOpenGraphImageGenerator.tsx\";\nimport { OPEN_GRAPH, OpenGraphInformation } from \"uix/base/open-graph.ts\";\nimport { type Statistics } from \"backend/Stats.ts\";\nimport { unsafeHTML } from \"uix-short.ts\";\n\n@style(\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css\")\n@template(function() {\n    const stats = this.properties.stats;\n    return <>\n        <div data-rendering-time={new Date().toISOString()}></div>\n        <HomepageHeader/>\n        <div class=\"grid\"></div>\n        <div class=\"content\">\n            <div class=\"header\">\n\n            </div>\n            <div class=\"front\">\n                <div class=\"info\">\n                    <a class=\"badge\" href=\"https://github.com/unyt-org\">\n                        <div>\n                            <span>\n                                <Icon name=\"fa-star\"/>\n                                Star us on GitHub\n                            </span>\n                        </div>\n                    </a>\n                    <div class=\"logo\">\n                        <img src=\"./res/assets/icon.png\"/>\n                        UNYT<br/>\n                        CDN\n                    </div>\n                    <span>\n                        <b>Simple</b>. <b>Fast</b>. <b>Reliable</b>.<br/>\n                        Our free CDN service that hosts essential resources for the unyt.org ecosystem.<br/>\n                        We provide the web with modules such as UIX, Datex JS and many more.\n                    </span>\n                    <div class=\"actions\">\n                        <a href=\"https://unyt.org\"><Icon name=\"fa-globe\"/>Our project page</a>\n                        <a href=\"https://unyt.org/discord\"><Icon name=\"fa-brands fa-discord\"/>Join our Discord</a>\n                    </div>\n                </div>\n                <div class=\"preview\">\n                    <img src=\"./res/assets/header-image.png\"/>\n                </div>\n            </div>\n            <div class=\"body\">\n\n                <div class=\"info-card-container\">\n                    <InfoCard description={\"Modules\"} title={this.options.libs.length}/>\n                    <InfoCard description={\"Total Request\"} title={stats.total}/>\n                    <InfoCard description={\"Todays Hits\"} title={stats.today}/>\n                </div>\n\n                <section>\n                    <div>\n                        <a class=\"badge\" href=\"https://github.com/unyt-org\">\n                            <div>\n                                <span>\n                                    <Icon name=\"fa-star\"/>\n                                    Our modules\n                                </span>\n                            </div>\n                        </a>\n                        <h2>Built for the community</h2>\n                        <span>Use our CDN to optimize your loading times!</span>\n                    </div>\n                    <div class=\"library-container\">\n                        <>\n                            {this.options.libs.map(async lib => <a class={lib.getPackages().filter(e => !e.available).length ? \"loading\" : \"\"} href={`/library/${lib.id}`}>\n                                    <h1>{lib.full_name ?? \"Loading...\"}</h1>\n                                    <div class=\"info\">\n                                        <span class=\"tag\" data-visibility={lib.is_private ? \"private\" : \"public\"}>{lib.is_private ? \"Private\" : \"Public\"}</span>\n                                        <div><Icon name=\"fa-code-branch\"/> {lib.getPackages().length}</div>\n                                        <div><Icon name=\"fa-star\"/> {lib.stargazers ?? '-'}</div>\n                                        <div><Icon name=\"fa-thumbtack\"/> {lib.latest_version ?? 'unknown'}</div>\n                                    </div>\n                                    <span class=\"link\">{lib.description}</span>\n                                    {await (async () => {\n                                        const readme = await lib.getReadme();\n                                        if (!readme)\n                                            return <i>No README.md found</i>\n                                        return <div class=\"preview\">\n                                            {unsafeHTML(`<div>${removeMarkdown(readme).substring(0, 200) + \"...\"}</div>`)}\n                                        </div>\n                                    })()}\n                            </a>)}\n                        </>\n                        {\n                            this.options.libs.length === 0 ? \n                            <h1 class=\"empty\"><Icon name=\"fa-face-sad-cry\"/> It's pretty empty in here...</h1> : undefined\n                        }\n                    </div>\n                    <div class=\"importmap-container\">\n                        <a href=\"/importmap.json\">\n                            <h2>\n                                <Icon name=\"fa-file-code\"/> Importmap Latest\n                            </h2>\n                            <span class=\"tag\">Latest</span>\n                        </a>\n                        <a href={\"/importmap-\"+new Date().getFullYear()+\"-x.json\"}>\n                            <h2>\n                            <Icon name=\"fa-map-pin\"/> Importmap Pinned\n                            </h2>\n                            <span class=\"tag\">{new Date().getFullYear()}</span>\n                        </a>\n                    </div>\n                </section>\n                <section class=\"side-by-side\">\n                    <div>\n                        <a class=\"badge\" href=\"https://unyt.org/join\">\n                            <div>\n                                <span>\n                                    <Icon name=\"fa-code\"/>\n                                    Join our team\n                                </span>\n                            </div>\n                        </a>\n                        <h2>We love Open-Source</h2>\n                        <span>Our CDN brings all of unyt.org's open-source modules to the internet.<br/>Take part, create your first PR and shape the project!</span>\n                        <div class=\"actions\">\n                            <a href=\"https://github.com/unyt-org\"><Icon name=\"fa-brands fa-github\"/>Contribute to GitHub</a>\n                            <a href=\"https://unyt.org/discord\"><Icon name=\"fa-brands fa-discord\"/>Join the Discord</a>\n                        </div>\n                    </div>\n                    <img src=\"./res/assets/heart.png\"/>\n                </section>\n                <section class=\"side-by-side status-container\">\n                    <div>\n                        <h2>Keep up to date</h2>\n                        <span>We are constantely monitoring our services by doing healthcare checks, pings and other tests.<br/>Feel free to check the Status Page for incident history.</span>\n                    </div>\n                    <a class=\"badge large\" href=\"https://status.unyt.org/insights/CDN\">\n                        <div>\n                            <span>\n                            CDN is online <div class=\"status\"/>\n                            </span>\n                        </div>\n                    </a>\n                </section>\n            </div>\n        </div>\n        <Sitemap/>\n    </>\n})\nexport class Homepage extends Component<{libs: Library[], stats: Statistics}> {\n    title = \"unyt CDN - The official content delivery network of unyt.org\";\n    override [OPEN_GRAPH] = new OpenGraphInformation({\n            title: \"unyt CDN - The official content delivery network of unyt.org\",\n            description: \"Our CDN hosts ressources and modules for our projects such as UIX or DATEX JS.\"\n    }, unytOpenGraphImageGenerator);\n}"],"names":["Component","Icon","InfoCard","HomepageHeader","Sitemap","removeMarkdown","unytOpenGraphImageGenerator","OPEN_GRAPH","OpenGraphInformation","unsafeHTML","style","template","stats","properties","div","data-rendering-time","Date","toISOString","class","a","href","span","name","img","src","br","b","description","title","options","libs","length","total","today","section","h2","map","lib","getPackages","filter","e","available","id","h1","full_name","data-visibility","is_private","stargazers","latest_version","readme","getReadme","substring","i","undefined","getFullYear","Homepage"],"mappings":"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","sourceRoot":"/common/","file":"Homepage.tsx"}