From 1808781f20f0c41f6d4a965eb5bad522caf9e56a Mon Sep 17 00:00:00 2001 From: mauroerta Date: Sun, 31 Oct 2021 20:35:27 +0100 Subject: [PATCH] feat: added pwa plugin to documentation website Additional - fix missing dependency `cli-ux` inside cli package - fixed `web-sandbox` application (was missing MorfeoProvider) --- apps/web-sandbox/src/App.tsx | 41 ++- apps/web-sandbox/src/index.tsx | 5 +- docs/docusaurus.config.js | 32 ++- docs/package.json | 1 + docs/static/icons/icon-192x192.png | Bin 0 -> 5850 bytes docs/static/icons/icon-256x256.png | Bin 0 -> 4687 bytes docs/static/icons/icon-384x384.png | Bin 0 -> 13548 bytes docs/static/icons/icon-512x512.png | Bin 0 -> 10123 bytes docs/static/manifest.json | 32 +++ packages/cli/package-lock.json | 302 ++++++++++++++------ packages/cli/package.json | 6 +- packages/core/package.json | 3 +- packages/fonts/package.json | 3 +- packages/hooks/package.json | 3 +- packages/jss/package.json | 3 +- packages/native/package.json | 3 +- packages/spec/package.json | 3 +- packages/styled-components-web/package.json | 3 +- packages/svelte/package.json | 3 +- packages/web/package.json | 3 +- 20 files changed, 326 insertions(+), 120 deletions(-) create mode 100644 docs/static/icons/icon-192x192.png create mode 100644 docs/static/icons/icon-256x256.png create mode 100644 docs/static/icons/icon-384x384.png create mode 100644 docs/static/icons/icon-512x512.png create mode 100644 docs/static/manifest.json diff --git a/apps/web-sandbox/src/App.tsx b/apps/web-sandbox/src/App.tsx index 4183d06d..4ecd75d2 100644 --- a/apps/web-sandbox/src/App.tsx +++ b/apps/web-sandbox/src/App.tsx @@ -1,4 +1,3 @@ -import { ThemeProvider } from '@morfeo/styled-components-web'; import { theme, Component, Variant, useStyles } from '@morfeo/react'; import { Box, Button, Typography, ThemeToggle } from './components'; @@ -48,28 +47,26 @@ function App() { }); return ( - - - - - - {getStyle('Button')} - - - - - - {getStyle('Button', 'primary')} - - - - - - {getStyle('Button', 'round')} - - + + + + + {getStyle('Button')} + - + + + + {getStyle('Button', 'primary')} + + + + + + {getStyle('Button', 'round')} + + + ); } diff --git a/apps/web-sandbox/src/index.tsx b/apps/web-sandbox/src/index.tsx index f4be7927..64ebd7ff 100644 --- a/apps/web-sandbox/src/index.tsx +++ b/apps/web-sandbox/src/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { ThemeProvider } from '@morfeo/styled-components-web'; import { lightTheme, darkTheme } from '@morfeo/preset-default'; import { morfeo, resetCss, loadFont } from '@morfeo/react'; import { enableMorfeoDevTool } from '@morfeo/dev-tools'; @@ -28,7 +29,9 @@ loadFont({ ReactDOM.render( - + + + , document.getElementById('root'), ); diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index f09fa183..78862cab 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -142,5 +142,35 @@ module.exports = { }, ], ], - plugins: ['@docusaurus/theme-live-codeblock'], + plugins: [ + '@docusaurus/theme-live-codeblock', + [ + '@docusaurus/plugin-pwa', + { + debug: false, + offlineModeActivationStrategies: [ + 'appInstalled', + 'standalone', + 'queryString', + ], + pwaHead: [ + { + tagName: 'link', + rel: 'icon', + href: '/img/logo.svg', + }, + { + tagName: 'link', + rel: 'manifest', + href: '/manifest.json', + }, + { + tagName: 'meta', + name: 'theme-color', + content: '#06f', + }, + ], + }, + ], + ], }; diff --git a/docs/package.json b/docs/package.json index 569c6eb4..d3e007f5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,6 +15,7 @@ }, "dependencies": { "@docusaurus/core": "^2.0.0-beta.8", + "@docusaurus/plugin-pwa": "^2.0.0-beta.8", "@docusaurus/preset-classic": "^2.0.0-beta.8", "@docusaurus/theme-live-codeblock": "^2.0.0-beta.8", "@docusaurus/theme-search-algolia": "^2.0.0-beta.8", diff --git a/docs/static/icons/icon-192x192.png b/docs/static/icons/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8e86679e3e0af5e7997bd3f9905c3f1ecc185b GIT binary patch literal 5850 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 a&W9hEFZ7wh^MOCB>CB988dVs&$NnE41`$&L literal 0 HcmV?d00001 diff --git a/docs/static/icons/icon-256x256.png b/docs/static/icons/icon-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..414e29bab22eaf40467c7034fda5576a37090006 GIT binary patch literal 4687 zcmX|Fc{o&W`#-b9$krgnJ~5GG-=Z>uAxgGT5;N$fq9RHQ&P-$-Ste;wghG97rHGiZ z6q!m|B+^i(gp9^IjG6b$_x)YJKhAZY=YF1h`#k5mKlgJoygYWxu2)+R0D!EUE71o4 zV9*c-pd_Hz;nS7j&`T=XH6RuM)IBW zUP_ri{c9~Ie0Hl!(|>wxe+^$WDx`e9c>7d1cW%cCJvxhX+LE%FHFl5DiT~AJC_Vb{ zve$`Eok%w36Vj~9I6#x0GW`1J@JmHrp^w}q;bwNFqfwK5^iNE)7TwarR!R47@ zr<}yG+@KPtTW7$1;U^Rc#*#VD5ryv50PSZ?9k;t-Rz*vOm^yqzB>q%C~?oY~V@TMp0rZL%!!%o0y+onbI^_BZsoAX`5L4>4i>iMiG z6!X^{`CX@RzUxi?C@H$zf-McjcfdWzcoLl#7uy-e_J9RYo@Ip$N*mK$QG!@|_w!}` zfR@N`TkuRrdP>Lgf#d7QyeZ>!SJ$0?gX2h^%A+HFK^yXN4>noy>~FE0;}Ft=TYp}%C)~WhwNpny`PP{pPaw!9#*FBwbBkJ| z{tFR3ttGZS&E9C|3(c5vbxGx$_J zDjnx9`~f~%^pp<%^@ka#3d{5DCDj5-I%jCsX_D89NT zq?4b(za`f7ao|53tl%3O%Gp;-m=RASAQgCrsR<3%VhIx*+}QU;7>-bh7hAiwZ0f5Axj@ zV=0A!<)yv?_hfKP_KJN+A&H@z!7tG1CECNa6gLDs7Bp&-?D;G;iX&2Q!2+%mnJ@a7 z$kGSDAb@^JMfb^H299}qSfo72X*5XEhvoTiyvhiL0Tay`bjlWyQMaFmFjIo*M!0m1 zaULf+2CaUFZE=SyW>Zr1MD^$ShEZf|Iq65q=nWis8!^5UVMyEvkFBB058DW&%b`3b zeo!5}g;<1FI+Li2H7H;Nyr!{U#Q1V@3PAyY>qQB}x`&DCpdB7W+rV->dim z*cKvL@Y{uO72g8@(;vT}TzTW#MF3wB4IPVH>6uteg5|tBMUWvy*aZLKu{2HT3KXj6 zQ16W7Zvsmp1Y(mEOyLTFeDJ0QUr_~8iYXAKmeKV=9RwMPyTV(Vytb3Cs15=1a={v2 zDsYehM$_==I-_4;RVf0{y-AQE519_jruY(s-=qrh8^s~fS`a?Q{G2^$f+{J1Y0P(H zqFfC)4B?iECnURZPd|W0x#}eRw(8)Q`OmBSe=^J=%P`534OFvM8f6QZ3j+qvSjfxl z`M_Zqzu;Ba0YHnLleOYJoDOIaBrYaD2oKr$Gs@MoPK^C_Xz|2JWVswa2jvN&O-7b`@LSUK!8&o+4QN!b z&;iEMjst+RHt=>9+lI_fmZzXmbZeulY#_k|UPdFB@<_4g2E!Pz%4BU-YRUMi8i7Q~ zThx4tCXKL_!&qtTJp~MGq#8lyT<-}I!TSOUCTa@TwHGo|70|FQy0>8jYe0Vyus#iD+CgROPS(~ zq%5J;kX&dK5RaVMWfg=zdaIDpD4yF~JVn2QYIu{g1|f;7gRq0;>JZ5-9uQ90L6i*M zC;)wQSV2PbuGm@@!9f^2B6i}1_DVuv@7e2Z`0%fed7Y<>7y$zOUkt0r$mXbWK`3x3 zn>njhkRgsDV=uCIrxZkdpSMCzt`o__Jm(TD=n3JV(20ukNiqZ4UC8dW6LXT8`&#^a zi(Sm09X9@DUY;c%?!?WTeJ$xli)h@d-}D_nI;#yGW-f8|_vh#j^ysBn(}<8CZM(C= z-&IQ=29>6tsva?~c?iqxs!Q1XdIeQe1nUD)u_~XqQ$r2uXLVQN(h%{NWFG|WMPM^H zw>Hm$BxV?wS;pK{pN01;5{2aM?vO}gp$HpHm}IB6TjnN>R1{wJ_=Ky$2agxqHoGAEnhNZj+LA~xhFdz5N3 zdb=;=%btVv=J{aqQ>vHozuDcIOH$yi7!rlt%N-- z7cnhA95q45`9wjj1=^(jk7ql(jrLR+S$f`L;<Y8 zqE(8~jt=KELQdk{8@n;Y%#JDT&M#qQQ?~vCmeY|fCuI=w$z@9i6V;YIpeE$p#EFSr zI%*bbdmsLc9xy4@o{WL#-8bXNPT-r5c|1J^Q_+x7(G-lJ{#g%oB6L#P{u%12Yu0O^ z9X-Py#Y-)_`vkq=n35vt@`v3W2c)w`ai$Zl+qs2o7xJfE;Y% z-MJf{<*u7Kl0C3O52~37xEk^0(m#d!jK0Y~(4@B9Nq*c7v2UvBSi$#R61m@eJD3o6 z_LLtGyow2b?sro%AL?Jqp&ctMb_J5BvK*!LRY0r;WX{{!6&~Dr{NJj7q?%^Z!>DY) zNAy_qTjmBmm%0BuU`5iOp4?KLqf^&|O80e7qJW8tts(Ace$0kUisOa+LGhKd>($(5eZ0WD+ZNg70LyV zOCO$O8R3~l>vDtYADPQ1e8QQ&bR%>eabL$tn@B3o46Y{8lkb`^16&C3s|-*q?I_7) z*X*Y!U!+lxU5RG741%AAa`^@r<<^yj>y+|?LcEh`by6hv=ANFl%`{ZThg3B!Al9P{ zp|{7%Y&$$D?ee~}@+zf*h@LUmijg!*xwFusyUSB}Py%WOf-T|s2`+C_U}4{5 zm?maW#mtv*d9K7Z0;dsPJ0J?r#r1*%gXdVP zL+9TfaLdyUJ-wOiq??O4X{-DoaHW)vd4;!L=~=+#HRa4yzH$y5psW@laauALH{Iar zn*$GZW_^^X>s$z1w~1_jIoq)Wy+);3UuHx6|*T28%c&lz;KnX?(%t?M)oq*n}%K??&-pcjh@3(~|;NffB zScTk|F$a1%o@d1PSy^0={&|W?ZRhH$s#Tg;tfk$#ZuYc(gVv>ZoS}I=6XT z#B~d4(|X{T&>@Wmn%;!Ld-3Qtsrlais7lX-P4KlMqci__z(Zb% zd@UE#lKNb&=T#gx!9Cz((YJW&6gyqht+Xt>jC|>r|__WxoN`pMuBwUGi47TJDox&oPHL- zzYSzsOKHeYJvqBiL06>MKUgd90Gu-jY;RMreku=n(kDru61tl_&FZgBD;mXZh~#Uh zN$Yj$aN^-xoRLMy?<}&I39*OyCcgiR!v&fbq!Wt0e=k#dh%6E2a5+TQ3TR9r^tBTH z(==w*G$CeP7pyDa#6JnK;TDQ!3FmyzImypT{R~qwgx3-oTBmgymh7nSUx|)3a7fR; zK8c2>hagwBOI@W+6|kkSGiXe4F>)qaVM~T!?^Q@3g@(pjpLdmtSs!UA+PohE31&^uBgEMw!ne-JE*C~n0+M;T` zc;9Yu%i$WPLr|jL>7=Vu4K-H7aw1@%TGZ9K2+0|H+kgnknsXZ@>`{i|jR(<9-`kH) zle~Y-MF6-;ltAdvbeO+O0(&om&^I=_P`ca;!6il5qe0a$wG5{-Iea709w;N9A(VT~ zlO69iNuZk&4h0K~`f^~oJZG$Ae6i0Ll+0@usZ5}S$TiEAh9jUBEj zkj}e_dJfx_T5vL+!2j?f^~9!@Abk~`6X@;dw~iz^qRRGJm+K4O9~hsXzlff!o6t-+gAWpfO7{3SrX#A9uZX2XVK^($=ttaQ_oGsafYe&v02 z(xKlU<-WCTvqN3am`_`Z==^q|d&$GXKu(ohc2<0;4oI7L+bSR4dGYaBnQhxePZaHs z>~3xzxJwBR%=YYven*CG&($(JWsLb&N6h=Vj9ArowP#aeTFVj+@E5;Dg z3%dP})diL%I-=dIHHVl5466MI!%(CKUHixeUsrI4myX7mY(?ks-j%Mu5T7h9pZa#{ z^IH4>h60~c?xb_uJGn&3thPg#wI9Rw8C_{I@7k>5qND?(0Ld98&54nQwaLJ>Apw5j Y%GR$Zw)NOUe~17#XAfeHBl*&Q0ZR8~lK=n! literal 0 HcmV?d00001 diff --git a/docs/static/icons/icon-384x384.png b/docs/static/icons/icon-384x384.png new file mode 100644 index 0000000000000000000000000000000000000000..8232f6319cfcd0b47a52ce6df7a74a9b0ede151d GIT binary patch literal 13548 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