platformicons 5.6.4 → 5.6.5

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.
@@ -1,2 +1,2 @@
1
- import a from"react";function t(){return(t=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}var e={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-awslambda":"aws","python-azurefunctions":"azure","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-starlette":"starlette","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function n(a){return a.replace(".","-")}function r(a){var t=n(a);return e[t]||(t.includes("-")?o(t):"default")}function o(a){return r(n(a).split("-")[0])}var i=function(e){var n,i,s=e.platform,c=e.size,p=void 0===c?20:c,l=e.format,u=void 0===l?"sm":l,d=e.radius,v=void 0===d?3:d,g=e.withLanguageIcon,y=e.languageIconStyles,h=void 0===y?{}:y,f=e.style,j=void 0===f?{}:f,m=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(e,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]),b=r(s),w=require("../"+("lg"===u?"svg_80x80":"svg")+"/"+b+".svg"),x=null!=(n=null==w?void 0:w.default)?n:w,k=o(s),q=require("../svg/"+k+".svg"),z=null!=(i=null==q?void 0:q.default)?i:q;return g&&k!==b&&"default"!==k?a.createElement("div",Object.assign({},m,{style:t({position:"relative"},j)}),a.createElement("img",{src:x,width:p,height:p,style:{borderRadius:v+"px"}}),a.createElement("img",{src:z,style:t({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},h)})):a.createElement("img",Object.assign({src:x,width:p,height:p},m,{style:t({borderRadius:v+"px"},j)}))};function s(a){var t,n=(a?[a]:["lg","sm"]).map(function(a){return Object.values(e).map(function(t){return require("../"+("lg"===a?"svg_80x80":"svg")+"/"+t+".svg")})}).flat();null==(t=document.querySelector("head"))||t.append.apply(t,n.map(function(a){var t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))}export{i as PlatformIcon,s as preloadIcons};
1
+ import a from"react";function t(){return(t=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}var e={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-airflow":"apache-airflow","python-awslambda":"aws","python-azurefunctions":"azure","python-beam":"apache-beam","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-quart":"quart","python-rq":"redis","python-sanic":"sanic","python-serverless":"serverless","python-starlette":"starlette","python-spark":"apache-spark","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function n(a){return a.replace(".","-")}function r(a){var t=n(a);return e[t]||(t.includes("-")?o(t):"default")}function o(a){return r(n(a).split("-")[0])}var i=function(e){var n,i,s=e.platform,p=e.size,c=void 0===p?20:p,l=e.format,u=void 0===l?"sm":l,d=e.radius,v=void 0===d?3:d,g=e.withLanguageIcon,h=e.languageIconStyles,y=void 0===h?{}:h,f=e.style,j=void 0===f?{}:f,m=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(e,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]),b=r(s),w=require("../"+("lg"===u?"svg_80x80":"svg")+"/"+b+".svg"),x=null!=(n=null==w?void 0:w.default)?n:w,k=o(s),q=require("../svg/"+k+".svg"),z=null!=(i=null==q?void 0:q.default)?i:q;return g&&k!==b&&"default"!==k?a.createElement("div",Object.assign({},m,{style:t({position:"relative"},j)}),a.createElement("img",{src:x,width:c,height:c,style:{borderRadius:v+"px"}}),a.createElement("img",{src:z,style:t({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},y)})):a.createElement("img",Object.assign({src:x,width:c,height:c},m,{style:t({borderRadius:v+"px"},j)}))};function s(a){var t,n=(a?[a]:["lg","sm"]).map(function(a){return Object.values(e).map(function(t){return require("../"+("lg"===a?"svg_80x80":"svg")+"/"+t+".svg")})}).flat();null==(t=document.querySelector("head"))||t.append.apply(t,n.map(function(a){var t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))}export{i as PlatformIcon,s as preloadIcons};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"python\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-awslambda","python-azurefunctions","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-starlette","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","PlatformIcon","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","preloadIcons","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-airflow\": \"apache-airflow\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-beam\": \"apache-beam\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-quart\": \"quart\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"sanic\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-spark\": \"apache-spark\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-airflow","python-awslambda","python-azurefunctions","python-beam","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-quart","python-rq","python-sanic","python-serverless","python-starlette","python-spark","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","PlatformIcon","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","preloadIcons","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
package/build/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var a,t=(a=require("react"))&&"object"==typeof a&&"default"in a?a.default:a;function e(){return(e=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}var n={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-awslambda":"aws","python-azurefunctions":"azure","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-starlette":"starlette","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function r(a){return a.replace(".","-")}function o(a){var t=r(a);return n[t]||(t.includes("-")?i(t):"default")}function i(a){return o(r(a).split("-")[0])}exports.PlatformIcon=function(a){var n,r,s=a.platform,c=a.size,p=void 0===c?20:c,l=a.format,u=void 0===l?"sm":l,d=a.radius,v=void 0===d?3:d,g=a.withLanguageIcon,y=a.languageIconStyles,h=void 0===y?{}:y,f=a.style,j=void 0===f?{}:f,b=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(a,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]),m=o(s),x=require("../"+("lg"===u?"svg_80x80":"svg")+"/"+m+".svg"),w=null!=(n=null==x?void 0:x.default)?n:x,k=i(s),q=require("../svg/"+k+".svg"),z=null!=(r=null==q?void 0:q.default)?r:q;return g&&k!==m&&"default"!==k?t.createElement("div",Object.assign({},b,{style:e({position:"relative"},j)}),t.createElement("img",{src:w,width:p,height:p,style:{borderRadius:v+"px"}}),t.createElement("img",{src:z,style:e({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},h)})):t.createElement("img",Object.assign({src:w,width:p,height:p},b,{style:e({borderRadius:v+"px"},j)}))},exports.preloadIcons=function(a){var t,e=(a?[a]:["lg","sm"]).map(function(a){return Object.values(n).map(function(t){return require("../"+("lg"===a?"svg_80x80":"svg")+"/"+t+".svg")})}).flat();null==(t=document.querySelector("head"))||t.append.apply(t,e.map(function(a){var t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))};
1
+ var a,t=(a=require("react"))&&"object"==typeof a&&"default"in a?a.default:a;function e(){return(e=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}var n={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-airflow":"apache-airflow","python-awslambda":"aws","python-azurefunctions":"azure","python-beam":"apache-beam","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-quart":"quart","python-rq":"redis","python-sanic":"sanic","python-serverless":"serverless","python-starlette":"starlette","python-spark":"apache-spark","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function r(a){return a.replace(".","-")}function o(a){var t=r(a);return n[t]||(t.includes("-")?i(t):"default")}function i(a){return o(r(a).split("-")[0])}exports.PlatformIcon=function(a){var n,r,s=a.platform,c=a.size,p=void 0===c?20:c,l=a.format,u=void 0===l?"sm":l,d=a.radius,v=void 0===d?3:d,g=a.withLanguageIcon,h=a.languageIconStyles,y=void 0===h?{}:h,f=a.style,j=void 0===f?{}:f,b=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(a,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]),m=o(s),w=require("../"+("lg"===u?"svg_80x80":"svg")+"/"+m+".svg"),x=null!=(n=null==w?void 0:w.default)?n:w,k=i(s),q=require("../svg/"+k+".svg"),z=null!=(r=null==q?void 0:q.default)?r:q;return g&&k!==m&&"default"!==k?t.createElement("div",Object.assign({},b,{style:e({position:"relative"},j)}),t.createElement("img",{src:x,width:p,height:p,style:{borderRadius:v+"px"}}),t.createElement("img",{src:z,style:e({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},y)})):t.createElement("img",Object.assign({src:x,width:p,height:p},b,{style:e({borderRadius:v+"px"},j)}))},exports.preloadIcons=function(a){var t,e=(a?[a]:["lg","sm"]).map(function(a){return Object.values(n).map(function(t){return require("../"+("lg"===a?"svg_80x80":"svg")+"/"+t+".svg")})}).flat();null==(t=document.querySelector("head"))||t.append.apply(t,e.map(function(a){var t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"python\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-awslambda","python-azurefunctions","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-starlette","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-airflow\": \"apache-airflow\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-beam\": \"apache-beam\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-quart\": \"quart\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"sanic\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-spark\": \"apache-spark\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-airflow","python-awslambda","python-azurefunctions","python-beam","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-quart","python-rq","python-sanic","python-serverless","python-starlette","python-spark","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import a from"react";function t(){return(t=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}const e={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-awslambda":"aws","python-azurefunctions":"azure","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-starlette":"starlette","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function n(a){return a.replace(".","-")}function r(a){const t=n(a);return e[t]||(t.includes("-")?o(t):"default")}function o(a){const[t]=n(a).split("-");return r(t)}const s=e=>{var n,s;let{platform:i,size:c=20,format:p="sm",radius:l=3,withLanguageIcon:u,languageIconStyles:d={},style:v={}}=e,g=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(e,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]);const y=r(i),h=require(`../${"lg"===p?"svg_80x80":"svg"}/${y}.svg`),j=null!=(n=null==h?void 0:h.default)?n:h,f=o(i),m=require(`../svg/${f}.svg`),b=null!=(s=null==m?void 0:m.default)?s:m;return u&&f!==y&&"default"!==f?a.createElement("div",Object.assign({},g,{style:t({position:"relative"},v)}),a.createElement("img",{src:j,width:c,height:c,style:{borderRadius:l+"px"}}),a.createElement("img",{src:b,style:t({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},d)})):a.createElement("img",Object.assign({src:j,width:c,height:c},g,{style:t({borderRadius:l+"px"},v)}))};function i(a){var t;const n=(a?[a]:["lg","sm"]).map(a=>Object.values(e).map(t=>require(`../${"lg"===a?"svg_80x80":"svg"}/${t}.svg`))).flat();null==(t=document.querySelector("head"))||t.append(...n.map(a=>{const t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))}export{s as PlatformIcon,i as preloadIcons};
1
+ import a from"react";function t(){return(t=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}const e={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-airflow":"apache-airflow","python-awslambda":"aws","python-azurefunctions":"azure","python-beam":"apache-beam","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-quart":"quart","python-rq":"redis","python-sanic":"sanic","python-serverless":"serverless","python-starlette":"starlette","python-spark":"apache-spark","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function n(a){return a.replace(".","-")}function r(a){const t=n(a);return e[t]||(t.includes("-")?o(t):"default")}function o(a){const[t]=n(a).split("-");return r(t)}const s=e=>{var n,s;let{platform:i,size:c=20,format:p="sm",radius:l=3,withLanguageIcon:u,languageIconStyles:d={},style:v={}}=e,g=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(e,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]);const h=r(i),y=require(`../${"lg"===p?"svg_80x80":"svg"}/${h}.svg`),j=null!=(n=null==y?void 0:y.default)?n:y,f=o(i),m=require(`../svg/${f}.svg`),b=null!=(s=null==m?void 0:m.default)?s:m;return u&&f!==h&&"default"!==f?a.createElement("div",Object.assign({},g,{style:t({position:"relative"},v)}),a.createElement("img",{src:j,width:c,height:c,style:{borderRadius:l+"px"}}),a.createElement("img",{src:b,style:t({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},d)})):a.createElement("img",Object.assign({src:j,width:c,height:c},g,{style:t({borderRadius:l+"px"},v)}))};function i(a){var t;const n=(a?[a]:["lg","sm"]).map(a=>Object.values(e).map(t=>require(`../${"lg"===a?"svg_80x80":"svg"}/${t}.svg`))).flat();null==(t=document.querySelector("head"))||t.append(...n.map(a=>{const t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))}export{s as PlatformIcon,i as preloadIcons};
2
2
  //# sourceMappingURL=index.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"python\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-awslambda","python-azurefunctions","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-starlette","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","language","split","PlatformIcon","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","preloadIcons","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-airflow\": \"apache-airflow\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-beam\": \"apache-beam\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-quart\": \"quart\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"sanic\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-spark\": \"apache-spark\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-airflow","python-awslambda","python-azurefunctions","python-beam","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-quart","python-rq","python-sanic","python-serverless","python-starlette","python-spark","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","language","split","PlatformIcon","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","preloadIcons","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(a,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((a=a||self).platformicons={},a.react)}(this,function(a,t){function e(){return(e=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var n={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-awslambda":"aws","python-azurefunctions":"azure","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-starlette":"starlette","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function o(a){return a.replace(".","-")}function r(a){var t=o(a);return n[t]||(t.includes("-")?i(t):"default")}function i(a){return r(o(a).split("-")[0])}a.PlatformIcon=function(a){var n,o,s=a.platform,c=a.size,p=void 0===c?20:c,l=a.format,d=void 0===l?"sm":l,u=a.radius,v=void 0===u?3:u,y=a.withLanguageIcon,g=a.languageIconStyles,f=void 0===g?{}:g,h=a.style,j=void 0===h?{}:h,m=function(a,t){if(null==a)return{};var e,n,o={},r=Object.keys(a);for(n=0;n<r.length;n++)t.indexOf(e=r[n])>=0||(o[e]=a[e]);return o}(a,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]),b=r(s),x=require("../"+("lg"===d?"svg_80x80":"svg")+"/"+b+".svg"),w=null!=(n=null==x?void 0:x.default)?n:x,k=i(s),q=require("../svg/"+k+".svg"),O=null!=(o=null==q?void 0:q.default)?o:q;return y&&k!==b&&"default"!==k?t.createElement("div",Object.assign({},m,{style:e({position:"relative"},j)}),t.createElement("img",{src:w,width:p,height:p,style:{borderRadius:v+"px"}}),t.createElement("img",{src:O,style:e({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},f)})):t.createElement("img",Object.assign({src:w,width:p,height:p},m,{style:e({borderRadius:v+"px"},j)}))},a.preloadIcons=function(a){var t,e=(a?[a]:["lg","sm"]).map(function(a){return Object.values(n).map(function(t){return require("../"+("lg"===a?"svg_80x80":"svg")+"/"+t+".svg")})}).flat();null==(t=document.querySelector("head"))||t.append.apply(t,e.map(function(a){var t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))}});
1
+ !function(a,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((a=a||self).platformicons={},a.react)}(this,function(a,t){function e(){return(e=Object.assign||function(a){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(a[n]=e[n])}return a}).apply(this,arguments)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var n={android:"android",apple:"apple",bun:"bun",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-awslambda":"aws","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",git:"git",go:"go","go-echo":"echo",godot:"godot",java:"java","java-appengine":"app-engine","java-android":"android","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cordova":"cordova","javascript-electron":"electron","javascript-ember":"ember","javascript-gatsby":"gatsby","javascript-ionic":"ionic","javascript-nextjs":"nextjs","javascript-react":"react","javascript-remix":"remix","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-vue":"vue","javascript-wasm":"wasm",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",linux:"linux",native:"nativec","native-qt":"qt",node:"nodejs","node-awslambda":"aws","node-azurefunctions":"azure","node-connect":"nodejs","node-express":"express","node-gcpfunctions":"gcp","node-koa":"koa","node-serverlesscloud":"serverless",perl:"perl",php:"php","php-laravel":"laravel","php-monolog":"php","php-symfony2":"symfony","php-symfony":"symfony",python:"python","python-aiohttp":"aiohttp","python-airflow":"apache-airflow","python-awslambda":"aws","python-azurefunctions":"azure","python-beam":"apache-beam","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-django":"django","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-quart":"quart","python-rq":"redis","python-sanic":"sanic","python-serverless":"serverless","python-starlette":"starlette","python-spark":"apache-spark","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-rack":"ruby","ruby-rails":"rails","ruby-sinatra":"sinatra",rust:"rust","rust-actix":"actix",scala:"scala",stride3d:"stride3d",swift:"swift",unity:"unity",ue4:"unreal",unreal:"unreal",unrealengine:"unreal",visualbasic:"visual-basic",windows:"windows"};function r(a){return a.replace(".","-")}function o(a){var t=r(a);return n[t]||(t.includes("-")?i(t):"default")}function i(a){return o(r(a).split("-")[0])}a.PlatformIcon=function(a){var n,r,s=a.platform,c=a.size,p=void 0===c?20:c,l=a.format,u=void 0===l?"sm":l,d=a.radius,v=void 0===d?3:d,y=a.withLanguageIcon,h=a.languageIconStyles,f=void 0===h?{}:h,g=a.style,j=void 0===g?{}:g,m=function(a,t){if(null==a)return{};var e,n,r={},o=Object.keys(a);for(n=0;n<o.length;n++)t.indexOf(e=o[n])>=0||(r[e]=a[e]);return r}(a,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]),b=o(s),w=require("../"+("lg"===u?"svg_80x80":"svg")+"/"+b+".svg"),x=null!=(n=null==w?void 0:w.default)?n:w,k=i(s),q=require("../svg/"+k+".svg"),O=null!=(r=null==q?void 0:q.default)?r:q;return y&&k!==b&&"default"!==k?t.createElement("div",Object.assign({},m,{style:e({position:"relative"},j)}),t.createElement("img",{src:x,width:p,height:p,style:{borderRadius:v+"px"}}),t.createElement("img",{src:O,style:e({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},f)})):t.createElement("img",Object.assign({src:x,width:p,height:p},m,{style:e({borderRadius:v+"px"},j)}))},a.preloadIcons=function(a){var t,e=(a?[a]:["lg","sm"]).map(function(a){return Object.values(n).map(function(t){return require("../"+("lg"===a?"svg_80x80":"svg")+"/"+t+".svg")})}).flat();null==(t=document.querySelector("head"))||t.append.apply(t,e.map(function(a){var t=document.createElement("link");return t.rel="preload",t.as="image",t.href=a,t}))}});
2
2
  //# sourceMappingURL=index.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"python\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-awslambda","python-azurefunctions","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-starlette","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/platformIcon.tsx","../src/preload.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const PLATFORM_TO_ICON = {\n android: \"android\",\n apple: \"apple\",\n bun: \"bun\",\n capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cpp: \"cpp\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-blazor\": \"blazor\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-maui\": \"maui\",\n \"dotnet-uno\": \"uno\",\n \"dotnet-xamarin\": \"xamarin\",\n dotnetcore: \"dotnetcore\",\n dotnetfx: \"dotnetfx\",\n electron: \"electron\",\n elixir: \"elixir\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n git: \"git\",\n go: \"go\",\n \"go-echo\": \"echo\",\n godot: \"godot\",\n java: \"java\",\n \"java-appengine\": \"app-engine\",\n \"java-android\": \"android\",\n \"java-log4j\": \"java\",\n \"java-log4j2\": \"java\",\n \"java-logback\": \"logback\",\n \"java-logging\": \"java\",\n \"java-spring\": \"spring\",\n \"java-spring-boot\": \"springboot\",\n javascript: \"javascript\",\n \"javascript-angular\": \"angularjs\",\n \"javascript-angularjs\": \"angularjs\",\n \"javascript-backbone\": \"backbone\",\n \"javascript-browser\": \"javascript\",\n \"javascript-capacitor\": \"capacitor\",\n \"javascript-cordova\": \"cordova\",\n \"javascript-electron\": \"electron\",\n \"javascript-ember\": \"ember\",\n \"javascript-gatsby\": \"gatsby\",\n \"javascript-ionic\": \"ionic\",\n \"javascript-nextjs\": \"nextjs\",\n \"javascript-react\": \"react\",\n \"javascript-remix\": \"remix\",\n \"javascript-svelte\": \"svelte\",\n \"javascript-sveltekit\": \"svelte\",\n \"javascript-vue\": \"vue\",\n \"javascript-wasm\": \"wasm\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\n linux: \"linux\",\n native: \"nativec\",\n \"native-qt\": \"qt\",\n node: \"nodejs\",\n \"node-awslambda\": \"aws\",\n \"node-azurefunctions\": \"azure\",\n \"node-connect\": \"nodejs\",\n \"node-express\": \"express\",\n \"node-gcpfunctions\": \"gcp\",\n \"node-koa\": \"koa\",\n \"node-serverlesscloud\": \"serverless\",\n perl: \"perl\",\n php: \"php\",\n \"php-laravel\": \"laravel\",\n \"php-monolog\": \"php\",\n \"php-symfony2\": \"symfony\",\n \"php-symfony\": \"symfony\",\n python: \"python\",\n \"python-aiohttp\": \"aiohttp\",\n \"python-airflow\": \"apache-airflow\",\n \"python-awslambda\": \"aws\",\n \"python-azurefunctions\": \"azure\",\n \"python-beam\": \"apache-beam\",\n \"python-bottle\": \"bottle\",\n \"python-celery\": \"celery\",\n \"python-chalice\": \"chalice\",\n \"python-django\": \"django\",\n \"python-falcon\": \"falcon\",\n \"python-fastapi\": \"fastapi\",\n \"python-flask\": \"flask\",\n \"python-gcpfunctions\": \"gcp\",\n \"python-pylons\": \"python\",\n \"python-pyramid\": \"pyramid\",\n \"python-pythonawslambda\": \"aws\",\n \"python-quart\": \"quart\",\n \"python-rq\": \"redis\",\n \"python-sanic\": \"sanic\",\n \"python-serverless\": \"serverless\",\n \"python-starlette\": \"starlette\",\n \"python-spark\": \"apache-spark\",\n \"python-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react-native\",\n ruby: \"ruby\",\n \"ruby-rack\": \"ruby\",\n \"ruby-rails\": \"rails\",\n \"ruby-sinatra\": \"sinatra\",\n rust: \"rust\",\n \"rust-actix\": \"actix\",\n scala: \"scala\",\n stride3d: \"stride3d\",\n swift: \"swift\",\n unity: \"unity\",\n // This will be deprecated in favor of 'unrealengine'\n ue4: \"unreal\",\n unreal: \"unreal\",\n unrealengine: \"unreal\",\n visualbasic: \"visual-basic\",\n windows: \"windows\",\n // Don't add new platforms down here!\n // Please add them where they belong alphabetically\n} as const;\n\nfunction normalizePlatform(platform: string): string {\n // sentry uses format python-django, but docs uses python.django\n // this function normalizes that\n return platform.replace(\".\", \"-\");\n}\n\nfunction getIcon(platform: string): Platform {\n const normalizedPlatform = normalizePlatform(platform);\n const icon = PLATFORM_TO_ICON[normalizedPlatform];\n\n if (icon) {\n return icon;\n }\n\n if (normalizedPlatform.includes(\"-\")) {\n return getLanguageIcon(normalizedPlatform);\n }\n\n return \"default\";\n}\n\nfunction getLanguageIcon(platform: string): Platform {\n const [language] = normalizePlatform(platform).split(\"-\");\n\n return getIcon(language);\n}\n\ntype Platform = typeof PLATFORM_TO_ICON[keyof typeof PLATFORM_TO_ICON];\n\ntype Props = React.HTMLAttributes<HTMLDivElement | HTMLImageElement> & {\n platform: string;\n size?: string | number;\n format?: \"sm\" | \"lg\";\n radius?: number | null;\n withLanguageIcon?: boolean;\n languageIconStyles?: React.CSSProperties;\n};\n\nconst PlatformIcon = ({\n platform,\n size = 20,\n format = \"sm\",\n radius = 3,\n withLanguageIcon,\n languageIconStyles = {},\n style = {},\n ...otherProps\n}: Props) => {\n const icon = getIcon(platform);\n const iconPathRaw = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n const iconPath = iconPathRaw?.default ?? iconPathRaw;\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);\n const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;\n\n if (withLanguageIcon && languageIcon !== icon && languageIcon !== \"default\") {\n return (\n <div {...otherProps} style={{ position: \"relative\", ...style }}>\n <img\n src={iconPath}\n width={size}\n height={size}\n style={{ borderRadius: `${radius}px` }}\n />\n <img\n src={languageIconPath}\n style={{\n position: \"absolute\",\n bottom: \"-1px\",\n right: \"-1px\",\n height: \"30%\",\n width: \"30%\",\n borderRadius: \"2px\",\n ...languageIconStyles,\n }}\n />\n </div>\n );\n }\n\n return (\n <img\n src={iconPath}\n width={size}\n height={size}\n {...otherProps}\n style={{ borderRadius: `${radius}px`, ...style }}\n />\n );\n};\n\nexport default PlatformIcon;\n","import { PLATFORM_TO_ICON } from \"./platformIcon\";\n\n/**\n * Insert <link ref=\"preload\" /> elements into the <head> node to preload\n * platfrom icons. Useful to avoid render blocking / jank when we know we'll be\n * showing platform icons on the next page.\n */\nexport function preloadIcons(format?: \"sm\" | \"lg\") {\n const formats = format ? [format] : [\"lg\", \"sm\"];\n\n const paths: string[] = formats\n .map((f) =>\n Object.values(PLATFORM_TO_ICON).map((icon) =>\n require(`../${f === \"lg\" ? \"svg_80x80\" : \"svg\"}/${icon}.svg`)\n )\n )\n .flat();\n\n document.querySelector(\"head\")?.append(\n ...paths.map((path) => {\n const link = document.createElement(\"link\");\n link.rel = \"preload\";\n link.as = \"image\";\n link.href = path;\n return link;\n })\n );\n}\n"],"names":["PLATFORM_TO_ICON","android","apple","bun","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cpp","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-aspnetcore","dotnet-aspnet","dotnet-awslambda","dotnet-blazor","dotnet-csharp","dotnet-gcpfunctions","dotnet-maui","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","git","go","go-echo","godot","java","java-appengine","java-android","java-log4j","java-log4j2","java-logback","java-logging","java-spring","java-spring-boot","javascript","javascript-angular","javascript-angularjs","javascript-backbone","javascript-browser","javascript-capacitor","javascript-cordova","javascript-electron","javascript-ember","javascript-gatsby","javascript-ionic","javascript-nextjs","javascript-react","javascript-remix","javascript-svelte","javascript-sveltekit","javascript-vue","javascript-wasm","ionic","kotlin","kotlin-android","linux","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","node-serverlesscloud","perl","php","php-laravel","php-monolog","php-symfony2","php-symfony","python","python-aiohttp","python-airflow","python-awslambda","python-azurefunctions","python-beam","python-bottle","python-celery","python-chalice","python-django","python-falcon","python-fastapi","python-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-quart","python-rq","python-sanic","python-serverless","python-starlette","python-spark","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","visualbasic","windows","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPathRaw","require","iconPath","languageIcon","languageIconPathRaw","languageIconPath","React","position","src","width","height","borderRadius","bottom","right","paths","map","f","Object","values","flat","document","querySelector","append","path","link","createElement","rel","as","href"],"mappings":"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"}
@@ -84,8 +84,10 @@ export declare const PLATFORM_TO_ICON: {
84
84
  readonly "php-symfony": "symfony";
85
85
  readonly python: "python";
86
86
  readonly "python-aiohttp": "aiohttp";
87
+ readonly "python-airflow": "apache-airflow";
87
88
  readonly "python-awslambda": "aws";
88
89
  readonly "python-azurefunctions": "azure";
90
+ readonly "python-beam": "apache-beam";
89
91
  readonly "python-bottle": "bottle";
90
92
  readonly "python-celery": "celery";
91
93
  readonly "python-chalice": "chalice";
@@ -97,10 +99,12 @@ export declare const PLATFORM_TO_ICON: {
97
99
  readonly "python-pylons": "python";
98
100
  readonly "python-pyramid": "pyramid";
99
101
  readonly "python-pythonawslambda": "aws";
102
+ readonly "python-quart": "quart";
100
103
  readonly "python-rq": "redis";
101
- readonly "python-sanic": "python";
104
+ readonly "python-sanic": "sanic";
102
105
  readonly "python-serverless": "serverless";
103
106
  readonly "python-starlette": "starlette";
107
+ readonly "python-spark": "apache-spark";
104
108
  readonly "python-tornado": "tornado";
105
109
  readonly "python-tryton": "tryton";
106
110
  readonly qt: "qt";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "platformicons",
3
- "version": "5.6.4",
3
+ "version": "5.6.5",
4
4
  "description": "Web Platform and Framework Logo Set",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ viewBox="0 0 20 20"
4
+ version="1.1"
5
+ id="svg488"
6
+ sodipodi:docname="apache-airflow.svg"
7
+ inkscape:version="1.1.2 (b8e25be8, 2022-02-05)"
8
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
9
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ xmlns:svg="http://www.w3.org/2000/svg">
12
+ <defs
13
+ id="defs492" />
14
+ <sodipodi:namedview
15
+ id="namedview490"
16
+ pagecolor="#ffffff"
17
+ bordercolor="#666666"
18
+ borderopacity="1.0"
19
+ inkscape:pageshadow="2"
20
+ inkscape:pageopacity="0.0"
21
+ inkscape:pagecheckerboard="0"
22
+ showgrid="false"
23
+ inkscape:zoom="36.800001"
24
+ inkscape:cx="9.8369563"
25
+ inkscape:cy="12.105978"
26
+ inkscape:window-width="2609"
27
+ inkscape:window-height="1081"
28
+ inkscape:window-x="0"
29
+ inkscape:window-y="25"
30
+ inkscape:window-maximized="0"
31
+ inkscape:current-layer="svg488" />
32
+ <g
33
+ id="g206"
34
+ style="display:inline;fill:none"
35
+ transform="matrix(0.11589233,0,0,0.11589233,-0.10756019,-0.1068023)">
36
+ <path
37
+ d="M 4.18587,172.44 86.3959,88.1685 c 0.515,-0.5279 0.6137,-1.3441 0.1842,-1.9436 C 81.5792,79.2442 72.3564,78.0343 68.9375,73.3445 58.8101,59.4522 56.2405,51.5891 51.8887,52.0768 c -0.304,0.0341 -0.575,0.1977 -0.7886,0.4166 L 21.4015,82.9367 C 4.31645,100.45 1.86636,139.01 1.41703,171.298 c -0.0203,1.459 1.74987,2.186 2.76884,1.142 z"
38
+ fill="#017cee"
39
+ id="path9" />
40
+ <path
41
+ d="M 172.44,170.357 88.1685,88.1466 c -0.5279,-0.515 -1.3441,-0.6138 -1.9436,-0.1843 -6.9806,5.001 -8.1905,14.2237 -12.8804,17.6427 -13.8923,10.127 -21.7554,12.697 -21.2677,17.049 0.0341,0.304 0.1977,0.575 0.4167,0.788 l 30.4432,29.699 c 17.5133,17.085 56.0733,19.535 88.3613,19.984 1.459,0.021 2.186,-1.749 1.142,-2.768 z"
42
+ fill="#00ad46"
43
+ id="path11" />
44
+ <path
45
+ fill-rule="evenodd"
46
+ clip-rule="evenodd"
47
+ d="M 82.9363,153.141 C 73.3696,143.809 68.9312,125.346 87.2715,87.2725 57.4647,100.593 47.0194,118.103 52.1578,123.116 Z"
48
+ fill="#04d659"
49
+ id="path13" />
50
+ <path
51
+ d="M 170.355,2.10462 88.1451,86.376 c -0.515,0.5279 -0.6137,1.344 -0.1842,1.9435 5.0009,6.9807 14.2241,8.1906 17.6421,12.8805 10.128,13.892 12.698,21.755 17.049,21.268 0.304,-0.034 0.575,-0.198 0.789,-0.417 l 29.698,-30.4433 c 17.086,-17.5135 19.536,-56.0731 19.985,-88.36143 0.02,-1.45908 -1.75,-2.18617 -2.769,-1.14165 z"
52
+ fill="#00c7d4"
53
+ id="path15" />
54
+ <path
55
+ fill-rule="evenodd"
56
+ clip-rule="evenodd"
57
+ d="m 153.14,91.6077 c -9.333,9.5663 -27.796,14.0053 -65.8695,-4.3352 13.3205,29.8065 30.8305,40.2525 35.8435,35.1135 z"
58
+ fill="#11e1ee"
59
+ id="path17" />
60
+ <path
61
+ d="M 2.10315,4.18733 86.3745,86.3973 c 0.5279,0.515 1.344,0.6138 1.9436,0.1843 6.9806,-5.0009 8.1905,-14.2237 12.8799,-17.6426 13.893,-10.1274 21.756,-12.697 21.268,-17.0488 -0.034,-0.304 -0.198,-0.575 -0.416,-0.7886 L 91.6063,21.403 C 74.0928,4.31792 35.5331,1.86783 3.2448,1.4185 1.78572,1.39819 1.05863,3.16836 2.10315,4.18733 Z"
62
+ fill="#e43921"
63
+ id="path19" />
64
+ <path
65
+ fill-rule="evenodd"
66
+ clip-rule="evenodd"
67
+ d="M 91.6057,21.4025 C 101.172,30.7352 105.611,49.1977 87.2705,87.2714 117.077,73.9511 127.523,56.4408 122.384,51.4281 Z"
68
+ fill="#ff7557"
69
+ id="path21" />
70
+ <path
71
+ fill-rule="evenodd"
72
+ clip-rule="evenodd"
73
+ d="M 21.4025,82.9368 C 30.7352,73.3701 49.1977,68.9317 87.2714,87.272 73.951,57.4652 56.4408,47.0199 51.4281,52.1583 Z"
74
+ fill="#0cb6ff"
75
+ id="path23" />
76
+ <circle
77
+ cx="87.283798"
78
+ cy="87.260597"
79
+ r="3.67606"
80
+ transform="rotate(-0.709386,87.2838,87.2606)"
81
+ fill="#4a4848"
82
+ id="circle25" />
83
+ </g>
84
+ </svg>