From 0b6501c6949afd8f32176d33ba37cfba16b8418a Mon Sep 17 00:00:00 2001 From: moshiur01 Date: Wed, 23 Sep 2026 18:56:00 +0600 Subject: [PATCH] feat: add new block --- apps/docs/components/nav/animated-icon.tsx | 1 + apps/docs/content/2.block/shutter-slider.mdx | 118 +++ .../media/blocks/shutter-slider-poster.webp | Bin 0 -> 43528 bytes .../media/blocks/shutter-slider-preview.mp4 | Bin 0 -> 263921 bytes apps/docs/public/r/registry.json | 12 + apps/docs/public/r/shutter-slider.json | 23 + apps/docs/registry/__index__.generated.tsx | 1 + apps/docs/registry/__media__.generated.ts | 1 + apps/docs/registry/__sources__.generated.ts | 12 + apps/docs/registry/demos/shutter-slider.tsx | 11 + apps/docs/registry/registry-blocks.ts | 33 + apps/docs/registry/tweenui/shutter-slider.tsx | 677 ++++++++++++++++++ apps/docs/tests/shutter-slider.test.tsx | 150 ++++ 13 files changed, 1039 insertions(+) create mode 100644 apps/docs/content/2.block/shutter-slider.mdx create mode 100644 apps/docs/public/media/blocks/shutter-slider-poster.webp create mode 100644 apps/docs/public/media/blocks/shutter-slider-preview.mp4 create mode 100644 apps/docs/public/r/shutter-slider.json create mode 100644 apps/docs/registry/demos/shutter-slider.tsx create mode 100644 apps/docs/registry/tweenui/shutter-slider.tsx create mode 100644 apps/docs/tests/shutter-slider.test.tsx diff --git a/apps/docs/components/nav/animated-icon.tsx b/apps/docs/components/nav/animated-icon.tsx index 47a3bb8..5df18a9 100644 --- a/apps/docs/components/nav/animated-icon.tsx +++ b/apps/docs/components/nav/animated-icon.tsx @@ -103,6 +103,7 @@ const PLAY: Record = { 'list-ordered': wave, 'list-collapse': wave, layers: wave, + blinds: wave, 'move-right': nudge, 'unfold-horizontal': nudge, 'circle-arrow-right': nudge, diff --git a/apps/docs/content/2.block/shutter-slider.mdx b/apps/docs/content/2.block/shutter-slider.mdx new file mode 100644 index 0000000..d0b5e81 --- /dev/null +++ b/apps/docs/content/2.block/shutter-slider.mdx @@ -0,0 +1,118 @@ +--- +title: Shutter Slider +description: An autoplaying feature slider whose images open through alternating slats. +icon: blinds +--- + +A feature slider for landing and product pages. Each new image **opens through +vertical slats** — every other slat from the top, the rest from the bottom, in +a wave from the side you're heading to — while the old picture sinks back and +dims beneath it. The **headline letters roll in like drum faces**, the copy +**rises line by line** through masks and the caption **pulls into focus** from +its centre. Every move is **mirrored when you go back**. The counters roll like +an odometer and the progress line doubles as the autoplay clock. GSAP. + +::component-preview{name="shutter-slider" size="xl"} +:: + +## Installation + +::tabs +:::tabs-item{label="CLI" icon="i-lucide-terminal"} + +::install-tabs{item="shutter-slider"} +:: + +::: +:::tabs-item{label="Manual" icon="i-lucide-clipboard"} + +::component-source{name="shutter-slider"} +:: + +::: +:: + +## Usage + +::tabs +:::tabs-item{label="React" icon="i-lucide-atom"} + +```tsx [app/page.tsx] +import ShutterSlider from '@/components/tweenui/shutter-slider'; + +export default function Page() { + return ; +} +``` + +::: +:: + +Pass your own slides. Images of any shape are cropped to the same 2:1 frame: + +```tsx [app/page.tsx] +import ShutterSlider from '@/components/tweenui/shutter-slider'; + +export default function Page() { + return ( + + ); +} +``` + +The sample photos are from [Unsplash](https://unsplash.com/license), free to use +under the Unsplash License. The background (`#eef1f4` / `#15130f` in dark mode) +and the terracotta accent live in the `className` strings on the `section` and +the pagination row, so you can restyle them in place. + +## Props + +| Prop | Type | Default | Description | +| ------------ | ---------------- | -------------- | ------------------------------------------------- | +| `slides` | `ShutterSlide[]` | 3-slide sample | Slides, in order. | +| `autoplay` | `number` | `6` | Seconds each slide holds. `0` turns autoplay off. | +| `aria-label` | `string` | `'Highlights'` | Accessible name for the carousel. | + +Each slide is `{ heading, image, imageAlt?, description, caption? }`. Extends +native `
` attributes (`className`, `style`, …). + +## Behavior + +- **Stable height** — all slides share one grid cell, so the section is always + as tall as its tallest slide and nothing below it jumps between slides. +- **Autoplay** pauses while the pointer is over the slider, while it is off + screen and while the tab is hidden. +- **Swipe** left or right on touch screens; **← / →** step while focus is inside. +- **Resizing** re-splits the copy lines, so each line mask always matches the + real wrapping. +- Text is split once **web fonts are ready**, so lines never break in a + fallback font. + +## Accessibility + +::note +The slider is a `section` with `aria-roledescription="carousel"`, and each slide +is a group labelled "1 of 3" and so on. Inactive slides are `visibility: hidden`, +so screen readers only reach the current one. The prev and next controls are +real buttons with labels; the rolling counters and the shutter slats are +`aria-hidden`. Under `prefers-reduced-motion: reduce` there is no autoplay and +no motion — the controls swap slides instantly. +:: diff --git a/apps/docs/public/media/blocks/shutter-slider-poster.webp b/apps/docs/public/media/blocks/shutter-slider-poster.webp new file mode 100644 index 0000000000000000000000000000000000000000..79546a6e888f9bb85e6153937e85811bdf92a853 GIT binary patch literal 43528 zcma&NQ%eHOXwr$(CZQHhMmu>6q?$h0;-x%+X`{qaHSnDq%X3Wf( zv6h0khzLLh0D!8nfSigP8~$TC0006ANH!oP04P2%k2PzW7%>qEQIQkHS{`h;sm;ew z%AE#pu6E3{E~6>-pB~a`3ALnj@%^Kt{j=SOrMG!s&A4vykj>@zA0aWkKmKF-Mqd(l0T-OrR^&GWFN7&yNSFwz3KZ5T|eU=>95qU z;J3VQz4Jd=KkMI-d!iS-Pw(5$7e9FI@E5LMx-_#?z1q(>U-Cbb>xG}S-??``n;#Zm zRNr`4Wbd^>@K=Q`fR#F&6zTtekgc1bU*+EnxhggFf5I2vM$kox$^R8TdDa5Xi%kCn zN7%qTX%@C9pc?hMK*6 zT55nr`pN*3>SVAXT{qlMv*|pcaFIbp}Hzo7yvmofG{OtNlkPcNqdLJmxw1u z9CSda`Z9LRF)X=kr>Xxwo$(~^bkZMjLvX+;Dc96-9x~F(eeLVG&3Gi^B#izD!-?CX zrPr-53#@oJwXz5*q?D&lZj*i*T3JX1zwX-Y!^(2=yjpSun~NRo1#RNuu}WH)OI+Zb z`jJ!-M)6K-3r#Tn*sl2vk;jE#=6EPHw6adz-MTJ1cn2|*ejW1=@s%nrScL3D(qV0k=mLCLEgO%OQpPqRs0K2t8o5r%Krl;wNJDO zQA#^T-BwD&(U~nfW8`=)o!8=Lqq*}8GMg3E@N*Wc1Kj*LA##z7-<9%wjM-(fA#*~T9Q1T%1gpq;k^ zUFS72nud+f{Tgo!pSmR%&y=iYR-#zLhOW#91vGTUCZVb1P=1(wF~yj$ioqF%+EnaE zecL>8KM|#=w-|rk*Xz{R)MS(!r?!*+nT~0qf8^$0n8y40`EFzqjlanp9tOkZ504My z&A32Y{C5@nH_!iv?f>5^uN-SW$JzhA2y@H+NyMqC_7uZzLO;xd@Ebu=y5F%MNS<@! zQMhq`$aF%8*}_-z!{G>>PYndavOO^38s<(1@d+es8dmT<{(j>=I@_4EqMc;^HG`kG ztgNC&&YEZOH%n#s>E!H<+wVSb#Z0{`2%#V-Ri7diGC4u6Jl7tb0X0=R6)3?jMHWn8 zz?t~e?_l`EQkw3zzRS^QWaSXk_{t{^Cbh=4zcu|V%L{i~29ruVg7I(WpRaqPSmL-D z|D_z=Z8PF_EK)CH1M}oI>m7=7VIix2b5QjUCsHS>(fEB#c*_sjNf$M(cO&izQI=%n zk6;QhDww#r6Pih_-8bi~fCwg(DD==|n2>GxHTIk1l;bgTT(ajt>>Va%^A}0&Y}&crhg6me1d+QR4l?I;$vI^uD8N-wltojZn&X(+qNfD?9^qULfI3qirKeRSDf5pBvE(?ooSp znXZOet%Iz-Wxy?_3;*({apj)6lX*fLhVpUncGzU&)vBq^_pQQDB+?HN12pLhvpG!OIdKF^ihel@P#xz3J?qe&15;1IN|k25YV~$tC?$zbY7#e&wH! z8!bbO>$AEHn;H_1#Y65DSq3fCfhZ3AJg;9jO!*WwTU5AQB6;Mw%=@ZF}+)V z&*p!cJ~lWj3G!m&bR1u%#VS_aLsJJWSjpE6b@;v@$V1a7qbPb@2__ ziV=!H%|PmK_p)F^xp~WL7~Ea-v4R?|b-CIa_UCPqM6KJ&3^%Yud*@{rsQevI8eP%Bga@YV!6Uo`b7ecjkOzx?QySYV zgN0e30RrvDr`Y=esHgMU_AH$6-)?F(%oGTz=SiKRwEHQMs<&OT=snMb_*>M$bt=@A zY!3f92hsr@dOrv?e6jx4o@bJOrQcP~;ygfCQTR?dlpc#U>ZejrLNSZ!LC!Yo^1T0q ztGB~LlCF^J7{gK=`yXPMXbG#v_=|8n{fed)nC*n9MCcp|3N=$5uYGc~%IA!9PrIro|mlDN<1* zIuzsUl@-m%k3+0BD2L<^Wz+juW>*9rRo^hfe&*EG1R0pcp~XcSa(#1>dR|EDS; z2t5FF(CE7om=sem#Ql2}W$d$U0t=D!?j)O&V%b=q3yKl9wfmX@Ie__up0_YDos$EE zgDkVYYRTakI$YM7&^-5G0S;9mmL_(6tXaOHp_2?ifA8l)7&VrN$O5dA8U;&^*NnCFZEM+}EID@zv%965WlswDYb4T$WciGp11BU;L42Z^ z){R~1{0z2zr6J9BT|TFQ`(+bBAR+}{QFY|Wldk<=iXkOT$__sff#0^`EJ|=T8YCNbBkNO zvmmb1+dG_VBkM@l91@63ubBE-(fAse!ySgmYM`I>T;{VlC8n1~? zir76Q0c(u<5a)~|wB#F}8u7xYNjc2@R-r}Qk2J!k3!5vxnV80L?`mXek?HP^i(Ot< z@&WingIMX_SBN=tH_yuN8K3HhQq?*%29Ep=NI>{A-yF##!pxOCo|DuOe_W;MO9)QM z9{DC-*tY!<3*SOe!PFoF02f*C zfjO-F^p;x+wbH?xM=Q1kX&M$%s{_+2x9Xw$BS6khJBs#am7WmaXuez13J;+b5c)mtoGAG1I^MWGwOrfhhjgyTV2jQGvP zuuBXxs&0o0>AvJ4S#HmT##iM=`wcm8J0tNzLi1)Zl;C(f{FTs;)Qp-{CbXT;j)Oaz zjUnWqhJKsPn)q_eq4g2u8bg_|?#5>f%9PlBUJ=;+HevFB-@R3y(~%yrat!YLSOW%4bmk_cvNgYw zw=4c;H!5#}Za9a;igNP{qLW;sWyvLgqjC3=Ph9svSx5#%5};@;R+C@vyX%c*A6OEe zE^?X@Z|9v_<6dK8{I8Ya{V&79c*S!IvL~{d5+i& z%jnF(WE!sku~aAYwFInSbK;k34M%OV(R1+B$4GWG*$*gc)at^hw+GBP^d#j(5BG0f z^n^%3AwDK-SuIZEd3rfS{@ro^H$KxlKrTR3xULpqyTH%MKjjNO8@`7kf6ak^_pyu@ z+-TJ^<3i(R`ab)M71fnUQ~TjlJx=7B5rMLepA9P#uqSJ?3VPmB4rarPKB9p~n@_QC z!o}{A-1<3D3N!sFFo3jE%|Qz@EJCxP$?bmz%QKf&aUa( zl0u~Z2GXk)7kn|#WIqP!Ma@ANb^NfwN|g%gXE4kb>Ag#YePnsJup7Mn?b*Nu=L}H~ z<8|$DPKVD9Gup8gfQO7(-0<5kwmFkg%<_Fp-I4S&(<}R?JwVgBsjEZNb7x3Qd$w=? z@0j)=22s z26zt7Y(8q<0&WOzSQKEQ`_BkYs(>gNSyu=Kb`?0~PEoqqRIrJU%haOfkYYYN0LDCh zRFOx%&IK+f(eF5XQB)_dNJ;&Wd}v!m0+s9~xrqYd+_1n6;9I_{gR&D~>ER1~NNM+x zE6iqxo^drLrA~e+P^bgzGHl71{23afd8@tN^21=o+zf=vG=2^M|q1x83Xq5q=s{T?~0Oo5|F@|=7-EkE?6#c z8R?`0FydW^9(mQ+=qYjQtNZzGKy+C0{lYTHYVzI*XLHfYrPI@y)pw23%Z0sc5(&gR z#cPc!MLd3}&Dk0(%X~^a=!>uD5G?>-kBEd5S6mhF{)HCI2764g59@mjrqM=F`)EbC z%IHO6j+*esVyl&W>-%`NGh3foh^M?t4)&X4QH^!@;K1RpQ8#n=KZcg^>c?+mv4ogu z!+Q-Ny4FQU$o4O!?+acr^P@>)g9nl@4ea-^SNk930x|*S;AXP4m#+La*1Zz2SDcTP zf?yGr_euairchr=CfEvUG5v!AAKNFHW`?YBsarur_?2(W$*gTk6 zi80^DuS4Q4K)LA3@Jd|RQRy>MJ+z^D$mlXHW`IsV1&2&y$O9UvBUGhu0h_&12qGoa zKzP|MBD|tKU`!GieSAT(siBs7E8aRu7bjhDA0A8E9QZ7PcFP zB$>5R#a~>1zDq!sQj-r@z&3!+bgg5vv7wW3T9ds`B|5d}5?$0Tsf0fqyX3pJz0lk= z9eSN(MJb=_yeZTi-m(sHdx2dmgo#TOSGa#ZJlk$d*i>1$8y~gZW~>x{F0D)_`S3Nf zP6n7Vl`SQn(W;*kb9yhcuMHBYVg6X_(b(X}vrz3yVS{f(j03szNEUl6ynnaEA%fgZ zemK!Rx3Vd#S(*Q}f=&P3G|=Wo;1U2XmIPC1jL+7J9>Rt6479n5P!V*q7yyOP>79V} znNgz8rN~4rV&OvaKl!tQqLDLS4=u`O2m^00qSByZh<>k_HH-J9tHb{QCkiZ4)115WYFggzAHm<@1cU-7bCC3OK4QKd|WZ& zv(rn&1w-jxgqAB*GQzR$N6mC;(Ma*3Nz6;Ji-|gAWdhZ{s8Yd+E$c^@VNc2txo?6Au{d$84?bP)u&%6d&n*0&dp0O8 zcYe=xfP3%fDtl^QQ5?cmfu42bC=){|OB&TbKMGr2KZbIa3Qc9d6+Q~Uhy}lwzu5Q} zP+nE{PXk8PDKl|s{627)Fda4NHhFEHMbx@bPXoiYaEv+scFkDoP@up(cXqHqVgti0 zrOr1FWfP}($sQM>e4qd5?WN6p<+E4rnbhSV`-#n9+P|pRmA?$}i)4hNcfn6p#D8$A z)H;>vy_Z(DCz1Sz;7@7QmSqnp$Q-1=oU3_^SW8k>=D*_9MB&|*r-uyR*lCqS3D$V{ zV>63xaxSC4s+;$~Ytnu}VTd)-;{j3JtUjZ1nq(W$0oBiP`>f7?M)*t;U}+HV*cxBR z;W?|!LCGT$CM=;}R~xYN>RUCQdz@!=hpGbvt=PXf^@orLYQ~GB1{{Xih9A9>l;~Zx z0ywL^*WoyHC|%<^us?hRsgHY}?f-rwwIfmk>h0J4>be_}G5z3TDZ{L)le6Yq{@c9B z#CEm?Yz_b5^4d2?J(4OiS7N zS7bcP?^IC{55j4HiQw4*Ab}sT{;u3GG%N+mqwobDJUsd;8}04%YD^ACAxl&oy0Yd*hP^!`d_{^ZAbO%sZni6nA-sa9Yc8MC6hG}%B_CvizIr8E;{BVlMxaas|rUBG-FRpu`*N@GWT5yt> zgCDiMEzHD;Kp{~Lnn}ysumJ0CKJ~Mmz?kP_W1MdM zIAeB}_LFXb=q^G-z81iE3R2>5hLKFBvxJfFpd!CWv}Gv+PTKcqpwy`JpVqjhy}i)A z(nIeed9Q*)o=V%#h+x3WR4}OF0gpS}ef|UQGvw%KVx__a11FACGNqm8b~@+|RI$GS z5nKFMR74VnJhg@W_L65Hwf-&;WpMx4o7)Cvv9b!Gx%7!<`VX9Pev3alCh2SPs{fUT zf17&$9whvq_WvF^{bNRB+>B5bUf}3OY5+o%4j31`CI+pU7y|C)3u%hT@fczbi~e(E z-S92^)Z^{)dYnQ`?s_a=iP#MMm%9Iix?bLf|36Ci->96opXrF1L=+EctOXtUuTju{ zl>1+2{6B6_|5Ciar%F$ykgkd%_}=3}qbD+^9F+5D$WV(aSFP4NhZ$~>;)@*rm_eJ< zy#UZCwjvcL>-EDxuCs?J@zDKROp88vsy1FWG66abQ?G4uFl5 zF#rrr4v$rwxFC8Aa?v<$8~xW+`5&M6AJNg4fTIA$#=3OT{pzrIpc+fXtdZ>Jzq5GO{7N$EN&&L}VwF$Op1<|gu(mNHO35JkS)ldSx~{YB+R&a#aIJG0gHbWe%TxxTwUPg9T5(=xEJ( zh~OYpHF6$R)-ECYPkEe0ViQ>LfTlLa)a7{uykQ#Ki8(zx8+4=x_7yiO59lK-KfMu! zuhAQcBWO(lq9zT8`M@L!2arR)3_Yk@_WOIp@sX;^IY}gM;yKvAInvP2|Gy0S2aPlz zN*FDnqfkuKtVUP}AOsL>fnYEIGvWz0Efv@^!2r+{|A#IAk&XW*PvLMD3QA6`aeP6) zL*M_7z5es0{@+sQ6doG}$b+RgTJLWDP-bOQW0Drn@fYfvDT)OGHdo^Dl7l*^QJ6T@ zrwGlQudys}DYg?Wfxo{-(SxGYn`0Uu?6U32}>$r4wXOoOA#44-@l0 z_RIu7eG_DjNO~I zA@%tG`1HSk?m6!Jq{Wg}5d%s~W19R^Qy{|{4$!shVX;J^V*%@lq&XzS|E037US|#8 zN0iC8p5Flolw9LTT=5f+Yp9rjsID5AId4lVW~$CMjr)f><3PyEd*u^D#I`w4sW9aC zAvgU|p?LCSUD^(rr4vrh!N5EhZ&Ry$CLfea*_mM6>+3T1}uQ=slojQ>-qD869fBV%GU5{gjH*zF17DWKT^@xh&G=z!se~iPJaok8=eyx=|Cr=FiisKvd!EGrZe2%__1{0ocA6 z@jhWGKq;ng+xuW+S-|S~`s;0wSUS zA$HJ?2DPEDm2%0U33mKPJuyAI8i)tNxZvRw`$;aT>o7=B*SE*C*YE}N++)sRUPwD1 zmpGv0;st(YnJU*BpTy^c>~+mNHdhMIk(Lr4{wTPtOoj^7(HUsV@Y{1gkVW+$$rsKV z(LwzDYFFlh-X;#4n1t_fXvvCnC)Py{qG#JX4{5+t(Ado2gcftVq(9fLdz9lrp((K6 z4qD|nG(^>MOI5qmd5`zW!-{g@9JT{19-mSO8vv@rZhdzTU(nmw3bW<$x|{*?5D+#E4Uz!9!n`xAWIIDErgf9ys#P%Hpi+sZ4kwBNl@UE-uK;EK z1LqBKc2~H~9nJ)lk08`k?tFVfl3^+6JAYu=cfL(DI)u|j5*i!{zCiFc4aHd_;p z2gpH5=a&HG^xWewx6LRf1LHOh+A;M{qkDyr! z(CdEK%%+|EBWxOM;>=5zaw2F{E16}lYr~ZznJ$tb5%?r`cm2S41j&a=EkxU#LD!f@ zY!Bf2CU5CCv~*1RYq90^=3<~H8fBLQdoC-mRT8H@e0se+yj-;b4l3Oa^eFQ=^*kP^ zPG2K1DO$UlM8x|LJWCcg&Wsv{5TTbkjPOzY=nhAb2kJdlkHyi>o)~ZmS&8`7 zrp7X$x8p-!QLW8ggfs=suPBapi~CbatAWgEcHk`%h#5nz^pD6HFD!6E6e(AhI<)SU>9h2Q5m zPF{*vU~SwnL=@IIB!fJAg$xDx5^G2-k9TT%DH`zhMCe`y^EKl$eOZ0018&Czta#N_ z`hxRL^fP{kw`6P?3_jL665q28gRbNcWAx|tUU&@v==o);2F_0yyrsDJ2W$_LX6k&+ z$$^X0R=Nd6SV5-o|KhMIl#_W8&}^jpO#*4V$2;`v_^A39RF~aUuUS--7gnugAg7*C zL^ga;(#99xz1li^uY(qs7-0=m zLN~0x4#(**!Nn$#^o5ubfc|EW5k@2yvhiXqRAHIBCkF|2};XM4JauWAq@fF za4d@Lk6e7-Vo1B&Ad%$tb;Nu}S?_}^mIvH-z=Jbd#+J#@v0Isv<|fH7ACLQc#_E0u zY(-oOZw8TK(oKSG>`>kkpq?Qn5ye4j`Owo` ze=Iva(^S17A$exk!_Eye(?yGXTNRB;bL!_R{*sL88<2#xkcmx7aKhj(<`R)96cs(8 z>bqw^9nY?>K8-SZbYyvR1xA21MnY=0&wTL&#nYD|@?$Mf`bW|ab8tP%25u^HFd;%; zA5yB$Ak*qZP2OI1b_mfxCsYA8izx@?w+P?Hyl4k*KzCcQWS2+foru+O`$^{8#hrJi zIEav(1T``zg>mhNlA7hqQyR1#BS&2&B0-$z%!F(=fD>DHWdrIsyMWsZe6Q-Zp_cgV zNJmC@y)Rs4)gH@uy5JU#(ah~@5S3s$(nM*h58H9nP}nA8ZY_aTf3mDh^ItNZS!FuI z*&vOy(<9LkyN>0)if`JR7WIpHP&x4Kkk)7w-0vomYMsD0OX?h82z`_?nTQ8dt?XO7 z$GWg6t$fYl?r!HWb&pt4NuvkfgyHz*jm!1Lx8f?8$C2WB!44NzfZ z98f~n63*#PVhn&DpZoJ-esbF`jGBY6j_MhA1oJUZ6lGt+oj127JsxLLAv)jgl+i|| z*Z6-$?Ei#hMs0H6Ytrs-`pnE&$P=nic!#1;Dj#KOH>O)t{4kke_anHi_G>^ne!>}( z{@3hJJ9-COyeS$tkEj}1xs;+C&N1r7<#->?@tp!0Z0w&sT2TCk7%ECAu(?zkunZ95 zF|d&*D%m2$%+mHHY(6&jeXdtL$8_#2Y@?HwYRs}=o5%53?z?nP`plEAF;aW z_J}WLs>V11QZv%7LI&ze-bMNtH7&3~YoxR7}i#PkzuD&BaV z$Li92x1>DIpBTBeBaVw)la0(-7SYcz@V%Sd7cbrAexL76it>K6Ka;lKn`c+egSB9Z z+=?D7V>z^$1IccgwTqnLJrD6nUBu)bd3oYSp}xWr*}iN9IB-NOldl$CKOnVXARI7} zlvTHPQSRB&e+k0Vf7u&jRsI|`!RhEO`tvAPpEG-nI>sY@aMaaC+2P%My<^n)R8Fu0 z&wJcHrkTZb52rYt?!0cF@Hrt##;(szdrUt=>^sB8Gub4Meam>?O5eJ*ik|1en}}I? z1Au5U%N4{80rS`yKbzV1nJCq0$y18iI5Di%S}sJ8UtAD#0vOLaGT}*q zbGE%5!_d-Vz4n-t)q6;R_;4;@nqF^2-gbVoC#Skd!su(YHRcbl(suGwwD8=TCu$Fg z$U`ZFHP|1os1xkUs?6v2RUJbw;RYTS1x(0KuJZjtWGf7nb&ZlfO(5dW*hYT)!(L)v z{wqLPmi@(m9erG8UG$8A!TF7bL4olqe>X-@NZg?GrzJi*8SWubIbf8D6leB-= z$*xRU0vc&K6JgM93CH%0K@@My$sYZ0>mz5l(Q{+GZT}wVT)&V~zGkW|rl|~rl4o&F8 z(stQ*2uCA77D!K+qfm4Q0~KLcCcYqPH3aXAEnwQcAAqRI!8`u;Qp$N*KExpa9sYauP^=pz1#ARxm zlf%Mnp2Mm}1IkotuOV~c*_z3o4&ZpZ_&#Jn++Wx%eK)YB#VPZOH8_RV-yH+Bv*>kh;|IolPDzio(D|Z z->jX&4@T<|jQ;%TZe!%eeO#lVwrnX;9Kt65bRgh(+M3QB@`&C>OCxj0()#;fCikYU-zDWxwVtsY~0e}dZ^>$nMO7B#Q~$X8&0*vH`Q;>T4{Fbq}mU_ zw!FtG$ZbzRG^-7QiKVvYI@2+zpZ#2Ssq`%F+%K{WgA77#OVu2fff$o`9 z?m{Z-X|iORR!1Vobp zMA|{;h$49ee>je09l-d&AL)hFuL-J4QL^Pw;M*T}J>tNHd&C@`Zw23^$or2~g-6}7 zx5yyw;KU@ZC1_Jcjh@#^+C>;T9#k+OY|+~|7pKfaW{0=-w^{~jSa~Ju0bq@&(gw-rFuWBNFk2o^O z()?Dl_6Ki0qK|tEovy#5WGPjnj^`Re1lTowW(#6od@J_WSJe<|d$a@vMt%*OuF?tA zy_I@eAPQxr9}aVVhb;>86owiM7hIDL7=4HaEy=mhZpoj}I-tc# zF)H|sXbZxzD<-V(2a`e+7MS3Vx9|a@aRwia_&d3sFG-r)TkwNba)Z<9C@%t1L;GHb zWV9S@MR1StX{y2}%eEl<^y{&k8SuLz!mC@?iUY(XaG}5l!1p;@J>J#^8Z$;fc7ODI zf+_SbgAC83ZE!D_6yRx}ww$<+p%7zywe-5lX=KG#rnO%-qT&!KUKE1CoiVWx1*-b! z!<^6GwH8+-T}OzSVRcyO#~g-xRESAz;0#+kWTNeoXF(T%3qeh0XVekPbw{(1-vdO2 z1n{OL{){w@slR_%lE6b@AeRJl{}@q5Y1x<4=MaoWMjp*fEX~{(qbOb0xNerKE+gSP z%eZ~t7OrPPs=b<8iBkj#tdBip$n$f@v^R&oX4&6oNW6pZr%LXNn+N_Q#~(@xsA9WT zz9y$Jrj~3n&ScArIGoiQEkP69(>x$}hCed-bd32)ps6_p1913?NH-K>82Y&tfB(^A zcFxq$sSDr7Fg)HNGvRXkqn&4}Kc=E#Mqo_AP$hu6YlX{jrhfSCCGYAoTb&SEO2dIY z{?mznXPY7MmB=q*LrsgzzOitOucN6(arixhZ2u09zSDNnLaqxYDnPz7D2VM`NY|~u z`D-K~uN32}VQkeq5^4e}2ou4mK7T1<#*7U|x{>B-bVbs(kfK2v{FlcxAj2UwR0Hx+ zj20PIb5WO^B9BLSR^|1~ylCk5o}MYjdOg{g=LhQx;Wr<<6)lG;bU&4+H?3%6##k69 z8!^#>Jwsc-*|Em&nlvt{oHNQ4Kek3!jdt?)KUs=tcvetWM%RqSFdiDPcqSY+lv4fj zkn`2uRbCi0VReAukc6U);r`n1x8w3Hw-3wKz+A4vMC_@QmlHx0R&BS1CNVjzNg3&x zNPI8jt`hguzP1ZFI@Cj7X{dN0$8 z+&MWvHkl?i4iAp?(ma4;KTvzdZr*l{X@}Z9L#wXpHY|tGd8L7s-3n>+Oqt1n z)q#N<$4;V=!C&X|*29SqoYpD<)S|-!h!-T!3CghxTWoBUcA-NnSGK4q{xM#rdEcai zyT=N?UYNO%-N}SL%;_DBHge(TlrXP#>TAUKJ=bLBOF`-yTlEW7j}*{y$(cvaDdo=B zfD|y5pTnA@HK~lIN_>LF9-$E((QFkgeJs@rX?JrOrJ7MdEKPcgIvG-vx$>Ra99T5! zfk!gg`-=wjOfZ8c_EVlX4V8XU^8$EV&f!&H`0mZq$@$Bi7%>V33{n-NV)UTf&AnaE zC*DkwpiytSezJgx)p&9O$WxGprYJ7d(oBT1X8cI_N|@7Wr9^11-Bme_-N!C-v_Nt- zLGBmx*zdf1hhsT(h}Z9WTK{% z0FDkoEczpLtY(d;b@V`swFiLl5}1cE=&Pig$q$pUmdKA84I%tFpuRO!a)XpGt^}e( z7hAKdFmQ_ZoG(L{4MY3`{QP@ZA=RoBNCNISlCJgWy##`gh(@+^EH-QP#)nh7}4 zWLQr>!lz~s@x55QLJw9_^&PqdG1HF?>Uy*i5w&yw_v$N%RqAb2z#hBG8sDqZtu2_=dNmfwx=+ zCwa+pTzvA6Grs9s-|nyddV1yf@(oy6Ctw5o*$V(Y7~^y}^onnC@9UoM0lu>C$6Inu zniU{~gqm&;VuF(%##*Hxe_VDshqu4^#t9r$YNE7jK=bCAc#N-uu=i9>b%2IW41#SR z<+F@_f^uPke+Pq(ZF;$9pPhqWA?~bp-cEzVD^j)wo!M*Y>g400Fp)=MnCIjFD9$13 zMgOv__B#EZf1HX(5F58v*8@QHG9xbi=|cYU6Qm4!K6MQ~9yZiSZ>E~VCc^y8@`EX9 z?iQ~~=q#z?mB~Z1LkEwV5Ir4*JyzY}r>`4vE$jVQE9M2*Yov@e3SUB%&iU-T1yO0A{7kyCdIH z8J8(S?7XbVDacv(Pej{NnPcJX)PwM;vK}VlwMCs$T&zH)sE6Q>zDQK|+Hkhe8r;EM zZBs*MacFGu1&){R2^i!YoN?@Wuh3` zNImruRw?@{KAQ|NL0=0jCnO4!*|4ttD(lns5mL3ah^zwv@#$H1}ANxu1n+pQ9&{EX5zD9~|1u;7;;*iVSPlzB`p-T!BT)owsITrDX$&nw^B`m?;=PG@8E1 zvY)ePh_ZP$6Fl{emye2qN4JFdd3yG_e)g-?IVmC&!n0d1dNZ#CsX>Cf>ovaC?ZqxS z1o%=JMCxkbY;dQlFUu-lO!*}LDFiu37g(=Whm*$P+b03oMPdWM&zl@lR;(o{y_f+1 zMt7hEzBTeP5>_x}v=TIh#Y0VQg?4+s8UFj%BMzi0kZr(O$SFZPXKJO_9{!3o>l0Ov zV}N|^xsOrI|d&RuCGuR zH7x0m-rj}Y3Rz`0qzn%--Q$T3)mz+AtEBLWy9pv#`cY6Pwu)bWa2m_l_)!1;elyGh zfQdvh*n<=RXyGWVDm{&N9GA0cO>&ZFngn1!1C19#7k$C=lisMgm*dN1PxaO-m{NveqkcVs$aFBKVSbdxJtfI|I21- zc}2f?(h)mW$lPT9=U116JadHKoie3}`>FYhj_Rsnk-=$k?jydYK}IkVvXU3aeC zjKTgWF-}|iVk2Q#IRpu!#~-ye**<@rFl^4nLeL6^ddrmYq-0y6v?0%+DU){FC@9rER)vl5`+7dSpR0P8n1 zDh=uo>i|uo0ZxEc)&bV#PNWkV6gTtP3mX_(Cvd$QIUMe43vv25h!KF)0f9R>X{z#y z)#3BiaXi*c0 zQ)bF*Sjt8Oj~zl58TC)0-F9xZH^B>5e?m0PhgiN(<4Ixbgu2h!GYka(alqWrrSOSw zYjt?}J!OPd4epi}&a^Gg6cwIG*0F9*%PdZK)fb7jVdw7$uz(%BUG$R{TGgIr2nxxC z*l}bIquC?~PTZ&)ysRU(6lHT^Fjq{jGu0x(@!dK{j2@hl#wG|Mc1}j%N_%zPg*pYw z8v%9v3PB1P9&CTlnmv4_-au(VBt06JerTW)cFfk%b8~m-^`6zhdq8rGk>4O1ZMOj` zLSqD1!en%_$6cO&(NPv_nHIsKhWbO0Q8w!6*zTBR12Bkj<1S7u3e_VDmI=}&r~e{? zx~`J zV--xd8VE}r%L1Uw#Gj?;ELWjmRHiWIC`2E?k_1v%?P`ALXmwC|T`bO2-l}02_0Tb_ zhqhO`COhx?)`5%sR!V`cgH81leGpL?MZ|)31PD*VST4QGmifpK07Ex6E=b&Q&wwCi zyLu5fe$VL7{`@qGS;qPxNH5$u0D9~01K)F}#G+vu?vrF7O_tv!7%WQSy2(~QdM#Q& z7C^rvf{jP%*H+y58YujQt`$5INDZ%G>E8T#5_*LBRrE1I&mArJq%=K61dUnfG zVDxYTC=$mtXP$jme;=F3?W5TzT-kD1d)YN}<3esU7N|$!A;mLM@b)q^*>G6+~9 zo1$Sd1fY@&k0=;+b?z|hn^~?ArE_@>dxFo^3Zr>*;pFQU$}kr#_BPi=D931VPMjaQ z#If)rB1kP>Mg~iOT5O6p4&;_jP!B7A)knePgCRx)oJm9Xgi~Mh&AkEO-C6RkZq3J% zOAY#-B>X=BHbBY0D67s>1uFaMGZCwP!Uf2gwEwjd@4Ng=xF6@>SQD$r{BKX73n~{B z!&xSQ_KGMZ!f|?qt_zcJ@L*e29)q5F8YE``V(|GyX~Mf1PU`+;!QEQ!74}+dDjwe4 zM=F=we)0aayzj{_Glr|>2#f1X=y%|!-I&?NtGCDmJs5M<)$=bp58{pasegh6&^AIb z)r%tMr%QogS+-#SQ7X?aIM6I1^-pOvv+U4IAXv~6W2!-2V>Lb)a_ilRnCOsc`>05cQKlL$2LWQM!(yn=pEt_%BoM)@Y~)! z84K?QLc%WgvXQ&+3v~|3z9%Rvrb%-74Niw;-F;6jTQ4)hP_7hoBJifKBik}c^rl(U?-}6mfe*V!Vv!TgQ+gVrb(H9<0WQz zEBpG-uLxf`6x6=``58uOiv3S9@2F4J7L)7ITR}8BOE9kunGHrRVPX|6u*WL|OpwX%;YRFzMFd)Moht0s#cJ-TVsdjz4r{p_`IE)1*1_{O@n z#pq~Fc@nk|?rYDIp!tHtIImXR$aAa;f;=?h$iT?$D3W3jAP7tePpdvRXx|?3976SU z8O8Cl)M5YvxgGY^1nD)Mj5-tg-0FTM(2OqWPC#87tn=N zw~rilM0SWqx9A3A{o?oCTjM-3qU4OkrVD*dMXg=_GaE-Z8HlhrO)O=~_x5}*gF&_2 z1MAEx>l>F>4ZHr&*ah=anSF}0nv?u@r_S~#csWEP-{f$h?@2-@*M<8X;rqeE9Ld5NST7b~x zXZ5Rypuu>cRoNDIGvg2fu=qKzT1$tPSiG!Hts_p)icqcvpCM4Y3F6rCg@kVfqylc-V}0ZP$%MmXhc#Y>Xuf9LZ@ zRBSlu#@ry_J4EW8(>)YNy@6FfXGlfhHMn4a>chc;9Wx$Ab8e0?-anejmUi z|5MWwy^k?sNYtfn3QGJM(+r<&HUA|8TD1O7eCuJWGiwsERYB;0$AdJ)HWRW9?`ol|MenBKD;npB-I-fm(r*)u*i#okcDe`w^ zahtApYPB6cV328a()k;(p(zp9$=Mu-_H>uiM7vaQVr1y}PsstddN@)ixy1r zGh&)m5fZIe=Rd4zl;Hp>gUESiSi-b50|DxfK65A*xVr5y$z8qw~=R9M%=!)HzDwfGeRE41>wX?l4&2qir zJf(>C=qwQ_ShN#=vcZY0ZKA>bM5sp0u@%bbLIe)C9?FcSxWe2SUSRGjvqEuSLqFa_ zv74_|Jz-KpObA|@`Q0FH)c){U+F{kB#S_@)hdl&p{f5_+nI47!9`TMIwAZ@1>mUDr z*nB{Cg~1^IOv*bILdsbswv}1TV2Ud{Er(F~N%kI;fA+q$0f}<+PRXh*ck88Bmzz?&O0SV5rI_po>rdR9>=6 ze2H?WCDe~omwo}w*E<7@;w;6glc}QVa$7HEvcXS>Cyt}_~u5z=)x>|c}m^%?Bgl!qz>%YyjQBvJ{G*1va) zH{m==fB`3$XQU6&?u-)?67B^^+_pOQG!WD1dZsVLvar*MZCB!mqR&hz?Dc3$R~e{Q z!A>~XvorB#wqzsXu~nq%CPf=Z7}c=T)dN{%gJ2+!l+;kQi>n@o#y zDzGpz-^eHu&!=}}E6KH_uHxk+4!ifj+Aq0f<7{N+n98AHKi+WGz)-Q^fk?&lDX81Bd;|L}5;98qhE4~J@T z9{F{_5j2Q$9Wa{gcRM6aXVi17>CM0uzQfhdzg6<*^Zx+tOWhvm9v2cJb|;GaHOa`;)Tp6 zKf0Lyi02xyuEQe$zfT%{`9A3jZMW*5;dw$hU%Ee; z0BdGTfhkWaP!Hk73<6wW+S_dyL-oGL?H7g0MXYDVo0 zpUtDt-MMHT0Q`_;8niDB`V}x1!l;xm!wm_+n@^MHDzkDwGV@RDfO07EZRQnAy=rge zsyC1WwS$zq{e-i=R#f)9w~LVJ8Ym|Mzw|upu#vHKfjirXToK#(FSUI=s0h57cptZq31) zQo>&lm-QLfjD&kZ(TD=VF2R+{EHvJ^nI@}Ia>1=Os5v16-ESMWR%SSoAO6Khc8y~;3DO=hGm z^he5+8!xLAxv9^>cqCuq5^;j&XSdSiHK}pb7x4C&U_paVi(2DUM2}VnkFh6i+Z5bm z#l7JAXRJaGA53(H_^*5t;bk^gi|!u_9OHx8Rdn0nBuBbxJ0PGx!UXd^JrPx_I1H8w zt(>3g5@-raF6o(!za4Fpywe3D1@UH$lbDWObNi}J)#T3P<4$)kIQqk4bPn>3LX*@j z;^q0^z{cBP8hQW|cL%gR=SIRxA5I5B8MsMmXx+uZsF5@t96&j2BtM} zEUTE*vi)wh>bBI!p=6J1@L2Pz|2Thh7AT5IG-)b2>Qm!$6K*E@HMS9vRnYU7eX4(( z^oo&)9MeVLX}f@?#rD__D&hW4f(ryJCy`L0cwsZqj+1~A00&13-L@F@N;Um2m=wjN z99EjF6RiVs@C`iy()U?O4SCJx=#0Mz02(3Jzn3-Sx=4fZE|#^=4PfqbCm>Ct57NB?=0&?yecwxjI5rF2owPfs-{*}G|AoB z`{g-2DZfkKKN7OVB5ZCHeng3*^Fd>m9`X?cDR+!4ziV7lc8qqSKi&=n|D%b5eOnKe)*n{3Q@Q@gBdXwkc`%Jk)HZsT8s-M@$2xW0)-uxeawou)<%^{lg6ShwB1?(4vC+e6 zNy!v63%u+nW!F6PFraFb>a*p(5Dj1^69CAfIgb}cU*aviJ?>ytZ-(1qsLh5ET zWViXgCsF?Zv3rY7vRsxv!ziD3ts$DN&zTHg0^%PqKFLntg*JOv#`+r>zi+#K%wr8` zj}6}@@?hoQzOpKeuU4)>*BPeoKN;@I_hYMU>~EH@L?Bbm%zz^r(Gk@qZ|;?IUsQz? z)cdtfcC+kD{TgM_Zw8L8wpd1$&9%FTmaThAG*z4^(b3LuAhm8t3BNmYBaK0WQ?J^w zNBj)_k$+FSN*T)?ina*rTKC6$m8`~h zi_%=L@>(6aLGG+(BFtd5FDu1Lr=~xI`@no(Dzb?M<|k6OmmH;F?^89%gyz zWPJ1zL{UJz=Wa}++1go!AQN?^)Wr$VgC4#ju9rxKr3(r875ZDEDaZ z_?dlYPI+XHOIlz2XEkDS)bh+Z5G&ieeh-y!lg;OwJC6LUzF-?hJl(LvV)Uwz+vbX| zpd5Fjjf)||znTIqHwe%fsMlNLde1Wh90Ydneijj2qtC-)rL&J824AG~*g2hMuVSTM zFBag2&pqM`Kci^;Qgk(k!TnJ_w}&q2>{djPDZz5QH@{GYs*$cZ&bzD|><|g|YtPWt zt$D*tBO!K8<;y`L%dEVJF1H(HyeYxkhbRqJh^Vpqqn{e`*9^(e=IK6MI}V=a~{D_-x&3c4!TRHqr|j>PQWJQ$0M&_4hQVWWmvVq1TEQj;9@1iz-TnJ zjAtG&vyL?Dn`|A#_x5|<83PA`y3c|duBm3R!aCVZFkVLFK9$kya_`3EuL^&9@6eb8 zg9v7W>NlAi>82q#z0weLiGVM%*dF3tg$5D3xeXZCmb%)HMH1NZP8M38t*EZqxwTsS zg>2Xevmoj>iw5`dy<)6zXk_63IGpr7<34cGV)KWmCs(=XqJR_< z@iN?T-H3R|1yc=cQq=Q%Vlbx(2WfChx^8I^Px4;yN_j)k*Pmnmvf0alwvpy+UOBJJ z(g8eId^S?mys>$}0aTynYs-7#E`ahpb5b^x(%+u)ZQ4)A|C{{uJan336XGuz)9{Lq zAuYGf1hRb(L*#pra;LX&F*-ChX#K;BfKR~@? z^iKhTcf^Kcd4wWPy&v;#H9=v>+OCYAGSl7?yJtY;vuwBC)rA6p5>)MIzOY|LTa>XD zDXPrit6&0GECm07mf9g2%}|Ew8Y0f52PrQg?D9|1<{P3U7Xbdbkre84U3*7+o%vHF z5C6Kna6chy1n<<4KF)pWxt)-VPm~qYai@YNV z^OWqAIG#aVON|-#^GOA~bmcRi1gJ(7r1T774%!uDALw|(UOV|?txdYJy!5?K^Z=KF zse4V*7aANShwZPTL#n?4MXMXHx&zves7a1?Q2v-Q3kVs{mIsH@qzV#5~UcI2TG1%Vy&yOU%J5>yqO1pvXjv^h+AAXucO3s+dXAY6l5U}xv> z^mf{+3^15}0O(r?b%fXTqJ5m@G~&5VkGvKRK8(d8=~Cnf$rCe4*>)cLt5ki>f?;KXDtQY<~}_(59VR-Pr&bjI^QV2e$GZ_lhwD*y~j9+UZvuS(+T z|L5*%i6fo`rfV_;UPibXg3E5VM2CaOg2f{l`#QgM*lBV89X^S(`Z~WRZ3bE*=S%gj zLTwDT3;_`D!rG7RK$9gW=8?%gsiT!+GSP+XIp#O=igi3;#5436zx^(Hsvv)T%#j)R z{wiQfK0{UHglk0rb`Ok2Mg01cvwO5?J^+)ckwGPx6gIiW)(}S;CFW%L(GK7$!yrZ7 z4&|oI54}q{>`y#St1mPo$8GT&N?1y?XPJk4LS)kC zp!b8*(Z8HB2)Ib&bE;d1((RQl*4~#<0#zi!@l?x_YpKOvl{Jz4xV2tgM{)4n&;g@j zRD>+4M8!db4}@}`F$S8_7LSyEG+0U|WoPL66|Lb|S7Cb&l0_i38#0UJ z&|%hp2*m&Z6;xygTYoSE#Rx8OA_!Vx0U4|_nxNz70D3QoZ^97%908bFicFZg?N}GG z{~|Lp{1-(cPFCSDrapn-qvwEZU(^`HSKE{noVVl|2qQmXHl59BRQs!FfcMAX+_3*e z*Qa!wuDRiuSN?fi;gf95#i#W}lv8BhxjcCw*I`^S>GP|Y&@VRU7ta6e8>csvoo!O{hjWz#^+9uKl zCBmWpJiP<=-LczUBW5Q1J3(en{aewPCiy1fGOX|HmqFN%=oQvSsE&D?m41l|GU&g^ zHPj&XojQL`7Wxv8mJLb1|E?yFRX#I@_$t6G4dip?0z4!arKLZNluwsE;}a?Z;81X270HW06h< zYkbS;l+zGpk;{_N=QSTO?J*@RsxbhWK0p{=OaO_S6OFYi`99p;O*bg=ecVu)E!7NA zw|E>-tpD9VzROSh`{NB?XC+AnRb!HOfXp&q{A2z1XHuDfZJdo$&G)(pi9HYuhqY4E zoLIZ+E4a^13UuyjYeg*gnSy}*dGqI7G)#}3bO%yn<)nU6KqqrQCON-0aW}&X;@b1~ z1wJ4*XSM?T-BDR!8U!p}i?FplY1Zow$X=)q|Ugq<@S>k-GB$;&) z&=r~1m-8wi%cBL!n3_vmzHe_!OBm`7zI{^@7#}wZ-)c;U2W@+ZndsG9kM<*)cH4zXc=wkp$%JLd>MJk+Wv-zEO1w$``UY&1@tac z8-fW_%z*cf2W=50Tv*`cEUW~~tz><7IU~2BUTf^jnfD0{D_#s_-0}=sM&8y^I^-~y zam8DJT#A%pt2N`naItn>qmDrOb-JcieH6(n);EC^S@$x0e6fwupT(dnrD+W=> zpXx=)*h&Gvd`c!nAGlO^RxRp#?K@agKW9&oNz|rbX&vR5ijIk=$c%ksHJ*Q&MZZ#jfh0eEx6-14s&5=2g_z)$vOLO1cXZfAO^yz{aXR*qk4!Ke%LPPWh~0$oC)u9Ilu^&z*#Ssn#;vFT`ED0 zk+$Or$VE`~LzqnDQw#~S$=P(2TzhSO_hqQ_Dp^&afV!~x2Wvb_=E44NY(frUZ(B^8 z;|R!I_28QysRTb#6nJ&zoP~Y&!^k^aj8lM-(KqpO$Oqm_No2oSr?;ZX&P7-?!>xLU zO9}0}lVF7$*}ZIwx%aeCV@VSnn$&mWZE4iYYZD|imo+O;9xWAw8ncj&1Hn7;tH`-d-t(O5H~2TFk5r zJ=x#;vu2$r;(Wye^eX;>aFqD~00{N47Oi6>n)$sEnbVN~4>sIUjAw{<*ysp)BX?sI ztAs8mgaWLbpAgEDu+5A%-1~C6fLIzLX5DA;L@)HfZY0xe4UZ7zvR+;HHX&aar8bxo z4it&2_p-6(Br8VPgZv9z)AYT>kuY7Fq-)6yn-2l7Pf3KFHg@ix#Y99g9d+<-1!5D1 z<}dvywjIVv5E|h4uDI8}BAlFW@B%?}-ESAa#%GQX&kgvD5zdD@p_)*GELM$IP4{xp zNvV(OvAUeZay`|s+vI6QV5&7^F~7(=`aNu z6H=ACvmDU>YuaXaOxK3ZlVKQM@_p=IEIG8$Xy`XZtfHd9v&F`t!Cv0iA)OKOvkVa0 z-v!vShvkvW+kx*X7zrc>6;1rsd0y`2kxXc;Or7z zce&yK{@v8-EHr>TRtF8+Ojhkjy;26K^kS|=NB~+2Dq1<7qKlG~zSw#VLzEaneA*J= z%|9xKrhwCq*H`1V`W4!lId_`Jrmh6TK`bwuMEUh?>JE5NKt>7|80M+pa-yifS&$X_^MvYD^Y%S)~WQ+ zF?LN<;?cw?d+9n(W>n67ha)FSw>=gD7en+V7OYLNTYSv0zNTv=QuZLB(c%){nXI)~KZK2!w-2EUEX6@R!%D{`-wXoU!!*a5d73$ zFC7`=9ET-E3G1O+6CxV!8iCbkRIK)QS_!3fu0agROuMD@e>i*D)RxQ@keUm5@T?t1hB6KMeVjsCyIw; zs-&W}mLO%$GFDEowOnP58wl$%BaQ;^bgO-5g_}Cz9QS7EYtg#B1w!?7_@v`5XpCKk zbvt!wTEBbc5+M7k@b-;|ZhY@)7sEFrBibzd>P$Scrc@TN_yflj=#stmKFIfh&)E&- z!x3*4^aiVV4l@NauQRDEQPnl+(5^Gg^-ZdJTsvBL0R)`6QyF{2qc@py0vf4ER7ibN`+tfxAL<9-Ob>tE$C#4jEV-U`0^SiaXRGgcm6EB3BI2 zg05iibV9C`;RW9}=$&wj!Si^s*+5ek9xlTFhaK7pWe|mJ7{%dxxp_;7aij7G@f^jx(h}rT1aOF zb=0fu*r4>eFfq#HfZocYS;WSkw7PA*8Uwkvcw%@PwV{E=N!B7}_gFLrU{rL30+ysLB6m7Fl)hTIdI>>@VlmrP>zEAE<{SuHL#b44IH zTUGxYNJgiGyGuL!lle(n(Ww3urlJs`Yx5diV50JcMDb2jk6ko@fAgx*zP&%S+ULF( zsgS@p#um3FXK!RMfDoH$&R9F7i6`4G1z$yXd?M5CXxyY#*$0~ExS@~hS?{_-_`kmP zJub;QI${G5jip=HLt@r^L1Dd;DXEp;l!8N)9yi>69ZbK|_(&63LgWvoIiz(O3%aql zBN|^&sKve10o%V2!2?A?L6!gd^5TyZO952>8iy6G%>ZUVNc&Fh-NVrI5(lpou&BFD@Z&(Uh z;|oEp#J%EXa(nHejY~lV*;S|6BFGbb*^qy$P|0tetg=lquWE@`;hYw61f7Jbr^ip? zDqqsFDn}NOBgW(&rScyT;ew4@{pH!m&ICwt{bScl_aXnscS6b3OAgi$jw^CHj zV5{t0rojH1KEO<(j*J9l)boi&Y{>8E*}ixZRfX-O(gQV{nzavqj**tgv)g)X_#j;L`5Qx{WOP>%h$s?Y_s%+o zca%20J|7!LmHaerh{5#vvNje`hk5C+Xz_waceC8o8ypv;$MH+ag;l+&W;?dK(~LAo zP^6%c(#RwCKP3K3vF?i8Udkel2p#8XRg~?DtZEt~C0@`+0%Qrv4;M}v6Vi5f^Y=42 z5yr(Rpnqlaf$t)e2i+l4U|v#qG63A03qdIx< zfk~7#t%0ori`}7X22)kC;;rKFS#P1WO)pBtxp-F~?sL}{apP@gS$Vv0*4L2Bou(>; zD{QPqgO?v@Bz_{upW`R@Cx{L!RfV?@*@t6&RI~iD4bHN1#B$Q03)1IR$6Zb-C*`-A z1x;d0JKn48$&F!ZjK}^M1WDcVM7K3&e!a95-wf)waK3*LIZSuI;m>N{7(C1G`ysQ2 z09O7sPtp$g&6nE8i18{F?3E*XW4T?1TBBMqib1X;kpAZ?v<~#h$EAP5$fjQgA45WQ z0RN>ilB!}3SNreJgc~mb&VWSO|Hhjy=YkDtkOFZl1z5a@J4eSe%;a?Fp+ed7CK~l{ zcg(VLv6!XOQGE%o!N8(v;!nQ^*zX*Mm%yD<>V7m?=gr&tIjFt;u;mAnQci=lxIX)I>CMf zSTZU@IO0k5&7N}tE94{nw0G#kE99T-Oq_+NV#9JT#BzKs`kpYbiU($UZxRoC-kOaz z3ZfGCi-k2OVf+nDRzVQCe}U=Ks86YNflcSBbNn@zmgUOfYzqoT)6OKoW&l z4{o|zsV+B`Z;$-E+8fCEp4^;3sM669W7`{R6UY>?1CQ(&JgrOw>_4l24H|yU%)-1} z0(m~!APiCJ4drx}Gv?<|As6uTyYuh!eAO7+(}rZU)ND?zMDuiJcfu9{p6L0n@QCji z_KiTd*apLmgAqcbln58O00qvPFz_p9LR?(h$iyCnd5DxUp3s(lS*7#7dd2Cn>C)^$ zInQ`Mh_e~j!>Il%)o|cvt1KgCSsnyoeC<x>=N?>Yje`t#ddY|L! z(F0LXVkO-DSkX&rQO~d5rGbId5eqH;p}r6SK&#jD_n>%SQi zW9hThi7h60{cmgTajH@nGu%CLIlBplhQ#z^yqZ(&SV2qeV@^`$F239+h07?}GgBV* z`blk<#SL!AE}DBSHhQ$-g`3i6Z8~5oxXlPE>i^z+fMQD#F5MSNs9P-hWTG~BF(Z(f z0#*GU4Q^zM`DQLzA8Mz+qQYydZVV5`u^7ealv(0$gkSG2eY4Y&nx;{*6CNFZRm(t3Z)UE+Q$c9e3W?h@ zVc4Yd5v-u*4Dag6#d=#F!#e@NZlzhb^gRg*aWPJ!su_f7o53&uYct;v!T;P=9S=+p zlkT=)L=B9-;9bbQw*^7>1-7o9EFFvC^j>aQ5h1wX1MlzO;gh_bV6{aQWzKC4c>TPa;3UD^$7oZNj3Zz zIf5{!USI9XEdf);GyhH|k-??fDlbLwotgtN?L&jUJ=?o3 zLzNcDT={QuG(D*74x<*ryNwa7{uVHLBn1JcIOh`xcYbW~R)6WK$c8Og@g}h&0+s1Y zByU*X$o%rXO8y{;Ps`57Vaf|FJ}ZZ?CdW z-qH|Ohhs-a5n$8*#3G#&!+ivxi912$$)d7$Pe%97Z*$aT?>*w z=NOB)B(%NjRP&LgV?sr~SN-)@*pYfhD2z(vxg=)X4{|t>Q?4Ig_b=!EqcE=$vi>jV zI4pcF8KAYqHt$mxZ|#Dk`e*WYCB%7!5uPhL2EJ1-0mXwIF|^U9Cbj?vs*651L+tZN z*#~(4^tRR0x=)+tFeqyg=td{s?~?5|8(Lpv=TCPxESZCQD1dDRtKiUNsf8JLP$yU9 z2nK!Xk2(|!%}?jEYZ#PopsyPWzP!cVcXlRhkR)ov^8S!VOkGF`Ji@SH>`NSta@Gdh z*q=-|5AH4L7lhvJRkhqSUAs0{M1%&Ejw&J*0(l^a$8}n5`YBnc-lzzw$wKV4BxNlg zp^`g>WEVG9%4%Y%fWhcg0AU{vMq@b#p0{oQJ%7LK+9KzOAq>!_SOkA6U0Y(?I3ze| z?{E;@4z>uC8lS`nfoRC70(^E}(_Aa-GZjD&lW0lEfb}_X1596 zbg|t)A7!=$0Wz^kx~q1vCJQd@q~*rn>M>YBA*ZazhoE0d9L;Z^@$=VECE8FTwq~ne zh@jl|)t+TVvIu!x^3r_zHC=L+!vgRVy?Y*6|22TNlc_c&)5h8eyPU^JonZxl0M+=f ze9i-l!@;`101rC@hC5lr{s&omtF<}}DQxUkQNql2gFy0Y8~Bk*Xnn<<|9gpLXVO}un|&?#HW zA=>LfBqE#aDOt8`*lPrZ%pW};%MTpBASVnNo+9|1o~=hzDWpBClnI3!tRfASgV7m` zD<+E4qUSw+1y+=!aoQ%g?5G*)wl*g_uRl`NNasz}#cuFGC43$9gGkwrWLLtf8&)*y zPS3km14~QtHm)}evTmn5jJNvd6%{om?R*3CC8mQRDKckUkNcY-HBt7DCOC_i4`FTs z9FgO$b7__<%jB5F$dEgg;k>Uz-w#mafRX-Zql*d>#AbjL`@NUqMYDfUaA3J^683e1 zT!yAt&v*PBLRntsq2ZX$D|R>i@uWA!yAZ|@<(Q1OuZ& zrP2H35xv7eGWJ3oV5^`Lw|FmSCE6y9SUV4!VXCDms&)(h51 zLmJcOZXOsg$=LhM`Ux4*@WFZu)stX)hg;cddQ;~gjtmqQlSIAOG_pig8{ns{R(?gY z%ss+D2Fur3^0(^GBeE&a)4V3`RUX==D1IAH9u-y?Cht_sCqbl$ORLK*OmGUEiCixQ zj=iU?gBbWM8r%m!5K^7i=qLU|pq~yfKh&dOu7Iepr*>x41e*r{)PnHhow5q;8f^Gv2PGzt1}*JHPQ4w#<$;wJ+*cFlBXa75CK6w1=r&ca2J&1p2xLY z8C%Bpc{QzB$p%!@+QEL3JRIW%yIlm17)WdnCX%;GS)&PC!i>Pk`L zq@<@G8xD^3cV}B{J>)b`VKnFV z*pVwNeDTLyE;90(a*kjmzq`6E2=O7oV^9qxY$T zg8(6~0VuBS-x2FN0;<~@7d2>CW2}jzUhCS_m`z;jl~SW%SV~)^MsIS7HX=s@{aWt) z=J-EGE?qGRS95WAXz3w%wtmqIUkR18v?k0}COL|imT}hOHc>+XX62=8H0g>hJJoYy zu4j}Fq9J9jjMBeQXz#Ee=7nRiGwwL%0tx4l{pSmnZY_2Aq_vp@@vu^!Bk@5^%)=m`2p`d6I@sCuf|Jp08r{$|uiA(}ITVCVqP6so^C0-S`w@YQiJ`K8L^{PCV zKo&&Bdya$#exgzgiQ2GJv>Ku+ z!w`@;-UU2s)uMbKzn@f}zS|RS2~j1RXFf>;R#iRp7}_L8)&8v(J!ehi zl|eGK(gD_s9jUtguK#3J)DlvAzAST`camC$R&&F*g|K}05j`2=D%OF8Ha6FoW^`bV5({H$M5~!=a5L} zK(9GAF#LteMaH@Gv>*mMOvmAH0ab8MMVejheIiUwxe+;3&)?}M=m=8dT&>!2S``*! zBbatA%m0}FukX5zv96EBj6#Ynqea7QEhF=z{(3?gIjRSd=oT*!-+T!K++^lL_)6Go z{4TBTbc>Cnn!in<8JwMZOei-HV4$(0|9@DJ{UCpz)k|cnG=JGlH28{Einl)6LQ7r` ze!z6QJnR|bHU6Rh^u#j=VCI1JY$s#)M%DjB!`7NHOpBQ7-IWDM(U#SHa|;W_7!+?t zox66!kBMgWN6f20j>9g4DR@{XCKyF}=(1@42a#BlEsI9NS-VoC%Q37f{ni!m0oO`y z+rKHrK-68^UzT@chFvyH6`Ur2^)*Z^N_OAfCHJ+x;JW6W#xgHMlU_)^>X0|^Jvu3- zH{?JPKtqRSF9H}wLQpa4HB;Wz*GGERt~4?jL{*G?wyy@j6&J{F0fd%m+dnKFl1zIr zGp6lpijp73t#6N_>B*vdm4D)_J^ zwh%wiwr2$4>;fzU3`#*g@cc`!xKnpl3dk0vjPmP#0}z;|K2B`k0GR$35KV6l614;C zX1Z2|H}#Sb7lkY*Gx?rIm?rvfR!F z*yXzUR)dDSONoR@&Rm)9>|0S!0Vj^8>s|v~3y>zlqeYvPz3e9MvjQiFzCS*?o(nq1 z7m!KJZ|vG^C|J7eVY@xUV=Mfy&{PV)>3s6#npQlKTN1z^g=A$K6>2~o?hS*8-tT3x z9oaKcqkQWxUx4%8-hLvZ^mJ0hm*DwviMI468Yx+AH`6qa_M-4nJ=BV^d)cv-`2z-w zk~42sbfW^%X@ZK=pfgI~5097WTHzZjgL$E9Lw?bbN*~|O?A-De+;}0#F|z@q zwIxOJW1%UVl6bpI9Qysko>6!$ep?@%DD^$Erfd3$Tc27ZxeZVq8Z~J zg!1Wbbp-xVf$zOfn4lRS-%ta}A(sl}4xK48sOG&@gzi`j z&|>jti553rnpc8F5bRw_kajjvZrSVV+RS>hy|CRDD! z6vwBr*A@T*=gz@#FJ1$76w9t5kWpS9VyG#?-kmnZF?JifjW%Q8%0In8o{%TACU^&l zUB#DPIvq4BCiU|5@}Ijht`-cQr%dsGf}Qf0a41BO?B2HrRBN!2d|te`I@`t3as)|p zL#YjOcSE~8lfSar!!B842AJ*oLz)d`?#1-pvVW|LpCFvVMqz9VbjMyKgHoj5Q{esb zo?4S@m$)d{NXF#%=&~ig7a@rGu=a%^Vr3IwYEae%Uo44(7_($f&IT_Oun~L+qxOd? z|IoZl_(;&rEk`VTpShaQ%f_q&4fPo?V{)*-SRI}jA(%&$mF0J?^f%wH)pjY--y56c z=Cvm|pHR;5N#udkJU|XZ;z5&?*4KcuX9SS2%|$i&J;Ot)UzwQ)>jJb!^k=GLH~$|R z$BtizZ|1$t>C2j9@#;86PnR*DXs9~14#z+LOHY6lVgO5s+zC=u=n6M4ehkUEUGsuS z@@lM3!S=`h<4m9{Ds>mZceWvi_009r054USR5b&+cA)Q`K z$MjIp;g=mh2W3NW(iqdFu>^PiBcWuzN45R9O!tzSM9wPEXh~c*!rIm%kKK}0jlde% zRm)w#3s(u@t;cu5_S!VD9S;=KfyJ>FnVq`na)N@H!u95QEvZ-;r`-QOH4Re_hm?IO zRa&R2!;UKkQv?L{B12AP7RNs?{=}^Z>IrV4f$NhS?t~bT3c$^=WE&RIf%)@o@MB>+ z3`K-_gdi#G>C9Q#=9xES>o97<#OGQ?2SX}LCb`hA}+ts_Lg z9J0yL(JV3_aS-Dl=C`CF(8>B!M*=6`A*nM8Wu=%ZwuD*XPQkRLi7_m|X8ht_c59Eu z7>H$SFJKuG?_E~L6MoOm_nF4&-LaYDqc0TZtzJ>W*ZQan&fEUw7^>A{JRXsgst#)G4G+N6Z$#gL1Fs{A4pn` ztD_ME0d^_cwTcUF1{2KR^MPmU$@~u1bOO)WJEomU4rz#;pE};LgGbzMzNP~u3-182AT;Hum6G%&D&BccHRS^+x!Wm({{E>5s(zW{RTySseS=4 z-4~-;o^J->XAC!(s0N24$WKVDRZkp(n{#I7NNu&FrG6eo5=Dt&f03g(l6`wH(%h-z zWQx0CNgl4-mCh-=XihqS#0hrqUK!Hx%|s>^bA$H7X3pNF-8{z~hRd}vM#sQ&G$1!!rbUd<>_PmB@_EFr+7x?UUa-&LSo{Uf60%9Rd&g{-o z%H=-oL)0oGsCl=!gG=|mnFHz`szb0IzHu_w%z)NQoo62IFKBetS5rU& zTMv3y3dGDN53FQq7Ub{G(*pquC-m5B#9$Yfe* z`dO$Z(6E*5PrR-;N{GYc!LuIp2WHJQ0W~ zJ5p@SE<62*n`0s$SQExA7K}1B_L!WEqi%vh0_VnR;AB4kiEDCx<)hrqA*H3PcipB6(KiEENoED{ZMTvXykJhpwd zV$b|hNqY?`c%T3vU3s!l5@xYrNH@C6;aVInIHrZitv8a)97Df!W|moFrQ0l*0oxSAKHsk2#yH6x zokp2A5t30qFG8`D=a&7GXz2Ir|k#uVC(7UShiaSpn&vE6gh z|3Y}r>9%DK@XVN6`W{8t6@h#HUJr)r6TH#APvq@UIS98KmU|}$HSX+U**>xNXh9W{ zlKP-FmE=R{tB-DYa)bcMIpTs;e+-o`)C~Tcvnps~^2mjEdJ1zsEOLHS5ArUl!Wf%- zq2n-xCAw>&!D|IgvVJwdbsOB8$xSx&pBZ=Pp%3#KFhv6I@MQF_{acnrjmHw`>PjqS^8+pvHQd95sJ1@E zb#TQ#8T$hF9ERSXdbiG*%Tg_mtlN0I&;YVU4~*Mej14%Ho_i%obuc;$um?!7m*R!{ z0<9_g4d!WG9o4H-ELaz23wqNZtrZIKPl3)p(DM_&8AZUCoK{wz;XO7%Q~b4HI1_Ss z6NC{95HnkfC563b*jWf#EjR)f5EU6oksQ*6RYkP3i0c^p6h2$<7%Rte{; zNY048kj`n2wVI3F;a_9f!&4Q6IT(-}e0A^+j_lU9(v_HaSPjUiWAuO_RG<~!w?M#= zNI)aum9DnxZUX!u!?0;fy)Slwqy)7W(iT{Rm_Y5vr!)K%2=}((BJiYek5>)FVQv*9 z?@as)1)(WLA10Kp;d1!<|WUbfx3Nr@bluv__h2i zg{Q}Yc+CYl8;7@zJ{fu#9DLf9&EqE13sA}0hUEDi?rFD#_U?dyZ2P+cp{=aP8rGfz zfOB+Xj7?ngQ?B@DHX*hzDXY-Ww1-Mk3Hr(WNC>>RL++D3bhi)#QAqFD$*H=H)5G}? z#eLiD?>d5BVcx;wIukLo0oZ4M1`?a30y6>+cEJ(p;LKlnCn`Pd6|DU7fvG7f0CrQ4 z6R2DJow#1h_$epwICGqt*Yd4@4CMZB8OeZ13(BD6hYJQww<<9T@;Rqu z7U!v+!qHn_z8S+47=9+K@vBy-ukg-38(yCf5lFP%yU4+VtHJSG*iPZp*=B0&La$@Q z4jN)=`>+C0b0=dJj&}At5ap~Dv&Pxgr))-5kjHV1Kz|#4x77Gl_)1kR9%yZ#nnYUe z%ZSXA$cqS2aLjY>QI!4`Zv0k&-70mo|L8T>yvM+nqw-tkhsqKi`7^(jy5fhHlS1 zOoHlvqlD#?r(274Ten#n7Ozg?jj##;zJT$=ch)kq0|iU`dg!Dnm9jV~6;pq-CDG5U zNv~q8r{`BTl2-mSn9Km!Nbdj^_6}h920&sK2-(DREO$8DQl!0)$7F}$=gZ#!&1bB; z%`)xFO6gzxLht)ew^>F<3#&4q>yv3T=Z>pDKT`H`6g1|(aYw>=fPc}Flw%UR zI~P5^cRqxH5yEn5*kD#$Hp}a-Gh=|M;bTe3GROFXoK~msqkQv4J|P_Lp^F6jb@A89 z9(XE#)u>9m%4<>EZcG*ztS9o($PGO+j z>)y_(DU;<=UHcN4?{4p~Si9UzfK=Zdqn^)J0Q|1mA9TD#iCO-MAFb6936sKq)7<$= zb?CjtryXPew_{^NlgYz6+n4N1pK8uAQWe-!WQGrZz;3TB6|RdPk?pAo)2!ptjYjt6 z$>L}LfXMUdnd~gqgd^8)V-YLVcl;jdLULPlUq^H{cx*F->}g^)HBDM~&OBc9l3-Pq z4l)4g0IgUDAy=otKb!BW$B9fS*~om{?@>e;;S{I3r3w`2BX(XlEx6CA2DxoWgnHC_ zlD5$B&_wWA7WA?)h@TLUTq}@1w4rKSNcXu^x@Wv%4jZ!kOX>kO(0YQ;2a~M6_tZ&qU~6*TMSu3TWUD z_>XIGkVaI49FjCj*FZjWw>K1Q725OPH4j&8R|pmL!oafa&^2N3!8C;tLog^It^@aX zQ-f{iZjH{Jju@D|g{1UY(nQQ#`X?;6(v9Qcc1=SB;unO-nrRfuN9Q*h+hN#g6JyeI zt^@5Cr!``3@~F2{erDc66wQue26WSV!3Vz z5^&wCWIsPEc~b~hut~Psk|yh9f$50F*4F3BHqF5xvmELdk2gFX%yFoeeBiJ10eq6C znY&mGK3>(vulY z>QMFDnCZ^|?(_I2e)QSx$+M^R+HD>WSDSczhB?5QaJ?gGnqYJT)L?(>7kLHM#Jod)bPrnu|r z8|_?2#R9RT8!*`Wk&7FSDclwuGUn^XJlaMM^u}ep$@Q!-Z_e9*$?-#RJr06Zt2)Wo z%lECGn*ZOktTz#zhTW(+afMR{a!&0~Vby(U&aC^rT%Jwy$keN*rsQyUnM!sqUirE~ zEUx^1QG)QW6$iK@j*5a#tXV+-1h+2ZDq1cuUwE8Xks@UV}!N$vZam9D(q5S z05P*85PLJgolMg!7#EYa2+DR^MqO{qL(y6={lFM*SS58Dx^uFh_4_IYh8EFSt|Oe3rBGR$aSS>JLe&m((Xec(t6#!itQ2GX?s%#BL3L3ESSQ}0CtCHbOXQ;AN9gnLukAY@(n`~H#{ zN&&BU#v+c#J>>;e#r95y^RVRXF0j{G!pko`GogQbTC$lbJ}R|s&@RChl?#%J4*+a4q)*f-lBw7EBFr*;0EF8x z|I0IygcB{4Qt z7nS{OF$Q==9DC@OcfcI|H(U3^SZUjt);OmI0000BxDrQz000000000000000h;4er z6@UR3-bnkBRq7l7000000000000Ag~yd}IRqb^RB=ABnawsPhn4bE}aO?+iKH0bVm zXWd`O>q}Ko6MT&oydXeqil z(ng<)$DzPifUTmIX~YC+!aO7wUmdd9EEvhl3I2dsRYOR>MP=E2rolGScnDy=s{>W+ ze%ZCkAiwQy2g`K<6Rlbq^4++#ivxL~`2vpODq`DQ^37bKh2NG*CA7c*Izo7Q9wa0O z%HJ1b)7$H-h=orfJ6VF^o&0mfA#A$eEK=F{4w=mjOiX(r+OPP1|G!K|bM}wulc`!= zI5>L`qy*cf+Meb6Kj!jKqxmoLD`#WBmkR7^ zn>|#FhSe%7qv6%CBT6(iXmEygn(Y&!S0~Mj8SJA@oJ8iWa{fzxPv~Pc(+|6=Eg8aU zfUFlx#sohMteL|Kg3znKFClvVLcUY1iCbsd_o1xHvH!lYUfHVmG+#STzgS@JP=fhd z27(B3pG9qu5W8;Y)>G^+W;6d5>oC@xy)!S*jh%UqD*dFd34rln!P+jW+8gRe!~1>z^nt#A ziF>*dQvu(rniXJb1{9f%XKU*2qGwa7jCQ&~Vz8J;7GrC*t;lR_Kq1zoU@&20Zi#7aX#h_E3Eu-S9!bRBVg|1j(V$M6plx(wpZ-+ zxl`;DUL?O*E0#3tF#i$}v!)-kI+SIH zpr52u4^fjy-_W{^Zzp1xYNt$x2?z-I@l}DHvw&pI`SQvqn20iu8|9oX1(Bomd4K?T zA|}*vnRav6eBq)Ezs9cA41cmCNiaL8P`QIZ@jJzXJZc`qe;}Az{`kWG8q^B0&ivN- z5x1A|OsI?*9Do({FAO8&u5SUW%aixnjKNWGcmaOya}%Gw`Rj1gJZ$;ql0M9@_@9+v z&AZ@r=ZvlIe~kMq2$NrY8x$FCa!ji+(y#L6Y>D79zpfC?E3p1XVqpH>W(9;3t=1ft@9A*N#Nb$um{+JyaO;ASNldd<%#w6SrkwPZFJukb2+i(EOEPY3G8R zm|YLyhp?At8a$s?77p@gjwE8Q!?*EubIwQ$_tRY%GCRIH41Gx+oz5^B z#I^qaHT(eyeMv0WUfF#=F>gmHkST~MM1A~@IDWl_1g5X+xj;0hQw`9&^jf(iq9dJaVJIee)X=fUjr!V%6bRv(D|Tsn~KmUNJ=Qg8UNYZPg6 zzbaL;iv)WOx!0^xvgEWeFZ%Fkf4o4ow$ZF7Cfq2WQm(pHw-x=^<&J8}+unEsyU?it zEuii_0>3=~644D|DHd0=O730pcjC8s6RXMdFA+RXK^lK?gi1|qtc}&@Sx4nZuvmhgpCC00CPYRzX}8T&ye| zn-M}AZBRS+O;>KSql(z_lY9Ot);en{FbE|`)rYyIDjvtVYlrLcGD)U81{3r3ZlZWezrL{AvRh&zd6dAW7t-@o_SR9Hh9i zTEGxMMhNaoFhg=h#J|FA|L3Op1(lk=eGZ=gph z)FDqDJ*=fRK;CGCG4VP3NGzEY>A^rMX?SQeh8%=A?QM}@4_(jgCt_o$+X#%GPhL)E9VD^X)Ti)MiItJqj{q3yw~-SF*zT_{E`(! z2-s6)>u=X_qG_|gcE{)$a+B}Pgc*#J$40NmxUD|`xwIqhu zuXw(&y2|FSF_C+|)vMF@YgQmEsTIRQy)`fFS$b$NI1tOUcf18;1yVlaJ0=7>7L3WjJZqMJC7VJ$t z{?EWr3tW7e1DkDoA>E)+JO;xaqX}j&P)6)ZSz&VfyLHBd32LTGB?8oxenMLH^!z9` z>zj&XfnfD%B-8bZagR2t98T>(?BG-MhKJghs3!MKw6TTK<}145&yjD>8kll#pu8M$ zg<)Gx*!!RXen)jFtQ>RVFn(ODMo`X<@E(((&$~7Uv7xtGheL76RO2$4Vm6>;Dt zOydF=VR)v_zO*^&IjVBic^bsurq@z;oi7fl86CmdaBnSoNgdcALl^W1REOc&a_q0P zU+$cS*7b0*V&DCzu=4z?K%7T8Cd(C-&W)Yro#Ong2A*Pd;seMn$lNa%P9x!l75ceX z3B9-|&}8>4Uzc+Rgx_PX>FwXUD&a8Bi&ivp`z!{~A6-hf8YhfuVm;YT%E_BYl}&f> z)Ma3+3t~jQ?!vH8B*u6s3_mUZvK_M1Go#~3xX@MyN2RfbI`zGKO?|?1WgF$SanX>t zs~0O0lw2A*wD<(l%`R1QXYHd)bdDg!|E0f1r97|^K(+&uNYcL`I1A{4|G@dvEgv^+ zvc?2C#1|9#@2(4W_=Vl4x?l2Xk#t;a)$J|Ku>4TqEH;H^ta5%v3VC!f;xE!`8O{&j z8xr7+2}B zYa0V_4ZNslY}-ZqA*UUmQ;Ay&L`J-teVr;Pd%6CMb>h`sK5+JSi$_4W1j=BcUpSymhJ z!o@<@D2J<(3}%4J{q0N+%%xMa-h$kTv2Qxyk(j-AE~fOC+}1uGBg{t$3lgEi0#X{| zAh70KcY~XN()CQZ&2M(vU*lrdk%F*76>FatR63Cvk8Q6-mVUjQ4(Nn*>3#YU_#t3G zcBSM@Zv2~^5jp-gP!sd^eM)z*8pWL+#0Bm#jC;qr7Yn?nDA$PH6`Py>=Q{d3`~-|!L{Rx15LN9qd4sL8)S4aW<-v4}!$ zeo1c1LG<4)Ide|bKeX5V$Sm>n2ES{>*kjDahzo+=!9gbRs&I~YE!48}OO^sfOp<%p zZA@E6G$;P(pkR@iG7qz!`s796f0<+GBx}#m$d6rj-Rfr{Sr=;PcWj{@q8(beD zEiV}Z%;#=N1zNdU%BcyPasrK5&nr#qfgbgZTt;x1FZUUvLwyVvT&{`ITJ*sW>gmWm zq=u_I$|^pcRFwFXnIt&j=|#PGUM|@2vOEUX{y~vp;0*6!&xX{X8St}ljkRC3;c#?32r>C{t1WO3KDP&C3J_(2+!#Tb{t9OB;N>uSIuI0qhjfx(N z)|*p{7k}IEvyd1RF@$VY!*lSa-q&1zRi0L1y0OT$xO4&p5c`j(&L5QR&~mNarH3ew zbTN13H;gVU_H}o>d#n?}l`{qoo-Gf4X9FG@&jsyQQXWozA9Qs_NtUfqp5qvxPK=K- z3z>zVO5p`u1wcPe#GL2jEo7H4NmKT9jVM@#%#-~|5Mx=8@_8;beWj|P1k8yL%@IxR{6buWS6s*;!vSd1u{PE|js;g2&E7lxVyM?M{&#=Pu?|shsF4jZ z|M*-eowJy8B)|{?zcVHDjHxCIy^KMIo((t1bp()`mGa9VnTNEEa(*`8DpH~C6tlzg zYdpaUh_XV6@v8j?$w(zTZmhdWZkCedr^=>oNXhn@%-hDX<}eqZp7Wuasm>zrtFvws zFyu4HZ`UT8Ql1&vpsqduf}#{Ip7`KN^iKkC^J%Q(qPwE-+Q|##s6jJIL;6R88tF%u?`3Cpn;WYX5Pv_j9JIPc-&Y3(8pSqLxN)w`|)mr6s zXBY3TJA$brd6&<8bBm|T75g%l)nXF}QddZgTY^Ee)^kltxud=?Wz;?3aaiIeXF8{F zY~7h3Y2&hvd#LB+rKqY`(@?A;Gxg)%^itl7?k+4a3_3YMp=wmA7_Rs zF1Fe;m4v`5l};ck{y5OB=9{+Mf7;9LCVn)RFYl@{Lc%)?|2oSX9IffeV5p`(aEk(l zsu16|&gJhL`sPLv2Wtf7Qhm1vvi+ra?h{0L0s{`8Z@NbG5t3+got_|?%!OelrncP& z8f{{uCG_b}qM_uMBdNa|BeL>Z$h>2;FVs$Q1FVYcykWXiuDJQw48Ua2?lA;dPJJV; z42`o|a!+Xmq|XH`(CKW>&aOzcBG~J^a!=pLbd!TrG&xyq+uH^>{iHXqw^8WnrgWHY zy!ML}qS>pCxrwao(E3vUUSDUFLiP>sDSHX@^6zzn?}N9IzLhFdyfDC$KIZf8TD&$k z!Y)9C`(+-eW;DPTx@WaXd7W6$hoDi*AOHXW01ve^-&}evOi{(l<{IXZwI-`U0vy^-1yN-~a#s0000000000B&cA?)^j%w z+T4chE>YcZngz_{esE}Y73*=|gjX+&a-VZ4etGLDq%PKnP}vs0Wa}K;f+QP#1Qo3H zd={Ho#ggFC5H*hgr6iAB7qF(uBz50qd}H-AA6)x;(zP> zV*)+Pe_Xkv{UT>UEU(xp{Xnxf!XVooe6;B~FB-Ev_e%j3?yFaW!b|k!C(3R+R-Z3x zl@^jIck7yM8EwtpbKmvq@Hb}Df2+KGn7`lDRH5;^@gV%-hDA@Yb;-R0@}wCy^q|$X;&g(+GrfXC0OC;i?yQ#r;)CQ@e81K7@=P+GQ)= zYj&v`2x;b-d}P<^X^PNhTPGhn!K(~>6|+sAHa8F3bVfDX-sftA)1C}!c!ZqlA^M6I?B^>LYubt-cD3&cH{)Ts+ZZQs!=|#x?V4PR(H#f zW><>P<;YP`EK3YfaAIiVRIG1Ua!PuTWVB}$B;g8FM=o*S!!WCbseFJFy+3YOcX-$< zLPO36aD}SKwlQ#&Hy|IPxM_BF;rEStzO3br73Eics_r@=Oa`O{9Qh@>#vhOf!`ei7bN?QR)SE@1#VYf{e@FKr l@yyC;0P^!~jSyf&~li76^J@zW@9)XHHGk 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

ubvK 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

LzCVn5vkSb1EHbj+^Fle&`IN!Oft=^T)0}% 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 ASO5S3 literal 0 HcmV?d00001 diff --git a/apps/docs/public/r/registry.json b/apps/docs/public/r/registry.json index 71c4f56..50d8e5b 100644 --- a/apps/docs/public/r/registry.json +++ b/apps/docs/public/r/registry.json @@ -458,6 +458,18 @@ "type": "registry:component" } ] + }, + { + "name": "shutter-slider", + "type": "registry:block", + "title": "Shutter Slider", + "description": "An autoplaying feature slider. Each image opens through vertical slats that alternate from the top and bottom, the headline letters roll in like drum faces, copy lines rise through masks and the caption pulls into focus — all mirrored when you travel back.", + "files": [ + { + "path": "components/tweenui/shutter-slider.tsx", + "type": "registry:component" + } + ] } ] } \ No newline at end of file diff --git a/apps/docs/public/r/shutter-slider.json b/apps/docs/public/r/shutter-slider.json new file mode 100644 index 0000000..c1fcff7 --- /dev/null +++ b/apps/docs/public/r/shutter-slider.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "shutter-slider", + "type": "registry:block", + "title": "Shutter Slider", + "description": "An autoplaying feature slider. Each image opens through vertical slats that alternate from the top and bottom, the headline letters roll in like drum faces, copy lines rise through masks and the caption pulls into focus — all mirrored when you travel back.", + "dependencies": [ + "gsap", + "@gsap/react" + ], + "registryDependencies": [], + "cssVars": { + "theme": {} + }, + "files": [ + { + "path": "components/tweenui/shutter-slider.tsx", + "type": "registry:component", + "target": "components/tweenui/shutter-slider.tsx", + "content": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { CustomEase } from 'gsap/CustomEase';\nimport { SplitText } from 'gsap/SplitText';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP, CustomEase, SplitText);\nif (!CustomEase.get('shutter-out')) CustomEase.create('shutter-out', '0.16,1,0.3,1');\nif (!CustomEase.get('shutter-in')) CustomEase.create('shutter-in', '0.6,0,0.9,0.35');\nif (!CustomEase.get('shutter-in-out')) CustomEase.create('shutter-in-out', '0.72,0,0.18,1');\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** Hover pauses autoplay — only where there is a real hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Vertical slats the incoming image opens through. */\nconst SLATS = 6;\n\nconst pad = (n: number) => String(n).padStart(2, '0');\n\nexport interface ShutterSlide {\n /** Large serif title above the image. */\n heading: string;\n /** Image URL. Any aspect works — it is cropped to a 2:1 frame. */\n image: string;\n /** Alt text for the image. Empty marks it decorative. */\n imageAlt?: string;\n /** Paragraph under the pagination. */\n description: string;\n /** Short uppercase line at the bottom. */\n caption?: string;\n}\n\nexport interface ShutterSliderProps extends ComponentPropsWithoutRef<'section'> {\n /** Slides, in order. Defaults to a three-slide sample. */\n slides?: ShutterSlide[];\n /** Seconds each slide holds before advancing. `0` turns autoplay off. */\n autoplay?: number;\n}\n\nconst unsplash = (id: string) =>\n `https://images.unsplash.com/${id}?w=1600&h=800&fit=crop&auto=format&q=80`;\n\nconst DEFAULT_SLIDES: ShutterSlide[] = [\n {\n heading: 'Light first',\n image: unsplash('photo-1512917774080-9991f1c4c750'),\n imageAlt: 'A white modern house with floor-to-ceiling glass, a palm and a pool in the sun',\n description:\n 'Every room is planned around the path of the sun, so mornings start bright and evenings stay warm without reaching for a switch.',\n caption: 'Designed around daylight',\n },\n {\n heading: 'Room to breathe',\n image: unsplash('photo-1600607687939-ce8a6c25118c'),\n imageAlt: 'An open-plan living room flowing into a kitchen under a high white ceiling',\n description:\n 'Open plans, tall ceilings and quiet corners give every home the space to gather, to work and to slow down.',\n caption: 'Space that adapts',\n },\n {\n heading: 'Built to last',\n image: unsplash('photo-1600585154340-be6161a56a0c'),\n imageAlt: 'A timber-clad house lit warmly from inside at dusk, under a large tree',\n description:\n 'Stone, timber and lime plaster, chosen to age gracefully and hold their character for decades.',\n caption: 'Honest materials',\n },\n];\n\ninterface SlideParts {\n slide: HTMLElement;\n heading: HTMLElement;\n copy: HTMLElement;\n caption: HTMLElement | null;\n base: HTMLElement;\n shutter: HTMLElement;\n slats: HTMLElement[];\n slatImgs: HTMLElement[];\n chars: Element[];\n lines: Element[];\n capChars: Element[];\n lineSplit: SplitText | null;\n}\n\nconst LINE_SPLIT = { type: 'lines', linesClass: 'ss-line', mask: 'lines' } as const;\nconst CHAR_SPLIT = { type: 'words,chars', wordsClass: 'ss-word', charsClass: 'ss-char' } as const;\n\n/** Resting pose: everything in place, base image showing, shutter parked. */\nfunction settle(p: SlideParts) {\n gsap.set(p.chars, { rotationX: 0, opacity: 1 });\n gsap.set(p.lines, { yPercent: 0, rotation: 0 });\n gsap.set(p.capChars, { opacity: 1, yPercent: 0 });\n if (p.caption) gsap.set(p.caption, { filter: 'none' });\n gsap.set(p.base, { autoAlpha: 1, scale: 1, filter: 'none' });\n gsap.set(p.shutter, { autoAlpha: 0 });\n}\n\n/** \"About to enter\" pose, mirrored for `dir` (1 = next, -1 = previous). */\nfunction prime(p: SlideParts, dir: number) {\n // Letters turn around an axis behind them, like faces on a drum.\n const depth = parseFloat(getComputedStyle(p.heading).fontSize || '16') * -0.4;\n gsap.set(p.chars, { rotationX: -95 * dir, opacity: 0, transformOrigin: `50% 50% ${depth}px` });\n gsap.set(p.lines, { yPercent: 105 * dir, rotation: 2.5 * dir, transformOrigin: '0% 100%' });\n gsap.set(p.capChars, { opacity: 0, yPercent: 40 * dir });\n if (p.caption) gsap.set(p.caption, { filter: 'blur(6px)' });\n gsap.set(p.base, { autoAlpha: 0, scale: 1, filter: 'brightness(1)' });\n gsap.set(p.shutter, { autoAlpha: 1 });\n // Alternate slats open from opposite ends — swapped when travelling back.\n gsap.set(p.slats, {\n clipPath: (i: number) =>\n (i % 2 === 0) === dir > 0 ? 'inset(100% 0% 0% 0%)' : 'inset(0% 0% 100% 0%)',\n });\n gsap.set(p.slatImgs, { scale: 1.25, yPercent: (i: number) => (i % 2 ? -6 : 6) * dir });\n}\n\nfunction enter(p: SlideParts, dir: number) {\n const from = dir > 0 ? 'start' : 'end';\n return (\n gsap\n .timeline()\n // Slats open in a wave from the side we're travelling toward.\n .to(\n p.slats,\n {\n clipPath: 'inset(0% 0% 0% 0%)',\n duration: 1.1,\n ease: 'shutter-in-out',\n stagger: { each: 0.07, from },\n },\n 0\n )\n .to(\n p.slatImgs,\n {\n scale: 1,\n yPercent: 0,\n duration: 1.5,\n ease: 'shutter-out',\n stagger: { each: 0.07, from },\n },\n 0\n )\n // Hand over to the single base image so no slat seams remain at rest.\n .set(p.base, { autoAlpha: 1 })\n .set(p.shutter, { autoAlpha: 0 })\n .to(\n p.chars,\n {\n rotationX: 0,\n opacity: 1,\n duration: 1,\n ease: 'shutter-out',\n stagger: { each: 0.03, from },\n },\n 0.3\n )\n .to(\n p.lines,\n { yPercent: 0, rotation: 0, duration: 1, ease: 'shutter-out', stagger: 0.08 },\n 0.45\n )\n // Caption pulls focus from the centre outward.\n .to(\n p.capChars,\n {\n opacity: 1,\n yPercent: 0,\n duration: 0.8,\n ease: 'shutter-out',\n stagger: { each: 0.012, from: 'center' },\n },\n 0.65\n )\n .to(p.caption, { filter: 'blur(0px)', duration: 0.9, ease: 'shutter-out' }, 0.65)\n );\n}\n\nfunction exit(p: SlideParts, dir: number) {\n const from = dir > 0 ? 'start' : 'end';\n return (\n gsap\n .timeline()\n .to(\n p.chars,\n {\n rotationX: 95 * dir,\n opacity: 0,\n duration: 0.55,\n ease: 'shutter-in',\n stagger: { each: 0.02, from },\n },\n 0\n )\n .to(\n p.lines,\n {\n yPercent: -105 * dir,\n rotation: -1.5 * dir,\n duration: 0.5,\n ease: 'shutter-in',\n stagger: 0.05,\n },\n 0\n )\n .to(\n p.capChars,\n { opacity: 0, duration: 0.3, ease: 'none', stagger: { each: 0.008, from: 'edges' } },\n 0\n )\n // The old picture sinks back and dims under the incoming slats.\n .to(\n p.base,\n { scale: 1.12, filter: 'brightness(0.55)', duration: 1.3, ease: 'shutter-in-out' },\n 0\n )\n );\n}\n\nfunction Chevron({ back }: { back?: boolean }) {\n return (\n \n \n \n );\n}\n\nexport default function ShutterSlider({\n slides = DEFAULT_SLIDES,\n autoplay = 6,\n className,\n 'aria-label': ariaLabel = 'Highlights',\n ...props\n}: ShutterSliderProps) {\n const rootRef = useRef(null);\n const total = slides.length;\n\n useGSAP(\n (_context, contextSafe) => {\n const root = rootRef.current;\n if (!root || !total) return;\n\n const reduced = prefersReducedMotion();\n const disposers: (() => void)[] = [];\n let cancelled = false;\n\n const init = contextSafe!(() => {\n if (cancelled) return;\n\n const q = (sel: string, scope: ParentNode = root) =>\n scope.querySelector(sel)!;\n const currentEl = q('[data-shutter-count=\"current\"]');\n const nextEl = q('[data-shutter-count=\"next\"]');\n const fill = q('[data-shutter-progress]');\n\n const parts: SlideParts[] = gsap.utils\n .toArray('[data-shutter-slide]', root)\n .map((slide) => {\n const heading = q('[data-shutter-heading]', slide);\n const copy = q('[data-shutter-copy]', slide);\n const caption = slide.querySelector('[data-shutter-caption]');\n // Nothing animates under reduced motion, so the text is left unsplit.\n const lineSplit = reduced ? null : SplitText.create(copy, LINE_SPLIT);\n return {\n slide,\n heading,\n copy,\n caption,\n base: q('[data-shutter-base]', slide),\n shutter: q('[data-shutter-slats]', slide),\n slats: gsap.utils.toArray('[data-shutter-slat]', slide),\n slatImgs: gsap.utils.toArray('[data-shutter-slat] > img', slide),\n chars: reduced ? [] : SplitText.create(heading, CHAR_SPLIT).chars,\n lines: lineSplit?.lines ?? [],\n capChars: caption && !reduced ? SplitText.create(caption, CHAR_SPLIT).chars : [],\n lineSplit,\n };\n });\n\n let index = 0;\n let busy = false;\n let revealed = false;\n let inView = typeof IntersectionObserver === 'undefined';\n let hovering = false;\n let clock: gsap.core.Tween | null = null;\n\n // All slides share one grid cell, so switching is only visibility —\n // the section keeps the tallest slide's height and never jumps.\n const show = (p: SlideParts, on: boolean) =>\n gsap.set(p.slide, { visibility: on ? 'visible' : 'hidden', zIndex: on ? 1 : 'auto' });\n parts.forEach((p, i) => show(p, i === 0));\n\n // Odometer: the old number rolls out as the new one rolls in.\n const roll = (el: HTMLElement, value: number, dir: number, instant?: boolean) => {\n const old = el.lastElementChild as HTMLElement | null;\n const next = document.createElement('span');\n next.textContent = pad(value);\n el.appendChild(next);\n if (instant || !old || reduced) return old?.remove();\n gsap.fromTo(\n next,\n { yPercent: 100 * dir },\n { yPercent: 0, duration: 0.7, ease: 'shutter-out' }\n );\n gsap.to(old, {\n yPercent: -100 * dir,\n duration: 0.7,\n ease: 'shutter-out',\n onComplete: () => old.remove(),\n });\n };\n const counters = (dir: number, instant?: boolean) => {\n roll(currentEl, index + 1, dir, instant);\n roll(nextEl, ((index + 1) % total) + 1, dir, instant);\n };\n currentEl.textContent = '';\n nextEl.textContent = '';\n counters(1, true);\n\n const go = (dir: number) => {\n if (busy || total < 2) return;\n busy = true;\n const out = parts[index];\n index = (index + dir + total) % total;\n const inn = parts[index];\n counters(dir);\n root.setAttribute('data-index', String(index));\n\n show(inn, true);\n gsap.set(out.slide, { zIndex: 0 });\n\n if (reduced) {\n settle(inn);\n show(out, false);\n busy = false;\n return;\n }\n\n prime(inn, dir);\n gsap\n .timeline({\n onComplete: () => {\n show(out, false);\n gsap.set(inn.slide, { zIndex: 1 });\n busy = false;\n },\n })\n .add(exit(out, dir), 0)\n .add(enter(inn, dir), 0.15);\n };\n\n // Autoplay: the progress line is the clock.\n const stop = () => {\n clock?.kill();\n clock = null;\n gsap.set(fill, { scaleX: 0 });\n };\n const start = () => {\n stop();\n if (reduced || autoplay <= 0 || total < 2 || !inView || document.hidden) return;\n clock = gsap.fromTo(\n fill,\n { scaleX: 0 },\n {\n scaleX: 1,\n duration: autoplay,\n ease: 'none',\n paused: hovering,\n onComplete: () => {\n go(1);\n start();\n },\n }\n );\n };\n const step = (dir: number) => {\n if (busy) return;\n go(dir);\n start();\n };\n\n const listen = (\n target: HTMLElement,\n type: K,\n fn: (event: HTMLElementEventMap[K]) => void\n ) => {\n const handler = contextSafe!(fn as (event: Event) => void);\n target.addEventListener(type, handler as EventListener);\n disposers.push(() => target.removeEventListener(type, handler as EventListener));\n };\n\n listen(q('[data-shutter-prev]'), 'click', () => step(-1));\n listen(q('[data-shutter-next]'), 'click', () => step(1));\n listen(root, 'keydown', (event) => {\n if (event.key === 'ArrowLeft') step(-1);\n if (event.key === 'ArrowRight') step(1);\n });\n\n // Horizontal swipe on touch and pen.\n let sx = 0;\n let sy = 0;\n listen(root, 'pointerdown', (event) => {\n sx = event.clientX;\n sy = event.clientY;\n });\n listen(root, 'pointerup', (event) => {\n if (event.pointerType === 'mouse') return;\n const dx = event.clientX - sx;\n const dy = event.clientY - sy;\n if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) step(dx < 0 ? 1 : -1);\n });\n\n if (canHover()) {\n listen(root, 'pointerenter', () => {\n hovering = true;\n clock?.pause();\n });\n listen(root, 'pointerleave', () => {\n hovering = false;\n clock?.resume();\n });\n }\n\n const onVisibility = contextSafe!(() => (document.hidden ? stop() : start()));\n document.addEventListener('visibilitychange', onVisibility);\n disposers.push(() => document.removeEventListener('visibilitychange', onVisibility));\n\n // Copy lines depend on the width they were split at: re-split after a\n // resize so each line mask matches the real wrapping again.\n let splitWidth = root.offsetWidth;\n let resizeTimer: ReturnType | undefined;\n const resplit = contextSafe!(() => {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(\n contextSafe!(() => {\n if (reduced || root.offsetWidth === splitWidth) return;\n if (busy) return resplit();\n splitWidth = root.offsetWidth;\n parts.forEach((p, i) => {\n p.lineSplit?.revert();\n p.lineSplit = SplitText.create(p.copy, LINE_SPLIT);\n p.lines = p.lineSplit.lines;\n const shown = i === index && revealed;\n gsap.set(\n p.lines,\n shown\n ? { yPercent: 0 }\n : { yPercent: 105, rotation: 2.5, transformOrigin: '0% 100%' }\n );\n });\n }),\n 150\n );\n });\n const resizeObserver = new ResizeObserver(resplit);\n resizeObserver.observe(root);\n disposers.push(() => {\n resizeObserver.disconnect();\n clearTimeout(resizeTimer);\n });\n\n // First slide plays in the first time the slider is on screen.\n const first = parts[0];\n const reveal = () => {\n if (revealed) return;\n revealed = true;\n if (reduced) settle(first);\n else enter(first, 1).delay(0.2);\n };\n\n if (reduced) settle(first);\n else prime(first, 1);\n parts.slice(1).forEach((p) => (reduced ? settle(p) : prime(p, 1)));\n root.setAttribute('data-ready', '');\n\n if (typeof IntersectionObserver === 'undefined') {\n reveal();\n start();\n } else {\n const io = new IntersectionObserver(\n contextSafe!(([entry]: IntersectionObserverEntry[]) => {\n inView = entry.isIntersecting;\n if (!inView) return stop();\n reveal();\n start();\n }),\n { threshold: 0.25 }\n );\n io.observe(root);\n disposers.push(() => io.disconnect());\n }\n\n disposers.push(() => clock?.kill());\n });\n\n // Split only once web fonts are in, so line breaks match the final text;\n // give up after a beat so a slow font can't hold the slider hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n if (fonts) Promise.race([fonts, new Promise((r) => setTimeout(r, 1500))]).then(init);\n else init();\n\n return () => {\n cancelled = true;\n disposers.forEach((dispose) => dispose());\n root.removeAttribute('data-ready');\n };\n },\n { scope: rootRef, dependencies: [slides, autoplay] }\n );\n\n return (\n \n

\n
\n {/* Mirrors a slide's middle row so the pagination lands just under the image. */}\n
\n
\n
\n
\n \n \n \n span]:[grid-area:1/1]\"\n >\n {pad(1)}\n \n \n
\n \n
\n \n span]:[grid-area:1/1]\"\n >\n {pad(Math.min(2, total))}\n \n \n \n
\n
\n\n {/* Hidden until GSAP has posed the first slide, so nothing flashes in place. */}\n
\n {slides.map((slide, i) => (\n 0 && 'invisible'\n )}\n >\n
\n \n {slide.heading}\n \n
\n\n
\n {/* clip-path as well as overflow: WebKit can let composited\n (scaled, will-change) children escape overflow clipping. */}\n
\n \n \n {Array.from({ length: SLATS }, (_, s) => (\n \n {/* A full-frame copy shifted into place, so the slats read as one picture. */}\n \n
\n ))}\n
\n
\n
\n\n {/* pt-16 = pagination (h-12) + the gap under it. */}\n
\n \n {slide.description}\n

\n {slide.caption && (\n \n {slide.caption}\n

\n )}\n
\n
\n ))}\n
\n
\n \n
\n );\n}\n" + } + ] +} \ No newline at end of file diff --git a/apps/docs/registry/__index__.generated.tsx b/apps/docs/registry/__index__.generated.tsx index 23c4c65..aa41051 100644 --- a/apps/docs/registry/__index__.generated.tsx +++ b/apps/docs/registry/__index__.generated.tsx @@ -48,6 +48,7 @@ export const demos: Record = { 'pricing-usage-slider:default': dynamic(() => import('./demos/pricing-usage-slider')), 'grid-cascade:default': dynamic(() => import('./demos/grid-cascade')), 'cube-roll-item:default': dynamic(() => import('./demos/cube-roll-item')), + 'shutter-slider:default': dynamic(() => import('./demos/shutter-slider')), }; export function getDemo(component: string, variant: string): ComponentType | undefined { diff --git a/apps/docs/registry/__media__.generated.ts b/apps/docs/registry/__media__.generated.ts index 6114669..a29e2a0 100644 --- a/apps/docs/registry/__media__.generated.ts +++ b/apps/docs/registry/__media__.generated.ts @@ -45,4 +45,5 @@ export const discoveredMedia: Record = { 'pricing-usage-slider': {"image":"/media/blocks/pricing-usage-slider-poster.webp","video":"/media/blocks/pricing-usage-slider-preview.mp4"}, 'grid-cascade': {"image":"/media/blocks/grid-cascade-poster.webp","video":"/media/blocks/grid-cascade-preview.mp4"}, 'cube-roll-item': {"image":"/media/blocks/cube-roll-item-poster.webp","video":"/media/blocks/cube-roll-item-preview.mp4"}, + 'shutter-slider': {"image":"/media/blocks/shutter-slider-poster.webp","video":"/media/blocks/shutter-slider-preview.mp4"}, }; diff --git a/apps/docs/registry/__sources__.generated.ts b/apps/docs/registry/__sources__.generated.ts index f70299e..96f9fce 100644 --- a/apps/docs/registry/__sources__.generated.ts +++ b/apps/docs/registry/__sources__.generated.ts @@ -234,6 +234,12 @@ export const usage: Record = { "code": "import CubeRollItem from '@/components/tweenui/cube-roll-item';\n\nexport default function Example() {\n return ;\n}", "codeHtml": "
import CubeRollItem from '@/components/tweenui/cube-roll-item';\n\nexport default function Example() {\n  return <CubeRollItem />;\n}
" } + }, + "shutter-slider": { + "react": { + "code": "import ShutterSlider from '@/components/tweenui/shutter-slider';\n\nexport default function Example() {\n return ;\n}", + "codeHtml": "
import ShutterSlider from '@/components/tweenui/shutter-slider';\n\nexport default function Example() {\n  return <ShutterSlider />;\n}
" + } } }; @@ -465,5 +471,11 @@ export const manual: Record = { "code": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n try {\n return el.matches(':focus-visible');\n } catch {\n return true;\n }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n front: '[transform:translateZ(calc(var(--depth)/2))]',\n back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n /** Large title in the middle of the row. */\n title: string;\n /** Short line on the right. */\n label?: string;\n /** Link target for the row. */\n href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n { title: 'Installation', label: 'One command, no config', href: '#installation' },\n { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n const filled = side === 'top' || side === 'bottom';\n\n return (\n \n {/* Equal side columns keep the title on the row's true center line. */}\n
\n \n {number}\n {filled && (\n \n \n \n )}\n \n {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n \n {item.title}\n \n {item.label && (\n \n {item.label}\n \n )}\n
\n \n );\n}\n\nexport default function CubeRollItem({\n items = DEFAULT_ITEMS,\n className,\n 'aria-label': ariaLabel = 'Sections',\n ...props\n}: CubeRollItemProps) {\n const rootRef = useRef(null);\n /** Accumulated drum angle per row, in quarter turns of ±90°. */\n const anglesRef = useRef([]);\n const activeRef = useRef([]);\n\n const { contextSafe } = useGSAP(\n (_context, contextSafe) => {\n anglesRef.current = items.map(() => 0);\n activeRef.current = items.map(() => false);\n\n if (prefersReducedMotion()) return;\n\n // Park every drum half a turn over with its back face blanked, so each row\n // starts as an empty slab and nothing shows in the fallback font.\n const backContent = '[data-roll-face=\"back\"] > *';\n gsap.set('[data-roll-rule]', { scaleX: 0 });\n gsap.set('[data-roll-drum]', { rotationX: 180 });\n gsap.set(backContent, { opacity: 0 });\n\n let cancelled = false;\n\n // Rules draw in while the drums flip over one after another, flashing\n // their filled face on the way past.\n const play = contextSafe!(() => {\n if (cancelled) return;\n gsap\n .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n .to(\n '[data-roll-rule]',\n { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n 0\n )\n .to(\n '[data-roll-drum]',\n { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n 0.15\n );\n });\n\n // Wait for web fonts so the text never swaps mid-reveal; give up after a\n // beat so a slow or failed font can't hold the block hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n return () => {\n cancelled = true;\n };\n },\n { scope: rootRef, dependencies: [items] }\n );\n\n /** Turn a row a quarter — downward when `down`, upward otherwise. */\n const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n if (activeRef.current[index] === active) return;\n activeRef.current[index] = active;\n link.closest('li')?.setAttribute('data-active', String(active));\n\n const drum = link.querySelector('[data-roll-drum]');\n if (!drum) return;\n // Hovered before the intro finished: the back face may still be blank.\n gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n if (prefersReducedMotion()) {\n anglesRef.current[index] = active ? -90 : 0;\n gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n return;\n }\n\n anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n // `auto` takes rotationX from this drum's intro flip only, so hovering\n // mid-reveal leaves the other rows' flips running.\n gsap.to(drum, {\n rotationX: anglesRef.current[index],\n duration: active ? 0.6 : 0.7,\n ease: ROLL_EASE,\n overwrite: 'auto',\n });\n });\n\n /** Did the pointer cross the top half of the row? */\n const fromTop = (event: MouseEvent) => {\n const rect = event.currentTarget.getBoundingClientRect();\n return event.clientY < rect.top + rect.height / 2;\n };\n\n return (\n \n {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n
\n {/* Closing rule under the last row. */}\n \n \n );\n}\n", "codeHtml": "
'use client';\n\nimport { useRef, type ComponentPropsWithoutRef, type FocusEvent, type MouseEvent } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP);\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** The roll follows the pointer — skip it on touch, where there is no hover. */\nconst canHover = () =>\n  typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Keyboard focus rolls the row; a mouse click that happens to focus it does not. */\nconst isFocusVisible = (el: HTMLElement) => {\n  try {\n    return el.matches(':focus-visible');\n  } catch {\n    return true;\n  }\n};\n\n/** Settles a touch past the face, like a drum clicking into its detent. */\nconst ROLL_EASE = 'back.out(1.6)';\n\n/**\n * Each row is a four-sided drum turning on its X axis. Front and back carry the\n * resting face, top and bottom the filled one — so every quarter turn lands on\n * the opposite state, and the drum can keep rolling the way the pointer moves.\n * `--depth` matches the row height, which makes the drum a true square prism.\n */\nconst FACE_TRANSFORM = {\n  front: '[transform:translateZ(calc(var(--depth)/2))]',\n  back: '[transform:rotateX(180deg)_translateZ(calc(var(--depth)/2))]',\n  top: '[transform:rotateX(90deg)_translateZ(calc(var(--depth)/2))]',\n  bottom: '[transform:rotateX(-90deg)_translateZ(calc(var(--depth)/2))]',\n} as const;\n\ntype Side = keyof typeof FACE_TRANSFORM;\n\nconst SIDES: Side[] = ['front', 'back', 'top', 'bottom'];\n\nexport interface CubeRollItemEntry {\n  /** Large title in the middle of the row. */\n  title: string;\n  /** Short line on the right. */\n  label?: string;\n  /** Link target for the row. */\n  href: string;\n}\n\nexport interface CubeRollItemProps extends ComponentPropsWithoutRef<'nav'> {\n  /** Rows in the list, numbered in order. Defaults to a four-row sample. */\n  items?: CubeRollItemEntry[];\n}\n\nconst DEFAULT_ITEMS: CubeRollItemEntry[] = [\n  { title: 'Components', label: 'Buttons, text & logos', href: '#components' },\n  { title: 'Blocks', label: 'Ready-made sections', href: '#blocks' },\n  { title: 'Installation', label: 'One command, no config', href: '#installation' },\n  { title: 'Changelog', label: 'What shipped lately', href: '#changelog' },\n];\n\nfunction Face({ side, item, number }: { side: Side; item: CubeRollItemEntry; number: string }) {\n  const filled = side === 'top' || side === 'bottom';\n\n  return (\n    <div\n      data-roll-face={side}\n      aria-hidden={side === 'front' ? undefined : true}\n      className={cn(\n        'absolute inset-0 backface-hidden',\n        FACE_TRANSFORM[side],\n        filled\n          ? 'bg-[#045f64] text-white dark:bg-[#c6f56f] dark:text-[#071d1b]'\n          : 'bg-white text-[#12161F] dark:bg-[#0d1117] dark:text-white'\n      )}\n    >\n      {/* Equal side columns keep the title on the row's true center line. */}\n      <div className=\"flex h-full flex-wrap items-start px-3 pt-3.5 md:grid md:grid-cols-[1fr_2fr_1fr] md:items-center md:gap-6 md:px-4 md:pt-0\">\n        <span\n          className={cn(\n            'order-1 flex items-center gap-1.5 text-xs tabular-nums',\n            filled ? 'text-[#c6f56f] dark:text-[#045f64]' : 'text-[#045f64] dark:text-[#9fd4d6]'\n          )}\n        >\n          {number}\n          {filled && (\n            <svg viewBox=\"0 0 12 12\" className=\"size-3\" fill=\"none\" aria-hidden=\"true\">\n              <path d=\"M1 6h9.5M6.5 2 10.5 6l-4 4\" stroke=\"currentColor\" strokeWidth=\"1.25\" />\n            </svg>\n          )}\n        </span>\n        {/* Leading above 1 keeps descenders (g, y, p) inside the overflow box. */}\n        <span className=\"order-3 mt-2.5 w-full min-w-0 overflow-hidden text-center text-3xl leading-[1.3] font-normal tracking-tight text-ellipsis whitespace-nowrap md:order-2 md:mt-0 md:w-auto md:text-4xl\">\n          {item.title}\n        </span>\n        {item.label && (\n          <span\n            className={cn(\n              'order-2 ml-auto text-right text-[13px] tracking-wide md:order-3 md:ml-0',\n              filled\n                ? 'text-white/80 dark:text-[#071d1b]/75'\n                : 'text-[#045f64]/75 dark:text-[#9fd4d6]/80'\n            )}\n          >\n            {item.label}\n          </span>\n        )}\n      </div>\n    </div>\n  );\n}\n\nexport default function CubeRollItem({\n  items = DEFAULT_ITEMS,\n  className,\n  'aria-label': ariaLabel = 'Sections',\n  ...props\n}: CubeRollItemProps) {\n  const rootRef = useRef<HTMLElement>(null);\n  /** Accumulated drum angle per row, in quarter turns of ±90°. */\n  const anglesRef = useRef<number[]>([]);\n  const activeRef = useRef<boolean[]>([]);\n\n  const { contextSafe } = useGSAP(\n    (_context, contextSafe) => {\n      anglesRef.current = items.map(() => 0);\n      activeRef.current = items.map(() => false);\n\n      if (prefersReducedMotion()) return;\n\n      // Park every drum half a turn over with its back face blanked, so each row\n      // starts as an empty slab and nothing shows in the fallback font.\n      const backContent = '[data-roll-face=\"back\"] > *';\n      gsap.set('[data-roll-rule]', { scaleX: 0 });\n      gsap.set('[data-roll-drum]', { rotationX: 180 });\n      gsap.set(backContent, { opacity: 0 });\n\n      let cancelled = false;\n\n      // Rules draw in while the drums flip over one after another, flashing\n      // their filled face on the way past.\n      const play = contextSafe!(() => {\n        if (cancelled) return;\n        gsap\n          .timeline({ onComplete: () => gsap.set(backContent, { opacity: 1 }) })\n          .to(\n            '[data-roll-rule]',\n            { scaleX: 1, duration: 0.9, ease: 'expo.inOut', stagger: 0.15 },\n            0\n          )\n          .to(\n            '[data-roll-drum]',\n            { rotationX: 0, duration: 0.9, ease: 'power4.inOut', stagger: 0.15 },\n            0.15\n          );\n      });\n\n      // Wait for web fonts so the text never swaps mid-reveal; give up after a\n      // beat so a slow or failed font can't hold the block hidden.\n      const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n      Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(play);\n\n      return () => {\n        cancelled = true;\n      };\n    },\n    { scope: rootRef, dependencies: [items] }\n  );\n\n  /** Turn a row a quarter — downward when `down`, upward otherwise. */\n  const turn = contextSafe((link: HTMLElement, index: number, active: boolean, down: boolean) => {\n    if (activeRef.current[index] === active) return;\n    activeRef.current[index] = active;\n    link.closest('li')?.setAttribute('data-active', String(active));\n\n    const drum = link.querySelector('[data-roll-drum]');\n    if (!drum) return;\n    // Hovered before the intro finished: the back face may still be blank.\n    gsap.set(link.querySelectorAll('[data-roll-face=\"back\"] > *'), { opacity: 1 });\n\n    if (prefersReducedMotion()) {\n      anglesRef.current[index] = active ? -90 : 0;\n      gsap.set(drum, { rotationX: anglesRef.current[index], opacity: 1 });\n      return;\n    }\n\n    anglesRef.current[index] = (anglesRef.current[index] ?? 0) + (down ? -90 : 90);\n    // `auto` takes rotationX from this drum's intro flip only, so hovering\n    // mid-reveal leaves the other rows' flips running.\n    gsap.to(drum, {\n      rotationX: anglesRef.current[index],\n      duration: active ? 0.6 : 0.7,\n      ease: ROLL_EASE,\n      overwrite: 'auto',\n    });\n  });\n\n  /** Did the pointer cross the top half of the row? */\n  const fromTop = (event: MouseEvent<HTMLElement>) => {\n    const rect = event.currentTarget.getBoundingClientRect();\n    return event.clientY < rect.top + rect.height / 2;\n  };\n\n  return (\n    <nav\n      ref={rootRef}\n      data-cube-roll-item\n      aria-label={ariaLabel}\n      className={cn('mx-auto w-full max-w-[1100px] px-4 py-14 md:py-20', className)}\n      {...props}\n    >\n      {/* No gap between rows, so the filled face covers the whole row edge to edge. */}\n      <ul className=\"flex flex-col\">\n        {items.map((item, index) => {\n          const number = String(index + 1).padStart(3, '0');\n\n          return (\n            <li\n              key={item.href + item.title}\n              data-roll-row\n              data-active=\"false\"\n              className=\"relative h-[5.75rem] overflow-y-clip [--depth:5.75rem] md:h-[4.5rem] md:[--depth:4.5rem]\"\n            >\n              <span\n                data-roll-rule\n                aria-hidden=\"true\"\n                className=\"pointer-events-none absolute inset-x-0 top-0 z-10 h-px origin-left bg-[#045f64] dark:bg-[#9fd4d6]/60\"\n              />\n              <a\n                href={item.href}\n                className=\"block size-full outline-none perspective-[1200px]\"\n                // Enter from the top and the drum rolls down; leave through the\n                // bottom and it keeps rolling down rather than reversing.\n                onMouseEnter={(event) =>\n                  canHover() && turn(event.currentTarget, index, true, fromTop(event))\n                }\n                onMouseLeave={(event) =>\n                  canHover() && turn(event.currentTarget, index, false, !fromTop(event))\n                }\n                onFocus={(event: FocusEvent<HTMLAnchorElement>) =>\n                  isFocusVisible(event.currentTarget) &&\n                  turn(event.currentTarget, index, true, true)\n                }\n                onBlur={(event: FocusEvent<HTMLAnchorElement>) =>\n                  turn(event.currentTarget, index, false, true)\n                }\n              >\n                <div className=\"relative size-full [transform:translateZ(calc(var(--depth)/-2))] transform-3d\">\n                  {/* Under reduced motion the drum only snaps, so skip the layer promotion. */}\n                  <div\n                    data-roll-drum\n                    className=\"absolute inset-0 will-change-transform transform-3d motion-reduce:will-change-auto\"\n                  >\n                    {SIDES.map((side) => (\n                      <Face key={side} side={side} item={item} number={number} />\n                    ))}\n                  </div>\n                </div>\n              </a>\n            </li>\n          );\n        })}\n      </ul>\n      {/* Closing rule under the last row. */}\n      <span\n        data-roll-rule\n        aria-hidden=\"true\"\n        className=\"block h-px origin-left bg-[#045f64] dark:bg-[#9fd4d6]/60\"\n      />\n    </nav>\n  );\n}\n
" } + }, + "shutter-slider": { + "react": { + "code": "'use client';\n\nimport { useRef, type ComponentPropsWithoutRef } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { CustomEase } from 'gsap/CustomEase';\nimport { SplitText } from 'gsap/SplitText';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP, CustomEase, SplitText);\nif (!CustomEase.get('shutter-out')) CustomEase.create('shutter-out', '0.16,1,0.3,1');\nif (!CustomEase.get('shutter-in')) CustomEase.create('shutter-in', '0.6,0,0.9,0.35');\nif (!CustomEase.get('shutter-in-out')) CustomEase.create('shutter-in-out', '0.72,0,0.18,1');\n\nconst prefersReducedMotion = () =>\n typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** Hover pauses autoplay — only where there is a real hover. */\nconst canHover = () =>\n typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Vertical slats the incoming image opens through. */\nconst SLATS = 6;\n\nconst pad = (n: number) => String(n).padStart(2, '0');\n\nexport interface ShutterSlide {\n /** Large serif title above the image. */\n heading: string;\n /** Image URL. Any aspect works — it is cropped to a 2:1 frame. */\n image: string;\n /** Alt text for the image. Empty marks it decorative. */\n imageAlt?: string;\n /** Paragraph under the pagination. */\n description: string;\n /** Short uppercase line at the bottom. */\n caption?: string;\n}\n\nexport interface ShutterSliderProps extends ComponentPropsWithoutRef<'section'> {\n /** Slides, in order. Defaults to a three-slide sample. */\n slides?: ShutterSlide[];\n /** Seconds each slide holds before advancing. `0` turns autoplay off. */\n autoplay?: number;\n}\n\nconst unsplash = (id: string) =>\n `https://images.unsplash.com/${id}?w=1600&h=800&fit=crop&auto=format&q=80`;\n\nconst DEFAULT_SLIDES: ShutterSlide[] = [\n {\n heading: 'Light first',\n image: unsplash('photo-1512917774080-9991f1c4c750'),\n imageAlt: 'A white modern house with floor-to-ceiling glass, a palm and a pool in the sun',\n description:\n 'Every room is planned around the path of the sun, so mornings start bright and evenings stay warm without reaching for a switch.',\n caption: 'Designed around daylight',\n },\n {\n heading: 'Room to breathe',\n image: unsplash('photo-1600607687939-ce8a6c25118c'),\n imageAlt: 'An open-plan living room flowing into a kitchen under a high white ceiling',\n description:\n 'Open plans, tall ceilings and quiet corners give every home the space to gather, to work and to slow down.',\n caption: 'Space that adapts',\n },\n {\n heading: 'Built to last',\n image: unsplash('photo-1600585154340-be6161a56a0c'),\n imageAlt: 'A timber-clad house lit warmly from inside at dusk, under a large tree',\n description:\n 'Stone, timber and lime plaster, chosen to age gracefully and hold their character for decades.',\n caption: 'Honest materials',\n },\n];\n\ninterface SlideParts {\n slide: HTMLElement;\n heading: HTMLElement;\n copy: HTMLElement;\n caption: HTMLElement | null;\n base: HTMLElement;\n shutter: HTMLElement;\n slats: HTMLElement[];\n slatImgs: HTMLElement[];\n chars: Element[];\n lines: Element[];\n capChars: Element[];\n lineSplit: SplitText | null;\n}\n\nconst LINE_SPLIT = { type: 'lines', linesClass: 'ss-line', mask: 'lines' } as const;\nconst CHAR_SPLIT = { type: 'words,chars', wordsClass: 'ss-word', charsClass: 'ss-char' } as const;\n\n/** Resting pose: everything in place, base image showing, shutter parked. */\nfunction settle(p: SlideParts) {\n gsap.set(p.chars, { rotationX: 0, opacity: 1 });\n gsap.set(p.lines, { yPercent: 0, rotation: 0 });\n gsap.set(p.capChars, { opacity: 1, yPercent: 0 });\n if (p.caption) gsap.set(p.caption, { filter: 'none' });\n gsap.set(p.base, { autoAlpha: 1, scale: 1, filter: 'none' });\n gsap.set(p.shutter, { autoAlpha: 0 });\n}\n\n/** \"About to enter\" pose, mirrored for `dir` (1 = next, -1 = previous). */\nfunction prime(p: SlideParts, dir: number) {\n // Letters turn around an axis behind them, like faces on a drum.\n const depth = parseFloat(getComputedStyle(p.heading).fontSize || '16') * -0.4;\n gsap.set(p.chars, { rotationX: -95 * dir, opacity: 0, transformOrigin: `50% 50% ${depth}px` });\n gsap.set(p.lines, { yPercent: 105 * dir, rotation: 2.5 * dir, transformOrigin: '0% 100%' });\n gsap.set(p.capChars, { opacity: 0, yPercent: 40 * dir });\n if (p.caption) gsap.set(p.caption, { filter: 'blur(6px)' });\n gsap.set(p.base, { autoAlpha: 0, scale: 1, filter: 'brightness(1)' });\n gsap.set(p.shutter, { autoAlpha: 1 });\n // Alternate slats open from opposite ends — swapped when travelling back.\n gsap.set(p.slats, {\n clipPath: (i: number) =>\n (i % 2 === 0) === dir > 0 ? 'inset(100% 0% 0% 0%)' : 'inset(0% 0% 100% 0%)',\n });\n gsap.set(p.slatImgs, { scale: 1.25, yPercent: (i: number) => (i % 2 ? -6 : 6) * dir });\n}\n\nfunction enter(p: SlideParts, dir: number) {\n const from = dir > 0 ? 'start' : 'end';\n return (\n gsap\n .timeline()\n // Slats open in a wave from the side we're travelling toward.\n .to(\n p.slats,\n {\n clipPath: 'inset(0% 0% 0% 0%)',\n duration: 1.1,\n ease: 'shutter-in-out',\n stagger: { each: 0.07, from },\n },\n 0\n )\n .to(\n p.slatImgs,\n {\n scale: 1,\n yPercent: 0,\n duration: 1.5,\n ease: 'shutter-out',\n stagger: { each: 0.07, from },\n },\n 0\n )\n // Hand over to the single base image so no slat seams remain at rest.\n .set(p.base, { autoAlpha: 1 })\n .set(p.shutter, { autoAlpha: 0 })\n .to(\n p.chars,\n {\n rotationX: 0,\n opacity: 1,\n duration: 1,\n ease: 'shutter-out',\n stagger: { each: 0.03, from },\n },\n 0.3\n )\n .to(\n p.lines,\n { yPercent: 0, rotation: 0, duration: 1, ease: 'shutter-out', stagger: 0.08 },\n 0.45\n )\n // Caption pulls focus from the centre outward.\n .to(\n p.capChars,\n {\n opacity: 1,\n yPercent: 0,\n duration: 0.8,\n ease: 'shutter-out',\n stagger: { each: 0.012, from: 'center' },\n },\n 0.65\n )\n .to(p.caption, { filter: 'blur(0px)', duration: 0.9, ease: 'shutter-out' }, 0.65)\n );\n}\n\nfunction exit(p: SlideParts, dir: number) {\n const from = dir > 0 ? 'start' : 'end';\n return (\n gsap\n .timeline()\n .to(\n p.chars,\n {\n rotationX: 95 * dir,\n opacity: 0,\n duration: 0.55,\n ease: 'shutter-in',\n stagger: { each: 0.02, from },\n },\n 0\n )\n .to(\n p.lines,\n {\n yPercent: -105 * dir,\n rotation: -1.5 * dir,\n duration: 0.5,\n ease: 'shutter-in',\n stagger: 0.05,\n },\n 0\n )\n .to(\n p.capChars,\n { opacity: 0, duration: 0.3, ease: 'none', stagger: { each: 0.008, from: 'edges' } },\n 0\n )\n // The old picture sinks back and dims under the incoming slats.\n .to(\n p.base,\n { scale: 1.12, filter: 'brightness(0.55)', duration: 1.3, ease: 'shutter-in-out' },\n 0\n )\n );\n}\n\nfunction Chevron({ back }: { back?: boolean }) {\n return (\n \n \n \n );\n}\n\nexport default function ShutterSlider({\n slides = DEFAULT_SLIDES,\n autoplay = 6,\n className,\n 'aria-label': ariaLabel = 'Highlights',\n ...props\n}: ShutterSliderProps) {\n const rootRef = useRef(null);\n const total = slides.length;\n\n useGSAP(\n (_context, contextSafe) => {\n const root = rootRef.current;\n if (!root || !total) return;\n\n const reduced = prefersReducedMotion();\n const disposers: (() => void)[] = [];\n let cancelled = false;\n\n const init = contextSafe!(() => {\n if (cancelled) return;\n\n const q = (sel: string, scope: ParentNode = root) =>\n scope.querySelector(sel)!;\n const currentEl = q('[data-shutter-count=\"current\"]');\n const nextEl = q('[data-shutter-count=\"next\"]');\n const fill = q('[data-shutter-progress]');\n\n const parts: SlideParts[] = gsap.utils\n .toArray('[data-shutter-slide]', root)\n .map((slide) => {\n const heading = q('[data-shutter-heading]', slide);\n const copy = q('[data-shutter-copy]', slide);\n const caption = slide.querySelector('[data-shutter-caption]');\n // Nothing animates under reduced motion, so the text is left unsplit.\n const lineSplit = reduced ? null : SplitText.create(copy, LINE_SPLIT);\n return {\n slide,\n heading,\n copy,\n caption,\n base: q('[data-shutter-base]', slide),\n shutter: q('[data-shutter-slats]', slide),\n slats: gsap.utils.toArray('[data-shutter-slat]', slide),\n slatImgs: gsap.utils.toArray('[data-shutter-slat] > img', slide),\n chars: reduced ? [] : SplitText.create(heading, CHAR_SPLIT).chars,\n lines: lineSplit?.lines ?? [],\n capChars: caption && !reduced ? SplitText.create(caption, CHAR_SPLIT).chars : [],\n lineSplit,\n };\n });\n\n let index = 0;\n let busy = false;\n let revealed = false;\n let inView = typeof IntersectionObserver === 'undefined';\n let hovering = false;\n let clock: gsap.core.Tween | null = null;\n\n // All slides share one grid cell, so switching is only visibility —\n // the section keeps the tallest slide's height and never jumps.\n const show = (p: SlideParts, on: boolean) =>\n gsap.set(p.slide, { visibility: on ? 'visible' : 'hidden', zIndex: on ? 1 : 'auto' });\n parts.forEach((p, i) => show(p, i === 0));\n\n // Odometer: the old number rolls out as the new one rolls in.\n const roll = (el: HTMLElement, value: number, dir: number, instant?: boolean) => {\n const old = el.lastElementChild as HTMLElement | null;\n const next = document.createElement('span');\n next.textContent = pad(value);\n el.appendChild(next);\n if (instant || !old || reduced) return old?.remove();\n gsap.fromTo(\n next,\n { yPercent: 100 * dir },\n { yPercent: 0, duration: 0.7, ease: 'shutter-out' }\n );\n gsap.to(old, {\n yPercent: -100 * dir,\n duration: 0.7,\n ease: 'shutter-out',\n onComplete: () => old.remove(),\n });\n };\n const counters = (dir: number, instant?: boolean) => {\n roll(currentEl, index + 1, dir, instant);\n roll(nextEl, ((index + 1) % total) + 1, dir, instant);\n };\n currentEl.textContent = '';\n nextEl.textContent = '';\n counters(1, true);\n\n const go = (dir: number) => {\n if (busy || total < 2) return;\n busy = true;\n const out = parts[index];\n index = (index + dir + total) % total;\n const inn = parts[index];\n counters(dir);\n root.setAttribute('data-index', String(index));\n\n show(inn, true);\n gsap.set(out.slide, { zIndex: 0 });\n\n if (reduced) {\n settle(inn);\n show(out, false);\n busy = false;\n return;\n }\n\n prime(inn, dir);\n gsap\n .timeline({\n onComplete: () => {\n show(out, false);\n gsap.set(inn.slide, { zIndex: 1 });\n busy = false;\n },\n })\n .add(exit(out, dir), 0)\n .add(enter(inn, dir), 0.15);\n };\n\n // Autoplay: the progress line is the clock.\n const stop = () => {\n clock?.kill();\n clock = null;\n gsap.set(fill, { scaleX: 0 });\n };\n const start = () => {\n stop();\n if (reduced || autoplay <= 0 || total < 2 || !inView || document.hidden) return;\n clock = gsap.fromTo(\n fill,\n { scaleX: 0 },\n {\n scaleX: 1,\n duration: autoplay,\n ease: 'none',\n paused: hovering,\n onComplete: () => {\n go(1);\n start();\n },\n }\n );\n };\n const step = (dir: number) => {\n if (busy) return;\n go(dir);\n start();\n };\n\n const listen = (\n target: HTMLElement,\n type: K,\n fn: (event: HTMLElementEventMap[K]) => void\n ) => {\n const handler = contextSafe!(fn as (event: Event) => void);\n target.addEventListener(type, handler as EventListener);\n disposers.push(() => target.removeEventListener(type, handler as EventListener));\n };\n\n listen(q('[data-shutter-prev]'), 'click', () => step(-1));\n listen(q('[data-shutter-next]'), 'click', () => step(1));\n listen(root, 'keydown', (event) => {\n if (event.key === 'ArrowLeft') step(-1);\n if (event.key === 'ArrowRight') step(1);\n });\n\n // Horizontal swipe on touch and pen.\n let sx = 0;\n let sy = 0;\n listen(root, 'pointerdown', (event) => {\n sx = event.clientX;\n sy = event.clientY;\n });\n listen(root, 'pointerup', (event) => {\n if (event.pointerType === 'mouse') return;\n const dx = event.clientX - sx;\n const dy = event.clientY - sy;\n if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) step(dx < 0 ? 1 : -1);\n });\n\n if (canHover()) {\n listen(root, 'pointerenter', () => {\n hovering = true;\n clock?.pause();\n });\n listen(root, 'pointerleave', () => {\n hovering = false;\n clock?.resume();\n });\n }\n\n const onVisibility = contextSafe!(() => (document.hidden ? stop() : start()));\n document.addEventListener('visibilitychange', onVisibility);\n disposers.push(() => document.removeEventListener('visibilitychange', onVisibility));\n\n // Copy lines depend on the width they were split at: re-split after a\n // resize so each line mask matches the real wrapping again.\n let splitWidth = root.offsetWidth;\n let resizeTimer: ReturnType | undefined;\n const resplit = contextSafe!(() => {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(\n contextSafe!(() => {\n if (reduced || root.offsetWidth === splitWidth) return;\n if (busy) return resplit();\n splitWidth = root.offsetWidth;\n parts.forEach((p, i) => {\n p.lineSplit?.revert();\n p.lineSplit = SplitText.create(p.copy, LINE_SPLIT);\n p.lines = p.lineSplit.lines;\n const shown = i === index && revealed;\n gsap.set(\n p.lines,\n shown\n ? { yPercent: 0 }\n : { yPercent: 105, rotation: 2.5, transformOrigin: '0% 100%' }\n );\n });\n }),\n 150\n );\n });\n const resizeObserver = new ResizeObserver(resplit);\n resizeObserver.observe(root);\n disposers.push(() => {\n resizeObserver.disconnect();\n clearTimeout(resizeTimer);\n });\n\n // First slide plays in the first time the slider is on screen.\n const first = parts[0];\n const reveal = () => {\n if (revealed) return;\n revealed = true;\n if (reduced) settle(first);\n else enter(first, 1).delay(0.2);\n };\n\n if (reduced) settle(first);\n else prime(first, 1);\n parts.slice(1).forEach((p) => (reduced ? settle(p) : prime(p, 1)));\n root.setAttribute('data-ready', '');\n\n if (typeof IntersectionObserver === 'undefined') {\n reveal();\n start();\n } else {\n const io = new IntersectionObserver(\n contextSafe!(([entry]: IntersectionObserverEntry[]) => {\n inView = entry.isIntersecting;\n if (!inView) return stop();\n reveal();\n start();\n }),\n { threshold: 0.25 }\n );\n io.observe(root);\n disposers.push(() => io.disconnect());\n }\n\n disposers.push(() => clock?.kill());\n });\n\n // Split only once web fonts are in, so line breaks match the final text;\n // give up after a beat so a slow font can't hold the slider hidden.\n const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n if (fonts) Promise.race([fonts, new Promise((r) => setTimeout(r, 1500))]).then(init);\n else init();\n\n return () => {\n cancelled = true;\n disposers.forEach((dispose) => dispose());\n root.removeAttribute('data-ready');\n };\n },\n { scope: rootRef, dependencies: [slides, autoplay] }\n );\n\n return (\n \n
\n
\n {/* Mirrors a slide's middle row so the pagination lands just under the image. */}\n
\n
\n
\n
\n \n \n \n span]:[grid-area:1/1]\"\n >\n {pad(1)}\n \n \n
\n \n
\n \n span]:[grid-area:1/1]\"\n >\n {pad(Math.min(2, total))}\n \n \n \n
\n
\n\n {/* Hidden until GSAP has posed the first slide, so nothing flashes in place. */}\n
\n {slides.map((slide, i) => (\n 0 && 'invisible'\n )}\n >\n
\n \n {slide.heading}\n \n
\n\n
\n {/* clip-path as well as overflow: WebKit can let composited\n (scaled, will-change) children escape overflow clipping. */}\n
\n \n \n {Array.from({ length: SLATS }, (_, s) => (\n \n {/* A full-frame copy shifted into place, so the slats read as one picture. */}\n \n
\n ))}\n
\n
\n
\n\n {/* pt-16 = pagination (h-12) + the gap under it. */}\n
\n \n {slide.description}\n

\n {slide.caption && (\n \n {slide.caption}\n

\n )}\n
\n
\n ))}\n
\n
\n \n \n );\n}\n", + "codeHtml": "
'use client';\n\nimport { useRef, type ComponentPropsWithoutRef } from 'react';\nimport { useGSAP } from '@gsap/react';\nimport gsap from 'gsap';\nimport { CustomEase } from 'gsap/CustomEase';\nimport { SplitText } from 'gsap/SplitText';\nimport { cn } from '@/lib/utils';\n\ngsap.registerPlugin(useGSAP, CustomEase, SplitText);\nif (!CustomEase.get('shutter-out')) CustomEase.create('shutter-out', '0.16,1,0.3,1');\nif (!CustomEase.get('shutter-in')) CustomEase.create('shutter-in', '0.6,0,0.9,0.35');\nif (!CustomEase.get('shutter-in-out')) CustomEase.create('shutter-in-out', '0.72,0,0.18,1');\n\nconst prefersReducedMotion = () =>\n  typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n/** Hover pauses autoplay — only where there is a real hover. */\nconst canHover = () =>\n  typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches;\n\n/** Vertical slats the incoming image opens through. */\nconst SLATS = 6;\n\nconst pad = (n: number) => String(n).padStart(2, '0');\n\nexport interface ShutterSlide {\n  /** Large serif title above the image. */\n  heading: string;\n  /** Image URL. Any aspect works — it is cropped to a 2:1 frame. */\n  image: string;\n  /** Alt text for the image. Empty marks it decorative. */\n  imageAlt?: string;\n  /** Paragraph under the pagination. */\n  description: string;\n  /** Short uppercase line at the bottom. */\n  caption?: string;\n}\n\nexport interface ShutterSliderProps extends ComponentPropsWithoutRef<'section'> {\n  /** Slides, in order. Defaults to a three-slide sample. */\n  slides?: ShutterSlide[];\n  /** Seconds each slide holds before advancing. `0` turns autoplay off. */\n  autoplay?: number;\n}\n\nconst unsplash = (id: string) =>\n  `https://images.unsplash.com/${id}?w=1600&h=800&fit=crop&auto=format&q=80`;\n\nconst DEFAULT_SLIDES: ShutterSlide[] = [\n  {\n    heading: 'Light first',\n    image: unsplash('photo-1512917774080-9991f1c4c750'),\n    imageAlt: 'A white modern house with floor-to-ceiling glass, a palm and a pool in the sun',\n    description:\n      'Every room is planned around the path of the sun, so mornings start bright and evenings stay warm without reaching for a switch.',\n    caption: 'Designed around daylight',\n  },\n  {\n    heading: 'Room to breathe',\n    image: unsplash('photo-1600607687939-ce8a6c25118c'),\n    imageAlt: 'An open-plan living room flowing into a kitchen under a high white ceiling',\n    description:\n      'Open plans, tall ceilings and quiet corners give every home the space to gather, to work and to slow down.',\n    caption: 'Space that adapts',\n  },\n  {\n    heading: 'Built to last',\n    image: unsplash('photo-1600585154340-be6161a56a0c'),\n    imageAlt: 'A timber-clad house lit warmly from inside at dusk, under a large tree',\n    description:\n      'Stone, timber and lime plaster, chosen to age gracefully and hold their character for decades.',\n    caption: 'Honest materials',\n  },\n];\n\ninterface SlideParts {\n  slide: HTMLElement;\n  heading: HTMLElement;\n  copy: HTMLElement;\n  caption: HTMLElement | null;\n  base: HTMLElement;\n  shutter: HTMLElement;\n  slats: HTMLElement[];\n  slatImgs: HTMLElement[];\n  chars: Element[];\n  lines: Element[];\n  capChars: Element[];\n  lineSplit: SplitText | null;\n}\n\nconst LINE_SPLIT = { type: 'lines', linesClass: 'ss-line', mask: 'lines' } as const;\nconst CHAR_SPLIT = { type: 'words,chars', wordsClass: 'ss-word', charsClass: 'ss-char' } as const;\n\n/** Resting pose: everything in place, base image showing, shutter parked. */\nfunction settle(p: SlideParts) {\n  gsap.set(p.chars, { rotationX: 0, opacity: 1 });\n  gsap.set(p.lines, { yPercent: 0, rotation: 0 });\n  gsap.set(p.capChars, { opacity: 1, yPercent: 0 });\n  if (p.caption) gsap.set(p.caption, { filter: 'none' });\n  gsap.set(p.base, { autoAlpha: 1, scale: 1, filter: 'none' });\n  gsap.set(p.shutter, { autoAlpha: 0 });\n}\n\n/** \"About to enter\" pose, mirrored for `dir` (1 = next, -1 = previous). */\nfunction prime(p: SlideParts, dir: number) {\n  // Letters turn around an axis behind them, like faces on a drum.\n  const depth = parseFloat(getComputedStyle(p.heading).fontSize || '16') * -0.4;\n  gsap.set(p.chars, { rotationX: -95 * dir, opacity: 0, transformOrigin: `50% 50% ${depth}px` });\n  gsap.set(p.lines, { yPercent: 105 * dir, rotation: 2.5 * dir, transformOrigin: '0% 100%' });\n  gsap.set(p.capChars, { opacity: 0, yPercent: 40 * dir });\n  if (p.caption) gsap.set(p.caption, { filter: 'blur(6px)' });\n  gsap.set(p.base, { autoAlpha: 0, scale: 1, filter: 'brightness(1)' });\n  gsap.set(p.shutter, { autoAlpha: 1 });\n  // Alternate slats open from opposite ends — swapped when travelling back.\n  gsap.set(p.slats, {\n    clipPath: (i: number) =>\n      (i % 2 === 0) === dir > 0 ? 'inset(100% 0% 0% 0%)' : 'inset(0% 0% 100% 0%)',\n  });\n  gsap.set(p.slatImgs, { scale: 1.25, yPercent: (i: number) => (i % 2 ? -6 : 6) * dir });\n}\n\nfunction enter(p: SlideParts, dir: number) {\n  const from = dir > 0 ? 'start' : 'end';\n  return (\n    gsap\n      .timeline()\n      // Slats open in a wave from the side we're travelling toward.\n      .to(\n        p.slats,\n        {\n          clipPath: 'inset(0% 0% 0% 0%)',\n          duration: 1.1,\n          ease: 'shutter-in-out',\n          stagger: { each: 0.07, from },\n        },\n        0\n      )\n      .to(\n        p.slatImgs,\n        {\n          scale: 1,\n          yPercent: 0,\n          duration: 1.5,\n          ease: 'shutter-out',\n          stagger: { each: 0.07, from },\n        },\n        0\n      )\n      // Hand over to the single base image so no slat seams remain at rest.\n      .set(p.base, { autoAlpha: 1 })\n      .set(p.shutter, { autoAlpha: 0 })\n      .to(\n        p.chars,\n        {\n          rotationX: 0,\n          opacity: 1,\n          duration: 1,\n          ease: 'shutter-out',\n          stagger: { each: 0.03, from },\n        },\n        0.3\n      )\n      .to(\n        p.lines,\n        { yPercent: 0, rotation: 0, duration: 1, ease: 'shutter-out', stagger: 0.08 },\n        0.45\n      )\n      // Caption pulls focus from the centre outward.\n      .to(\n        p.capChars,\n        {\n          opacity: 1,\n          yPercent: 0,\n          duration: 0.8,\n          ease: 'shutter-out',\n          stagger: { each: 0.012, from: 'center' },\n        },\n        0.65\n      )\n      .to(p.caption, { filter: 'blur(0px)', duration: 0.9, ease: 'shutter-out' }, 0.65)\n  );\n}\n\nfunction exit(p: SlideParts, dir: number) {\n  const from = dir > 0 ? 'start' : 'end';\n  return (\n    gsap\n      .timeline()\n      .to(\n        p.chars,\n        {\n          rotationX: 95 * dir,\n          opacity: 0,\n          duration: 0.55,\n          ease: 'shutter-in',\n          stagger: { each: 0.02, from },\n        },\n        0\n      )\n      .to(\n        p.lines,\n        {\n          yPercent: -105 * dir,\n          rotation: -1.5 * dir,\n          duration: 0.5,\n          ease: 'shutter-in',\n          stagger: 0.05,\n        },\n        0\n      )\n      .to(\n        p.capChars,\n        { opacity: 0, duration: 0.3, ease: 'none', stagger: { each: 0.008, from: 'edges' } },\n        0\n      )\n      // The old picture sinks back and dims under the incoming slats.\n      .to(\n        p.base,\n        { scale: 1.12, filter: 'brightness(0.55)', duration: 1.3, ease: 'shutter-in-out' },\n        0\n      )\n  );\n}\n\nfunction Chevron({ back }: { back?: boolean }) {\n  return (\n    <svg\n      viewBox=\"0 0 16 16\"\n      className={cn('size-4', back && 'rotate-180')}\n      fill=\"none\"\n      aria-hidden=\"true\"\n    >\n      <path\n        d=\"m6 3.5 4.5 4.5L6 12.5\"\n        stroke=\"currentColor\"\n        strokeWidth=\"1.4\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n      />\n    </svg>\n  );\n}\n\nexport default function ShutterSlider({\n  slides = DEFAULT_SLIDES,\n  autoplay = 6,\n  className,\n  'aria-label': ariaLabel = 'Highlights',\n  ...props\n}: ShutterSliderProps) {\n  const rootRef = useRef<HTMLElement>(null);\n  const total = slides.length;\n\n  useGSAP(\n    (_context, contextSafe) => {\n      const root = rootRef.current;\n      if (!root || !total) return;\n\n      const reduced = prefersReducedMotion();\n      const disposers: (() => void)[] = [];\n      let cancelled = false;\n\n      const init = contextSafe!(() => {\n        if (cancelled) return;\n\n        const q = <T extends HTMLElement>(sel: string, scope: ParentNode = root) =>\n          scope.querySelector<T>(sel)!;\n        const currentEl = q('[data-shutter-count=\"current\"]');\n        const nextEl = q('[data-shutter-count=\"next\"]');\n        const fill = q('[data-shutter-progress]');\n\n        const parts: SlideParts[] = gsap.utils\n          .toArray<HTMLElement>('[data-shutter-slide]', root)\n          .map((slide) => {\n            const heading = q('[data-shutter-heading]', slide);\n            const copy = q('[data-shutter-copy]', slide);\n            const caption = slide.querySelector<HTMLElement>('[data-shutter-caption]');\n            // Nothing animates under reduced motion, so the text is left unsplit.\n            const lineSplit = reduced ? null : SplitText.create(copy, LINE_SPLIT);\n            return {\n              slide,\n              heading,\n              copy,\n              caption,\n              base: q('[data-shutter-base]', slide),\n              shutter: q('[data-shutter-slats]', slide),\n              slats: gsap.utils.toArray<HTMLElement>('[data-shutter-slat]', slide),\n              slatImgs: gsap.utils.toArray<HTMLElement>('[data-shutter-slat] > img', slide),\n              chars: reduced ? [] : SplitText.create(heading, CHAR_SPLIT).chars,\n              lines: lineSplit?.lines ?? [],\n              capChars: caption && !reduced ? SplitText.create(caption, CHAR_SPLIT).chars : [],\n              lineSplit,\n            };\n          });\n\n        let index = 0;\n        let busy = false;\n        let revealed = false;\n        let inView = typeof IntersectionObserver === 'undefined';\n        let hovering = false;\n        let clock: gsap.core.Tween | null = null;\n\n        // All slides share one grid cell, so switching is only visibility —\n        // the section keeps the tallest slide's height and never jumps.\n        const show = (p: SlideParts, on: boolean) =>\n          gsap.set(p.slide, { visibility: on ? 'visible' : 'hidden', zIndex: on ? 1 : 'auto' });\n        parts.forEach((p, i) => show(p, i === 0));\n\n        // Odometer: the old number rolls out as the new one rolls in.\n        const roll = (el: HTMLElement, value: number, dir: number, instant?: boolean) => {\n          const old = el.lastElementChild as HTMLElement | null;\n          const next = document.createElement('span');\n          next.textContent = pad(value);\n          el.appendChild(next);\n          if (instant || !old || reduced) return old?.remove();\n          gsap.fromTo(\n            next,\n            { yPercent: 100 * dir },\n            { yPercent: 0, duration: 0.7, ease: 'shutter-out' }\n          );\n          gsap.to(old, {\n            yPercent: -100 * dir,\n            duration: 0.7,\n            ease: 'shutter-out',\n            onComplete: () => old.remove(),\n          });\n        };\n        const counters = (dir: number, instant?: boolean) => {\n          roll(currentEl, index + 1, dir, instant);\n          roll(nextEl, ((index + 1) % total) + 1, dir, instant);\n        };\n        currentEl.textContent = '';\n        nextEl.textContent = '';\n        counters(1, true);\n\n        const go = (dir: number) => {\n          if (busy || total < 2) return;\n          busy = true;\n          const out = parts[index];\n          index = (index + dir + total) % total;\n          const inn = parts[index];\n          counters(dir);\n          root.setAttribute('data-index', String(index));\n\n          show(inn, true);\n          gsap.set(out.slide, { zIndex: 0 });\n\n          if (reduced) {\n            settle(inn);\n            show(out, false);\n            busy = false;\n            return;\n          }\n\n          prime(inn, dir);\n          gsap\n            .timeline({\n              onComplete: () => {\n                show(out, false);\n                gsap.set(inn.slide, { zIndex: 1 });\n                busy = false;\n              },\n            })\n            .add(exit(out, dir), 0)\n            .add(enter(inn, dir), 0.15);\n        };\n\n        // Autoplay: the progress line is the clock.\n        const stop = () => {\n          clock?.kill();\n          clock = null;\n          gsap.set(fill, { scaleX: 0 });\n        };\n        const start = () => {\n          stop();\n          if (reduced || autoplay <= 0 || total < 2 || !inView || document.hidden) return;\n          clock = gsap.fromTo(\n            fill,\n            { scaleX: 0 },\n            {\n              scaleX: 1,\n              duration: autoplay,\n              ease: 'none',\n              paused: hovering,\n              onComplete: () => {\n                go(1);\n                start();\n              },\n            }\n          );\n        };\n        const step = (dir: number) => {\n          if (busy) return;\n          go(dir);\n          start();\n        };\n\n        const listen = <K extends keyof HTMLElementEventMap>(\n          target: HTMLElement,\n          type: K,\n          fn: (event: HTMLElementEventMap[K]) => void\n        ) => {\n          const handler = contextSafe!(fn as (event: Event) => void);\n          target.addEventListener(type, handler as EventListener);\n          disposers.push(() => target.removeEventListener(type, handler as EventListener));\n        };\n\n        listen(q('[data-shutter-prev]'), 'click', () => step(-1));\n        listen(q('[data-shutter-next]'), 'click', () => step(1));\n        listen(root, 'keydown', (event) => {\n          if (event.key === 'ArrowLeft') step(-1);\n          if (event.key === 'ArrowRight') step(1);\n        });\n\n        // Horizontal swipe on touch and pen.\n        let sx = 0;\n        let sy = 0;\n        listen(root, 'pointerdown', (event) => {\n          sx = event.clientX;\n          sy = event.clientY;\n        });\n        listen(root, 'pointerup', (event) => {\n          if (event.pointerType === 'mouse') return;\n          const dx = event.clientX - sx;\n          const dy = event.clientY - sy;\n          if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) step(dx < 0 ? 1 : -1);\n        });\n\n        if (canHover()) {\n          listen(root, 'pointerenter', () => {\n            hovering = true;\n            clock?.pause();\n          });\n          listen(root, 'pointerleave', () => {\n            hovering = false;\n            clock?.resume();\n          });\n        }\n\n        const onVisibility = contextSafe!(() => (document.hidden ? stop() : start()));\n        document.addEventListener('visibilitychange', onVisibility);\n        disposers.push(() => document.removeEventListener('visibilitychange', onVisibility));\n\n        // Copy lines depend on the width they were split at: re-split after a\n        // resize so each line mask matches the real wrapping again.\n        let splitWidth = root.offsetWidth;\n        let resizeTimer: ReturnType<typeof setTimeout> | undefined;\n        const resplit = contextSafe!(() => {\n          clearTimeout(resizeTimer);\n          resizeTimer = setTimeout(\n            contextSafe!(() => {\n              if (reduced || root.offsetWidth === splitWidth) return;\n              if (busy) return resplit();\n              splitWidth = root.offsetWidth;\n              parts.forEach((p, i) => {\n                p.lineSplit?.revert();\n                p.lineSplit = SplitText.create(p.copy, LINE_SPLIT);\n                p.lines = p.lineSplit.lines;\n                const shown = i === index && revealed;\n                gsap.set(\n                  p.lines,\n                  shown\n                    ? { yPercent: 0 }\n                    : { yPercent: 105, rotation: 2.5, transformOrigin: '0% 100%' }\n                );\n              });\n            }),\n            150\n          );\n        });\n        const resizeObserver = new ResizeObserver(resplit);\n        resizeObserver.observe(root);\n        disposers.push(() => {\n          resizeObserver.disconnect();\n          clearTimeout(resizeTimer);\n        });\n\n        // First slide plays in the first time the slider is on screen.\n        const first = parts[0];\n        const reveal = () => {\n          if (revealed) return;\n          revealed = true;\n          if (reduced) settle(first);\n          else enter(first, 1).delay(0.2);\n        };\n\n        if (reduced) settle(first);\n        else prime(first, 1);\n        parts.slice(1).forEach((p) => (reduced ? settle(p) : prime(p, 1)));\n        root.setAttribute('data-ready', '');\n\n        if (typeof IntersectionObserver === 'undefined') {\n          reveal();\n          start();\n        } else {\n          const io = new IntersectionObserver(\n            contextSafe!(([entry]: IntersectionObserverEntry[]) => {\n              inView = entry.isIntersecting;\n              if (!inView) return stop();\n              reveal();\n              start();\n            }),\n            { threshold: 0.25 }\n          );\n          io.observe(root);\n          disposers.push(() => io.disconnect());\n        }\n\n        disposers.push(() => clock?.kill());\n      });\n\n      // Split only once web fonts are in, so line breaks match the final text;\n      // give up after a beat so a slow font can't hold the slider hidden.\n      const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined;\n      if (fonts) Promise.race([fonts, new Promise((r) => setTimeout(r, 1500))]).then(init);\n      else init();\n\n      return () => {\n        cancelled = true;\n        disposers.forEach((dispose) => dispose());\n        root.removeAttribute('data-ready');\n      };\n    },\n    { scope: rootRef, dependencies: [slides, autoplay] }\n  );\n\n  return (\n    <section\n      ref={rootRef}\n      data-shutter-slider\n      data-index=\"0\"\n      aria-roledescription=\"carousel\"\n      aria-label={ariaLabel}\n      className={cn(\n        'group/shutter relative overflow-hidden bg-[#eef1f4] px-6 py-20 text-[#1b2a41] md:px-10 md:py-28 dark:bg-[#15130f] dark:text-[#efe6d8]',\n        className\n      )}\n      {...props}\n    >\n      <div className=\"mx-auto grid max-w-[1200px] grid-cols-10 gap-x-4\">\n        <div className=\"relative col-span-10 flex flex-col justify-center md:col-span-8 md:col-start-2\">\n          {/* Mirrors a slide's middle row so the pagination lands just under the image. */}\n          <div className=\"pointer-events-none absolute inset-x-0 top-1/2 z-10 flex -translate-y-1/2 flex-col items-center\">\n            <div className=\"h-16 shrink-0\" />\n            <div aria-hidden=\"true\" className=\"aspect-[2/1] w-[min(100%,50rem)] shrink-0\" />\n            <div className=\"h-4 shrink-0\" />\n            <div\n              className={cn(\n                'pointer-events-auto flex h-12 items-center justify-center gap-8 text-xs text-[#a9532f] dark:text-[#e39468]',\n                total < 2 && 'hidden'\n              )}\n            >\n              <button\n                type=\"button\"\n                data-shutter-prev\n                aria-label=\"Previous slide\"\n                className=\"flex h-12 items-center gap-4 pl-2 transition-opacity hover:opacity-60 focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-current motion-reduce:transition-none\"\n              >\n                <Chevron back />\n                <span\n                  data-shutter-count=\"current\"\n                  aria-hidden=\"true\"\n                  className=\"grid h-[1em] w-6 overflow-clip text-center leading-none tabular-nums [&>span]:[grid-area:1/1]\"\n                >\n                  {pad(1)}\n                </span>\n              </button>\n              <div className=\"h-px w-40 bg-[#1b2a41]/15 dark:bg-[#efe6d8]/15\">\n                <div\n                  data-shutter-progress\n                  className=\"h-full w-full origin-left scale-x-0 bg-current\"\n                />\n              </div>\n              <button\n                type=\"button\"\n                data-shutter-next\n                aria-label=\"Next slide\"\n                className=\"flex h-12 items-center gap-4 pr-2 transition-opacity hover:opacity-60 focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-current motion-reduce:transition-none\"\n              >\n                <span\n                  data-shutter-count=\"next\"\n                  aria-hidden=\"true\"\n                  className=\"grid h-[1em] w-6 overflow-clip text-center leading-none tabular-nums [&>span]:[grid-area:1/1]\"\n                >\n                  {pad(Math.min(2, total))}\n                </span>\n                <Chevron />\n              </button>\n            </div>\n          </div>\n\n          {/* Hidden until GSAP has posed the first slide, so nothing flashes in place. */}\n          <div className=\"grid opacity-0 group-data-[ready]/shutter:opacity-100\">\n            {slides.map((slide, i) => (\n              <div\n                key={`${slide.heading}-${i}`}\n                data-shutter-slide\n                role=\"group\"\n                aria-roledescription=\"slide\"\n                aria-label={`${i + 1} of ${total}`}\n                className={cn(\n                  'grid min-w-0 grid-rows-[1fr_auto_1fr] [grid-area:1/1]',\n                  i > 0 && 'invisible'\n                )}\n              >\n                <div className=\"flex flex-col justify-end pb-8\">\n                  <h3\n                    data-shutter-heading\n                    className=\"text-center font-serif text-[clamp(2.5rem,6.25vw,6rem)] leading-[0.9] font-normal tracking-tight uppercase [&_.ss-char]:inline-block [&_.ss-char]:will-change-transform [&_.ss-char]:backface-hidden motion-reduce:[&_.ss-char]:will-change-auto [&_.ss-word]:inline-block [&_.ss-word]:perspective-[700px]\"\n                  >\n                    {slide.heading}\n                  </h3>\n                </div>\n\n                <div className=\"flex flex-col items-center py-4\">\n                  {/* clip-path as well as overflow: WebKit can let composited\n                      (scaled, will-change) children escape overflow clipping. */}\n                  <div className=\"relative aspect-[2/1] w-[min(100%,50rem)] shrink-0 overflow-clip [clip-path:inset(0)]\">\n                    <img\n                      data-shutter-base\n                      src={slide.image}\n                      alt={slide.imageAlt ?? ''}\n                      className=\"absolute inset-0 size-full max-w-none object-cover\"\n                      draggable={false}\n                    />\n                    <div\n                      data-shutter-slats\n                      aria-hidden=\"true\"\n                      className=\"pointer-events-none invisible absolute inset-0\"\n                    >\n                      {Array.from({ length: SLATS }, (_, s) => (\n                        <div\n                          key={s}\n                          data-shutter-slat\n                          className=\"absolute inset-y-0 overflow-clip\"\n                          style={{ left: `${(s * 100) / SLATS}%`, width: `${100 / SLATS}%` }}\n                        >\n                          {/* A full-frame copy shifted into place, so the slats read as one picture. */}\n                          <img\n                            src={slide.image}\n                            alt=\"\"\n                            className=\"absolute top-0 h-full max-w-none object-cover will-change-transform motion-reduce:will-change-auto\"\n                            style={{ width: `${SLATS * 100}%`, left: `${-s * 100}%` }}\n                            draggable={false}\n                          />\n                        </div>\n                      ))}\n                    </div>\n                  </div>\n                </div>\n\n                {/* pt-16 = pagination (h-12) + the gap under it. */}\n                <div className=\"flex flex-col pt-16\">\n                  <p\n                    data-shutter-copy\n                    className=\"mx-auto max-w-[36rem] text-center text-base leading-normal [&_.ss-line]:will-change-transform [&_.ss-line]:backface-hidden motion-reduce:[&_.ss-line]:will-change-auto\"\n                  >\n                    {slide.description}\n                  </p>\n                  {slide.caption && (\n                    <p\n                      data-shutter-caption\n                      className=\"mx-auto mt-6 max-w-[18rem] text-center text-xs leading-snug font-semibold tracking-[0.08em] uppercase [&_.ss-char]:inline-block [&_.ss-word]:inline-block\"\n                    >\n                      {slide.caption}\n                    </p>\n                  )}\n                </div>\n              </div>\n            ))}\n          </div>\n        </div>\n      </div>\n    </section>\n  );\n}\n
" + } } }; diff --git a/apps/docs/registry/demos/shutter-slider.tsx b/apps/docs/registry/demos/shutter-slider.tsx new file mode 100644 index 0000000..de9fb6f --- /dev/null +++ b/apps/docs/registry/demos/shutter-slider.tsx @@ -0,0 +1,11 @@ +'use client'; + +import ShutterSlider from '@/registry/tweenui/shutter-slider'; + +export default function ShutterSliderDemo() { + return ( +
+ +
+ ); +} diff --git a/apps/docs/registry/registry-blocks.ts b/apps/docs/registry/registry-blocks.ts index 0882eaf..2c5f4d7 100644 --- a/apps/docs/registry/registry-blocks.ts +++ b/apps/docs/registry/registry-blocks.ts @@ -682,6 +682,39 @@ export default function Example() { export default function Example() { return ; +}`, + }, + }, + { + name: 'shutter-slider', + type: 'block', + title: 'Shutter Slider', + description: + 'An autoplaying feature slider. Each image opens through vertical slats that alternate from the top and bottom, the headline letters roll in like drum faces, copy lines rise through masks and the caption pulls into focus — all mirrored when you travel back.', + isNew: true, + media: {}, + dependencies: ['gsap', '@gsap/react'], + registryDependencies: [], + cssVars: {}, + files: [ + { + path: 'registry/tweenui/shutter-slider.tsx', + target: 'components/tweenui/shutter-slider.tsx', + kind: 'react', + }, + ], + variants: [ + { + id: 'default', + label: 'Preview', + reactSource: 'registry/tweenui/shutter-slider.tsx', + }, + ], + usage: { + react: `import ShutterSlider from '@/components/tweenui/shutter-slider'; + +export default function Example() { + return ; }`, }, }, diff --git a/apps/docs/registry/tweenui/shutter-slider.tsx b/apps/docs/registry/tweenui/shutter-slider.tsx new file mode 100644 index 0000000..749dd41 --- /dev/null +++ b/apps/docs/registry/tweenui/shutter-slider.tsx @@ -0,0 +1,677 @@ +'use client'; + +import { useRef, type ComponentPropsWithoutRef } from 'react'; +import { useGSAP } from '@gsap/react'; +import gsap from 'gsap'; +import { CustomEase } from 'gsap/CustomEase'; +import { SplitText } from 'gsap/SplitText'; +import { cn } from '@/lib/utils'; + +gsap.registerPlugin(useGSAP, CustomEase, SplitText); +if (!CustomEase.get('shutter-out')) CustomEase.create('shutter-out', '0.16,1,0.3,1'); +if (!CustomEase.get('shutter-in')) CustomEase.create('shutter-in', '0.6,0,0.9,0.35'); +if (!CustomEase.get('shutter-in-out')) CustomEase.create('shutter-in-out', '0.72,0,0.18,1'); + +const prefersReducedMotion = () => + typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches; + +/** Hover pauses autoplay — only where there is a real hover. */ +const canHover = () => + typeof window !== 'undefined' && window.matchMedia('(hover: hover) and (pointer: fine)').matches; + +/** Vertical slats the incoming image opens through. */ +const SLATS = 6; + +const pad = (n: number) => String(n).padStart(2, '0'); + +export interface ShutterSlide { + /** Large serif title above the image. */ + heading: string; + /** Image URL. Any aspect works — it is cropped to a 2:1 frame. */ + image: string; + /** Alt text for the image. Empty marks it decorative. */ + imageAlt?: string; + /** Paragraph under the pagination. */ + description: string; + /** Short uppercase line at the bottom. */ + caption?: string; +} + +export interface ShutterSliderProps extends ComponentPropsWithoutRef<'section'> { + /** Slides, in order. Defaults to a three-slide sample. */ + slides?: ShutterSlide[]; + /** Seconds each slide holds before advancing. `0` turns autoplay off. */ + autoplay?: number; +} + +const unsplash = (id: string) => + `https://images.unsplash.com/${id}?w=1600&h=800&fit=crop&auto=format&q=80`; + +const DEFAULT_SLIDES: ShutterSlide[] = [ + { + heading: 'Light first', + image: unsplash('photo-1512917774080-9991f1c4c750'), + imageAlt: 'A white modern house with floor-to-ceiling glass, a palm and a pool in the sun', + description: + 'Every room is planned around the path of the sun, so mornings start bright and evenings stay warm without reaching for a switch.', + caption: 'Designed around daylight', + }, + { + heading: 'Room to breathe', + image: unsplash('photo-1600607687939-ce8a6c25118c'), + imageAlt: 'An open-plan living room flowing into a kitchen under a high white ceiling', + description: + 'Open plans, tall ceilings and quiet corners give every home the space to gather, to work and to slow down.', + caption: 'Space that adapts', + }, + { + heading: 'Built to last', + image: unsplash('photo-1600585154340-be6161a56a0c'), + imageAlt: 'A timber-clad house lit warmly from inside at dusk, under a large tree', + description: + 'Stone, timber and lime plaster, chosen to age gracefully and hold their character for decades.', + caption: 'Honest materials', + }, +]; + +interface SlideParts { + slide: HTMLElement; + heading: HTMLElement; + copy: HTMLElement; + caption: HTMLElement | null; + base: HTMLElement; + shutter: HTMLElement; + slats: HTMLElement[]; + slatImgs: HTMLElement[]; + chars: Element[]; + lines: Element[]; + capChars: Element[]; + lineSplit: SplitText | null; +} + +const LINE_SPLIT = { type: 'lines', linesClass: 'ss-line', mask: 'lines' } as const; +const CHAR_SPLIT = { type: 'words,chars', wordsClass: 'ss-word', charsClass: 'ss-char' } as const; + +/** Resting pose: everything in place, base image showing, shutter parked. */ +function settle(p: SlideParts) { + gsap.set(p.chars, { rotationX: 0, opacity: 1 }); + gsap.set(p.lines, { yPercent: 0, rotation: 0 }); + gsap.set(p.capChars, { opacity: 1, yPercent: 0 }); + if (p.caption) gsap.set(p.caption, { filter: 'none' }); + gsap.set(p.base, { autoAlpha: 1, scale: 1, filter: 'none' }); + gsap.set(p.shutter, { autoAlpha: 0 }); +} + +/** "About to enter" pose, mirrored for `dir` (1 = next, -1 = previous). */ +function prime(p: SlideParts, dir: number) { + // Letters turn around an axis behind them, like faces on a drum. + const depth = parseFloat(getComputedStyle(p.heading).fontSize || '16') * -0.4; + gsap.set(p.chars, { rotationX: -95 * dir, opacity: 0, transformOrigin: `50% 50% ${depth}px` }); + gsap.set(p.lines, { yPercent: 105 * dir, rotation: 2.5 * dir, transformOrigin: '0% 100%' }); + gsap.set(p.capChars, { opacity: 0, yPercent: 40 * dir }); + if (p.caption) gsap.set(p.caption, { filter: 'blur(6px)' }); + gsap.set(p.base, { autoAlpha: 0, scale: 1, filter: 'brightness(1)' }); + gsap.set(p.shutter, { autoAlpha: 1 }); + // Alternate slats open from opposite ends — swapped when travelling back. + gsap.set(p.slats, { + clipPath: (i: number) => + (i % 2 === 0) === dir > 0 ? 'inset(100% 0% 0% 0%)' : 'inset(0% 0% 100% 0%)', + }); + gsap.set(p.slatImgs, { scale: 1.25, yPercent: (i: number) => (i % 2 ? -6 : 6) * dir }); +} + +function enter(p: SlideParts, dir: number) { + const from = dir > 0 ? 'start' : 'end'; + return ( + gsap + .timeline() + // Slats open in a wave from the side we're travelling toward. + .to( + p.slats, + { + clipPath: 'inset(0% 0% 0% 0%)', + duration: 1.1, + ease: 'shutter-in-out', + stagger: { each: 0.07, from }, + }, + 0 + ) + .to( + p.slatImgs, + { + scale: 1, + yPercent: 0, + duration: 1.5, + ease: 'shutter-out', + stagger: { each: 0.07, from }, + }, + 0 + ) + // Hand over to the single base image so no slat seams remain at rest. + .set(p.base, { autoAlpha: 1 }) + .set(p.shutter, { autoAlpha: 0 }) + .to( + p.chars, + { + rotationX: 0, + opacity: 1, + duration: 1, + ease: 'shutter-out', + stagger: { each: 0.03, from }, + }, + 0.3 + ) + .to( + p.lines, + { yPercent: 0, rotation: 0, duration: 1, ease: 'shutter-out', stagger: 0.08 }, + 0.45 + ) + // Caption pulls focus from the centre outward. + .to( + p.capChars, + { + opacity: 1, + yPercent: 0, + duration: 0.8, + ease: 'shutter-out', + stagger: { each: 0.012, from: 'center' }, + }, + 0.65 + ) + .to(p.caption, { filter: 'blur(0px)', duration: 0.9, ease: 'shutter-out' }, 0.65) + ); +} + +function exit(p: SlideParts, dir: number) { + const from = dir > 0 ? 'start' : 'end'; + return ( + gsap + .timeline() + .to( + p.chars, + { + rotationX: 95 * dir, + opacity: 0, + duration: 0.55, + ease: 'shutter-in', + stagger: { each: 0.02, from }, + }, + 0 + ) + .to( + p.lines, + { + yPercent: -105 * dir, + rotation: -1.5 * dir, + duration: 0.5, + ease: 'shutter-in', + stagger: 0.05, + }, + 0 + ) + .to( + p.capChars, + { opacity: 0, duration: 0.3, ease: 'none', stagger: { each: 0.008, from: 'edges' } }, + 0 + ) + // The old picture sinks back and dims under the incoming slats. + .to( + p.base, + { scale: 1.12, filter: 'brightness(0.55)', duration: 1.3, ease: 'shutter-in-out' }, + 0 + ) + ); +} + +function Chevron({ back }: { back?: boolean }) { + return ( + + ); +} + +export default function ShutterSlider({ + slides = DEFAULT_SLIDES, + autoplay = 6, + className, + 'aria-label': ariaLabel = 'Highlights', + ...props +}: ShutterSliderProps) { + const rootRef = useRef(null); + const total = slides.length; + + useGSAP( + (_context, contextSafe) => { + const root = rootRef.current; + if (!root || !total) return; + + const reduced = prefersReducedMotion(); + const disposers: (() => void)[] = []; + let cancelled = false; + + const init = contextSafe!(() => { + if (cancelled) return; + + const q = (sel: string, scope: ParentNode = root) => + scope.querySelector(sel)!; + const currentEl = q('[data-shutter-count="current"]'); + const nextEl = q('[data-shutter-count="next"]'); + const fill = q('[data-shutter-progress]'); + + const parts: SlideParts[] = gsap.utils + .toArray('[data-shutter-slide]', root) + .map((slide) => { + const heading = q('[data-shutter-heading]', slide); + const copy = q('[data-shutter-copy]', slide); + const caption = slide.querySelector('[data-shutter-caption]'); + // Nothing animates under reduced motion, so the text is left unsplit. + const lineSplit = reduced ? null : SplitText.create(copy, LINE_SPLIT); + return { + slide, + heading, + copy, + caption, + base: q('[data-shutter-base]', slide), + shutter: q('[data-shutter-slats]', slide), + slats: gsap.utils.toArray('[data-shutter-slat]', slide), + slatImgs: gsap.utils.toArray('[data-shutter-slat] > img', slide), + chars: reduced ? [] : SplitText.create(heading, CHAR_SPLIT).chars, + lines: lineSplit?.lines ?? [], + capChars: caption && !reduced ? SplitText.create(caption, CHAR_SPLIT).chars : [], + lineSplit, + }; + }); + + let index = 0; + let busy = false; + let revealed = false; + let inView = typeof IntersectionObserver === 'undefined'; + let hovering = false; + let clock: gsap.core.Tween | null = null; + + // All slides share one grid cell, so switching is only visibility — + // the section keeps the tallest slide's height and never jumps. + const show = (p: SlideParts, on: boolean) => + gsap.set(p.slide, { visibility: on ? 'visible' : 'hidden', zIndex: on ? 1 : 'auto' }); + parts.forEach((p, i) => show(p, i === 0)); + + // Odometer: the old number rolls out as the new one rolls in. + const roll = (el: HTMLElement, value: number, dir: number, instant?: boolean) => { + const old = el.lastElementChild as HTMLElement | null; + const next = document.createElement('span'); + next.textContent = pad(value); + el.appendChild(next); + if (instant || !old || reduced) return old?.remove(); + gsap.fromTo( + next, + { yPercent: 100 * dir }, + { yPercent: 0, duration: 0.7, ease: 'shutter-out' } + ); + gsap.to(old, { + yPercent: -100 * dir, + duration: 0.7, + ease: 'shutter-out', + onComplete: () => old.remove(), + }); + }; + const counters = (dir: number, instant?: boolean) => { + roll(currentEl, index + 1, dir, instant); + roll(nextEl, ((index + 1) % total) + 1, dir, instant); + }; + currentEl.textContent = ''; + nextEl.textContent = ''; + counters(1, true); + + const go = (dir: number) => { + if (busy || total < 2) return; + busy = true; + const out = parts[index]; + index = (index + dir + total) % total; + const inn = parts[index]; + counters(dir); + root.setAttribute('data-index', String(index)); + + show(inn, true); + gsap.set(out.slide, { zIndex: 0 }); + + if (reduced) { + settle(inn); + show(out, false); + busy = false; + return; + } + + prime(inn, dir); + gsap + .timeline({ + onComplete: () => { + show(out, false); + gsap.set(inn.slide, { zIndex: 1 }); + busy = false; + }, + }) + .add(exit(out, dir), 0) + .add(enter(inn, dir), 0.15); + }; + + // Autoplay: the progress line is the clock. + const stop = () => { + clock?.kill(); + clock = null; + gsap.set(fill, { scaleX: 0 }); + }; + const start = () => { + stop(); + if (reduced || autoplay <= 0 || total < 2 || !inView || document.hidden) return; + clock = gsap.fromTo( + fill, + { scaleX: 0 }, + { + scaleX: 1, + duration: autoplay, + ease: 'none', + paused: hovering, + onComplete: () => { + go(1); + start(); + }, + } + ); + }; + const step = (dir: number) => { + if (busy) return; + go(dir); + start(); + }; + + const listen = ( + target: HTMLElement, + type: K, + fn: (event: HTMLElementEventMap[K]) => void + ) => { + const handler = contextSafe!(fn as (event: Event) => void); + target.addEventListener(type, handler as EventListener); + disposers.push(() => target.removeEventListener(type, handler as EventListener)); + }; + + listen(q('[data-shutter-prev]'), 'click', () => step(-1)); + listen(q('[data-shutter-next]'), 'click', () => step(1)); + listen(root, 'keydown', (event) => { + if (event.key === 'ArrowLeft') step(-1); + if (event.key === 'ArrowRight') step(1); + }); + + // Horizontal swipe on touch and pen. + let sx = 0; + let sy = 0; + listen(root, 'pointerdown', (event) => { + sx = event.clientX; + sy = event.clientY; + }); + listen(root, 'pointerup', (event) => { + if (event.pointerType === 'mouse') return; + const dx = event.clientX - sx; + const dy = event.clientY - sy; + if (Math.abs(dx) > 40 && Math.abs(dx) > Math.abs(dy)) step(dx < 0 ? 1 : -1); + }); + + if (canHover()) { + listen(root, 'pointerenter', () => { + hovering = true; + clock?.pause(); + }); + listen(root, 'pointerleave', () => { + hovering = false; + clock?.resume(); + }); + } + + const onVisibility = contextSafe!(() => (document.hidden ? stop() : start())); + document.addEventListener('visibilitychange', onVisibility); + disposers.push(() => document.removeEventListener('visibilitychange', onVisibility)); + + // Copy lines depend on the width they were split at: re-split after a + // resize so each line mask matches the real wrapping again. + let splitWidth = root.offsetWidth; + let resizeTimer: ReturnType | undefined; + const resplit = contextSafe!(() => { + clearTimeout(resizeTimer); + resizeTimer = setTimeout( + contextSafe!(() => { + if (reduced || root.offsetWidth === splitWidth) return; + if (busy) return resplit(); + splitWidth = root.offsetWidth; + parts.forEach((p, i) => { + p.lineSplit?.revert(); + p.lineSplit = SplitText.create(p.copy, LINE_SPLIT); + p.lines = p.lineSplit.lines; + const shown = i === index && revealed; + gsap.set( + p.lines, + shown + ? { yPercent: 0 } + : { yPercent: 105, rotation: 2.5, transformOrigin: '0% 100%' } + ); + }); + }), + 150 + ); + }); + const resizeObserver = new ResizeObserver(resplit); + resizeObserver.observe(root); + disposers.push(() => { + resizeObserver.disconnect(); + clearTimeout(resizeTimer); + }); + + // First slide plays in the first time the slider is on screen. + const first = parts[0]; + const reveal = () => { + if (revealed) return; + revealed = true; + if (reduced) settle(first); + else enter(first, 1).delay(0.2); + }; + + if (reduced) settle(first); + else prime(first, 1); + parts.slice(1).forEach((p) => (reduced ? settle(p) : prime(p, 1))); + root.setAttribute('data-ready', ''); + + if (typeof IntersectionObserver === 'undefined') { + reveal(); + start(); + } else { + const io = new IntersectionObserver( + contextSafe!(([entry]: IntersectionObserverEntry[]) => { + inView = entry.isIntersecting; + if (!inView) return stop(); + reveal(); + start(); + }), + { threshold: 0.25 } + ); + io.observe(root); + disposers.push(() => io.disconnect()); + } + + disposers.push(() => clock?.kill()); + }); + + // Split only once web fonts are in, so line breaks match the final text; + // give up after a beat so a slow font can't hold the slider hidden. + const fonts = typeof document !== 'undefined' ? document.fonts?.ready : undefined; + if (fonts) Promise.race([fonts, new Promise((r) => setTimeout(r, 1500))]).then(init); + else init(); + + return () => { + cancelled = true; + disposers.forEach((dispose) => dispose()); + root.removeAttribute('data-ready'); + }; + }, + { scope: rootRef, dependencies: [slides, autoplay] } + ); + + return ( +
+
+
+ {/* Mirrors a slide's middle row so the pagination lands just under the image. */} +
+
+ +
+ ); +} diff --git a/apps/docs/tests/shutter-slider.test.tsx b/apps/docs/tests/shutter-slider.test.tsx new file mode 100644 index 0000000..ad8a450 --- /dev/null +++ b/apps/docs/tests/shutter-slider.test.tsx @@ -0,0 +1,150 @@ +import { fireEvent, render, screen } from '@testing-library/react'; +import gsap from 'gsap'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import ShutterSlider, { type ShutterSlide } from '@/registry/tweenui/shutter-slider'; + +const SLIDES: ShutterSlide[] = [ + { + heading: 'Light first', + image: 'https://example.com/a.jpg', + imageAlt: 'A sunny house', + description: 'Planned around the sun.', + caption: 'Designed around daylight', + }, + { + heading: 'Room to breathe', + image: 'https://example.com/b.jpg', + description: 'Open plans and tall ceilings.', + caption: 'Space that adapts', + }, + { + heading: 'Built to last', + image: 'https://example.com/c.jpg', + description: 'Stone, timber and lime.', + }, +]; + +// SplitText needs real layout; reduced motion skips splitting and all tweens in jsdom. +const setMedia = ({ reduce = true, hover = true } = {}) => { + window.matchMedia = vi.fn().mockImplementation((query: string) => ({ + matches: query.includes('reduce') ? reduce : query.includes('hover') ? hover : false, + media: query, + onchange: null, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + addListener: vi.fn(), + removeListener: vi.fn(), + dispatchEvent: vi.fn(), + })) as unknown as typeof window.matchMedia; +}; + +const slidesOf = (container: HTMLElement) => + Array.from(container.querySelectorAll('[data-shutter-slide]')); + +/** The last span is the settled number; an outgoing one may still be rolling away. */ +const counter = (container: HTMLElement, which: 'current' | 'next') => + container.querySelector(`[data-shutter-count="${which}"]`)?.lastElementChild?.textContent; + +describe('Shutter Slider', () => { + beforeEach(() => setMedia()); + afterEach(() => vi.restoreAllMocks()); + + it('renders a labelled carousel with one labelled group per slide', () => { + render(); + + expect(screen.getByRole('region', { name: 'Why us' })).toHaveAttribute( + 'aria-roledescription', + 'carousel' + ); + const groups = screen.getAllByRole('group', { hidden: true }); + expect(groups).toHaveLength(3); + expect(groups[0]).toHaveAccessibleName('1 of 3'); + // Inactive slides are hidden, so they have no accessible name until shown. + expect(groups[2]).toHaveAttribute('aria-label', '3 of 3'); + }); + + it('renders every slide’s heading, copy and optional caption', () => { + const { container } = render(); + const [first, , last] = slidesOf(container); + + expect(first).toHaveTextContent('Light first'); + expect(first).toHaveTextContent('Planned around the sun.'); + expect(first.querySelector('[data-shutter-caption]')).toHaveTextContent( + 'Designed around daylight' + ); + expect(last.querySelector('[data-shutter-caption]')).toBeNull(); + }); + + it('gives the base image its alt text and hides the shutter slats', () => { + const { container } = render(); + const [first] = slidesOf(container); + + expect(first.querySelector('[data-shutter-base]')).toHaveAttribute('alt', 'A sunny house'); + const shutter = first.querySelector('[data-shutter-slats]')!; + expect(shutter).toHaveAttribute('aria-hidden', 'true'); + expect(shutter.querySelectorAll('[data-shutter-slat]')).toHaveLength(6); + }); + + it('shows only the first slide and numbers the pagination', () => { + const { container } = render(); + const [first, second, third] = slidesOf(container); + + expect(first.style.visibility).toBe('visible'); + expect(second.style.visibility).toBe('hidden'); + expect(third.style.visibility).toBe('hidden'); + expect(counter(container, 'current')).toBe('01'); + expect(counter(container, 'next')).toBe('02'); + }); + + it('steps forward and back with the buttons, wrapping at the ends', () => { + const { container } = render(); + const slides = slidesOf(container); + const root = container.querySelector('[data-shutter-slider]')!; + + fireEvent.click(screen.getByRole('button', { name: 'Next slide' })); + expect(root).toHaveAttribute('data-index', '1'); + expect(slides[1].style.visibility).toBe('visible'); + expect(slides[0].style.visibility).toBe('hidden'); + expect(counter(container, 'current')).toBe('02'); + expect(counter(container, 'next')).toBe('03'); + + fireEvent.click(screen.getByRole('button', { name: 'Previous slide' })); + fireEvent.click(screen.getByRole('button', { name: 'Previous slide' })); + expect(root).toHaveAttribute('data-index', '2'); + expect(slides[2].style.visibility).toBe('visible'); + expect(counter(container, 'current')).toBe('03'); + expect(counter(container, 'next')).toBe('01'); + }); + + it('steps with the arrow keys', () => { + const { container } = render(); + const root = container.querySelector('[data-shutter-slider]')!; + + fireEvent.keyDown(root, { key: 'ArrowRight' }); + expect(root).toHaveAttribute('data-index', '1'); + fireEvent.keyDown(root, { key: 'ArrowLeft' }); + expect(root).toHaveAttribute('data-index', '0'); + }); + + it('swaps instantly and never autoplays under reduced motion', () => { + const timeline = vi.spyOn(gsap, 'timeline'); + const fromTo = vi.spyOn(gsap, 'fromTo'); + render(); + + fireEvent.click(screen.getByRole('button', { name: 'Next slide' })); + expect(timeline).not.toHaveBeenCalled(); + expect(fromTo).not.toHaveBeenCalled(); + }); + + it('hides the pagination for a single slide', () => { + render(); + expect( + screen.getByRole('button', { name: 'Next slide', hidden: true }).parentElement + ).toHaveClass('hidden'); + }); + + it('merges a custom className onto the section', () => { + const { container } = render(); + expect(container.querySelector('[data-shutter-slider]')).toHaveClass('mt-10'); + }); +});