func Pages.DownloadPlugins(tytd,ctx) { var q = ctx.QueryParams.TryGetFirst("q"); if(TypeOf(q) != "String") { q = ""; } var server = ctx.QueryParams.TryGetFirst("server"); if(TypeOf(server) != "String") server = "https://cpkg.tesseslanguage.com/"; var items=[]; var items2 = []; each(var item : tytd.PackageManager.Search(q,{server,type="lib",pluginHost="tytd2025"})) { items2.Add({ name = item.packageName, version = item.version, url = $"{server}/package?name={Net.Http.UrlEncode(item.packageName)}", thumb = $"{server}/api/v1/package_icon.png?name={Net.Http.UrlEncode(item.packageName)}&version={Net.Http.UrlEncode(item.version)}" }); } each(var item : tytd.PackageManager.GetPackageServers()) { items.Add({ active = items.Count == 0, url = item }); } var html=
arrow_drop_down
; return Components.Shell("Download plugins",html ,2); }