From 7215072c724348b8d40a710b06a538f97a5953f3 Mon Sep 17 00:00:00 2001 From: Michael Jackson Date: Tue, 2 Jun 2020 12:29:37 -0700 Subject: [PATCH] Add Google Cloud logo + sponsorship info - Also fixed some horizontal scrolling issues --- modules/client/browse/App.js | 353 +++++----- modules/client/main/App.js | 645 ++++++++---------- modules/client/main/images/AngularLogo.png | Bin 2385 -> 0 bytes .../client/main/images/GoogleCloudLogo.png | Bin 0 -> 34164 bytes 4 files changed, 459 insertions(+), 539 deletions(-) delete mode 100644 modules/client/main/images/AngularLogo.png create mode 100644 modules/client/main/images/GoogleCloudLogo.png diff --git a/modules/client/browse/App.js b/modules/client/browse/App.js index 828d9f9..1d73b54 100644 --- a/modules/client/browse/App.js +++ b/modules/client/browse/App.js @@ -33,6 +33,7 @@ const globalStyles = css` ${fontSans} font-size: 16px; line-height: 1.5; + overflow-wrap: break-word; background: white; color: black; } @@ -119,13 +120,22 @@ const lightCodeStyles = css` } `; -const linkStyle = { - color: '#0076ff', - textDecoration: 'none', - ':hover': { - textDecoration: 'underline' - } -}; +function Link({ css, ...rest }) { + return ( + // eslint-disable-next-line jsx-a11y/anchor-has-content + + ); +} export default function App({ packageName, @@ -148,11 +158,7 @@ export default function App({ } else { let url = `/browse/${packageName}@${packageVersion}`; - breadcrumbs.push( - - {packageName} - - ); + breadcrumbs.push({packageName}); const segments = filename .replace(/^\/+/, '') @@ -163,11 +169,7 @@ export default function App({ segments.forEach(segment => { url += `/${segment}`; - breadcrumbs.push( - - {segment} - - ); + breadcrumbs.push({segment}); }); breadcrumbs.push(lastSegment); @@ -177,182 +179,195 @@ export default function App({ const maxContentWidth = 940; return ( - - - - + + + -
-
-
-

- - UNPKG - -

- {/* +
+
+
+

+ + UNPKG + +

+ {/* */} -
+
-
+

+ +

+

-

-

-
+ + +

+ +
-
+ {target.type === 'directory' ? ( ) : target.type === 'file' ? ( ) : null} -
+
+ - - - +

© {new Date().getFullYear()} UNPKG

+

+ + + + + + +

+ + + ); } diff --git a/modules/client/main/App.js b/modules/client/main/App.js index d33f5c6..9609906 100644 --- a/modules/client/main/App.js +++ b/modules/client/main/App.js @@ -11,7 +11,7 @@ import { fontSans, fontMono } from '../utils/style.js'; import { TwitterIcon, GitHubIcon } from './Icons.js'; import CloudflareLogo from './images/CloudflareLogo.png'; -import AngularLogo from './images/AngularLogo.png'; +import GoogleCloudLogo from './images/GoogleCloudLogo.png'; const globalStyles = css` html { @@ -34,6 +34,7 @@ const globalStyles = css` ${fontSans} font-size: 16px; line-height: 1.5; + overflow-wrap: break-word; background: white; color: black; } @@ -47,27 +48,30 @@ const globalStyles = css` margin-left: 0; padding-left: 25px; } - - #root { - display: flex; - flex-direction: column; - } `; -const linkStyle = { - color: '#0076ff', - textDecoration: 'none', - ':hover': { - textDecoration: 'underline' - } -}; +function Link(props) { + return ( + // eslint-disable-next-line jsx-a11y/anchor-has-content + + ); +} function AboutLogo({ children }) { return
{children}
; } function AboutLogoImage(props) { - /* eslint-disable-next-line jsx-a11y/alt-text */ + // eslint-disable-next-line jsx-a11y/alt-text return ; } @@ -114,373 +118,276 @@ export default function App() { return ( -
- + -
-

- unpkg -

+
+
+
+

+ UNPKG +

+ +

+ unpkg is a fast, global content delivery network for everything on{' '} + npm. Use it to quickly + and easily load any file from any package using a URL like: +

+ +
+ unpkg.com/:package@:version/:file +
+ + {hasStats && } +
+ +

+ Examples +

+ +

Using a fixed version:

+ +
    +
  • + + unpkg.com/react@16.7.0/umd/react.production.min.js + +
  • +
  • + + unpkg.com/react-dom@16.7.0/umd/react-dom.production.min.js + +
  • +

- unpkg is a fast, global content delivery network for everything on{' '} - - npm - - . Use it to quickly and easily load any file from any package using - a URL like: + You may also use a{' '} + semver range{' '} + or a tag{' '} + instead of a fixed version number, or omit the version/tag entirely + to use the latest tag. +

+ +
    +
  • + + unpkg.com/react@^16/umd/react.production.min.js + +
  • +
  • + + unpkg.com/react/umd/react.production.min.js + +
  • +
+ +

+ If you omit the file path (i.e. use a “bare” URL), unpkg + will serve the file specified by the unpkg field in{' '} + package.json, or fall back to main. +

+ +
    +
  • + unpkg.com/jquery +
  • +
  • + unpkg.com/three +
  • +
+ +

+ Append a / at the end of a URL to view a listing of all + the files in a package. +

+ +
    +
  • + unpkg.com/react/ +
  • +
  • + unpkg.com/react-router/ +
  • +
+ +

+ Query Parameters +

+ +
+
+ ?meta +
+
+ Return metadata about any file in a package as JSON (e.g. + /any/file?meta) +
+ +
+ ?module +
+
+ Expands all{' '} + + “bare” import specifiers + {' '} + in JavaScript modules to unpkg URLs. This feature is{' '} + very experimental +
+
+ +

+ Cache Behavior +

+ +

+ The CDN caches files based on their permanent URL, which includes + the npm package version. This works because npm does not allow + package authors to overwrite a package that has already been + published with a different one at the same version number. +

+

+ Browsers are instructed (via the Cache-Control header) + to cache assets indefinitely (1 year). +

+

+ URLs that do not specify a package version number redirect to one + that does. This is the latest version when no version + is specified, or the maxSatisfying version when a{' '} + + semver version + {' '} + is given. Redirects are cached for 10 minutes at the CDN, 1 minute + in browsers. +

+

+ If you want users to be able to use the latest version when you cut + a new release, the best policy is to put the version number in the + URL directly in your installation instructions. This will also load + more quickly because we won't have to resolve the latest + version and redirect them. +

+ +

+ Workflow +

+ +

+ For npm package authors, unpkg relieves the burden of publishing + your code to a CDN in addition to the npm registry. All you need to + do is include your{' '} + UMD build in your + npm package (not your repo, that's different!). +

+ +

You can do this easily using the following setup:

+ +
    +
  • + Add the umd (or dist) directory to your{' '} + .gitignore file +
  • +
  • + Add the umd directory to your{' '} + + files array + {' '} + in package.json +
  • +
  • + Use a build script to generate your UMD build in the{' '} + umd directory when you publish +
  • +
+ +

+ That's it! Now when you npm publish you'll + have a version available on unpkg as well. +

+ +

+ About +

+ +

+ unpkg is an{' '} + open source{' '} + project built and maintained by{' '} + Michael Jackson. + unpkg is not affiliated with or supported by npm, Inc. in any way. + Please do not contact npm for help with unpkg. Instead, please reach + out to @unpkg with any + questions or concerns. +

+ +

+ The unpkg CDN is powered by{' '} + Cloudflare, one of + the world's largest and fastest cloud network platforms.{' '} + {hasStats && ( + + In the past month, Cloudflare served over{' '} + {formatBytes(stats.totals.bandwidth.all)} to{' '} + {formatNumber(stats.totals.uniques.all)} unique + unpkg users all over the world. + + )}

- unpkg.com/:package@:version/:file + + + + +
- {hasStats && } -
+

+ The origin infrastructure runs on{' '} + Google Cloud which + automatically scales the number of available servers to meet the + current demand. +

-

- Examples -

- -

Using a fixed version:

- - - -

- You may also use a{' '} - - semver range - {' '} - or a{' '} - - tag - {' '} - instead of a fixed version number, or omit the version/tag entirely to - use the latest tag. -

- - - -

- If you omit the file path (i.e. use a “bare” URL), unpkg - will serve the file specified by the unpkg field in{' '} - package.json, or fall back to main. -

- - - -

- Append a / at the end of a URL to view a listing of all - the files in a package. -

- - - -

- Query Parameters -

- -
-
- ?meta -
-
- Return metadata about any file in a package as JSON (e.g. - /any/file?meta) -
- -
- ?module -
-
- Expands all{' '} - - “bare” import specifiers - {' '} - in JavaScript modules to unpkg URLs. This feature is{' '} - very experimental -
-
- -

- Cache Behavior -

- -

- The CDN caches files based on their permanent URL, which includes the - npm package version. This works because npm does not allow package - authors to overwrite a package that has already been published with a - different one at the same version number. -

-

- Browsers are instructed (via the Cache-Control header) to - cache assets indefinitely (1 year). -

-

- URLs that do not specify a package version number redirect to one that - does. This is the latest version when no version is - specified, or the maxSatisfying version when a{' '} - - semver version - {' '} - is given. Redirects are cached for 10 minutes at the CDN, 1 minute in - browsers. -

-

- If you want users to be able to use the latest version when you cut a - new release, the best policy is to put the version number in the URL - directly in your installation instructions. This will also load more - quickly because we won't have to resolve the latest version and - redirect them. -

- -

- Workflow -

- -

- For npm package authors, unpkg relieves the burden of publishing your - code to a CDN in addition to the npm registry. All you need to do is - include your{' '} - - UMD - {' '} - build in your npm package (not your repo, that's different!). -

- -

You can do this easily using the following setup:

- - - -

- That's it! Now when you npm publish you'll have - a version available on unpkg as well. -

- -

- About -

- -

- unpkg is an{' '} - - open source - {' '} - project built and maintained by{' '} - - Michael Jackson - - . unpkg is not affiliated with or supported by npm, Inc. in any way. - Please do not contact npm for help with unpkg. Instead, please reach - out to{' '} - - @unpkg - {' '} - with any questions or concerns. -

- -

- The unpkg CDN is powered by{' '} - - Cloudflare - - , one of the world's largest and fastest cloud network platforms.{' '} - {hasStats && ( - - In the past month, Cloudflare served over{' '} - {formatBytes(stats.totals.bandwidth.all)} to{' '} - {formatNumber(stats.totals.uniques.all)} unique - unpkg users all over the world. - - )} -

- -
- - - - - -
- -

- The origin servers for unpkg are powered by{' '} - - Google Cloud - {' '} - and made possible by a generous donation from the{' '} - - Angular web framework - - , one of the world's most popular libraries for building - incredible user experiences on both desktop and mobile. -

- -
- - - - - + + + + + +
@@ -505,7 +412,6 @@ export default function App() {

© {new Date().getFullYear()} UNPKG

HM!9+u$2FwSRhKg2B<&>E{G!#O# zwA6e=j)|gO?V+h4plBtal?v$qDI=3vgaK)w- z0000O;O~7%hw3kTnZE99-CJR-15QX_sE-c&4ED4e*$MUSznU)mkNyA5Kl8u(I!A2c z^2*FfcJ9u|rGiEI)VyNq({Ykkt9^SSZGL!kc4TzSGn%*mxawJ#qP=Tm$NsL}{!{ci z>HRw0XkGb-y+_$jMHy)#GgHe@3YgxRlDsIzilq0|Sw&Y(Mu@wkSyKF}g2KfF85E0efvcWi^e-(3c~#)b>`TQ2)>6zHAmrMd-Stf-V=Oj zU|bgI<@i-s9DGM~8e77!JU&BVo2CnzGbOe#tP;Vul%}y2h;}~u-%*q<+MSR8BC3L7 z8XSt4URzS*4V`AssYpj|Vzz9q78l55t9WVHt=T2?Gut}JIRsIh z1%d!9ZTJz0B;Ds&fZx58g;kJ+7Y{6mdr%8A^3Vy)yS)| zsbKXMQWg=wJBnuq3Ta7hXa)wz;|x+dHDw#{0*dc&FU3?ws*lXV1bG|vkTrJc?lHjN zxV+q;QM+`wt7km|b_ZnGa6omy8ka&`>FSU(Au&;`u4v~q>eRrPTlEkZxaSP+X!}zh z6N!0pnRbDHC4JX!?2S_{tb*eRhOZP-d-2#)A`^8SoC@*u8x4$*m2wC>aof*q=r%;( zmNzNY*S9Ky_l(sSQ#xn(hSs>Z_KQE=1bH>kWPX7H=X26Js;1gbJRzO;(y*u^y40Wj zaWqDG)+ibnjM@fe#20WE*K`(wgRBxQx1!**kM4qD<>d}Cy@?|8^A>n3FYDA^i2&%{ zJq|%w`VNpzg;y{@>$8Vq`_*}j%^zd6LAyr^4t$aoy!<>Yi?--az z<(m^N4e1+Zs#fz#YbgQY%Y@}o2$PfR^Fc-SYQbHwr}|Mb#im`NE9?#4bFoai`C7OS z*kl*k}6{1T5!RH3W5Y$66%T7aX^xOg+9-zpuWmVZpO|{MrF-usr&Ys6i zc*u*CfGr-Xhud&(J=JJ0Hh!a8a2*_+r5se)NN&(Mz^w(ca4>6fz?QI5xZwh`r>3w) zJ#_cjpv1__V{MBY2(%$D)L#CVn0F(Ed=1PK@&C1~<@p)aI19Qs-VZhFOeJ2=fw%BE zeD@;Mv2wA42gDf$Z|yGe?&rm-E3O@ib%OKfFGcD%-)uc~D|u=lX9})i9u#E{^z=J@ zW;PP7!XToi!*f#X&k&K07^%;&u@{jD4b}2*X(> zHAR)l?@tr{f;XS4{zoHs$fb(Uae=f|%+IzkH>wDm1X93VnR*{`#WYgXrDQ*3x*D+Y)Ihu{Q7!rfGMwO?^v ljI?SQ9hwt}{Ftxy#)W*NndmOdGy3wQ2l&9ft34yn{|yqu>aG9) diff --git a/modules/client/main/images/GoogleCloudLogo.png b/modules/client/main/images/GoogleCloudLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5aed0843a75d528bccb849351cf1c9b2aaef86 GIT binary patch literal 34164 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

SL4I{+k zm3GAFvFBe>-!A`4iy3-q=t*6I=^1o-(SKgpiTXX6h=0z$6|B~|y!hiM;5StT*&b1# zIp6;A##pQ+V(E|lL9gkh9P}wnr zjE`*B-lFsPBKKThj)%6#D)#3GoaQtnp!JeXPyx~uZVvah*_I~Vb${Gl@7L#y2xF>r z;5%g+sa+KAq6zss+o2F%O_sG`4+~q^>Gm?JDmB3)2v6eP_qXAc-kHY)h<)eh4vSJw zVu)t$t{dt#RBA-ci2W^gTJcfr4}}Rn7BY!t-9hu*`ks61N}2S@p!(u(>*9^QjL+fE zGOe}7f=ezHxTtmDbp(drXr6~ntL1+yc-hO-tDsa{m$WXxQQ2Z76|zg-h&{) z^|=~D5E8Pa<0aV6UFj(FtDB&DT!hlyE*_1K6x%`(dwohWoe|ER0UvqM#6(00Gj-=T z>OWkIWb(F7oE*|`HMm*wo%T8l$VIMAz*WJHthMXhAf6Y|kcsv?tvFC0cTsl!sF}55isqYZA^4#`2 zMc+WBLuw~FB=)TB%lp*EgF8Fg&rLrz@s$w32mjjmXH`TF%DftfTpHalqeLN)XZ3|$ zQyv^&Yyq=1b8p-CtT1Q96))s?x3_cBb0zk95CV`7&VO4X<2I`-TXon5a!9#%}3sx%zlqXbOVuZg=rxT-0-VQTpPz8ZiRFG znFSEM_^C{b;#v0D|2aI)sOpX~$!#%f`PZi07V)6}(6iBiL|Sg0bOk^SOV{O5z0s7P z$tLcO`i`~%)-p~SU~A*FzE|>X4$1#D`Ea`a8FA0`i2wn83E8!AyMJ0~IDXkYJ{3h< zO90nMGuW^GG^!qm)$_T&{ZI0Sn-oWoo$|59V&3Nbs&JJEvqIQQ=9i zEdH6sP}cLHn!E;#2!hxs+lOw!QDN7V()XrK}2;}w+t%< zmf4Oogo{-V#G_ppF~Qy4ff3Jum4rYECnNzZ6)MKl;e+#95TK)g;|4?`KqHlh4huhf zdb1!QeF)yBtQcMbJAsA^sar3BQYj7&%NZPx1V_;8{!!h%43NqLN=NCVgMhbeoy4`B z?mqTpkJkRyD60ve#I#{x_cPnb!H=&0vmYX*xY6+7xj){-O}D>dDh+=PvYs2K0T#Q) z=yxYu$L+jOVnjmW<3xS@HLae&YB@nY!BQ4`SQ^;-Ei5%0j#p1 z;NA)LJ7w%F{`d@S)5iPtb|IgwWc3B^(n?Jm3+@1ThW&- z?D&`hgciiR$(g)z6-y+!egN42I2puPL-<1NRkaFc;V#8;6S(+Tv=S&!Gt}iPjg0Jh z^8>-b{4;RA3(kKO0ErsYxCvkw@NBR89kIjzPvvmFf~av;lF2}V^53(yV5@9}g1)fn zPC)NZI-9e)QQ>lc(pW!=gA)kSdO$T&!aiv=C)+g-0D1iM=Kp!A;o&Zztt1CB6VL(~ z3)|r$r+ssltF>IU_}Dv~vSUSDH63c?42$-viurC+*Yd5=fs7dN;M7fDXUmUvASAzocS6JzN?BD0(p5gy| zdXAN5{&(qrA3(qSU+4r#+e;w(jE`1TlGpw}(xm@2<9~DH|H9PxpB?^xZHGe-MFbx0 X9={ZOC;_CFz`1hDno0