From 0e77e13c857294c6032a87fc620e5d3cce3a5c8d Mon Sep 17 00:00:00 2001 From: Sungyong An Date: Sat, 22 Jun 2024 20:07:15 +0900 Subject: [PATCH] Minimize sample codes for wasm --- .../src/wasmJsMain/kotlin/BackHandler.kt | 2 +- sample/web-wasm/build.gradle.kts | 3 +- .../drawable/album_amy_shamblen_unsplash.jpeg | Bin 16050 -> 0 bytes .../drawable/album_david_clode_unsplash.jpeg | Bin 41892 -> 0 bytes .../drawable/album_efe_kurnaz_unsplash.jpeg | Bin 15829 -> 0 bytes .../drawable/album_ellen_qin_unsplash.jpeg | Bin 11223 -> 0 bytes .../drawable/album_emile_seguin_unsplash.jpeg | Bin 2379 -> 0 bytes ...lbum_jean_philippe_delberghe_unsplash.jpeg | Bin 6375 -> 0 bytes .../album_karina_vorozheeva_unsplash.jpeg | Bin 30524 -> 0 bytes .../album_kristopher_roller_unsplash.jpeg | Bin 22977 -> 0 bytes .../album_pawel_czerwinski_unsplash.jpeg | Bin 33561 -> 0 bytes .../album_pawel_czerwinski_unsplash_2.jpeg | Bin 23936 -> 0 bytes .../compose/material/motion/shared/App.kt | 26 --- .../material/motion/shared/HomeScreen.kt | 200 ---------------- .../material/motion/shared/NavGraph.kt | 100 -------- .../circularreveal/CircularRevealScreen.kt | 154 ------------ .../shared/common/BottomTabsContents.kt | 123 ---------- .../motion/shared/common/DefaultScaffold.kt | 34 --- .../motion/shared/common/DefaultTopAppBar.kt | 39 ---- .../shared/common/ForwardBackwardContents.kt | 191 --------------- .../motion/shared/demo/AlbumContents.kt | 220 ------------------ .../motion/shared/demo/AlbumScreen.kt | 122 ---------- .../material/motion/shared/demo/DemoScreen.kt | 75 ------ .../motion/shared/demo/LibraryContents.kt | 173 -------------- .../motion/shared/demo/LibraryScreen.kt | 202 ---------------- .../material/motion/shared/demo/MusicData.kt | 155 ------------ .../MaterialElevationScaleScreen.kt | 74 ------ .../material/fade/MaterialFadeScreen.kt | 78 ------- .../fadethrough/MaterialFadeThroughScreen.kt | 57 ----- .../motion/shared/material/hold/HoldScreen.kt | 74 ------ .../sharedaxis/MaterialSharedAxisScreen.kt | 131 ----------- .../navigation/AnimatedNavHostScreen.kt | 134 ----------- .../material/motion/shared/theme/Color.kt | 23 -- .../material/motion/shared/theme/Shape.kt | 26 --- .../material/motion/shared/theme/Theme.kt | 66 ------ .../material/motion/shared/theme/Type.kt | 21 -- 36 files changed, 2 insertions(+), 2501 deletions(-) rename sample/{web-wasm => shared}/src/wasmJsMain/kotlin/BackHandler.kt (91%) delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_amy_shamblen_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_david_clode_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_efe_kurnaz_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_ellen_qin_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_emile_seguin_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_jean_philippe_delberghe_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_karina_vorozheeva_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_kristopher_roller_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_pawel_czerwinski_unsplash.jpeg delete mode 100644 sample/web-wasm/src/commonMain/composeResources/drawable/album_pawel_czerwinski_unsplash_2.jpeg delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/App.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/HomeScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/NavGraph.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/circularreveal/CircularRevealScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/BottomTabsContents.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultScaffold.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultTopAppBar.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/ForwardBackwardContents.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumContents.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/DemoScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryContents.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/MusicData.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/elevationscale/MaterialElevationScaleScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fade/MaterialFadeScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fadethrough/MaterialFadeThroughScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/hold/HoldScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/sharedaxis/MaterialSharedAxisScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/navigation/AnimatedNavHostScreen.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Color.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Shape.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Theme.kt delete mode 100644 sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Type.kt diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/BackHandler.kt b/sample/shared/src/wasmJsMain/kotlin/BackHandler.kt similarity index 91% rename from sample/web-wasm/src/wasmJsMain/kotlin/BackHandler.kt rename to sample/shared/src/wasmJsMain/kotlin/BackHandler.kt index bd292e7e..09a3dd72 100644 --- a/sample/web-wasm/src/wasmJsMain/kotlin/BackHandler.kt +++ b/sample/shared/src/wasmJsMain/kotlin/BackHandler.kt @@ -16,6 +16,6 @@ import androidx.compose.runtime.Composable @Composable -fun BackHandler(enabled: Boolean = true, onBack: () -> Unit) { +actual fun BackHandler(enabled: Boolean, onBack: () -> Unit) { // do nothing } diff --git a/sample/web-wasm/build.gradle.kts b/sample/web-wasm/build.gradle.kts index 28e06882..b7cb38c5 100644 --- a/sample/web-wasm/build.gradle.kts +++ b/sample/web-wasm/build.gradle.kts @@ -2,7 +2,6 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { - //id("mmc.kotlin.multiplatform") id("org.jetbrains.kotlin.multiplatform") id("mmc.compose") } @@ -28,7 +27,7 @@ kotlin { sourceSets { commonMain.dependencies { -// implementation(projects.sample.shared) + implementation(projects.sample.shared) implementation(projects.core) implementation(compose.ui) diff --git a/sample/web-wasm/src/commonMain/composeResources/drawable/album_amy_shamblen_unsplash.jpeg b/sample/web-wasm/src/commonMain/composeResources/drawable/album_amy_shamblen_unsplash.jpeg deleted file mode 100644 index d042973daaadfb5c32c2867da8de9518f614c930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16050 zcmc(`cT`hf*DksN5d;;H4gxUZC&?(f>@>y=j}C`{{?- z9YRgae|zMAyUpL43HKpf6QL#oh>3}auaRE++myczA>4)f+I>;dyJAmhbY8vNR(2`= zNy`y+J-vVDY7DqZ_z^KR2{oVuoVmh25znai9#X%1|M>s-`Bt6kEooyk1M%a(jsDM$ zJI8mQ&Ja022x|QLpH=YpU)L0`eLV(DZrpc%@Sj&gMD^~0BEUfW+~mf;D)E387PBz% zOJtz+^Jll!?7e#erV3I~{3T(@{0cce!mOXThFV%R6C}O(r&0Rp=GJSmCgOFiuQCT< zCc4$>%(yJn4QHD^;q~)1us$ar&d-W-U|-SjZh57L_=0C#o3~A>5+}7|wdbC6S+>#_ zv*>-xuTQqEJHrzxuUhA#o%`@LOk-xOmo+M49;c5O&XsHT=cf= z`g3D3pdFKqs=+jgI(iG!WE1y}XaVyynYa&S7K_kwR7Bg(8@DD0bQZ-jE zubxs4HF??Y?AIHcn^#$5)S>SRyW!;1JHPs3><`Q=PU>6!=DjHe=PCI*^yo_>Flo7A z&l=9}Rak%ssZU%y{tS)F+@V`)5}0~S4!;jh(;HEQ>;J9@NqJT>J{9$|Y*i2G5ZY;{ zCOsC?Z2oR|EtY@vG>oB~MZgQ!ubKiF+$uzD=>_w0*Y>7KgrL zaN~&~2)=qUrHsPrp?PNYTo6^~E5~-albEG-bY92ofT-4-#8E}Ie;Eq+GNPSYO)Fxi82CuI+N`M;(#WaX}cjH5vOX@dC+c*z=2Jk)(&!!L80 zcYa_){wRBTPe#0fU3fK@rI z=bw242$;`h&i}r%sPVX=RHO;R6<{{-l?Z$X0D>E%*#XLT4}`D1{p)#RMNZ(QFpPdk z?CT%>Ib@DMRwY^Qb{5vbpLR(12PG!ycz2D>o%T+JGrRMtB6)e0Ng5KG)372zY0ji zO*_H)6*xw(UofRN%7Gb7yUbkZps?E}8s}MFUgp57ie$FG6L~FUx?T2D>?ub7;`Wnp z55pELhFbij3b?N8rc%g0Y-sMQL?O^^7zmv#s@nb-P*iaQ0D{tcgAM{UNg=VE{2?E= zr*E^W{ZrTW0s%AylE>BXu) z9Bk<_5Sjyu;L|~AwcVI~G&tv_Djs>c&=5b`ZyqBminZ*pAG6>YKl}9K<111|E=JVH z_-jTae3ZHezt6f_F!llEf5)xRm|ow2u%W)sakLJ?blS=%AgGycIEan`dMFyB9l(r;S*W?))UI7VxN;)kYftTGPJcEko8_7R#_*u{*tmMe($sKA z$ll&&N*56O5G6&m>K?e7xg#b+?Y3FQu-`RDo~HNU8gX-wPc{_Xr&EPwtj--Xaw@uq zI0M_kA}3`-E)xTYA|*!hHS+o;LSb@H{aJ0vT!>b$wutX}#GkhQH>3TgFG9}4Kf1rE z%N|bn3J^xuzpXGNUjZA}`ic*i(E=Bmze9sk)Rk7#=Q?f_WfT3nt;q)qKByhp-%nfS z_|>^&ZeDpX1_@k?%Drhg$o@kHV6yQn^+GG=O8QyYs&w`s*gEwUd828xH3Ja8016po z{$*vYY3%f=hB$x86)?e2d?qWh`$}}}EYKMT(9%cdR2|W5^FtLgmI*_kn|m@DAz5nq z!~+uf{*ibE>=73^vq4C8WvI8C37XGW1D9U9}(ON=1%y#0L2aT`u(H$FV~s}BYkgbTR#j0H<%jU z-B!)M6F*#?>{}@RipE*Z_9F8bAd2(qdKBj$Z+8Wt5~j!`=4 zd0t}`wNZ%a^BBs%{!H$7z|cT$wACubD!miHrUqgTKn6)s0b z;o&{l1!zzM>&1YbRZjHoPNRwTvsr}V5B<5rvBN`h(obahG~8q6h0pQlw|qpl*Oz=# znVPNuxhO_!57sN-+@CmJOF~Nx^>CNr_n(t8TeOIz4912m+l2Zgdj}@)4b+?>4DP+irJq{N^;eEz5znBw6k-CCJ@<84F2Gsf86We zRGMSUjv&Whxf@V$d|Jz66}bSvpTBNDaiq`8Gq#hE#~yU^KEZ>vLpNmM!ryGi(CT>B zx{XKn186V{tQ>W3x#a}isWr6e_)RY}FwtOtJLkdCo4}q(yiZ=_eU{@caO`;JsDq`* zzVz0w#4!ubEXDTVDwT4o&mL5v=IQx+EH^XnqH$hY>=oJflM zJp@d(HBkn`wF109`QFr1-D5hL8y(Y2cM-tgkj9qQd{z~yG7G*+G3)DHx1f;Bgz+ME z8>Wq)tzgZb3~pJC^%L{sLwR`wj1}Euo@RHE=6;PQ_KTc3b41Bd{IH=&xe~>F`l8Jv z*7eyZ?0I`DIfMz6Ij#zAn@iJB9Yo4grLcKPCVxz&DO^}sZRd=&;RmIdBI)W>Z{V9Y z&A9Wc6j{Bf44Y~dWlpT)$}>3K_RbV5GTqUjp@T`ar4i=fsJRhQI+rtGokRVfA4e zv(&Z=O4WUtPf)PDc*gq*K(5y;VxVI^Am)HJoQc_^#dBl)gttKDXpYWF{xW}vfZaT$ ze6MEJQh8#FVokFj89V1Kx7TI(@!=XZ{DojvRw;c}bw5wYi8M}l-3~OoY1PEy;?qm- zas{kzf)mGkOzUl8-g}=ogxL6At9!rWA4=LVgTEMAgG6_}C2l0RAu&7gb3Z`%+Skgv zf4!36mL!f4S0{wJ^TIp(ue%;5;>iyPxaLLTx+zJ{Dw%2-K5C3#3g^aqO2=8P;~(s3 zV^GHXq&KVF;!Eu?Hle|K!mD0RrMNenU9tQ`7-i>)qWF<)aU@ewv;7nA-Xj~AV4b7u z2s=dav=(dVVlg^Tv~O*9wt=A%GabPXe2O)-H`W&2WbTElA~aFJ?O^Ih%e>_mmPHo$CQ)O)xN2GQ2y0dfc%wF{?GAkzWhQEkmcDH&>gNmE z*&RAppyC;KoWjx`xjvRnrV+QB_#mY05~|@SCn6yC&fa-939(bkAhJPi_cjt{QC*s~h$%abXWfXW{T+Ra;|$Gp=uRBqA^(TO zQJ+gjzDmAU(6v!WmknH&o;=HwdhoSfD;J=kk{bXAt)_5+3cO{#M2*629sTk9U(h@5K*VhX1g@*vJFSi^L)`xhbpC?Y-__~DX0QD zUyVE2Kf(&OHu2W8H%=xAy~Uf%&>mg?22yz{bL8)e8eNouBpaKemHpc}zh|nsKOSo{(wHN+*)9X_W+*BVR z{X4e*ogXfc`!O<`C}nE}K9HxNuRJ_$a7`mHEZ>*1tQIKsDSp>U^8EI)tq94*WZ_lm zT0Rj~Q?>ZHT9f2@iMdwUwB?nRW^dGyh?GHM#BrAwS2w;4*6s#E@mW<13FR-#NRRj` zJU75*g0l2-2Rt53T_nppUM|~MS%KR|bMnb?LDtA_tPf%DP!cL6MezK)6lc3&B>bg5I+Ju;hB_g@klf|^U%j-ZYLbX z6DX;9HT#XU*8xR+8Q)1Lsl+{G3>wnnx}A3-vV1K+AhO%mbYh`lyCu^S-l>vJUEM$F zniVX(ijo2-+vGI6`UuQWH|)poMc=!X{qdqyqoz_LA9w>5lk9l-UAG}&AxoHbxDb*j zQfASH%ncOFs~axsG8$%ZS2dDk`+P!n%(XAjdP)^)R$RCVko8NCtxtZakWLIp zqolY^jex{-XCHSYm#$a-LDMtOm*FiW7P{=m_9Q9WJy3&dsMA<3{Eylr?Uw0V3>$CR z>Ho*oz?I}HW$;0`#}GxpO}fI%@+xy1jh}I1iM}uIy?vPNWnL>dy+3dql@3Gh*Qi~{ z$Dc;MO!T$fn*d0;7f*&YHkNmuy%#p$+>o=y9cO@UpwWBF{{Xyv{{_6+X@pfePkWOt z(RaRV3m~Oz#+f3%95a11FJ)HDVE6E55G(h=W?cc%isZPaMt}jm zhF54gzbzEq8cyZKP7<%yUs&H3Kt|th(HpY%(T~`&_96)&j?hfpT9-rO(zlUI0!jt= z5nc3l!l5<+hwuDDLP7RW<`Yi|(s0CZ>m+@fW5K{^sL0%e@a`$ye)}c>@D^T1+Kofa zDM=kudH)=aq&0Ri#g6>-LPnimsJZU4k)cID>VRjaf>%IrJ=*Xm)$6`oB?Z(!z;`|G z!6I{go;ivU?*XUjKMgbw6Rv={MiPp@)6l;GVPf{{&lebN^e+%TY`N~WOzF*r5_$X4 zXB~QB1k@;_o!AS0^|=fxb@Rl!m|BVV5+M3oXw-V98oR`(_$bA@^MpNhkDTI3cIi1AjVTka5gfD7O0ST1_#_|df6Db{x}J_Kjw7m zUDWdxx;%zy_z@XOU|#$H<&Dr*?D$%`5;28g5qMg=HpRG&+MSDbd~U2smD__Qw%aL- z&w9`5$-y9jut-}8DB0-I&%xrC-hT`8YP@w0R#(i&;Ksj@E~7+R`&>i+adepsXHed z1f-^q{MLVZuOn@Z@_U-dY`|d)!pP>sEuR8eS zgH%X}k4ksrU(5a*$0Q3`1y>mu?iN=hr&Bo5YzA&1AbswUnSpcB;jPz^w)xU^o#vOx zZ1*FDHE9?THQrLKn*A~ed4GYVP|)upP>qvfv=h&70+%^gZ3P+a{%A_2my4uRQ?Aj+ zaXA@4wBKt-`fQf@%bhFsSsU$^?q!dd8_xJ#Qh!hsIyqJAn4a@$wO2*EZrlNmrkD># zN*hW7sh>f!aOcs+d-qGucJ(+?K6JZRz%W*fqrYRq)!XfLXM?7E-7q8j&*AhT{2;nl z^+Lzu@$n`V&GvI?hn_A%5mkAF7Ba+EMs8-p>|N&L2Gz<}hKm%GKcGyP@(m#EbmLb* za-V>3~x zXCodPCsrM`IZwx!gZdapJvdvrJKwz6b!flCVp;w?InezrmHJXydKl|gk1rDF<{$ZLJoTFV!B>eI{7yUWI<2QtPAVAAorCV@2d zvKN*hbe@qc4MGeyD~!HuSK_WH7cjiH=DspNhU}t=mR0mzGt5a*Gq;B$w0RFM=!bJn z351JgEKa`d7(W-O0LzRo$C}E*fj5j{~U}qLNl~_lzS^OwJ$)V z5_d$|&JeX5--Lo;UrrRrfm55_d*S@2p@!p1zq`wpP@phFMhBZ6@(OP~fPU7#VqI&{ zegd0<{8-$BSL@@SGFhWrl&zq$*LL-z$~Jj{c5{-Iq<I!Yx{I$k;{a&Mq~LgF;v@nVnKY7WYjaECcvG!f-a7dE5XMZb0OXv> zkRXG1^NUtUobmGZl&{==W`$qcp|mVFoj-d^^4n(y`1b$;(a)M%_vM9|qrKN=JI^Pw zheO&HdmCk|y^yaA`?@n@N4xejdCC`>QR}l`~cL0C7y@z!CHV1R9v?gvKUj636)GQYbe+9-W%b0t|F## zCIPS{J${01qXXFqTF07y*6hu`{}tdRwUHzTY0W1f@^Ih+}ak#sqN*UhC& z=13dFI|f*34XoQpp-C(^-GGMxd+7q<#@k$w`1ql76vshei~iQM|b9{?{I1%9tX z!-6XCk<03oKH9L?QKzF%K4f^xAn$cPI3-5_Y@g+su^Y-tE$0AG4w%kL5O6za_m`bT@2I?hw~t>2-#wk~9CV9B zkq#wi#@(pnIN0r6l45p`X_YhTbqnL`u~NtDng;FL_F`LMwbK1AdaKz##U*r)y?Qih|vBePxg%>YZ0K zYe4{!eJ?fUhO)_niWKdhMT!GHblFUKD&Ew;-PssHw_KU_4$aNjF$^s+5Mnj6&-C)B zw^P2h& z5x=Uq;FTO!xT1?G97&`lA~g=Irc5&rE{<`m*0Zf8x)TOvWUH_+K6;RvTijFqp>Y~{jx z2cudaD+o)tMi$&+q*JDib}>y67PG;l9#$w~(;`Uec-Y5H^ zRB>^JB+pw_UOk9^P{r&r69RKi)-SNIzDww6hTO~Gr&Ah@>Gt&z4IC9&0Mj5K%W5BC&r3{Jln6Xg;tiLI8*ST3x69To)4Nr{4&HA^`YNaeiy-LjIg0I_}LD z!ykf@&2f>?fAH{(p!*s*qS+RV2uPhU4onbf@0tnlJ)59+-Rly82hYzqze#=G!ofx2ox3I*++G^UnZ`v%Wj?U9gA*64xQ`+L@$@fBp8u|$coh8$O^weLxBjx zp4!Y~QEg5Cw`31dj&YkxCHnG|ltI<4hqwzs3-PZ9BF)2>l^+cp8|%34!0pD(%qj1L zdc6hcsUb&JSHOk*7aHTiB16;bR`eU6^PdQ3JvSi=dP_iX|1J@be5J26H!@ND<;SHl zQG_<|wS`WWb> z$(R&_mQL8r(eeQNB4Rg%Fq@!n@TqLW6Bu^~xz9^RLJn%((|YoOM~@0z+6GIK&vkT< zD0{F+t~)BkeB*md0CAJB`EYFfe$;UUTRP_V;P({61dWdn={u`js9_W+vqvH)R{^n? zoam6o>adWoHuwe^+M-$0`0O=`j<;-ZDsf4@s#1i?s^;h}ubqZJ3-VBmyun&$l5Rqs z^4KH`OJB7AW4p8g10(XMhhK&@!?rRMUf5oBhMMgrA_uM zT(U1>c(>)it`O9-#1R0-0gjH8CL-vez%D9c6rN#_-~W&IwZHWHE$}14Hl_gQk>?<5 zPlND~lA_&-Y)P6b3m=2PRV-aM_-of0)^lGRQ(I=2jckfYY9uD?2AJu%^qyPrxt!l# zbP|o^a#daDYq!N(yyQ%H;3ib;dzm|U1(fddn-yWouK=Z$7u^{t4O_dwO+f+A9Vd%w zJlD3kKuxEC!EPSZC}eiHH?>H8(^1jkRy;eWG0sV*a}<6cG5tv1El)#h*P#4!g4axM zkgpdl5~K?Wo#{`nmUAd4{?mh;JEPaDHE?i@A62@ObO`wd2>!+Q_qQJeHxd#pDBu0_ z_agwKS6S+w9{x8GGI$Mp~u@5rotGZYS3csiT?neg{o^k_|mR_im;caT9t>=7vH!>~GdD)M}0pwKF-n zHf<0|hO55&1)!r=RVZ@TJJn^B%_6;Y`g?VYTz5bqhl2Bm4J0c=Il7fut3&UT&AB}S zPaS)Dmh>O7Gjc}gY3kKodw)j_UXXf6;KcUgW`8a zfh1O2RjG~Cg*q4%nA_td@E0FIin;TX>P+Fsa3LGFX1+(^Z65)On~v$SamZI%bFQK4 zNp~zPT^=?sdr`Ox3$*Di#wB|TwX6>2foAp6$(Uq#2Sa_jD>=ufRt+lZJ)X}6?g_r` z?Nh;)=I06JBIy_T8q}(s)sn!p!)McKY>Gm5F@0hi47UfAC#bZ>m`%>~>NosuwjFVg zJJdUTTrX?{UU-MwheMeQC!bf<6=dzS`)qa#=dVoZ{wX5m>ey40;v{P;Ocb{`#_rbp zXp2{kh23Lz)Qy>qn4emuVUwg=V&BZ5PLhN&p21m zM{Sl!X$#Mn&5ZB@JYmrtAJacX1nymavP5VI;b(~9%x?kO6PvWXQPZ#`dT9;Sa?2Iux6MR50%ytB{Av0L<|Z&#=Yz1TQn z@I$|yp>Cc!YGIbH>=e}zXgRmp+j}hw;P>PC3mFmv>M*_LwA@eJgn5 zQZ=Gx&W>bN4jM@Dl~{J1+8W)+uGvdY0}VQ@toeGdba^G}XO@+A{Ww;E8hSXSTP|3^ zD6OgFzVF2yr5Ue~B3px1=T*xVr5&vA#w#{7^8_l<3%am@w^)Aq+{-_}mbRyn`tNy_TnNL)UCy^oIa{#@4L=`Unq!Pzq*kxr`9C$sl*vF1nj@b~}*zc}-hVSnGE zB0u_>)K4!CRSzvx3RT=ROc_|#}`cFt@ zG6VS)Pz)~BC~_>As=cGOW(`nMNe#S_p^+$B$?F+I{O#+`>y7!Y4b|YgQZsSew z8y3ge8itJaamO9}@o=%zSoqvv!yw14=`G}^Qx(k7yr{f{Jhxkuc)8N6{wT9#XE-u@ z07HSx)V-_wkwA@x6Snyek9?8OVJCc2*Ncs7b5w*WdB#q~RqGnm3V0`EWRw}fCMG^M z+p<2##k&2p_?hiD6Ul$FM=yJE*QiACBD`EqOna^_=ON5}e=uhwGq3*@rW;M;N^Z7*lN7dkd;_m`JQ1U`z??Y6Npy$iO<%Bo^hHphSzvuQ&IGmWj*8YP6<)<;K z37o}BpsR4D)EIR^N8cO(BPB zS4PmxvDwAE9aa+dGNje3?p~T`v@uM;Y9U=WYp17vq7S<}XAH2xYM8SWyK9G3~Nw1?F2MZ|6HY!0gpi)Po~y##JcveIZ*judR=!jui~ zbdJFXCWbFdS*0|~O0w5~iNxQmZ_=j~btU(p!VFIZ(LO(*OafU@>Imt&!uuBwCm6Pt&yhg zmTvdIY@sQf*>m3#6w3*wHqy~>l>nNWwgaD46GZxS?=!CHs;??%yu>rajRfTJ?{Qn# zYl=51O#-$P&-epwz9+zBevx9-72tB8cE1szG%G3{_g_8c_=HqQoURW{|MoX;p%H*O zN*jwTV&*<`5Y&3gLdn3*2mfVPK@k`ZdepbiYiEcX4@_&l2CEf+{0}_~)OY#FYR1CB zW>aY~{sVbKwuy!*VahaNc!voJ?Fk|qA)Rrg2Y|7zalWHud$VkXcJ98v=CC)*RrpE0 zMzBRCAjn;F+Ey`%-j3>sGQNO2H$=yO5dRn2e-1P?k}q73XDg4aj11+qb6K}Td^;|E z7#8pqpii9osd1U^C-`32Opy0*QtfB7wT^b+1i)zgtN-kp|L(DILgpd)+2Zz(&@*v> zG$_8r4Dp4I>x}L%MIjbhHBfwye^8*XpE(gq`j*gv|AzF5!V!rExWn8Y70*3M`TF{0 z$ctT%tkpsFH?uZg#to67bJJa7v&*jN&`++<90TQQe%X6gBo?Ua6wsqolPyzvu*pR| z_l6ozE+(1jhs5D7#xp(+q+)%zhUCNIR3Sg%zf%|&WdBA0l=pUj@1A6pyJKI>=4vSE=(~<~ z*Y^59-%nw#!?;=TOPZkhrT50>Q_W9?JzTx}LpX-w6J`TA1567vMj-4w?tnDg3c>g= zFYQ*Q#Gyk(z^eDBnxjt|Z-GbG1@ucxs#|^6L~h9o&b!#-T{5M#tnGzbJyQjK{jSV2 zFqF(ynJtU;su=ThaaJ`>li2s3;_I!Tk6H-tu5&~}>D#T}J-${b9 zra*gOG}Lan-{A_NmwLUF`lhW~F^=fhonuC;g1!PYKJzpoabgQY2u0z3NzU&FS#dE| zJ&M*4Drwg*>dhC_jaUI0#h6rwwwo(tVEW=`Ez7l>UJNfAm88`1ix!s8yD`;`mpc#I z$lis7MB8PTBrbWYk3$8lAj@=qg|PU9s+V|KA%rf>AleOcPo@>Sl79s(AIeq9L+6VU zOLqLkTednoq>D@u`@S!TmKEPh1pH)2oQf-|MjtX3VJ}EbFB0C8ymT&DBZHDKL_fEW+U#}Tui;XPQnT;UX> zMJ0TASfQ{jR0jzUDMo?iCbG7pz9mEuu$jbBZ%(byu!y;Wt9)@pi0uvhXimOZfw`d-Rj^~7l$M&3!u&8@RRYs)ea9$d zO{G!t(c3%6M0P#B>SY8d!1|0nPrE~1O{N=ixu^^;aHr5GWacj3Xa$KG*~JUUeno*H z7)kP0tMct=>i&fAwiMEKHGYuOuc7SkCt3>Ae>V1e#8Oj0I=XIo3VTULeHJEBKTX9~ z&Z>6V=iJNpBB$vkefWzo)Z@nT~~uD_{=O%DmV&qJ=CBX_q}egMN`H06_AxBh6u zcm63whfrjDci9j<8maycWJ$*MCLTTB#opUoB)18(N)AwScOR(}`n`V^uRO1VV*WCV zO0aAo9pu6cmuA=Otf!&!8cN2@f?1gB&GLspdHiw$)DhnE6=j>s=A}xR_XmyRC8vMMdXEZ3oR!YTgi}bYjuaz7bQzg~U>}DAbWJ4ZKD(;Zy1fEh zS!E?yGFepqprAdn;)JVW@PHX1rKtZ#H4CLQ>m<*h)N)FS#mZ^eyYseNr$~Mbdsgl$ z4&k!wl6wP)&A|;vg&KP1UK7fKzh&k1TK^A=fdbHi9=SvVCil%DB|dDYc3y+mlK+d9 zQ|gt2GuGKegW`{Md}M}0%VTPHOpRtg-~)N8 zk-eGy0$$#z#hik$uCO?OJ6_*%OvR34Dr9k++4|QCxJqSgzP3i9RC#U3DAG8q$U(l2aK3 z*)y;j33EQz)Tjtg{FY~1p?*?p)3JErFP<%d8OM1z2yEvX=|Mi2q}9D^3ko;qX@U>y6cI}nOH5sDCcuA@q&C(5o{aFA&Mgd_>bfJ z(K?06ugnCjDry9ZM+9-z!ttf}{<|yA#;lkNkEq3E=p8VYxL-gs$tX>hXc%3`mte@SB z{kk>t&gn~evd&bD8$25}2I=MqOWhgLtLpk};ETf=9?Y6&3m_|)_ z>bF(N1YC7sbm&=wIaSX^=r3; zs|aji@-blh-;zNHS<#KRgbfEu51qHIt>YC3>L%oGHi@3T1W2*Dm*Ec6O0=&DV1BG{ z^fHJb4`2SxWf1Z`7pj}6=LlLqeKfUs9DB?A3;_Nx>j(ZQ$ESsei~K(j-h6y-RHgAw zuptQc`3mGm96w(IxAHGa(tO&`Ya=clrH5nw z%gmuYyhqp6as#HvW`Huq>lFg4SVZP_rf?}N?G0v<{TlNXV7T1>4R}Pr)lt80Ir?WP zuCZeh5NURi)xm2oIN7rajO8)(fT5rFtizjDBCUAfD0*9*9Q_iYXV(5>M_}dMU44Xd z>&!@{E|vh`XE(eAHm(5OPhSsVk)E}h85aqA0HYBBx&u#V{caFuL`!TYZB0xvZ z+hUSche7yx0>_UW1g^V(-2(yb|0=mtX8=JV2tfs}X&>JIco8AeDkV8ad)#<02Lu=sHTY?GxJ<2UZ^y`+ezq|j0-_5RJ z3^S4@!Z{=UwiU7H>C@)(bU1R8QyW|!gXS+DPp-7`V4GQyh4in$s{=TqtI+j#*G-?j z{*t)HdVcTQ&aS|l;{IJ`!?A*JBZG9;;ihqr2>BV=vxCJV+aE`n5b|FTa3i@dZ?3xtER&E%*pDA@M=NR9NC+ZKejCHJN&x6+2a3Z>|(G zH$Lm@^;;5qPWI7?@OoF-l!@<%?sL2^%|Kp{l0Mop&;U|V@Udj? z)3JEWfLYK;MQxrzZ&C_Hk!YJ)->af$vNUEXI7bmq5uV#l0t%rQy%f4TQHKdt_cV5R z%CQ3qv-=r@osn|WbmZ#_bqdPT1$qVGFg;J@nc<#3^=iZJU5s{P z{&Kc~R1Cu>iIqFH2MSco9q%vAxofAjW8#R(Aj?qgKdXd^hbbQU{DgdPx-4sa;spo6 z4TKh|5rqbWZ}_0&9Zdzj24f5Hw0`wcP!vT}9%vCAFQ`&h;hAQ=N*}CYI>@7Jq_5i} zb0EHW#CjW-vTvIU`P4PNRJU~?T{^Jm(7ble8P#5R1BIp8YVi6kOEn+^AJYi;O3GzH z*Muzefh*YpGfdf`Y-wNG>9T(edy5|R%(Eq{b2w(jN$G=UU|3M9ezx-RK+kaNc|0}_8a{lxD|H4UFLw?PX HU5)-Pl&p)4 diff --git a/sample/web-wasm/src/commonMain/composeResources/drawable/album_david_clode_unsplash.jpeg b/sample/web-wasm/src/commonMain/composeResources/drawable/album_david_clode_unsplash.jpeg deleted file mode 100644 index cb9209baf8fb0509e8e83ebf3d0c1749bc652533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41892 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.^X%Re_%F{U& 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

I3&M}VaYaitMK=pmgm-EFaG>r-@4ro1|p!X?0 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 diff --git a/sample/web-wasm/src/commonMain/composeResources/drawable/album_ellen_qin_unsplash.jpeg b/sample/web-wasm/src/commonMain/composeResources/drawable/album_ellen_qin_unsplash.jpeg deleted file mode 100644 index c4c75b2f0014021701f4cec0b16325ec203cbf79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11223 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 X!pWPFEmIa&rxw^H24YwIUgrM~wiVUl diff --git a/sample/web-wasm/src/commonMain/composeResources/drawable/album_emile_seguin_unsplash.jpeg b/sample/web-wasm/src/commonMain/composeResources/drawable/album_emile_seguin_unsplash.jpeg deleted file mode 100644 index 1e9a07e3d32e3f7a2f7e003d65cfd2dcb0f08f54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2379 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 S1juX#U9{Co1OfJLjQkImCzY%K diff --git a/sample/web-wasm/src/commonMain/composeResources/drawable/album_karina_vorozheeva_unsplash.jpeg b/sample/web-wasm/src/commonMain/composeResources/drawable/album_karina_vorozheeva_unsplash.jpeg deleted file mode 100644 index a84fb19acaa401e626bd093e6c6875a0b589e0ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30524 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 diff --git a/sample/web-wasm/src/commonMain/composeResources/drawable/album_pawel_czerwinski_unsplash.jpeg b/sample/web-wasm/src/commonMain/composeResources/drawable/album_pawel_czerwinski_unsplash.jpeg deleted file mode 100644 index bcba78c08291d478bb56bb4f494ddb1ccc867673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33561 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 diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/App.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/App.kt deleted file mode 100644 index 239c7576..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/App.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2024 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared - -import androidx.compose.runtime.Composable -import soup.compose.material.motion.shared.theme.SampleTheme - -@Composable -fun App() { - SampleTheme { - NavGraph() - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/HomeScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/HomeScreen.kt deleted file mode 100644 index 35334360..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/HomeScreen.kt +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredHeight -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.material.Divider -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Scaffold -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.shared.theme.SampleTheme - -private data class Demo( - val title: String, - val description: String, - val destination: Destination, -) - -private data class Category( - val title: String, - val items: List, -) { - companion object { - val items: List = listOf( - Category( - title = "Additional Examples (Core)", - items = listOf( - Demo( - title = "MaterialSharedAxis", - description = "MaterialSharedAxisScreen", - destination = Destination.MaterialSharedAxis, - ), - Demo( - title = "MaterialFadeThrough", - description = "MaterialFadeThroughScreen", - destination = Destination.MaterialFadeThrough, - ), - Demo( - title = "MaterialFade", - description = "MaterialFadeScreen", - destination = Destination.MaterialFade, - ), - Demo( - title = "MaterialElevationScale", - description = "MaterialElevationScaleScreen", - destination = Destination.MaterialElevationScale, - ), - Demo( - title = "Hold", - description = "HoldScreen", - destination = Destination.Hold, - ), - Demo( - title = "CircularReveal", - description = "CircularRevealScreen", - destination = Destination.CircularReveal, - ), - ), - ), - Category( - title = "Additional Examples (Navigation)", - items = listOf( - Demo( - title = "AnimatedNavHost", - description = "AnimatedNavHostScreen", - destination = Destination.AnimatedNavHost, - ), - ), - ), - ) - } -} - -@Composable -fun HomeScreen(onItemClick: (Destination) -> Unit) { - Scaffold( - topBar = { - TopAppBar(title = { Text(text = "Transition for Jetpack Compose") }) - }, - ) { contentPadding -> - LazyColumn( - modifier = Modifier.fillMaxSize(), - contentPadding = contentPadding, - ) { - item { - Column { - Text( - text = "Description", - modifier = Modifier.padding(start = 16.dp, top = 16.dp, bottom = 16.dp), - style = MaterialTheme.typography.subtitle1, - ) - Text( - text = "Transition choreography is a coordinated sequence of motion" + - " that maintains user focus as the interface adapts.", - modifier = Modifier.padding(start = 16.dp, end = 16.dp, bottom = 16.dp), - style = MaterialTheme.typography.body2, - ) - HomeDemoItem( - Demo( - title = "Demo", - description = "DemoScreen", - destination = Destination.Demo, - ), - onItemClick = onItemClick, - ) - } - } - Category.items.forEachIndexed { index, category -> - item( - key = index, - contentType = { "Category" }, - ) { - Divider() - HomeCategoryItem(title = category.title) - } - items( - items = category.items, - key = { it.destination.route }, - contentType = { "Demo" }, - ) { demo -> - HomeDemoItem(demo, onItemClick = onItemClick) - } - } - } - } -} - -@Composable -private fun HomeCategoryItem( - title: String, - modifier: Modifier = Modifier, -) { - Text( - text = title, - modifier = modifier.padding(start = 16.dp, top = 16.dp), - style = MaterialTheme.typography.subtitle1, - ) -} - -@Composable -private fun HomeDemoItem( - demo: Demo, - onItemClick: (Destination) -> Unit, - modifier: Modifier = Modifier, -) { - Column( - verticalArrangement = Arrangement.Center, - modifier = modifier - .fillMaxWidth() - .requiredHeight(64.dp) - .clickable { onItemClick(demo.destination) } - .padding(horizontal = 16.dp), - ) { - Text( - text = demo.title, - modifier = Modifier.fillMaxWidth(), - fontWeight = FontWeight.SemiBold, - style = MaterialTheme.typography.body2, - ) - Text( - modifier = Modifier.fillMaxWidth(), - text = demo.description, - style = MaterialTheme.typography.caption, - ) - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - HomeScreen(onItemClick = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/NavGraph.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/NavGraph.kt deleted file mode 100644 index ff243cbc..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/NavGraph.kt +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared - -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import soup.compose.material.motion.animation.materialSharedAxisZIn -import soup.compose.material.motion.animation.materialSharedAxisZOut -import soup.compose.material.motion.shared.circularreveal.CircularRevealScreen -import soup.compose.material.motion.shared.demo.DemoScreen -import soup.compose.material.motion.shared.material.elevationscale.MaterialElevationScaleScreen -import soup.compose.material.motion.shared.material.fade.MaterialFadeScreen -import soup.compose.material.motion.shared.material.fadethrough.MaterialFadeThroughScreen -import soup.compose.material.motion.shared.material.hold.HoldScreen -import soup.compose.material.motion.shared.material.sharedaxis.MaterialSharedAxisScreen -import soup.compose.material.motion.shared.navigation.AnimatedNavHostScreen - -enum class Destination(val route: String) { - Home("Home"), - Demo("Demo"), - MaterialSharedAxis("MaterialSharedAxis"), - MaterialFadeThrough("MaterialFadeThrough"), - MaterialFade("MaterialFade"), - MaterialElevationScale("MaterialElevationScale"), - Hold("Hold"), - CircularReveal("CircularReveal"), - AnimatedNavHost("AnimatedNavHost"), -} - -@Composable -fun NavGraph( - startDestination: String = Destination.Home.route, -) { - val navController = rememberNavController() - val upPress: () -> Unit = { - navController.navigateUp() - } - NavHost( - navController = navController, - startDestination = startDestination, - modifier = Modifier.fillMaxSize(), - enterTransition = { materialSharedAxisZIn(forward = true) }, - exitTransition = { materialSharedAxisZOut(forward = true) }, - popEnterTransition = { materialSharedAxisZIn(forward = false) }, - popExitTransition = { materialSharedAxisZOut(forward = false) }, - ) { - composable(Destination.Home.route) { - HomeScreen( - onItemClick = { - navController.navigate(route = it.route) - }, - ) - } - composable(Destination.Demo.route) { - DemoScreen(upPress = upPress) - } - - // Core - composable(Destination.MaterialSharedAxis.route) { - MaterialSharedAxisScreen(upPress = upPress) - } - composable(Destination.MaterialFadeThrough.route) { - MaterialFadeThroughScreen(upPress = upPress) - } - composable(Destination.MaterialFade.route) { - MaterialFadeScreen(upPress = upPress) - } - composable(Destination.MaterialElevationScale.route) { - MaterialElevationScaleScreen(upPress = upPress) - } - composable(Destination.Hold.route) { - HoldScreen(upPress = upPress) - } - composable(Destination.CircularReveal.route) { - CircularRevealScreen(upPress = upPress) - } - - // Navigation - composable(Destination.AnimatedNavHost.route) { - AnimatedNavHostScreen(upPress = upPress) - } - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/circularreveal/CircularRevealScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/circularreveal/CircularRevealScreen.kt deleted file mode 100644 index 0f8363f2..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/circularreveal/CircularRevealScreen.kt +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.circularreveal - -import BackHandler -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.material.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.circularReveal -import soup.compose.material.motion.shared.common.DefaultScaffold -import soup.compose.material.motion.shared.theme.SampleTheme - -private data class Position( - val label: String, - val alignment: Alignment, - val center: Offset, -) - -private val POSITIONS = listOf( - Position( - label = "TopStart", - alignment = Alignment.TopStart, - center = Offset(0f, 0f), - ), - Position( - label = "TopCenter", - alignment = Alignment.TopCenter, - center = Offset(0.5f, 0f), - ), - Position( - label = "TopEnd", - alignment = Alignment.TopEnd, - center = Offset(1f, 0f), - ), - Position( - label = "CenterStart", - alignment = Alignment.CenterStart, - center = Offset(0f, 0.5f), - ), - Position( - label = "Center", - alignment = Alignment.Center, - center = Offset(0.5f, 0.5f), - ), - Position( - label = "CenterEnd", - alignment = Alignment.CenterEnd, - center = Offset(1f, 0.5f), - ), - Position( - label = "BottomStart", - alignment = Alignment.BottomStart, - center = Offset(0f, 1f), - ), - Position( - label = "BottomCenter", - alignment = Alignment.BottomCenter, - center = Offset(0.5f, 1f), - ), - Position( - label = "BottomEnd", - alignment = Alignment.BottomEnd, - center = Offset(1f, 1f), - ), -) - -private data class State( - val visible: Boolean, - val center: Offset, -) - -@Composable -fun CircularRevealScreen(upPress: () -> Unit) { - val (state, onStateChanged) = remember { - mutableStateOf(State(false, Offset.Zero)) - } - BackHandler { - if (state.visible) { - onStateChanged(state.copy(visible = false)) - } else { - upPress() - } - } - DefaultScaffold(upPress = upPress) { innerPadding -> - Surface(modifier = Modifier.padding(innerPadding)) { - Box(modifier = Modifier.fillMaxSize().padding(all = 16.dp)) { - POSITIONS.forEach { - TextButton( - onClick = { onStateChanged(State(visible = true, center = it.center)) }, - modifier = Modifier.align(it.alignment), - ) { - Text(text = it.label) - } - } - } - Box( - modifier = Modifier - .circularReveal( - visible = state.visible, - center = { fullSize -> - Offset( - x = state.center.x * fullSize.width, - y = state.center.y * fullSize.height, - ) - }, - ) - .fillMaxSize() - .background(color = MaterialTheme.colors.secondary), - ) { - Button( - onClick = { onStateChanged(state.copy(visible = false)) }, - modifier = Modifier.align(Alignment.Center), - ) { - Text("Close") - } - } - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - CircularRevealScreen(upPress = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/BottomTabsContents.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/BottomTabsContents.kt deleted file mode 100644 index 51b0e86e..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/BottomTabsContents.kt +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.common - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.BottomNavigation -import androidx.compose.material.BottomNavigationItem -import androidx.compose.material.Card -import androidx.compose.material.ContentAlpha -import androidx.compose.material.Icon -import androidx.compose.material.LocalContentColor -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Collections -import androidx.compose.material.icons.filled.Photo -import androidx.compose.material.icons.filled.Search -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.ColorFilter -import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.unit.dp - -enum class BottomTabs { - Albums, Photos, Search -} - -@Composable -fun BottomTabsControls( - selectedTab: BottomTabs, - setSelectedTab: (BottomTabs) -> Unit, -) { - BottomNavigation(backgroundColor = MaterialTheme.colors.surface) { - BottomTabs.values().forEach { tab -> - BottomNavigationItem( - icon = { Icon(tab.icon, contentDescription = null) }, - label = { Text(tab.name) }, - selected = tab == selectedTab, - onClick = { setSelectedTab(tab) }, - selectedContentColor = MaterialTheme.colors.primary, - unselectedContentColor = LocalContentColor.current.copy(alpha = ContentAlpha.medium), - ) - } - } -} - -@Composable -fun BottomTabsContents(selectedTab: BottomTabs, modifier: Modifier = Modifier) { - Surface( - modifier = modifier - .fillMaxSize() - .padding(4.dp), - ) { - Column { - Row(modifier = Modifier.weight(1f)) { - BottomTabsContentsItem(selectedTab, modifier = Modifier.weight(1f)) - BottomTabsContentsItem(selectedTab, modifier = Modifier.weight(1f)) - } - Row(modifier = Modifier.weight(1f)) { - BottomTabsContentsItem(selectedTab, modifier = Modifier.weight(1f)) - BottomTabsContentsItem(selectedTab, modifier = Modifier.weight(1f)) - } - Row(modifier = Modifier.weight(1f)) { - BottomTabsContentsItem(selectedTab, modifier = Modifier.weight(1f)) - BottomTabsContentsItem(selectedTab, modifier = Modifier.weight(1f)) - } - } - } -} - -@Composable -private fun BottomTabsContentsItem( - selectedTab: BottomTabs, - modifier: Modifier = Modifier, -) { - val backgroundColor = when (selectedTab) { - BottomTabs.Albums -> MaterialTheme.colors.primary - BottomTabs.Photos -> MaterialTheme.colors.error - BottomTabs.Search -> MaterialTheme.colors.secondary - } - val contentColor = when (selectedTab) { - BottomTabs.Albums -> MaterialTheme.colors.onPrimary - BottomTabs.Photos -> MaterialTheme.colors.onError - BottomTabs.Search -> MaterialTheme.colors.onSecondary - } - Card( - backgroundColor = backgroundColor, - modifier = modifier - .fillMaxSize() - .padding(4.dp), - ) { - Image( - selectedTab.icon, - contentDescription = null, - colorFilter = ColorFilter.tint(contentColor), - ) - } -} - -private val BottomTabs.icon: ImageVector - get() = when (this) { - BottomTabs.Albums -> Icons.Default.Collections - BottomTabs.Photos -> Icons.Default.Photo - BottomTabs.Search -> Icons.Default.Search - } diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultScaffold.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultScaffold.kt deleted file mode 100644 index 08022255..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultScaffold.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.common - -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.material.Scaffold -import androidx.compose.runtime.Composable -import soup.compose.material.motion.shared.widget.DefaultTopAppBar - -@Composable -fun DefaultScaffold( - upPress: () -> Unit, - bottomBar: @Composable () -> Unit = {}, - content: @Composable (PaddingValues) -> Unit, -) { - Scaffold( - topBar = { DefaultTopAppBar(upPress) }, - bottomBar = bottomBar, - content = content, - ) -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultTopAppBar.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultTopAppBar.kt deleted file mode 100644 index 1f0345d1..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/DefaultTopAppBar.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.widget - -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Close -import androidx.compose.runtime.Composable - -@Composable -fun DefaultTopAppBar(upPress: () -> Unit) { - TopAppBar( - title = { Text(text = "Transition") }, - navigationIcon = { - IconButton(onClick = upPress) { - Icon( - Icons.Default.Close, - contentDescription = null, - ) - } - }, - ) -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/ForwardBackwardContents.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/ForwardBackwardContents.kt deleted file mode 100644 index c021a85c..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/common/ForwardBackwardContents.kt +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.common - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredHeight -import androidx.compose.foundation.layout.requiredSize -import androidx.compose.foundation.layout.size -import androidx.compose.material.Button -import androidx.compose.material.ContentAlpha -import androidx.compose.material.Icon -import androidx.compose.material.LocalAbsoluteElevation -import androidx.compose.material.LocalContentColor -import androidx.compose.material.LocalElevationOverlay -import androidx.compose.material.MaterialTheme -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Surface -import androidx.compose.material.Switch -import androidx.compose.material.SwitchDefaults -import androidx.compose.material.Text -import androidx.compose.material.TextButton -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.AccountCircle -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp - -@Composable -fun ForwardBackwardControls( - forward: Boolean, - onForwardChanged: (Boolean) -> Unit, -) { - Box( - modifier = Modifier - .fillMaxWidth() - .padding(all = 16.dp), - ) { - TextButton( - onClick = { onForwardChanged(false) }, - modifier = Modifier.align(Alignment.BottomStart), - enabled = forward, - ) { - Text(text = "Back".uppercase()) - } - Button( - onClick = { onForwardChanged(true) }, - modifier = Modifier.align(Alignment.BottomEnd), - enabled = forward.not(), - ) { - Text(text = "Next".uppercase()) - } - } -} - -@Composable -fun ForwardBackwardContents(forward: Boolean, modifier: Modifier = Modifier) { - Surface(modifier = modifier.fillMaxSize()) { - if (forward) { - ForwardContents() - } else { - BackwardContents() - } - } -} - -@Composable -private fun BackwardContents() { - Column(modifier = Modifier.padding(all = 16.dp)) { - Spacer(modifier = Modifier.requiredHeight(48.dp)) - Icon( - Icons.Default.AccountCircle, - contentDescription = null, - modifier = Modifier - .requiredSize(72.dp) - .align(Alignment.CenterHorizontally), - tint = LocalContentColor.current.copy(alpha = ContentAlpha.medium), - ) - Spacer(modifier = Modifier.requiredHeight(8.dp)) - Text( - "Hi David Park", - modifier = Modifier.align(Alignment.CenterHorizontally), - style = MaterialTheme.typography.h5, - ) - Spacer(modifier = Modifier.requiredHeight(8.dp)) - Text( - "Sign in with your account", - modifier = Modifier.align(Alignment.CenterHorizontally), - color = LocalContentColor.current.copy(alpha = ContentAlpha.medium), - style = MaterialTheme.typography.caption, - ) - Spacer(modifier = Modifier.requiredHeight(24.dp)) - - val (emailOrPhoneNumber, onEmailOrPhoneNumberChanged) = remember { mutableStateOf("") } - OutlinedTextField( - value = emailOrPhoneNumber, - onValueChange = onEmailOrPhoneNumberChanged, - modifier = Modifier - .fillMaxWidth() - .align(Alignment.CenterHorizontally), - label = { - Text(text = "Email or phone number") - }, - ) - Spacer(modifier = Modifier.requiredHeight(12.dp)) - TextButton(onClick = {}) { - Text(text = "Forgot email?".uppercase()) - } - Spacer(modifier = Modifier.requiredHeight(8.dp)) - TextButton(onClick = {}) { - Text(text = "Create account".uppercase()) - } - } -} - -@Composable -private fun ForwardContents() { - Column(modifier = Modifier.padding(all = 16.dp)) { - Text( - "Streamline your courses", - modifier = Modifier.align(Alignment.CenterHorizontally), - style = MaterialTheme.typography.h6, - ) - Spacer(modifier = Modifier.requiredHeight(8.dp)) - Text( - text = "Bundled categories appear as groups in your feed." + - " You can always change this later.", - textAlign = TextAlign.Center, - color = LocalContentColor.current.copy(alpha = ContentAlpha.medium), - style = MaterialTheme.typography.caption, - ) - Spacer(modifier = Modifier.requiredHeight(48.dp)) - SwitchableItem(text = "Arts & Crafts") - Spacer(modifier = Modifier.requiredHeight(32.dp)) - SwitchableItem(text = "Business") - Spacer(modifier = Modifier.requiredHeight(32.dp)) - SwitchableItem(text = "Illustration") - Spacer(modifier = Modifier.requiredHeight(32.dp)) - SwitchableItem(text = "Design") - Spacer(modifier = Modifier.requiredHeight(32.dp)) - SwitchableItem(text = "Culinary") - } -} - -@Composable -private fun SwitchableItem(text: String) { - val (checked, onCheckedChange) = remember { mutableStateOf(false) } - Box(modifier = Modifier.fillMaxWidth()) { - Column(modifier = Modifier.align(Alignment.CenterStart)) { - Text(text = text) - Text( - text = if (checked) "Bundled" else "Shown individually", - color = LocalContentColor.current.copy(alpha = ContentAlpha.medium), - style = MaterialTheme.typography.caption, - ) - } - val color = MaterialTheme.colors.surface - val elevationOverlay = LocalElevationOverlay.current - val absoluteElevation = LocalAbsoluteElevation.current + 4.dp - val uncheckedThumbColor = elevationOverlay?.apply(color, absoluteElevation) ?: color - Switch( - checked = checked, - onCheckedChange = onCheckedChange, - modifier = Modifier - .size(48.dp) - .align(Alignment.CenterEnd), - colors = SwitchDefaults.colors(uncheckedThumbColor = uncheckedThumbColor), - ) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumContents.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumContents.kt deleted file mode 100644 index a94c62a4..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumContents.kt +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.demo - -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.aspectRatio -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredHeight -import androidx.compose.foundation.layout.requiredSize -import androidx.compose.foundation.layout.requiredWidth -import androidx.compose.material.Card -import androidx.compose.material.Colors -import androidx.compose.material.ContentAlpha -import androidx.compose.material.FloatingActionButton -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.LocalAbsoluteElevation -import androidx.compose.material.LocalContentColor -import androidx.compose.material.LocalElevationOverlay -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ArrowBack -import androidx.compose.material.icons.automirrored.filled.VolumeUp -import androidx.compose.material.icons.filled.Favorite -import androidx.compose.material.icons.filled.MoreVert -import androidx.compose.material.icons.filled.PlayArrow -import androidx.compose.material.primarySurface -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.ColorFilter -import androidx.compose.ui.graphics.RectangleShape -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.resources.painterResource -import soup.compose.material.motion.MaterialFade -import soup.compose.material.motion.shared.theme.Purple200 - -@Composable -fun AlbumScaffold( - upPress: () -> Unit, - collapse: Boolean, - content: @Composable () -> Unit, -) { - val backgroundColor = if (collapse) { - val color = MaterialTheme.colors.primarySurface - val elevationOverlay = LocalElevationOverlay.current - val absoluteElevation = LocalAbsoluteElevation.current + 1.dp - elevationOverlay?.apply(color, absoluteElevation) ?: color - } else { - Color.Transparent - } - Box(modifier = Modifier.fillMaxSize()) { - Surface(modifier = Modifier.fillMaxSize(), content = content) - TopAppBar( - modifier = Modifier - .fillMaxWidth() - .align(Alignment.TopCenter), - navigationIcon = { - IconButton(onClick = upPress) { - Icon( - Icons.AutoMirrored.Filled.ArrowBack, - contentDescription = null, - ) - } - }, - title = {}, - actions = { - IconButton(onClick = {}) { - Icon( - Icons.Default.Favorite, - contentDescription = null, - ) - } - IconButton(onClick = {}) { - Icon( - Icons.Default.MoreVert, - contentDescription = null, - ) - } - }, - backgroundColor = backgroundColor, - contentColor = Color.White, - elevation = 0.dp, - ) - } -} - -@Composable -fun AlbumHeader(album: MusicData.Album, showFab: Boolean) { - Box(modifier = Modifier.fillMaxWidth()) { - Column { - Image( - painter = painterResource(album.cover), - contentDescription = null, - modifier = Modifier - .aspectRatio(1f) - .fillMaxSize(), - contentScale = ContentScale.Crop, - ) - Card( - modifier = Modifier - .fillMaxWidth() - .requiredHeight(196.dp), - shape = RectangleShape, - backgroundColor = MaterialTheme.colors.primarySurface, - ) { - Column( - verticalArrangement = Arrangement.Center, - modifier = Modifier - .padding(start = 56.dp, end = 16.dp), - ) { - Text( - text = album.title, - overflow = TextOverflow.Ellipsis, - maxLines = 1, - style = MaterialTheme.typography.h3, - ) - Text( - text = album.artist, - overflow = TextOverflow.Ellipsis, - maxLines = 1, - style = MaterialTheme.typography.subtitle1, - ) - } - } - } - MaterialFade( - visible = showFab, - modifier = Modifier - .align(Alignment.BottomEnd) - .padding(end = 16.dp, bottom = 152.dp), - ) { - FloatingActionButton( - onClick = {}, - backgroundColor = MaterialTheme.colors.fabBackground, - contentColor = MaterialTheme.colors.surface, - modifier = Modifier.padding(16.dp), - ) { - Icon(Icons.Default.PlayArrow, contentDescription = null) - } - } - } -} - -private val Colors.fabBackground: Color - get() = if (isLight) Color.Black else Purple200 - -@Composable -fun AlbumTrackItem(track: MusicData.Track) { - Row( - modifier = Modifier - .fillMaxWidth() - .requiredHeight(56.dp) - .padding(horizontal = 16.dp), - ) { - if (track.playing) { - Image( - Icons.AutoMirrored.Filled.VolumeUp, - contentDescription = null, - modifier = Modifier.align(Alignment.CenterVertically), - contentScale = ContentScale.Crop, - colorFilter = ColorFilter.tint( - LocalContentColor.current.copy(alpha = ContentAlpha.medium), - ), - ) - } else { - Spacer( - modifier = Modifier.requiredSize(24.dp), - ) - } - Spacer(modifier = Modifier.requiredWidth(16.dp)) - Text( - text = track.trackNo.toString(), - modifier = Modifier.align(Alignment.CenterVertically), - style = MaterialTheme.typography.body2, - ) - Spacer(modifier = Modifier.requiredWidth(16.dp)) - Text( - text = track.title, - modifier = Modifier - .align(Alignment.CenterVertically) - .weight(1f), - maxLines = 1, - overflow = TextOverflow.Ellipsis, - style = MaterialTheme.typography.subtitle2, - ) - Spacer(modifier = Modifier.requiredWidth(16.dp)) - Text( - text = track.duration, - modifier = Modifier.align(Alignment.CenterVertically), - style = MaterialTheme.typography.body2, - ) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumScreen.kt deleted file mode 100644 index f3f34da1..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/AlbumScreen.kt +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.demo - -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.requiredHeight -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect -import androidx.compose.runtime.derivedStateOf -import androidx.compose.runtime.getValue -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.unit.dp -import kotlinx.coroutines.launch - -@Composable -fun AlbumScreen(album: MusicData.Album, upPress: () -> Unit) { - val density = LocalDensity.current - val collapsedHeaderSize = remember(density) { - density.run { 56.dp.toPx().toInt() } - } - val listState = rememberLazyListState() - val coroutineScope = rememberCoroutineScope() - OnHeaderCollapse(listState, collapsedHeaderSize) { scrollOffset -> - coroutineScope.launch { - listState.animateScrollToItem(0, scrollOffset = scrollOffset) - } - } - val collapse: Boolean by remember { - derivedStateOf { - listState.isHeaderCollapsed(collapsedHeaderSize) - } - } - val showFab: Boolean by remember { - derivedStateOf { - val header = listState.layoutInfo.visibleItemsInfo.getOrNull(0) - if (header != null) { - (listState.firstVisibleItemScrollOffset / header.size.toFloat()) <= 0.2f - } else { - false - } - } - } - AlbumScaffold( - upPress = upPress, - collapse = collapse, - ) { - LazyColumn(state = listState) { - item { - AlbumHeader(album, showFab) - } - item { - Spacer(modifier = Modifier.requiredHeight(8.dp)) - } - items(album.tracks, key = { it.trackNo }) { track -> - AlbumTrackItem(track = track) - } - } - } -} - -@Composable -private fun OnHeaderCollapse( - listState: LazyListState, - collapsedHeaderSize: Int, - scrollToOffset: (Int) -> Unit, -) { - if (!listState.isScrollInProgress.not() || listState.firstVisibleItemIndex != 0) return - val header = listState.layoutInfo.visibleItemsInfo.getOrNull(0) ?: return - val scrollOffset: Int by remember { - derivedStateOf { - if (listState.needsCollapse()) { - header.size - collapsedHeaderSize - } else { - 0 - } - } - } - SideEffect { - if (scrollOffset != listState.firstVisibleItemScrollOffset) { - scrollToOffset(scrollOffset) - } - } -} - -private fun LazyListState.needsCollapse(): Boolean { - val header = layoutInfo.visibleItemsInfo.getOrNull(0) - if (header != null) { - return header.size / 2 < firstVisibleItemScrollOffset - } - return false -} - -private fun LazyListState.isHeaderCollapsed(collapsedHeaderSize: Int): Boolean { - if (firstVisibleItemIndex > 0) { - return true - } - val header = layoutInfo.visibleItemsInfo.getOrNull(0) - if (header != null) { - return header.size - firstVisibleItemScrollOffset <= collapsedHeaderSize + 5 - } - return false -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/DemoScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/DemoScreen.kt deleted file mode 100644 index 8c35ee0e..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/DemoScreen.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.demo - -import BackHandler -import androidx.compose.runtime.Composable -import androidx.navigation.NavType -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import androidx.navigation.navArgument -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.animation.holdIn -import soup.compose.material.motion.animation.holdOut -import soup.compose.material.motion.animation.translateYIn -import soup.compose.material.motion.animation.translateYOut -import soup.compose.material.motion.shared.theme.SampleTheme - -@Composable -fun DemoScreen(upPress: () -> Unit) { - val navController = rememberNavController() - NavHost(navController, startDestination = "library") { - composable( - "library", - enterTransition = { holdIn() }, - exitTransition = { holdOut() }, - ) { - BackHandler { - upPress() - } - LibraryScreen( - upPress = upPress, - onItemClick = { - navController.navigate("album/${it.id}") - }, - ) - } - composable( - "album/{albumId}", - arguments = listOf(navArgument("albumId") { type = NavType.LongType }), - enterTransition = { translateYIn { it } }, - exitTransition = { translateYOut { it } }, - ) { backStackEntry -> - val currentId = backStackEntry.arguments?.getLong("albumId") - val album = MusicData.albums.first { it.id == currentId } - AlbumScreen( - album, - upPress = { - navController.popBackStack() - }, - ) - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - DemoScreen(upPress = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryContents.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryContents.kt deleted file mode 100644 index 9623bac9..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryContents.kt +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.demo - -import androidx.compose.foundation.Image -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.aspectRatio -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredHeight -import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.grid.GridCells -import androidx.compose.foundation.lazy.grid.LazyVerticalGrid -import androidx.compose.foundation.lazy.grid.items -import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Card -import androidx.compose.material.ContentAlpha -import androidx.compose.material.Divider -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.LocalContentColor -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.resources.painterResource - -@Composable -fun LibraryGridContents( - items: List, - onItemClick: (MusicData.Album) -> Unit, - modifier: Modifier = Modifier, -) { - LazyVerticalGrid( - columns = GridCells.Fixed(2), - modifier = modifier, - contentPadding = PaddingValues(top = 8.dp, bottom = 8.dp), - ) { - items(items, key = { it.id }) { - LibraryGridItem(it, onItemClick = onItemClick) - } - } -} - -@OptIn(ExperimentalMaterialApi::class) -@Composable -private fun LibraryGridItem( - album: MusicData.Album, - onItemClick: (MusicData.Album) -> Unit, -) { - Card( - onClick = { onItemClick(album) }, - modifier = Modifier - .fillMaxWidth() - .padding(4.dp), - ) { - Column { - Image( - painter = painterResource(album.cover), - contentDescription = null, - modifier = Modifier - .fillMaxWidth() - .aspectRatio(1f), - contentScale = ContentScale.Crop, - ) - Text( - text = album.title, - modifier = Modifier - .align(Alignment.CenterHorizontally) - .padding(top = 16.dp), - maxLines = 1, - style = MaterialTheme.typography.h6, - ) - Text( - text = album.artist, - modifier = Modifier - .align(Alignment.CenterHorizontally) - .padding(top = 2.dp), - maxLines = 1, - style = MaterialTheme.typography.body2, - ) - Spacer(modifier = Modifier.requiredHeight(16.dp)) - } - } -} - -@Composable -fun LibraryLinearContents( - items: List, - onItemClick: (MusicData.Album) -> Unit, - modifier: Modifier = Modifier, -) { - LazyColumn( - modifier = modifier, - contentPadding = PaddingValues(top = 8.dp, bottom = 8.dp), - ) { - items(items, key = { it.id }) { - LibraryLinearItem(it, onItemClick = onItemClick) - Divider() - } - } -} - -@Composable -private fun LibraryLinearItem( - album: MusicData.Album, - onItemClick: (MusicData.Album) -> Unit, -) { - Row( - modifier = Modifier - .fillMaxWidth() - .requiredHeight(88.dp) - .clickable { onItemClick(album) } - .padding(horizontal = 16.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - Image( - painter = painterResource(album.cover), - contentDescription = null, - modifier = Modifier - .requiredHeight(64.dp) - .aspectRatio(1f) - .clip(RoundedCornerShape(4.dp)), - contentScale = ContentScale.Crop, - ) - Column( - modifier = Modifier - .padding(start = 16.dp) - .weight(1f), - verticalArrangement = Arrangement.Center, - ) { - Text( - text = album.title, - modifier = Modifier.fillMaxWidth(), - style = MaterialTheme.typography.h6, - ) - Text( - text = album.artist, - modifier = Modifier.fillMaxWidth(), - style = MaterialTheme.typography.body2, - ) - } - Text( - text = album.duration, - modifier = Modifier.wrapContentWidth(), - color = LocalContentColor.current.copy(alpha = ContentAlpha.medium), - style = MaterialTheme.typography.body2, - ) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryScreen.kt deleted file mode 100644 index 564f438b..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/LibraryScreen.kt +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.demo - -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.Scaffold -import androidx.compose.material.Surface -import androidx.compose.material.Text -import androidx.compose.material.TopAppBar -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.ViewList -import androidx.compose.material.icons.filled.Close -import androidx.compose.material.icons.filled.SortByAlpha -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.saveable.mapSaver -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.ui.Modifier -import soup.compose.material.motion.MaterialMotion -import soup.compose.material.motion.animation.materialFadeThrough -import soup.compose.material.motion.animation.materialSharedAxisY -import soup.compose.material.motion.animation.rememberSlideDistance -import soup.compose.material.motion.shared.demo.LibraryState.Companion.Saver - -private enum class SortType { - A_TO_Z, Z_TO_A -} - -private enum class ListType { - Grid, Linear -} - -private enum class MotionSpecType { - SharedAxis, FadeThrough -} - -private data class LibraryState( - val sortType: SortType, - val listType: ListType, - val motionSpecType: MotionSpecType = MotionSpecType.FadeThrough, -) { - companion object { - - val Saver = run { - val sortTypeKey = "SortType" - val listTypeKey = "ListType" - val motionSpecTypeKey = "MotionSpecType" - mapSaver( - save = { - mapOf( - sortTypeKey to it.sortType, - listTypeKey to it.listType, - motionSpecTypeKey to it.motionSpecType, - ) - }, - restore = { - LibraryState( - it[sortTypeKey] as SortType, - it[listTypeKey] as ListType, - it[motionSpecTypeKey] as MotionSpecType, - ) - }, - ) - } - } -} - -@Composable -fun LibraryScreen( - upPress: () -> Unit, - onItemClick: (MusicData.Album) -> Unit, -) { - val (state, onStateChanged) = rememberSaveable(stateSaver = Saver) { - mutableStateOf(LibraryState(SortType.A_TO_Z, ListType.Grid)) - } - fun onSortTypeChange(sortType: SortType) { - onStateChanged( - state.copy( - sortType = sortType, - motionSpecType = MotionSpecType.SharedAxis, - ), - ) - } - - fun onListTypeChange(listType: ListType) { - onStateChanged( - state.copy( - listType = listType, - motionSpecType = MotionSpecType.FadeThrough, - ), - ) - } - LibraryScaffold( - upPress = upPress, - onSortTypeToggle = { - val newType = when (state.sortType) { - SortType.A_TO_Z -> SortType.Z_TO_A - SortType.Z_TO_A -> SortType.A_TO_Z - } - onSortTypeChange(newType) - }, - onListTypeToggle = { - val newType = when (state.listType) { - ListType.Grid -> ListType.Linear - ListType.Linear -> ListType.Grid - } - onListTypeChange(newType) - }, - ) { innerPadding -> - val slideDistance = rememberSlideDistance() - MaterialMotion( - targetState = state, - transitionSpec = { - when (targetState.motionSpecType) { - MotionSpecType.SharedAxis -> materialSharedAxisY(forward = true, slideDistance) - MotionSpecType.FadeThrough -> materialFadeThrough() - } - }, - modifier = Modifier.padding(innerPadding), - pop = false, - ) { currentDestination -> - LibraryContents(currentDestination, onItemClick) - } - } -} - -@Composable -fun LibraryScaffold( - upPress: () -> Unit, - onSortTypeToggle: () -> Unit, - onListTypeToggle: () -> Unit, - content: @Composable (PaddingValues) -> Unit, -) { - Scaffold( - topBar = { - TopAppBar( - title = { Text(text = "Library") }, - navigationIcon = { - IconButton(onClick = upPress) { - Icon( - Icons.Default.Close, - contentDescription = null, - ) - } - }, - actions = { - IconButton(onClick = onSortTypeToggle) { - Icon( - Icons.Default.SortByAlpha, - contentDescription = null, - ) - } - IconButton(onClick = onListTypeToggle) { - Icon( - Icons.AutoMirrored.Filled.ViewList, - contentDescription = null, - ) - } - }, - ) - }, - content = content, - ) -} - -@Composable -private fun LibraryContents( - state: LibraryState, - onItemClick: (MusicData.Album) -> Unit, -) { - Surface(modifier = Modifier.fillMaxSize()) { - val sortType = state.sortType - val items = remember(sortType) { - when (sortType) { - SortType.A_TO_Z -> MusicData.albums - SortType.Z_TO_A -> MusicData.albums.asReversed() - } - } - when (state.listType) { - ListType.Grid -> LibraryGridContents(items, onItemClick) - ListType.Linear -> LibraryLinearContents(items, onItemClick) - } - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/MusicData.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/MusicData.kt deleted file mode 100644 index 296a25b1..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/demo/MusicData.kt +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.demo - -import material_motion_compose.sample.web_wasm.generated.resources.Res -import material_motion_compose.sample.web_wasm.generated.resources.album_amy_shamblen_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_david_clode_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_efe_kurnaz_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_ellen_qin_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_emile_seguin_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_jean_philippe_delberghe_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_karina_vorozheeva_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_kristopher_roller_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_pawel_czerwinski_unsplash -import material_motion_compose.sample.web_wasm.generated.resources.album_pawel_czerwinski_unsplash_2 -import org.jetbrains.compose.resources.DrawableResource - -/** A static store of data to be used in the transition's main music player flow example. */ -object MusicData { - - private val tracks: List = listOf( - Track(1, "First", "3:25", true), - Track(2, "Second", "4:51", false), - Track(3, "Third", "4:12", false), - Track(4, "Fourth", "2:34", false), - Track(5, "Fifth", "439", false), - Track(6, "Sixth", "2:31", false), - Track(7, "Seventh", "5:25", false), - Track(8, "Eighth", "3:46", false), - Track(9, "Ninth", "4:28", false), - Track(10, "Tenth", "4:47", false), - Track(11, "Eleventh", "5:14", false), - Track(12, "Twelfth", "4:46", false), - Track(13, "Thirteenth", "7:13", false), - Track(14, "Fourteenth", "2:43", false), - ) - - val albums: List = listOf( - Album( - 0L, - "Metamorphosis", - "Sandra Adams", - Res.drawable.album_efe_kurnaz_unsplash, - tracks, - "52 mins", - ), - Album( - 1L, - "Continuity", - "Ali Connors", - Res.drawable.album_pawel_czerwinski_unsplash, - tracks, - "92 mins", - ), - Album( - 2L, - "Break Point", - "David Park", - Res.drawable.album_jean_philippe_delberghe_unsplash, - tracks, - "45 mins", - ), - Album( - 3L, - "Headspace", - "Charlie z.", - Res.drawable.album_karina_vorozheeva_unsplash, - tracks, - "65 mins", - ), - Album( - 4L, - "New Neighbors", - "Trevor Hansen", - Res.drawable.album_amy_shamblen_unsplash, - tracks, - "73 mins", - ), - Album( - 5L, - "Spaced Out", - "Jonas Eckhart", - Res.drawable.album_pawel_czerwinski_unsplash_2, - tracks, - "4 mins", - ), - Album( - 6L, - "Holding on", - "Elizabeth Park", - Res.drawable.album_kristopher_roller_unsplash, - tracks, - "40 mins", - ), - Album( - 7L, - "Persistence", - "Britta Holt", - Res.drawable.album_emile_seguin_unsplash, - tracks, - "39 mins", - ), - Album( - 8L, - "At the Top", - "Annie Chiu", - Res.drawable.album_ellen_qin_unsplash, - tracks, - "46 mins", - ), - Album( - 9L, - "On Dry Land", - "Alfonso Gonzalez", - Res.drawable.album_david_clode_unsplash, - tracks, - "55 mins", - ), - ) - - fun getAlbumById(albumId: Long): Album? { - return albums.find { it.id == albumId } - } - - /** A data class to hold information about a music album. */ - data class Album( - val id: Long, - val title: String, - val artist: String, - val cover: DrawableResource, - val tracks: List, - val duration: String, - ) - - /** A data class to hold information about a track on an album. */ - data class Track( - val trackNo: Int, - val title: String, - val duration: String, - var playing: Boolean, - ) -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/elevationscale/MaterialElevationScaleScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/elevationscale/MaterialElevationScaleScreen.kt deleted file mode 100644 index b45c2043..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/elevationscale/MaterialElevationScaleScreen.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.material.elevationscale - -import BackHandler -import androidx.compose.animation.togetherWith -import androidx.compose.foundation.layout.padding -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.MaterialMotion -import soup.compose.material.motion.animation.materialElevationScaleIn -import soup.compose.material.motion.animation.materialElevationScaleOut -import soup.compose.material.motion.animation.translateYIn -import soup.compose.material.motion.animation.translateYOut -import soup.compose.material.motion.shared.common.DefaultScaffold -import soup.compose.material.motion.shared.common.ForwardBackwardContents -import soup.compose.material.motion.shared.common.ForwardBackwardControls -import soup.compose.material.motion.shared.theme.SampleTheme - -@Composable -fun MaterialElevationScaleScreen(upPress: () -> Unit) { - val (forward, onForwardChanged) = remember { mutableStateOf(false) } - BackHandler { - if (forward) { - onForwardChanged(false) - } else { - upPress() - } - } - DefaultScaffold( - upPress = upPress, - bottomBar = { - ForwardBackwardControls(forward, onForwardChanged) - }, - ) { innerPadding -> - MaterialMotion( - targetState = forward, - modifier = Modifier.padding(innerPadding), - transitionSpec = { - when { - targetState -> translateYIn { it } togetherWith materialElevationScaleOut() - else -> materialElevationScaleIn() togetherWith translateYOut { it } - } - }, - pop = forward.not(), - ) { forward -> - ForwardBackwardContents(forward) - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - MaterialElevationScaleScreen(upPress = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fade/MaterialFadeScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fade/MaterialFadeScreen.kt deleted file mode 100644 index 05a9662d..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fade/MaterialFadeScreen.kt +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.material.fade - -import BackHandler -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.FloatingActionButton -import androidx.compose.material.Icon -import androidx.compose.material.Text -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Add -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.MaterialFade -import soup.compose.material.motion.shared.common.DefaultScaffold -import soup.compose.material.motion.shared.theme.SampleTheme - -@Composable -fun MaterialFadeScreen(upPress: () -> Unit) { - BackHandler { - upPress() - } - DefaultScaffold(upPress = upPress) { innerPadding -> - val (visible, onVisibleChanged) = remember { mutableStateOf(true) } - Box( - modifier = Modifier - .fillMaxSize() - .padding(innerPadding), - ) { - Button( - onClick = { onVisibleChanged(visible.not()) }, - modifier = Modifier.align(Alignment.Center), - ) { - Text(text = if (visible) "HIDE FAB" else "SHOW FAB") - } - MaterialFade( - visible = visible, - modifier = Modifier.align(Alignment.BottomEnd), - ) { - FloatingActionButton( - onClick = {}, - modifier = Modifier.padding(16.dp), - ) { - Icon(Icons.Default.Add, contentDescription = null) - } - } - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - MaterialFadeScreen(upPress = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fadethrough/MaterialFadeThroughScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fadethrough/MaterialFadeThroughScreen.kt deleted file mode 100644 index e4ae937d..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/fadethrough/MaterialFadeThroughScreen.kt +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.material.fadethrough - -import BackHandler -import androidx.compose.foundation.layout.padding -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.MaterialFadeThrough -import soup.compose.material.motion.shared.common.BottomTabs -import soup.compose.material.motion.shared.common.BottomTabsContents -import soup.compose.material.motion.shared.common.BottomTabsControls -import soup.compose.material.motion.shared.common.DefaultScaffold -import soup.compose.material.motion.shared.theme.SampleTheme - -@Composable -fun MaterialFadeThroughScreen(upPress: () -> Unit) { - val (selectedTab, setSelectedTab) = remember { mutableStateOf(BottomTabs.Albums) } - BackHandler { - upPress() - } - DefaultScaffold( - upPress = upPress, - bottomBar = { BottomTabsControls(selectedTab, setSelectedTab) }, - ) { innerPadding -> - MaterialFadeThrough( - targetState = selectedTab, - modifier = Modifier.padding(innerPadding), - ) { currentTab -> - BottomTabsContents(currentTab) - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - MaterialFadeThroughScreen(upPress = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/hold/HoldScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/hold/HoldScreen.kt deleted file mode 100644 index 98ea0a87..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/hold/HoldScreen.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.material.hold - -import BackHandler -import androidx.compose.animation.togetherWith -import androidx.compose.foundation.layout.padding -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.MaterialMotion -import soup.compose.material.motion.animation.holdIn -import soup.compose.material.motion.animation.holdOut -import soup.compose.material.motion.animation.translateXIn -import soup.compose.material.motion.animation.translateXOut -import soup.compose.material.motion.shared.common.DefaultScaffold -import soup.compose.material.motion.shared.common.ForwardBackwardContents -import soup.compose.material.motion.shared.common.ForwardBackwardControls -import soup.compose.material.motion.shared.theme.SampleTheme - -@Composable -fun HoldScreen(upPress: () -> Unit) { - val (forward, onForwardChanged) = remember { mutableStateOf(false) } - BackHandler { - if (forward) { - onForwardChanged(false) - } else { - upPress() - } - } - DefaultScaffold( - upPress = upPress, - bottomBar = { - ForwardBackwardControls(forward, onForwardChanged) - }, - ) { innerPadding -> - MaterialMotion( - targetState = forward, - transitionSpec = { - when { - targetState -> translateXIn { it } togetherWith holdOut() - else -> holdIn() togetherWith translateXOut { it } - } - }, - modifier = Modifier.padding(innerPadding), - pop = forward.not(), - ) { forward -> - ForwardBackwardContents(forward) - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - HoldScreen {} - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/sharedaxis/MaterialSharedAxisScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/sharedaxis/MaterialSharedAxisScreen.kt deleted file mode 100644 index 74946180..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/material/sharedaxis/MaterialSharedAxisScreen.kt +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.material.sharedaxis - -import BackHandler -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.requiredWidth -import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.foundation.selection.selectable -import androidx.compose.foundation.selection.selectableGroup -import androidx.compose.material.RadioButton -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.semantics.Role -import androidx.compose.ui.unit.dp -import org.jetbrains.compose.ui.tooling.preview.Preview -import soup.compose.material.motion.MaterialMotion -import soup.compose.material.motion.animation.materialSharedAxisX -import soup.compose.material.motion.animation.materialSharedAxisY -import soup.compose.material.motion.animation.materialSharedAxisZ -import soup.compose.material.motion.animation.rememberSlideDistance -import soup.compose.material.motion.shared.common.DefaultScaffold -import soup.compose.material.motion.shared.common.ForwardBackwardContents -import soup.compose.material.motion.shared.common.ForwardBackwardControls -import soup.compose.material.motion.shared.theme.SampleTheme - -private enum class Axis { - X, Y, Z -} - -@Composable -fun MaterialSharedAxisScreen(upPress: () -> Unit) { - val (selectedAxis, onAxisSelected) = remember { mutableStateOf(Axis.X) } - val (forward, onForwardChanged) = remember { mutableStateOf(false) } - BackHandler { - if (forward) { - onForwardChanged(false) - } else { - upPress() - } - } - DefaultScaffold( - upPress = upPress, - bottomBar = { - Column { - ForwardBackwardControls(forward, onForwardChanged) - MaterialSharedAxisControls(selectedAxis, onAxisSelected) - } - }, - ) { innerPadding -> - val slideDistance = rememberSlideDistance() - MaterialMotion( - targetState = forward, - transitionSpec = { - when (selectedAxis) { - Axis.X -> materialSharedAxisX(forward = forward, slideDistance = slideDistance) - Axis.Y -> materialSharedAxisY(forward = forward, slideDistance = slideDistance) - Axis.Z -> materialSharedAxisZ(forward = forward) - } - }, - modifier = Modifier.padding(innerPadding), - pop = forward.not(), - ) { forward -> - ForwardBackwardContents(forward) - } - } -} - -@Composable -private fun MaterialSharedAxisControls( - selectedAxis: Axis, - onAxisSelected: (Axis) -> Unit, -) { - Row( - modifier = Modifier - .fillMaxWidth() - .selectableGroup(), - horizontalArrangement = Arrangement.Center, - ) { - Axis.values().forEach { axis -> - Row( - Modifier - .wrapContentSize() - .selectable( - selected = axis == selectedAxis, - onClick = { onAxisSelected(axis) }, - role = Role.RadioButton, - ) - .padding(horizontal = 8.dp, vertical = 16.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - RadioButton( - selected = axis == selectedAxis, - onClick = null, - ) - Spacer(modifier = Modifier.requiredWidth(4.dp)) - Text(text = axis.name) - } - } - } -} - -@Preview -@Composable -private fun DefaultPreview() { - SampleTheme { - MaterialSharedAxisScreen(upPress = {}) - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/navigation/AnimatedNavHostScreen.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/navigation/AnimatedNavHostScreen.kt deleted file mode 100644 index d584bec6..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/navigation/AnimatedNavHostScreen.kt +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2022 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.navigation - -import BackHandler -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.Text -import androidx.compose.material.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.rememberNavController -import soup.compose.material.motion.animation.materialSharedAxisXIn -import soup.compose.material.motion.animation.materialSharedAxisXOut -import soup.compose.material.motion.animation.rememberSlideDistance -import soup.compose.material.motion.shared.common.DefaultScaffold - -private enum class AnimatedNavDestination( - val route: String, - val color: Color, - val nextRoute: String? = null, - val root: Boolean = false, -) { - Fourth("fourth", Color.Yellow), - Third("third", Color.Green, nextRoute = Fourth.route), - Second("second", Color.Red, nextRoute = Third.route), - First("first", Color.Cyan, nextRoute = Second.route, root = true), -} - -@Composable -fun AnimatedNavHostScreen(upPress: () -> Unit) { - DefaultScaffold(upPress = upPress) { innerPadding -> - val slideDistance = rememberSlideDistance() - val navController = rememberNavController() - NavHost( - navController = navController, - startDestination = AnimatedNavDestination.First.route, - modifier = Modifier.padding(innerPadding), - enterTransition = { - materialSharedAxisXIn(forward = true, slideDistance = slideDistance) - }, - exitTransition = { - materialSharedAxisXOut(forward = true, slideDistance = slideDistance) - }, - popEnterTransition = { - materialSharedAxisXIn(forward = false, slideDistance = slideDistance) - }, - popExitTransition = { - materialSharedAxisXOut(forward = false, slideDistance = slideDistance) - }, - ) { - AnimatedNavDestination.entries.forEach { destination -> - composable(route = destination.route) { - if (destination.root) { - BackHandler { - upPress() - } - } - AnimatedNavDestinationScreen( - destination = destination, - onBackClick = { - val isRoot: Boolean = - navController.currentDestination?.route == AnimatedNavDestination.First.route - if (isRoot) { - upPress() - } else { - navController.navigateUp() - } - }, - onNavigateClick = { route -> - navController.navigate(route) - }, - ) - } - } - } - } -} - -@Composable -private fun AnimatedNavDestinationScreen( - destination: AnimatedNavDestination, - onBackClick: () -> Unit, - onNavigateClick: (route: String) -> Unit = {}, -) { - Column( - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier - .fillMaxSize() - .background(color = destination.color), - ) { - Text( - text = destination.name, - color = Color.Black, - ) - if (destination.nextRoute != null) { - Button(onClick = { onNavigateClick(destination.nextRoute) }) { - Text(text = "go to ${destination.nextRoute}") - } - } else { - Button(onClick = {}, enabled = false) { - Text(text = "end") - } - } - TextButton( - onClick = { onBackClick() }, - enabled = destination.root.not(), - ) { - Text(text = "go back!") - } - } -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Color.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Color.kt deleted file mode 100644 index 84bef688..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Color.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.theme - -import androidx.compose.ui.graphics.Color - -val Purple200 = Color(0xFFBB86FC) -val Purple500 = Color(0xFF6200EE) -val Purple700 = Color(0xFF3700B3) -val Teal200 = Color(0xFF03DAC5) diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Shape.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Shape.kt deleted file mode 100644 index 059b47c5..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Shape.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.theme - -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.Shapes -import androidx.compose.ui.unit.dp - -val Shapes = Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(4.dp), - large = RoundedCornerShape(0.dp), -) diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Theme.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Theme.kt deleted file mode 100644 index 42bb44be..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Theme.kt +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.theme - -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material.MaterialTheme -import androidx.compose.material.darkColors -import androidx.compose.material.lightColors -import androidx.compose.runtime.Composable - -private val DarkColorPalette = darkColors( - primary = Purple200, - primaryVariant = Purple700, - secondary = Teal200, - secondaryVariant = Teal200, -) - -private val LightColorPalette = lightColors( - primary = Purple500, - primaryVariant = Purple700, - secondary = Teal200, - secondaryVariant = Teal200, - - /* Other default colors to override - background = Color.White, - surface = Color.White, - onPrimary = Color.White, - onSecondary = Color.Black, - onBackground = Color.Black, - onSurface = Color.Black, - */ -) - -@Composable -fun SampleTheme( - darkTheme: Boolean = isSystemInDarkTheme(), - content: - @Composable() - () -> Unit, -) { - val colors = if (darkTheme) { - DarkColorPalette - } else { - LightColorPalette - } - - MaterialTheme( - colors = colors, - typography = Typography, - shapes = Shapes, - content = content, - ) -} diff --git a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Type.kt b/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Type.kt deleted file mode 100644 index 32ba656e..00000000 --- a/sample/web-wasm/src/wasmJsMain/kotlin/soup/compose/material/motion/shared/theme/Type.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package soup.compose.material.motion.shared.theme - -import androidx.compose.material.Typography - -// Set of Material typography styles to start with -val Typography = Typography()