platformicons 4.4.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.craft.yml ADDED
@@ -0,0 +1,5 @@
1
+ minVersion: 0.23.1
2
+ changelogPolicy: none
3
+ preReleaseCommand: bash scripts/craft-pre-release.sh
4
+ targets:
5
+ - name: npm
@@ -0,0 +1,172 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "Build"
13
+
14
+ env:
15
+ CACHED_DEPENDENCY_PATHS: |
16
+ ${{ github.workspace }}/node_modules
17
+
18
+ CACHED_BUILD_PATHS: |
19
+ ${{ github.workspace }}/build
20
+
21
+ BUILD_CACHE_KEY: ${{ github.sha }}
22
+
23
+ on:
24
+ push:
25
+ branches:
26
+ - master
27
+ - release/**
28
+ pull_request:
29
+ # The branches below must be a subset of the branches above
30
+ branches:
31
+ - master
32
+ - release/**
33
+ schedule:
34
+ - cron: '18 1 * * 0'
35
+
36
+ jobs:
37
+ analyze:
38
+ name: Analyze CodeQL
39
+ runs-on: ubuntu-latest
40
+ permissions:
41
+ actions: read
42
+ contents: read
43
+ security-events: write
44
+
45
+ strategy:
46
+ fail-fast: false
47
+ matrix:
48
+ language: [ 'javascript' ]
49
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
50
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
51
+
52
+ steps:
53
+ - name: Checkout repository
54
+ uses: actions/checkout@v3
55
+
56
+ # Initializes the CodeQL tools for scanning.
57
+ - name: Initialize CodeQL
58
+ uses: github/codeql-action/init@v2
59
+ with:
60
+ languages: ${{ matrix.language }}
61
+ # If you wish to specify custom queries, you can do so here or in a config file.
62
+ # By default, queries listed here will override any specified in a config file.
63
+ # Prefix the list here with "+" to use these queries and those in the config file.
64
+
65
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
66
+ # queries: security-extended,security-and-quality
67
+
68
+
69
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
70
+ # If this step fails, then you should remove it and run the build manually (see below)
71
+ - name: Autobuild
72
+ uses: github/codeql-action/autobuild@v2
73
+
74
+ # ℹ️ Command-line programs to run using the OS shell.
75
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
76
+
77
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
78
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
79
+
80
+ # - run: |
81
+ # echo "Run, Build Application using script"
82
+ # ./location_of_script_within_repo/buildscript.sh
83
+
84
+ - name: Perform CodeQL Analysis
85
+ uses: github/codeql-action/analyze@v2
86
+
87
+ job_install_deps:
88
+ name: Install Dependencies
89
+ runs-on: ubuntu-latest
90
+ timeout-minutes: 15
91
+ steps:
92
+ - name: Check out current commit (${{ github.sha }})
93
+ uses: actions/checkout@v2
94
+ - name: Set up Node
95
+ uses: actions/setup-node@v1
96
+ # we use a hash of yarn.lock as our cache key, because if it hasn't changed, our dependencies haven't changed,
97
+ # so no need to reinstall them
98
+ - name: Compute dependency cache key
99
+ id: compute_lockfile_hash
100
+ run: echo "::set-output name=hash::${{ hashFiles('yarn.lock') }}"
101
+ - name: Check dependency cache
102
+ uses: actions/cache@v2
103
+ id: cache_dependencies
104
+ with:
105
+ path: ${{ env.CACHED_DEPENDENCY_PATHS }}
106
+ key: ${{ steps.compute_lockfile_hash.outputs.hash }}
107
+ - name: Install dependencies
108
+ if: steps.cache_dependencies.outputs.cache-hit == ''
109
+ run: yarn install
110
+ outputs:
111
+ dependency_cache_key: ${{ steps.compute_lockfile_hash.outputs.hash }}
112
+
113
+ job_build:
114
+ name: Build
115
+ needs: job_install_deps
116
+ runs-on: ubuntu-latest
117
+ timeout-minutes: 15
118
+ steps:
119
+ - name: Check out current commit (${{ github.sha }})
120
+ uses: actions/checkout@v2
121
+ - name: Set up Node
122
+ uses: actions/setup-node@v1
123
+ - name: Check dependency cache
124
+ uses: actions/cache@v2
125
+ with:
126
+ path: ${{ env.CACHED_DEPENDENCY_PATHS }}
127
+ key: ${{ needs.job_install_deps.outputs.dependency_cache_key }}
128
+ - name: Check build cache
129
+ uses: actions/cache@v2
130
+ id: cache_built_packages
131
+ with:
132
+ path: ${{ env.CACHED_BUILD_PATHS }}
133
+ key: ${{ env.BUILD_CACHE_KEY }}
134
+ - name: Build packages
135
+ # Under normal circumstances, using the git SHA as a cache key, there shouldn't ever be a cache hit on the built
136
+ # packages, and so `yarn build` should always run. This `if` check is therefore only there for testing CI issues
137
+ # where the built packages are beside the point. In that case, you can change `BUILD_CACHE_KEY` (at the top of
138
+ # this file) to a constant and skip rebuilding all of the packages each time CI runs.
139
+ if: steps.cache_built_packages.outputs.cache-hit == ''
140
+ run: yarn build
141
+ outputs:
142
+ # this needs to be passed on, because the `needs` context only looks at direct ancestors (so steps which depend on
143
+ # `job_build` can't see `job_install_deps` and what it returned)
144
+ dependency_cache_key: ${{ needs.job_install_deps.outputs.dependency_cache_key }}
145
+
146
+ job_artifacts:
147
+ name: Upload Artifacts
148
+ needs: job_build
149
+ runs-on: ubuntu-latest
150
+ steps:
151
+ - name: Check out current commit (${{ github.sha }})
152
+ uses: actions/checkout@v2
153
+ - name: Set up Node
154
+ uses: actions/setup-node@v1
155
+ - name: Check dependency cache
156
+ uses: actions/cache@v2
157
+ with:
158
+ path: ${{ env.CACHED_DEPENDENCY_PATHS }}
159
+ key: ${{ needs.job_build.outputs.dependency_cache_key }}
160
+ - name: Check build cache
161
+ uses: actions/cache@v2
162
+ with:
163
+ path: ${{ env.CACHED_BUILD_PATHS }}
164
+ key: ${{ env.BUILD_CACHE_KEY }}
165
+ - name: Pack
166
+ run: yarn pack
167
+ - name: Archive artifacts
168
+ uses: actions/upload-artifact@v2
169
+ with:
170
+ name: ${{ github.sha }}
171
+ path: |
172
+ ${{ github.workspace }}/**/*.tgz
@@ -0,0 +1,29 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: Version to release
8
+ required: true
9
+ force:
10
+ description: Force a release even when there are release-blockers (optional)
11
+ required: false
12
+
13
+ jobs:
14
+ release:
15
+ runs-on: ubuntu-latest
16
+ name: 'Release a new version'
17
+ steps:
18
+ - uses: actions/checkout@v2
19
+ with:
20
+ token: ${{ secrets.GH_RELEASE_PAT }}
21
+ fetch-depth: 0
22
+
23
+ - name: Prepare release
24
+ uses: getsentry/action-prepare-release@v1
25
+ env:
26
+ GITHUB_TOKEN: ${{ secrets.GH_RELEASE_PAT }}
27
+ with:
28
+ version: ${{ github.event.inputs.version }}
29
+ force: ${{ github.event.inputs.force }}
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+
3
+ ## 5.0.2
4
+
5
+ - Fixes issues with craft builds
6
+
7
+ ## 5.0.0
8
+
9
+ - Fixes bug with importing images
10
+
11
+ ## 4.4.1
12
+
13
+ - Adds Craft to deploy to NPM automatically
@@ -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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-awslambda":"aws","dotnet-gcpfunctions":"gcp","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-csharp":"csharp","dotnet-blazor":"blazor","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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=e.platform,i=e.size,s=void 0===i?20:i,c=e.format,p=void 0===c?"sm":c,l=e.radius,d=void 0===l?3:l,u=e.withLanguageIcon,v=e.languageIconStyles,g=void 0===v?{}:v,y=e.style,h=void 0===y?{}:y,f=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"]),j=r(n),b=require("../"+("lg"===p?"svg_80x80":"svg")+"/"+j+".svg"),m=o(n),x=require("../svg/"+m+".svg");return u&&m!==j&&"default"!==m?a.createElement("div",Object.assign({},f,{style:t({position:"relative"},h)}),a.createElement("img",{src:b,width:s,height:s,style:{borderRadius:d+"px"}}),a.createElement("img",{src:x,style:t({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},g)})):a.createElement("img",Object.assign({src:b,width:s,height:s},f,{style:t({borderRadius:d+"px"},h)}))};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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",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",fastapi:"fastapi",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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,d=void 0===l?"sm":l,u=e.radius,v=void 0===u?3:u,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),x=require("../"+("lg"===d?"svg_80x80":"svg")+"/"+b+".svg"),w=null!=(n=null==x?void 0:x.default)?n:x,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:w,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:w,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};
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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-blazor\": \"blazor\",\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 go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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 iconPath = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPath = require(`../svg/${languageIcon}.svg`);\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-awslambda","dotnet-gcpfunctions","dotnet-aspnetcore","dotnet-aspnet","dotnet-csharp","dotnet-blazor","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","PlatformIcon","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPath","require","languageIcon","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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\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 fastapi: \"fastapi\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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'}/${icon}.svg`\n );\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","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","fastapi","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-awslambda":"aws","dotnet-gcpfunctions":"gcp","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-csharp":"csharp","dotnet-blazor":"blazor","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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=a.platform,r=a.size,s=void 0===r?20:r,c=a.format,p=void 0===c?"sm":c,l=a.radius,d=void 0===l?3:l,u=a.withLanguageIcon,v=a.languageIconStyles,g=void 0===v?{}:v,y=a.style,h=void 0===y?{}:y,f=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"]),j=o(n),b=require("../"+("lg"===p?"svg_80x80":"svg")+"/"+j+".svg"),m=i(n),x=require("../svg/"+m+".svg");return u&&m!==j&&"default"!==m?t.createElement("div",Object.assign({},f,{style:e({position:"relative"},h)}),t.createElement("img",{src:b,width:s,height:s,style:{borderRadius:d+"px"}}),t.createElement("img",{src:x,style:e({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},g)})):t.createElement("img",Object.assign({src:b,width:s,height:s},f,{style:e({borderRadius:d+"px"},h)}))},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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",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",fastapi:"fastapi",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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,d=void 0===l?"sm":l,u=a.radius,v=void 0===u?3:u,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"===d?"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}))};
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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-blazor\": \"blazor\",\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 go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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 iconPath = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPath = require(`../svg/${languageIcon}.svg`);\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-awslambda","dotnet-gcpfunctions","dotnet-aspnetcore","dotnet-aspnet","dotnet-csharp","dotnet-blazor","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPath","require","languageIcon","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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\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 fastapi: \"fastapi\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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'}/${icon}.svg`\n );\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","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","fastapi","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-awslambda":"aws","dotnet-gcpfunctions":"gcp","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-csharp":"csharp","dotnet-blazor":"blazor","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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=>{let{platform:n,size:s=20,format:c="sm",radius:i=3,withLanguageIcon:p,languageIconStyles:l={},style:d={}}=e,u=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 g=r(n),y=require(`../${"lg"===c?"svg_80x80":"svg"}/${g}.svg`),h=o(n),v=require(`../svg/${h}.svg`);return p&&h!==g&&"default"!==h?a.createElement("div",Object.assign({},u,{style:t({position:"relative"},d)}),a.createElement("img",{src:y,width:s,height:s,style:{borderRadius:i+"px"}}),a.createElement("img",{src:v,style:t({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},l)})):a.createElement("img",Object.assign({src:y,width:s,height:s},u,{style:t({borderRadius:i+"px"},d)}))};function c(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,c 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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",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",fastapi:"fastapi",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};function n(a){return a.replace(".","-")}function o(a){const t=n(a);return e[t]||(t.includes("-")?r(t):"default")}function r(a){const[t]=n(a).split("-");return o(t)}const s=e=>{var n,s;let{platform:i,size:c=20,format:p="sm",radius:l=3,withLanguageIcon:d,languageIconStyles:u={},style:g={}}=e,y=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}(e,["platform","size","format","radius","withLanguageIcon","languageIconStyles","style"]);const v=o(i),h=require(`../${"lg"===p?"svg_80x80":"svg"}/${v}.svg`),f=null!=(n=null==h?void 0:h.default)?n:h,j=r(i),m=require(`../svg/${j}.svg`),b=null!=(s=null==m?void 0:m.default)?s:m;return d&&j!==v&&"default"!==j?a.createElement("div",Object.assign({},y,{style:t({position:"relative"},g)}),a.createElement("img",{src:f,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"},u)})):a.createElement("img",Object.assign({src:f,width:c,height:c},y,{style:t({borderRadius:l+"px"},g)}))};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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-blazor\": \"blazor\",\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 go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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 iconPath = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPath = require(`../svg/${languageIcon}.svg`);\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-awslambda","dotnet-gcpfunctions","dotnet-aspnetcore","dotnet-aspnet","dotnet-csharp","dotnet-blazor","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","language","split","PlatformIcon","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPath","require","languageIcon","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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\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 fastapi: \"fastapi\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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'}/${icon}.svg`\n );\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","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","fastapi","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",cryengine:"cryengine",csharp:"csharp","csharp-aspnetcore":"csharp",dart:"dart",default:"default",dotnet:"dotnet","dotnet-awslambda":"aws","dotnet-gcpfunctions":"gcp","dotnet-aspnetcore":"dotnet","dotnet-aspnet":"dotnet","dotnet-csharp":"csharp","dotnet-blazor":"blazor","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetfx:"dotnetfx",electron:"electron",elixir:"elixir",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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=a.platform,o=a.size,c=void 0===o?20:o,s=a.format,p=void 0===s?"sm":s,l=a.radius,d=void 0===l?3:l,u=a.withLanguageIcon,y=a.languageIconStyles,v=void 0===y?{}:y,g=a.style,f=void 0===g?{}:g,h=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"]),j=r(n),b=require("../"+("lg"===p?"svg_80x80":"svg")+"/"+j+".svg"),m=i(n),x=require("../svg/"+m+".svg");return u&&m!==j&&"default"!==m?t.createElement("div",Object.assign({},h,{style:e({position:"relative"},f)}),t.createElement("img",{src:b,width:c,height:c,style:{borderRadius:d+"px"}}),t.createElement("img",{src:x,style:e({position:"absolute",bottom:"-1px",right:"-1px",height:"30%",width:"30%",borderRadius:"2px"},v)})):t.createElement("img",Object.assign({src:b,width:c,height:c},h,{style:e({borderRadius:d+"px"},f)}))},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",capacitor:"capacitor",clojure:"clojure",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cordova:"cordova",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",fastapi:"fastapi",flutter:"flutter",fsharp:"fsharp",go:"go",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-vue":"vue",ionic:"ionic",kotlin:"kotlin","kotlin-android":"android",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",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-flask":"flask","python-gcpfunctions":"gcp","python-pylons":"python","python-pyramid":"pyramid","python-pythonawslambda":"aws","python-rq":"redis","python-sanic":"python","python-serverless":"serverless","python-tornado":"tornado","python-tryton":"tryton",qt:"qt","react-native":"react",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"};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,f=a.languageIconStyles,g=void 0===f?{}:f,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"},g)})):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}))}});
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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\n cryengine: \"cryengine\",\n csharp: \"csharp\",\n \"csharp-aspnetcore\": \"csharp\",\n dart: \"dart\",\n default: \"default\",\n dotnet: \"dotnet\",\n \"dotnet-awslambda\": \"aws\",\n \"dotnet-gcpfunctions\": \"gcp\",\n \"dotnet-aspnetcore\": \"dotnet\",\n \"dotnet-aspnet\": \"dotnet\",\n \"dotnet-csharp\": \"csharp\",\n \"dotnet-blazor\": \"blazor\",\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 go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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 iconPath = require(`../${\n format === \"lg\" ? \"svg_80x80\" : \"svg\"\n }/${icon}.svg`);\n\n const languageIcon = getLanguageIcon(platform);\n const languageIconPath = require(`../svg/${languageIcon}.svg`);\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","cryengine","csharp","csharp-aspnetcore","dart","default","dotnet","dotnet-awslambda","dotnet-gcpfunctions","dotnet-aspnetcore","dotnet-aspnet","dotnet-csharp","dotnet-blazor","dotnet-uno","dotnet-xamarin","dotnetcore","dotnetfx","electron","elixir","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","normalizePlatform","platform","replace","getIcon","normalizedPlatform","includes","getLanguageIcon","split","size","format","radius","withLanguageIcon","languageIconStyles","style","otherProps","icon","iconPath","require","languageIcon","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 capacitor: \"capacitor\",\n clojure: \"clojure\",\n cocoa: \"apple\",\n \"cocoa-objc\": \"apple\",\n \"cocoa-swift\": \"swift\",\n cordova: \"cordova\",\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 fastapi: \"fastapi\",\n flutter: \"flutter\",\n fsharp: \"fsharp\",\n go: \"go\",\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-vue\": \"vue\",\n ionic: \"ionic\",\n kotlin: \"kotlin\",\n \"kotlin-android\": \"android\",\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 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-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-tornado\": \"tornado\",\n \"python-tryton\": \"tryton\",\n qt: \"qt\",\n \"react-native\": \"react\",\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 // 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'}/${icon}.svg`\n );\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","capacitor","clojure","cocoa","cocoa-objc","cocoa-swift","cordova","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","fastapi","flutter","fsharp","go","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-vue","ionic","kotlin","kotlin-android","native","native-qt","node","node-awslambda","node-azurefunctions","node-connect","node-express","node-gcpfunctions","node-koa","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-flask","python-gcpfunctions","python-pylons","python-pyramid","python-pythonawslambda","python-rq","python-sanic","python-serverless","python-tornado","python-tryton","qt","react-native","ruby","ruby-rack","ruby-rails","ruby-sinatra","rust","rust-actix","scala","stride3d","swift","unity","ue4","unreal","unrealengine","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":"sfAEaA,EAAmB,CAC9BC,QAAS,UACTC,MAAO,QACPC,UAAW,YACXC,QAAS,UACTC,MAAO,QACPC,aAAc,QACdC,cAAe,QACfC,QAAS,UACTC,UAAW,YACXC,OAAQ,SACRC,oBAAqB,SACrBC,KAAM,OACNC,QAAS,UACTC,OAAQ,SACRC,oBAAqB,SACrBC,gBAAiB,SACjBC,mBAAoB,MACpBC,gBAAiB,SACjBC,gBAAiB,SACjBC,sBAAuB,MACvBC,cAAe,OACfC,aAAc,MACdC,iBAAkB,UAClBC,WAAY,aACZC,SAAU,WACVC,SAAU,WACVC,OAAQ,SACRC,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,GAAI,KACJC,MAAO,QACPC,KAAM,OACNC,iBAAkB,aAClBC,eAAgB,UAChBC,aAAc,OACdC,cAAe,OACfC,eAAgB,UAChBC,eAAgB,OAChBC,cAAe,SACfC,mBAAoB,aACpBC,WAAY,aACZC,qBAAsB,YACtBC,uBAAwB,YACxBC,sBAAuB,WACvBC,qBAAsB,aACtBC,uBAAwB,YACxBC,qBAAsB,UACtBC,sBAAuB,WACvBC,mBAAoB,QACpBC,oBAAqB,SACrBC,mBAAoB,QACpBC,oBAAqB,SACrBC,mBAAoB,QACpBC,iBAAkB,MAClBC,MAAO,QACPC,OAAQ,SACRC,iBAAkB,UAClBC,OAAQ,UACRC,YAAa,KACbC,KAAM,SACNC,iBAAkB,MAClBC,sBAAuB,QACvBC,eAAgB,SAChBC,eAAgB,UAChBC,oBAAqB,MACrBC,WAAY,MACZC,KAAM,OACNC,IAAK,MACLC,cAAe,UACfC,cAAe,MACfC,eAAgB,UAChBC,cAAe,UACfC,OAAQ,SACRC,iBAAkB,UAClBC,mBAAoB,MACpBC,wBAAyB,QACzBC,gBAAiB,SACjBC,gBAAiB,SACjBC,iBAAkB,UAClBC,gBAAiB,SACjBC,gBAAiB,SACjBC,eAAgB,QAChBC,sBAAuB,MACvBC,gBAAiB,SACjBC,iBAAkB,UAClBC,yBAA0B,MAC1BC,YAAa,QACbC,eAAgB,SAChBC,oBAAqB,aACrBC,iBAAkB,UAClBC,gBAAiB,SACjBC,GAAI,KACJC,eAAgB,QAChBC,KAAM,OACNC,YAAa,OACbC,aAAc,QACdC,eAAgB,UAChBC,KAAM,OACNC,aAAc,QACdC,MAAO,QACPC,SAAU,WACVC,MAAO,QACPC,MAAO,QAEPC,IAAK,SACLC,OAAQ,SACRC,aAAc,UAKhB,SAASC,EAAkBC,GAGzB,OAAOA,EAASC,QAAQ,IAAK,KAG/B,SAASC,EAAQF,GACf,IAAMG,EAAqBJ,EAAkBC,GAG7C,OAFa7G,EAAiBgH,KAM1BA,EAAmBC,SAAS,KACvBC,EAAgBF,GAGlB,WAGT,SAASE,EAAgBL,GAGvB,OAAOE,EAFYH,EAAkBC,GAAUM,MAAM,wBAgBlC,oBACnBN,IAAAA,aACAO,KAAAA,aAAO,SACPC,OAAAA,aAAS,WACTC,OAAAA,aAAS,IACTC,IAAAA,qBACAC,mBAAAA,aAAqB,SACrBC,MAAAA,aAAQ,KACLC,8NAEGC,EAAOZ,EAAQF,GACfe,EAAcC,eACD,OAAXR,EAAkB,YAAc,WAASM,UAE3CG,iBAAWF,SAAAA,aAAwBA,EAEnCG,EAAeb,EAAgBL,GAC/BmB,EAAsBH,kBAAkBE,UACxCE,iBAAmBD,SAAAA,aAAgCA,EAEzD,OAAIT,GAAoBQ,IAAiBJ,GAAyB,YAAjBI,EAE7CG,uCAASR,GAAYD,SAASU,SAAU,YAAeV,KACrDS,uBACEE,IAAKN,EACLO,MAAOjB,EACPkB,OAAQlB,EACRK,MAAO,CAAEc,aAAiBjB,UAE5BY,uBACEE,IAAKH,EACLR,SACEU,SAAU,WACVK,OAAQ,OACRC,MAAO,OACPH,OAAQ,MACRD,MAAO,MACPE,aAAc,OACXf,MAQXU,qCACEE,IAAKN,EACLO,MAAOjB,EACPkB,OAAQlB,GACJM,GACJD,SAASc,aAAiBjB,QAAeG,+BCrMlBJ,SAGrBqB,GAFUrB,EAAS,CAACA,GAAU,CAAC,KAAM,OAGxCsB,IAAI,SAACC,UACJC,OAAOC,OAAO9I,GAAkB2I,IAAI,SAAChB,UACnCE,eAAoB,OAANe,EAAa,YAAc,WAASjB,cAGrDoB,gBAEHC,SAASC,cAAc,YAASC,eAC3BR,EAAMC,IAAI,SAACQ,GACZ,IAAMC,EAAOJ,SAASK,cAAc,QAIpC,OAHAD,EAAKE,IAAM,UACXF,EAAKG,GAAK,QACVH,EAAKI,KAAOL,EACLC"}
@@ -14,18 +14,20 @@ export declare const PLATFORM_TO_ICON: {
14
14
  readonly dart: "dart";
15
15
  readonly default: "default";
16
16
  readonly dotnet: "dotnet";
17
- readonly "dotnet-awslambda": "aws";
18
- readonly "dotnet-gcpfunctions": "gcp";
19
17
  readonly "dotnet-aspnetcore": "dotnet";
20
18
  readonly "dotnet-aspnet": "dotnet";
21
- readonly "dotnet-csharp": "csharp";
19
+ readonly "dotnet-awslambda": "aws";
22
20
  readonly "dotnet-blazor": "blazor";
21
+ readonly "dotnet-csharp": "csharp";
22
+ readonly "dotnet-gcpfunctions": "gcp";
23
+ readonly "dotnet-maui": "maui";
23
24
  readonly "dotnet-uno": "uno";
24
25
  readonly "dotnet-xamarin": "xamarin";
25
26
  readonly dotnetcore: "dotnetcore";
26
27
  readonly dotnetfx: "dotnetfx";
27
28
  readonly electron: "electron";
28
29
  readonly elixir: "elixir";
30
+ readonly fastapi: "fastapi";
29
31
  readonly flutter: "flutter";
30
32
  readonly fsharp: "fsharp";
31
33
  readonly go: "go";
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "platformicons",
3
- "version": "4.4.0",
4
- "description": "Web platform and framework icon set.",
3
+ "version": "5.2.0",
4
+ "description": "Web Platform and Framework Logo Set",
5
5
  "main": "build/index.js",
6
+ "types": "build/index.d.ts",
6
7
  "source": "src/index.tsx",
7
8
  "repository": {
8
9
  "type": "git",
@@ -0,0 +1,10 @@
1
+ #!/bin/bash
2
+ set -eux
3
+ # Move to the project root
4
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
5
+ cd $SCRIPT_DIR/..
6
+ OLD_VERSION="${1}"
7
+ NEW_VERSION="${2}"
8
+ # Do not tag and commit changes made by "npm version"
9
+ export npm_config_git_tag_version=false
10
+ npm version "${NEW_VERSION}"
@@ -15,18 +15,20 @@ export const PLATFORM_TO_ICON = {
15
15
  dart: "dart",
16
16
  default: "default",
17
17
  dotnet: "dotnet",
18
- "dotnet-awslambda": "aws",
19
- "dotnet-gcpfunctions": "gcp",
20
18
  "dotnet-aspnetcore": "dotnet",
21
19
  "dotnet-aspnet": "dotnet",
22
- "dotnet-csharp": "csharp",
20
+ "dotnet-awslambda": "aws",
23
21
  "dotnet-blazor": "blazor",
22
+ "dotnet-csharp": "csharp",
23
+ "dotnet-gcpfunctions": "gcp",
24
+ "dotnet-maui": "maui",
24
25
  "dotnet-uno": "uno",
25
26
  "dotnet-xamarin": "xamarin",
26
27
  dotnetcore: "dotnetcore",
27
28
  dotnetfx: "dotnetfx",
28
29
  electron: "electron",
29
30
  elixir: "elixir",
31
+ fastapi: "fastapi",
30
32
  flutter: "flutter",
31
33
  fsharp: "fsharp",
32
34
  go: "go",
@@ -160,12 +162,14 @@ const PlatformIcon = ({
160
162
  ...otherProps
161
163
  }: Props) => {
162
164
  const icon = getIcon(platform);
163
- const iconPath = require(`../${
164
- format === "lg" ? "svg_80x80" : "svg"
165
- }/${icon}.svg`);
165
+ const iconPathRaw = require(
166
+ `../${format === 'lg' ? 'svg_80x80' : 'svg'}/${icon}.svg`
167
+ );
168
+ const iconPath = iconPathRaw?.default ?? iconPathRaw;
166
169
 
167
170
  const languageIcon = getLanguageIcon(platform);
168
- const languageIconPath = require(`../svg/${languageIcon}.svg`);
171
+ const languageIconPathRaw = require(`../svg/${languageIcon}.svg`);
172
+ const languageIconPath = languageIconPathRaw?.default ?? languageIconPathRaw;
169
173
 
170
174
  if (withLanguageIcon && languageIcon !== icon && languageIcon !== "default") {
171
175
  return (
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path style="fill:#05998b" d="M0 0h20v20H0z"/><path d="M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8Zm.45 1.94-4.03 7.27h3.62l-.4 4.85 4.03-7.27h-3.62l.4-4.85Z" style="fill:#fff"/></svg>
package/svg/maui.svg ADDED
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path style="fill:#2d4c91" d="M0 0h20v20H0z"/><path d="m0 0 20 20H0V0Z" style="fill:#425d9c"/><path d="M2.41 11.32c.28 0 .43-.18.43-.45s-.15-.44-.43-.44-.43.18-.43.44.15.45.43.45ZM4.02 11.25h.62V7.19h.03l2.63 4.06H8V6.12h-.63v4.08h-.03L4.71 6.12h-.7v5.13ZM9.47 11.25h3.3v-.58h-2.66V8.9h2.43v-.59h-2.43V6.7h2.66v-.59h-3.3v5.13ZM15.06 11.25h.65V6.7h1.59v-.59h-3.83v.59h1.59v4.55ZM6.01 15.25h.28v-1.88h.01l.83 1.48h.03l.83-1.47H8v1.87h.28v-2.33h-.34l-.79 1.42h-.01l-.79-1.42h-.34v2.33ZM9.92 12.92h-.36l-.86 2.3v.03H9l.22-.61h1.02l.22.61h.31v-.03l-.86-2.3Zm-.6 1.46.41-1.14h.01l.41 1.14h-.83ZM12 15.28c.56 0 .89-.32.89-.85v-1.51h-.29v1.5c0 .36-.19.59-.6.59s-.6-.23-.6-.59v-1.5h-.29v1.51c0 .54.34.85.89.85ZM13.53 15.25h.29v-2.33h-.29v2.33Z" style="fill:#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><circle cx="40" cy="40" r="40" style="fill:#05998b"/><path d="M42.27 9.7 22.14 46.06h18.12L38.25 70.3l20.13-36.36H40.26L42.27 9.7Z" style="fill:#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><path d="M40 80c22.09 0 40-17.91 40-40S62.09 0 40 0 0 17.91 0 40s17.91 40 40 40Z" style="fill:#2d4c91"/><path d="M68.28 68.24C61.04 75.48 51.04 79.96 40 79.96 17.91 79.95 0 62.04 0 39.95c0-11.04 4.48-21.04 11.72-28.28l56.57 56.57Z" style="fill:#425d9c"/><path d="M9.63 45.26c1.11 0 1.73-.73 1.73-1.79s-.62-1.76-1.73-1.76-1.73.73-1.73 1.76.59 1.79 1.73 1.79ZM16.06 45h2.49V28.75h.12L29.17 45h2.82V24.47h-2.52v16.34h-.12l-10.5-16.34h-2.79V45ZM37.86 45h13.2v-2.32H40.41v-7.1h9.74v-2.35h-9.74v-6.42h10.65v-2.35h-13.2v20.53ZM60.23 45h2.58V26.81h6.37v-2.35H53.87v2.35h6.37V45ZM24.04 61h1.11v-7.52h.05l3.31 5.92h.13l3.31-5.88H32V61h1.11v-9.33h-1.35l-3.15 5.69h-.05l-3.15-5.69h-1.37V61ZM39.69 51.67h-1.43l-3.43 9.2V61h1.21l.88-2.44H41l.88 2.44h1.24v-.13l-3.44-9.2Zm-2.39 5.85 1.64-4.56h.05l1.64 4.56H37.3ZM48.01 61.12c2.23 0 3.57-1.27 3.57-3.41v-6.04h-1.17v6.01c0 1.44-.77 2.37-2.4 2.37s-2.39-.93-2.39-2.37v-6.01h-1.16v6.04c0 2.15 1.36 3.41 3.55 3.41ZM54.12 61h1.17v-9.33h-1.17V61Z" style="fill:#fff"/></svg>