From 9e49c66611d2a3bc5404d2e08c542dbdd39127de Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Tue, 26 Aug 2025 20:43:57 -0600 Subject: [PATCH 01/16] Feature Grid default breakpoint --- app/components/ContentLockup.js | 116 +++++++---- app/components/FeatureGrid.js | 56 +++++ app/components/MiniCard.js | 49 +++++ app/page.js | 8 + public/assets/Feature_Exercises.png | Bin 0 -> 32750 bytes public/assets/Feature_Guidance.png | Bin 0 -> 35578 bytes public/assets/Feature_Support.png | Bin 0 -> 25242 bytes public/assets/Feature_Tools.png | Bin 0 -> 43343 bytes stories/ContentLockup.stories.js | 36 +++- stories/FeatureGrid.stories.js | 307 ++++++++++++++++++++++++++++ 10 files changed, 534 insertions(+), 38 deletions(-) create mode 100644 app/components/FeatureGrid.js create mode 100644 app/components/MiniCard.js create mode 100644 public/assets/Feature_Exercises.png create mode 100644 public/assets/Feature_Guidance.png create mode 100644 public/assets/Feature_Support.png create mode 100644 public/assets/Feature_Tools.png create mode 100644 stories/FeatureGrid.stories.js diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index b544105..6a3099f 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -9,58 +9,104 @@ const ContentLockup = ({ ctaText, ctaHref, buttonClassName = "", + variant = "hero", + linkText, + linkHref, }) => { + // Variant-specific styling + const variantStyles = { + hero: { + container: + "flex flex-col gap-[var(--spacing-scale-006)] sm:gap-[var(--spacing-scale-012)] md:gap-[var(--spacing-scale-020)] lg:gap-[var(--spacing-scale-020)] relative z-10", + textContainer: + "flex flex-col md:gap-[var(--spacing-scale-004)] lg:gap-[var(--spacing-scale-008)] xl:gap-[var(--spacing-scale-020)]", + titleGroup: "flex flex-col xl:gap-0", + titleContainer: + "flex gap-[var(--spacing-scale-008)] xl:gap-[var(--spacing-scale-010)] items-center", + title: + "font-bricolage-grotesque font-medium text-[32px] leading-[32px] sm:text-[52px] sm:leading-[52px] md:text-[44px] md:leading-[44px] lg:text-[64px] lg:leading-[64px] xl:text-[96px] xl:leading-[110%] text-[var(--color-content-inverse-primary)]", + subtitle: + "font-bricolage-grotesque font-medium text-[32px] leading-[32px] sm:text-[52px] sm:leading-[52px] md:text-[44px] md:leading-[44px] lg:text-[64px] lg:leading-[64px] xl:text-[96px] xl:leading-[110%] text-[var(--color-content-inverse-primary)]", + description: + "font-inter font-normal text-[18px] leading-[130%] lg:text-[24px] lg:leading-[32px] xl:text-[32px] xl:leading-[40px] text-[var(--color-content-inverse-primary)]", + shape: + "w-[27.2px] h-[27.2px] md:w-[34px] md:h-[34px] lg:w-[50px] lg:h-[50px]", + }, + feature: { + container: "flex flex-col gap-[var(--spacing-scale-012)] relative z-10", + textContainer: "flex flex-col gap-[var(--spacing-scale-012)]", + titleGroup: "flex flex-col gap-[var(--spacing-scale-012)]", + titleContainer: "flex gap-[var(--spacing-scale-008)] items-center", + title: + "font-bricolage-grotesque font-medium text-[32px] leading-[130%] tracking-[0] text-[var(--color-content-default-primary)]", + subtitle: + "font-space-grotesk font-normal text-[20px] leading-[130%] tracking-[0] text-[var(--color-content-default-primary)]", + description: + "font-inter font-normal text-[16px] leading-[140%] lg:text-[18px] lg:leading-[150%] xl:text-[20px] xl:leading-[160%] text-[var(--color-content-secondary)]", + shape: + "w-[20px] h-[20px] md:w-[24px] md:h-[24px] lg:w-[28px] lg:h-[28px]", + }, + }; + + const styles = variantStyles[variant] || variantStyles.hero; + return ( -
+
{/* Text content container */} -
- {/* Title and subtitle group - no gap between them at xl */} -
+
+ {/* Title and subtitle group */} +
{/* Title container */} -
-

- {title} -

+
+

{title}

Decorative shapes
{/* Subtitle */} -

- {subtitle} -

+

{subtitle}

- {/* Description - 20px gap from subtitle at xl */} -

- {description} -

+ {/* Description */} + {description &&

{description}

}
+ {/* Link for feature variant */} + {variant === "feature" && linkText && ( + + {linkText} + + )} + {/* CTA Button */} -
- {/* Small button for xsm and sm breakpoints */} -
- + {ctaText && ( +
+ {/* Small button for xsm and sm breakpoints */} +
+ +
+ {/* Large button for md and lg breakpoints */} +
+ +
+ {/* XLarge button for xl breakpoint */} +
+ +
- {/* Large button for md and lg breakpoints */} -
- -
- {/* XLarge button for xl breakpoint */} -
- -
-
+ )}
); }; diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js new file mode 100644 index 0000000..8e6b1b3 --- /dev/null +++ b/app/components/FeatureGrid.js @@ -0,0 +1,56 @@ +"use client"; + +import React from "react"; +import ContentLockup from "./ContentLockup"; +import MiniCard from "./MiniCard"; + +const FeatureGrid = ({ title, subtitle, className = "" }) => { + return ( +
+
+ {/* Feature Content Lockup */} + + + {/* MiniCard Grid */} +
+ + + + +
+
+
+ ); +}; + +export default FeatureGrid; diff --git a/app/components/MiniCard.js b/app/components/MiniCard.js new file mode 100644 index 0000000..1df1040 --- /dev/null +++ b/app/components/MiniCard.js @@ -0,0 +1,49 @@ +"use client"; + +import React from "react"; + +const MiniCard = ({ + children, + className = "", + backgroundColor = "bg-[var(--color-surface-default-brand-royal)]", + panelContent, + label, + labelLine1, + labelLine2, +}) => { + return ( +
+ {/* Top part - Inner panel */} +
+ {/* Content for the inner panel */} + {panelContent && ( +
+ +
+ )} + {children} +
+ + {/* Bottom part - Text container */} +
+ {labelLine1 && labelLine2 ? ( + <> +
{labelLine1}
+
{labelLine2}
+
 
+ + ) : ( + label + )} +
+
+ ); +}; + +export default MiniCard; diff --git a/app/page.js b/app/page.js index ac8d1fd..484966f 100644 --- a/app/page.js +++ b/app/page.js @@ -3,6 +3,7 @@ import HeroBanner from "./components/HeroBanner"; import LogoWall from "./components/LogoWall"; import RuleStack from "./components/RuleStack"; import QuoteBlock from "./components/QuoteBlock"; +import FeatureGrid from "./components/FeatureGrid"; export default function Page() { const heroBannerData = { @@ -36,12 +37,19 @@ export default function Page() { ], }; + const featureGridData = { + title: "We've got your back, every step of the way", + subtitle: + "Use our toolkit to improve, document, and evolve your organization.", + }; + return (
+
); diff --git a/public/assets/Feature_Exercises.png b/public/assets/Feature_Exercises.png new file mode 100644 index 0000000000000000000000000000000000000000..1af6a6cf63e4cab088d228bdde9402457cdbb0f8 GIT binary patch literal 32750 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 literal 0 HcmV?d00001 diff --git a/public/assets/Feature_Support.png b/public/assets/Feature_Support.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddcdc2713a4455382b6fa1566e34843c7aeca28 GIT binary patch literal 25242 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 literal 0 HcmV?d00001 diff --git a/public/assets/Feature_Tools.png b/public/assets/Feature_Tools.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa79b27f2c6e7242dcc154c40020614696552b0 GIT binary patch literal 43343 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

|klz$F zJin6y${5eb0~l~_dQLsSdT2(1xBv1yY?1I%pEdlL?+sK896f*`9l8)d6JWC-zQoT) zk-7BBe^tNzdv6ze>JwO5Tm2wzX#|Iec@Ix~%~(hEfANwfHansE3`}y`;kuFCB{5if zd))6ZG^f?+_$)#KF!zrA3Wut#DX}>~xUdUdSIGbbWlw}KfUaKWe*+ayR6(ClNxH9u0Aiw6EudBB&|KYpm)MH*zW8VN; zIPKUv8tt6?B2g~Jy+c^a4!oi{1X5Kgn<6#_v%DTzwq9&!4LcBN%+cUkn&=CvT#Qv> zo>GZEtFlF=vI7Ll(_o^C^leU`RonFom+uq*qg4gqrFg(1ACcIqnqs>syfnzcSICuQgu zx)F#jmRbPbrmKhB=MYRMqXJIe&JmEy5Z=`$z46pFUokvtHfly0h%|m~c$zBO1J!a> zZPzbc#;+z>;lPan{(!;49{~m9a5mtz$hX9dW?0lX#(j;k^G3MeZ7Dq{9fRI(_&~Yu zLqoT|{}cZ%cGaFIjibS`*Nw#DE#mf)#caUA0bZ-P!-?C)icL*5;`t^4oCo7cb#|hI zO>IDW*qd+RN-sW6rvCT-|L?sGZseRvXt+qyksNBEa}H<;n}70d4sT#pJcvd1-&bo~ zpW+3rlu)pioP%droyt|=p>|8BMu3X_AOvE3eEV5b%zV{<{U>3_s zhTO0P#GaQ^)xcYmXbgedQwunxZt%(nFa*o%13V}2SU7}j6i)y8H^#g7`+g5EarZrw zDF_3Sa_2{Csgb}V--uZdSS^sK&*Ay{I9~(#iE!1UC7ylFJPG>i7aa(4O3Kl_t&YP&vi1qX-w7LkbZ;H>gO*%|I_2_KF7 z8shec%_=HU{WEDgib*u8!@g`mYMU&XT>0t!=e&=kz%dA7k#{kKcY{`3qJ}$63Ii9} zGowKps#Z1~u%NX_0NtTJ?j3O0L^;qQ{*JW=LwVleBz_mjByVlATGsjstSYT(j2HN z%hfVi9UN?gjbb&;zIf&GHb42u<=gIOI^n=k!0vS;?ZW}kNHZK0S460;q=}2GSsvmL zD?o4~C&5WnIl%b%S`mi#9dbQ1Bk}8cf7QqCCTc`u$zo%f0XxcefMAXKZvdClf~0FA z-8Ui2zad1C3S3U}cKsM)z;_K||2!ZVAjUI6SaKO2<+0=`WQcKv&#PiS^@kr4-hzP` z>5cZtB{n+~TU@JejOvhsu&0|Oz3T@M5@gS=i46Zjekx_1SI#5l9$Ypd2_x5Ryz{34&rJcd6xe5jyLgLdZ zjlioURBl9Q48v;k<=*|i-@`+<%G;`Q$5V(59()*KW3ZVfJ_Q8mj0%(S>WfHxNixRB zRjS)kHemCa8Z0WclQ&3={$lD@XAZ7OCOa>EHb#vl|lyP_9 zN<8bss7DL-*fqzEN-)lsw%+94D;y-(eF)wSgl>oXT}?((7DWB64mnDJ1G*^QM=m(S z!3@MpBcTVt62|cU5mBxIes=uj`+dKMW+agsODEsa(p21wd-=(Gy-iT5NXtkS{9L5k z;VD&(Myj?cHc#4vV3ddfdmjKX)A31l4Q$QlBu{w^EIkdS$(PT=L+-b@VwYH;!CnNK z1H{5w=Ie3OvwoZNE|9EK){}K#ROaB6C3?mVNFNS_wl!dj$7-h;sonY+#MOyP3wo(; zCiUN3Xs`{tpc zTd)1o*?}95HcmcnYNI~N4y*0}h!$KS$Q{$cbq17|M1mjnA1GQZ@#h?bQ3*oGsFdZ@ z;1>KH2|n|cs?9I`jq{^NUIWFG9hA-`K-n*8Z)6@aSG&lC3kextf!rd?*s=6m-%&pb zt2WD-;-FZE5VVW><{;_DD?63o^P0gIHh*HOYxV5?w3vQU>+(1}WW>mC6q($OjTp!W7n)sFGKD|WkUDi#mEVY=wz|tP-)P8utIY~$R%2L190g3YTn$&pO3?d5Fa3hTkKNA z;{(m6 zwz6%W7{wK8l6~(d-Mf_w-^O*FtMYczlq2vDlU_w}^?caTSr!ZA1+`j$Uz$J_gb^z}&#wOFge@*f;t{&_a zv+&)=0TX}g`Dgb3Pyg#@F2E%IqBbBo2RJoZo&v&A93(M})#ugjHh_sgIg+?>R5_%q zCPxySPLbb)xHnWgze9!-Mgq`cPkqAc@BP8QKKK29^2cvC?TxpKuGpJbz%5x_QAdar zSmhla@mg$wVC`NAgd&TV2ozdX0r4yFyRS9Eun9iz4mhKL{qK8=#J#LL_wH*ytgg}s z@AsMzTU^h&Q^@62Vy2#!^(@P$`TdZeX)9{vK`&h=l9wcw-wQ0>>U`Se@56P5X^P z=yb%Ps)+07K8GjzV-RudKLM}@1f!)k7U0t;T)=JiHC7FWu{en#FaM`k7hfKz4==uW z{@F(weytjbp1sVLK{GKB0B#>bsLch0o-gmn}}duMJ$`QAO=Yd zL>uc`%SO!Q%i2D6>j2&-_DcaW0|%r3Z>rxDfx z1@oDzqOmmE)Dds7m%1Fa;fZj&E_@K{cP{<(-97af)k3FD> z-6{liu04(-v_2Pg>fPV}(d^1E3d1D#G-lsf!obK?N4r2kfu;gswYon}qhNJE4X&U3 z2t0d${goN)#|pp7cJF@f#ltI=55W-tr732!{_pT8wCoPSmm9&uB*PO;F;gV&hmMt- z4A2f#SCd5K5PEP2;2!w1jTz$4kxFw`1{-!T!nLR1PR_z$PUCdWl+5wMrc=m?24Lq; zl`uNI25qfs+P$i--~C%Z{U06=`AG4DuLUocrFpjY&6_%IfN)_$!N@~+*DL|_i%dM^ zp-|^w;Cm-Whq@{5Az_(-g9urJvp-XhadBf_{)vCvCa12NXfn|NUTks(UY|MR5QkQz zIQE%{kqy(MJh9OW#olv=@P}&h!U6eSMu_T(A$W~CSvf`D8&r*-IcVNfiy8PP@L>Gh zqH2Qt#puxmSkK%4+5hiPKRP7R=4YOs$|K)FP8&_msPXQuN+*-mpr8$0igKt4a>gOT z!~|at#>k5Y_vNJ@nvsOf&-Vx6Ql)9{LOUdEOJS!&H7@2VDf6T6C6&fa>;eDQI5C5O zCFivo?VLi4i?HK%Ev~xur%2QM?+XZ!f7^c(^GHJwvCFBH0mkX zd(OeYbyyc%`uYz#{$Fn%yrk>)9jaJL4tNBavYCuy+<*!p@6@b*-mI;| z#%^jBA7wBWct7CeQ9M2#VtB`5J9i7O8sokg<|fE*%4G;Bo#g6qG=QLWuZmB-^ACP{ z??yaa=e}GWt39Y#Z#f2{rw}%)w^#q594xj1>)x(BHs0yJAmE2rDj$Do8so&^z{sxV zO~XZxpHk({7ZGb)DMo7wHp4U`5;lpDz;&?f3h`r0G~$`#aN|rYgYGM^(2J&4lr`?s zyBoRKb>bh+bvd?P7t#b9fdfee$bA1(0dc9^k&+#QmA^@B4V*&#T9<$p8Fj|1`e}Jo+{D z;h#)oAo?9kwmUYX4ZFL(Mv0#Q2xN$aJ`2vOQSj6+e7}yy!)H&GgLaOv+(}zAHzP+P zsCHwd0t^!5>!r&->Mq~orS=K`*9)A6%lVN65my+1ha0~KJM9l49;>7xT6=7`__zD& zD|vVYj@1+~VkU7Q@@f@lp`0Wwpuq#Xqj*3#&V-<78#V@+XbYq&l&WAPU0reFI#iqX@?(^yb@o(LI?SY4eZn-wu zuNf{_4sv1TFNG0$5e1gZv#>AP7${HlDnvMz6$6#Sa3~eq;55b4fDr*2b|BUwwgbl^ zRAvIoGaM(j4PweAe#j007H5G}+~##9C$gMWaVAe_J;a`aD#ax;kql2?NX+Ei-}`Ct z;%|Q?y`~=1T5b9Z{PXYr@aBcOY`z(**>kpQCkb)8DB1@)_~ymm{L&@$7}no^<4-Tc zR9|iZ!?Wr^vHe)Yq_IKcT=WQZ+u!qm&xFI)U?jDj0$Ceby*H;4Sd3|3KsI}p^KwI`wYHa0{noh#R8)$Jrpv2yU`jrmCd!I7mX1;%5OLh8l^jz6m061R`jl zT7)PxyB6?W2zTt~fROV@=2S$d`EXCZ7h%T$|Km_f!hiwQ%d6YUBn$+HHn|7g$#4FZ?t5|glZ?J$juP6Y5jR>!9MtBloLC_CjRiFk9 z`~6wi2@)_%R5AP#4$xc%0o5@{*{YujgV3}stU9D}Kj(?WVP9ch4O!dpmhXF*?wQy( z1)n=|ABKo}BBcwQz?C9zq1|`bWAK^kx4x=B)&?G;?v|f;L{@To8!t%IiG@wtE)Jy+ zoV~}Ze^mMqH?<69>Zu1asuM5#K>%KwRh_NsOI11;$Pzct!_y3Kilqf^V9oECDK`v{ zW`ZBRoo5nQ;IrZ#*Nm4fvfz5`GW#k;<0_90p~8;wg;H9;j+Kfia%OMh4`M{GrBXZW#@9 zBatnYE*oBt?u|!F{M~O`ix4W-bD5Etx5qg+nVV&>P&@2aEVU|OtPNbI!v}>SSoUDJlgVZSh}m~Qx!Qhqh>wY#bC~6>j7ko0 zgNZWLIBh^L?YXvl_j`ZXeWrDK0qtIffv}H$qLJ`MKoVst0&)Pja~J@{_9iNa!7LHe z*M!%pj9=h@L5`wjveapK_EVy8!(NUOaI0-{N$Oj0Cndt0VhArXs>KMbV`!Gk1S%Q` z7b_0Rok-1CrGT%S2Du72HGB(l3FIL_EBRd4XSf)MD`X~OYw^47;bj>)4K}^Q*ZjtQ zBh`@Mvt$U>5=J$N6HyYPaDG(<(ZWl0YN3AbJ~|X1s>~^9vS}Bz6L#)}j9EKi)9F(J z7qWrR3~=Ijc!QcTA#Nz(xDtu|a99gbur_JoN$NtS90tQtUz{zmgBwaO08i5Z#j+Y< z69ts#PDIFhwBY!(h%8v&fSrL>*!hO!op=?HO5j@fUP(O#hnWkymQe9ek1k#Qp#yaL z+43sVmlCV1gm%~e=2;nA4^&1qO3|(YkD=``mlX_wDq-_y9nw231hKFCHfEu3JCWdn zr)GD|RAv}@5XPn>frv;T+Q9+Gjd~Ma1=}$^QQa(zyQ2~SD-#Stqi{#HVDsy4iV&~F z&*maP7q0Zr*zCsWg!`xy5o{cc)lG0|$Xn>~@>0bBYQk`(_K&ZZI1xq-L#$j5)nblJ zxef&cYRUd{8dp$$?EQPF?Yn^uuE$8&MsT+j%Qmoh(=PfqVgVdJP!-|?LL6GhiHt1J zVBI;fXtT$CJ&K;_hy0Fs)B$G9Z|16<;-OWik>4ZL9Sm_}G8MxkFp<1-b@-l^$tP~O zMJPdzE@*BXO>IrU+K=K?N+{SitECXn@3pr-eE08M`PY{(eFi4!{_c+to+}3PcTN}x z$E;QCZ5aTrN1Pu_D8P=5zi|&?3<0G>qXEvIMD)ej)?|IZsjz2Rdn*bSZHW8N-v6@i z{fXBI7ZUf%vVISVc>Qx6M#o$k!I+@sIF2&_dX8^%#quQ9;UX z{=A>73W!<`t09><*csqZJh`147|e74jta<^g+UC*MuslcJT~c3Djb|2ZzB)eNX%h| z(>q};mP&yv#6YfE89={Y9x$zs1Ka?k21uUcjke$Qim0KKAx%g46@cAkH3KKAQWZ{D z$R!px0Pp>&~+)a!cyTa0L?M}CoA6I1G*LN zo^sThC;VHf0g|~;t&D^fzNnB7G^@3Lc4EdKJxYiZNJZnl zAPld3_eYB>k5#GVA*}EHu)GX_^$qOY$!sc)%1-^39NHn~CAd^IgFvz9kQZ7i7r{Vh~Ka4H*0&=pRrA zL*g%$;OhyQR=yr>={EE!Py3<_;EuA*pF1W(?@J9u7qoUbe+DsZ3yo_BzA z11fT=A@;#s=_UTX zLG+OEGvJ8D>#!7V$P&h&7P0oC<}|Hb4dQ2nt10W5WTqT(y)YB0u2!5oA6x3#JYFLK zyn9`u7+82n=q?B9P}B9s;*MF4Vn7foesK08+dY*aQL`YYJU1nEtCp2q6ywH-U1v-r zSXLje$FI2_B@-n79-71OTABBP`IFV}Hclj#aE~*bW+1dE4uF7M#N!wiX5Gm$b$AeX zG9?5UA2;4?0;{?F{U7_6ke8mn_?PrA-BtIf7W@4X)m#N4xaW_A{Xp2_e=HU6ILs#N zbH8q-mLFg3LYhbfu}fJIrK?qxm0ktXw>IX z_;U((5+V{{s|9tW4W1>rmM}szK_qR}KF!>-!a>dIC<>Htl9}h+9C+7Q`;Wb^4>jCc zBSJ(-=x&2$4g|@FYwTF#&xFpNw96XajweD$kv80nB8AH)7S4E+Zn6W@9v-*#Qt=`t ziPd)ZyatIkBhE#^NrkY9PV3IcrEv;Tpu%ye4#KPu4>zb!Le?Z2U0ACso!$8sd%8S$ z=kiZ)JW(Oo_y47T38&@Tsb1~@Ts{7RGXOF*vl6ma6L+bUUhgikN9!r*affPK_rct!q0HT7$0GoRRkwZ)ATeD)uN z_Xa$~1parl@fkUd76wv))2gbos#s!EVRJVeX+XdQ_oq^fUjgHeaER^Veog*d|D$+v z1)*5So|#IBM~B}liyV{VB$zvF=6Irk1y5k6l)X?9XG?C*c?W0X@eJ3`lL8LZamy1x z$ChdsjhZgu4Hm<`N1bRSo2>{2R8Ps&-kMEqti-5sb@dL68`nRB;go$1n1uMg7XXBt zRQ)s)&S3m_BYC*v;QIA594mV|-NA_i$QGei!xLR1Q6)rR!->4y=&a8IOv{eKwhUA> zct$EUSwbN08aJdJ{dpB55w9yGjR_Jhc!(OvNEz@Ej#UA|kcEO{Y-EjOtYTNB#RHWS zsh_!Cl?xdw9Z-~Fb&(z?PMuI!6k%J=@aiOlT;idXO#WRc4>xTHSAsj}@H_Gs!q&nU zICTjj*acufuYUWh_6_wImz0-y^)@AD10FiqB(2CA1${Mbprv0&Ww;mSjwC|aSN~kIkV$^f+uVfmeqfJ z(aA&iB$UQ)$o6ye6Q5R$}^Qme2J5Oe?-(^GwAw%oW< zpl7&I6>#<_jOF@FI~A^=1(aMONhP`E2xksTgm0XO0kjRUbc=A!bthukJ-pYI*M2g4 z_aFT5;DUM#i{Vurz4uP5|7_1M4@3*saej(u0Yoy;bpcMHlZw96CwQm@+l>R?jV$-U9{I8PVNRLud^7r5_jdZ3s#%5jJd?I^g1aEaQ;)&X_$ z6d3;^jNxe@mb+}7l|;q?33C8m%GRp|xiEMn<`4t-6!NIElDm=^mg{1-H@**-j}Q^W zqn`Iw)Jh2qOb6D%;v3|X4n~{}VWc!(ju58+s%WqS8Pf;27UVA7{Q$s^z>}DHx6cja zd2rpM=O)NFQ;~hgVC6MGSnuu_mvVAcjW{<#yvnj2&IqBLQp+394qujQ1A$8DB6;xF ztmtH})5?u#*atE1C?Rq5$uwN6PD)|FLUk-s#_*~|l0N{XNVeaxEPoCsT;zByxZxPQ z2_6_vXqDqUW|i#5p+h*)HQlODT|PM|g=Q~q>MMW$A1_{64x?AU^Yw?{FttLjt`Kdr zbt-UZND`2OY&f+!Z=QzTfwitUSO^8JHf+?V<8KB|!qyd)oeeN+c?y~avb=%^>nd6w#P?a4hMZ@v~B!_9C0Wt2Vp?l`&dx&$-^IS$0 z8{pS$!QBP6XKFlnV7s0nn4bx$#CVn8Pvyj@U<`_Q6p*g3761SW6)z41<&wpX1WOBn zxLLa)M8WD|K++CLUqh9}mM0#(7Ea@6H&p_o(*t26HDx4i#p}X9F7ggFpiaTy`ETS7 z0H12WkYO<23w3kl_kZl)eV9#NEKUT?^e$EQReOj{%n+l(mRi7T<1_}`*-6(R4iY;= zNDEW0J_O2m`-nGS(t3!qVhK=U;rot0C7Y#{@U%miS=Unu37Yt6fpQ1%!n!$0`m(o# zvQXT#ElzLWBBb-j47mYXL**EY{6dQc!ATTJW`z(4NJmnBlCjrA5eG#?f!7MVfpi?| zUIQB6TdDc*@9E+;TqD@<6mFcgQymCFlb!gP8tB#x@ZSii zMaA2OA_#xtT%Ju$~Ksqc|6wEzBal zT1!Q#UO|G~=teJ8lg-4~Sk|53fX?b%9%jWR9vF0uQ?{X0YgvhgZ$#uIilw`)c5@jT z8rFEAt(Iw5DcnEj^36NuQcrF6E9~QnUd8^s_RG|SUHOAz@6hWjU8K$lJ58qCkaeEo zM6Gb*4wOZ{v>7tB>O*WSY>p*4EASUMMXALchy97}SR~3`bZSshZ8FIe+Z-C!Oeu0x ziOjrAO~t#15H^rW0CN8T;aV6{$wNEPBHJ4If$&OP3CvdG>ut@=3I?5ZRFt$G4*S+$ zR)iyGqE?q-?n%fP&&}bGW4^$aZwkvrILJ&!VLRl4IFyQ6tui2Q!MeMUHC$9>p%HpY z7xCwDNKv{7hGHqkVc6J)JPA2unVuHGJo)?t9Y{nQ_3XzzlSh%bBX5{pPddG4aO0Ak z1$4QbHuPI1E;jV(3F~B{$P?Q(^-2-J3PG4>$CnpyFl2iMC+7hkN+{(i9H`^rZLp7J z{zQdiEhP(ldIEH#FJoX65BcLYY%i$<9)z_135Lams}pD-|@k+qQn zt^+F8r8o>)f6d2(AJ`~(3n#!HZvAC^@aMv=z@93k_?5r~iz&&uIn&8KAZbnHyTik? zfRQ;gip!Y$-};ZlNbI2dnQn_0M$1OZ8@MrZY^glpCQ8-L9dAsb=m;lLG|Bq1XofY} zNutnkU}Oo_6$VBiDn|0(h#qgh@mt2>aoCI8ktHXh2Er=FX;y7?t}$K*+KHd1XhaJ# z(+M)%tVpFI*i~xPLsZQ_R80Y11~=NU<& zI0%*lt%em~Ooo1$mVAvuZw#x6Ay z@`}D5(g~W_NG+ISGh?rlOt_!PIK$nrmasU0;Zf|49=$d6LWfhh!B_w9|IRa;l@9wr z_RhzL%Xg_rqtaH4!IJx0ko#hnCHNk^kxK&^x&${W9{88q&*~8@)0pd&`^gEp9?qp^ zNKJ6svYZ`Zf}u7S&6OSKYgA-PErkBl(D7Ei; zU01qrCh@I|V(VjGOW`{f-T+iUtH0s<3d_#yrdPhl12q+0awc3ziCEgiyJ|BxbrKFB zyc!0gpJf0s6Jo64zB%hLVA6;vI-^mt!k9hWIBGNGDN)GHlgOrRM4=KW9h;PNZ>=pz zRfKsH9H=kgQ@=o`K=PGitqFsYL5@Ji*;Q!3@{*iH9Sp@3{fv|jr@JJbvPQnEZY z5|-73cpY7VSi}EHkfK2gFTrcf-&Zrh?H%}sgbX%?7!tteK`-YdZr=B`PEy(;rm{ML zTfB~AiTo-2Iqkhd>Lpp0P=*`5K9s86U}u8;4K}|ng#u{B2zrHmhE-AtOu-Q5LINiP zr6coR6Or8IyS}xo>lZJ5^=^SdhDiVEKmXvmOU!c|Mq47R^OT^94u$<7{M{10!t-_@ zqnUGV7C^F}$p`q}a{jS7$s;im)$U!#zMF#jm{g~C<%Y9tU|c&nT^L_#YvuZY+qRK&pR4X@uY;QCha>rYje~&Ne^*s*5t= zlv$@kvMLm1l34Am9xfGC3ZQ8nHd@r$6L*6+dzwu)PUlz+Q=GabuCugKdb5tlkC~wGsq`=xEFi|gV2@m2@e0~wGM_3k9vzNplpzvfMa~~ZGO%Xo^ z5$-MiC02vJU10s5_+BE02@ZiI_mU@s@a8%0jYFeIBf#ZbtZYJgSots^}`1RAjxK3{5{s?){b8Og> z0!FI!3{D??IdYlgX%fzF+|8(=TrRvUKI+B4^6?6v4LtY?%^e zSbx(9+_yw1Ql?hQnSGc^DLY~r#Qk%bUvl)J%pAN3!T@*)Ex*{C!o;75KRdx(?X zm+zI)VDJE8tfg0*VOou3pZdJnYzFVL5FWsgO$TDqV8b^{Jk;FRX7}jQobl zIMBWjTuova`r@7gP-!?!76(Md{&P+Z*cl=8Tis_w5|K{!k!C;tu?8ah35N^AY2-w0 zes>+;8psgd#~$k}b3d9mkVE-?)}!$xN(Mmv43GKT=D*RcvTUIrsfJBK{BWf^MHWK} z*+39FhFN8QA`C`Atl)86nM&=B5ANtQ06ghH3QEOp%*s{9+$lDu5f8#Mq+w2hrg8K1 zZoR;jTopEWj16Z2Z0I5KqeCxHWtzjdhdngTHsugGLd4JrhXW7nu54wJudvAjCu*bl z5*wK%9xxoDd>V|h!|82R!5%`n%T$%I$eSV!mK+|r<`gKl`#CN3bu35k$K0`z3Ma7z zB%C5wK@uE*fV5Puk-D}}eN<_ntF6paw+yeyC*fdlGT+MzW@N8utDyBV7vUERN*_jzPS64ldd z`0bU7-D%iR2@r_oe*DuOHFF)JSIOH8k}nGBvzClLEUs3;Urn%w5AC z5>*KM=t!G{#*X}iXpQRUkB{gds|4`*F>KD30eot}u<$#a6^|UrGb9^ux)=-zM#-;d zi}zKLGO?x?U-1eE6c5=~VTgM~={Tz=I4hS{I$c#v8#i-Bv7=4q?>v z=1!`xk3TPCd_IpJ;!UJCh}{}d#6g}gQ}Q_QYL;Xs4z&o+SR?On@#-_x#Wi4)=fCx} z`=2khp)HUs+z+~XxRdAQ1>Y*^vI0lKRmyC z?YsZ@2J(__QkO6Y#DJrnL@ldfFIdKlUYD$}nzWwb=Cz{H#rRa$i~a=Gd+<27BnMbO zl0L@Fr9O+pBAJ-!4MA>GQg{F-WIU8QCc=|mDq~mjmQu1hW|Sd4CSCUdPGW2Xa5*(j zPZl}^B_1TM5jKd20b>G!Wmy8_R*5o8SrDqU(i_pKI}R{`IJG;(fq?H}Ucz~ZRMuxg zPSp^cdS%2m000~8=?Cj<5dyV%s1Aug^8xF20jmxKrDK`LF;h(=nu6>$qNphMlZS%Y z5iW>OXOMP6oHb0803VYW-MmN^e_DOE?`db{3a51-1m(xe1{{J~NxOl-+x&s}l#G(7 z6Xr}eQ~?jfyp74X#b&Z zXBX51uDZ07!WSyred_4-8qx@&gb3pRViw^37#uK&%T!-90ngP@xPtI>Z zt4RD08rOYOTk6B+qJ)7=PSNdi^Z-}K`YDigDW~+}CK_&fJI1EP1F7JSb0o@CPzg3; zU~D2>`4IU9%R=gCwQ&Ux#%YxYfnV3BtJ9J zOnS^IG9EfA!~`PjS2Qz~0d*r0q+#@6TJf{UM}W?;(2@pfhzBp71dfWmIxNU6YAFGV>2780PYpfdiCaSecfJAzr^a&c(2C$Cv4hUKTlkD zMVn9cA2+O|Z35u{)+=N)(2^x2crYNgT5t+3JI-Nx z?OAL{OM^N7xxhTl5eEo0ScVT)ABlEJG>C^U9(cnGC z@GjsKE8EMp1{BDi2fIgu@vTEwlKwyp34D=jOs$`p886f!}} zvl^PsU`Rf5+Y?2R20}!@fH8VDl+Hh{m@1egUxN*fV9`orl*;HMR-cP}5m7*dZV`Sr zzLb!p3U;LNEIFjcGpl@XUk!UxwDkY9QU+qhtJ`5BQ*gNmm=sbT&wD-)$etlE!3Dj} zD`_CVp)aUka`{m2*_hgwT6ES3*$04rGZs14UKBwYex*F~5Q>u3Z>g?>r`e_CzV0t4 zc_ir8dX3B%-(rQW)9)Ykl&_c63YE995jzQWV;}whIp6} z`4AlWQP-X5nU+Kpo12xgtQl&}vY%sL<$|_xaX=9h({?dXZVpdV!a&xZ2oJIzQJVEo zzQ?m{0>NLy;XYL?A{x@^5FQKeiGTx;xEc?gp0fryXR)y*%H&}XtfhbgDQ;X}Z;lYG z;rtF091BX1aVR10apur+dB0&djaDpEkpPxZ6udEXH#EmE-O$fYV63~K_z9A5Dd zo@NfiD40E^M+PD*B*8lu_4rnv4+S`G0EJrg#HUi%e-#6{{NwsL1CSxc^}4#0TDtY( z6fv9N-j9LwrH!!b1VD%rF{+3V_LIQwid%>G^InhClMo92{G4U|nuQ1}QwcJFTjZen&YWaR4WPsjp+`N&O#*g5Z<&bV$;1Vc z@?r_N#8U^n3Xxa zQwaB9AP&cS(*Ra&xDi7!c|xiVuqln10^uHEKufWUm3OFYFRqptA~S$$k#qDj##fu& zBqz`|1{9K84H6}jk;qCLgk!=zcXY?#Y#mEmtmKyXW)e~v z@q%`-OR_=8!7*f=?dzkMMilmz+F_AhN9FS|-v47B1&mB@fPo%6l`=`Z-a!Jssf+}7 zZ(Ax{Mo5^IR2wjKW0jhmrW-HE76o79`rZ=isP4&iOD6TRBAQN)+MN_Z{AX zFg)wCLI5u8qV5P%bSq+2EXfNHV9Hafzyo)>?Dc(XgmH@x5f+E9e(SG|_tmek>MDND zAndew9*Ljg9(Urgq~kJR?G_FsB9Qu~fFUgD&yv$%xZfAViy(av+Wq@^uSaeq&BDBa z2;j1-`U1xUDM%S}eqbU>d}O{IFn?BA2ay$dOY#^IPNmrP#fj3<2(QtwzuVgCce8*F-3 z%!0=5S=x}Zz^USL+)pAyE3rXa5`)bSJYlaxyY2wySOvp^L4HnSe78scWN)afkgzEf756w1|3_y4mZcfu8P@f=mlUOPUqOMgZ0#lZu%&@_#Lsbr0JweD7pYzn0)XuGCKZzJGP{zF9 z_^e2h8%s?rLe)4Hb@Rrz{&&CjhWZs(XWd>Pp*f60b0}0P2{{G5-C)FTz+Ndt7B`Bt zjK%y;VbAPr2uA}O$ zzP`ozka(bDW$&c+u(4ZecTwt+;&s8G4?z%0B&;wcndEvAJ3GUJ8d9}mBn)zia3JW8 zc?KyCBsphKsj33U0W>EKm~kf-~H@F1K69*aVV1<6NA;iIt;{I?OHY#1T)7L60q z+2AOYGC?LvBdsW1@DESItvJ6R%c6rUJS39 z?(+P7GQuscCS1I!tvyFfT}$rDbQhU5IDq=#eZ=K(_AnmdB3holz(w>)Ii!G?Jcr%j zgEvT6t)HosQ(X~inCxje#z~lwP-D>}Sz(UH=6u!y0ojSunq?kL_7KuFh*bxZP)Zeg z<#KwAXZm;>E8-+B!}67>3Wbm9H#$$^u?!=kmqK_*;pS*415%|LzpjL^WbeEo!L?Bn zWhJ~^b!5W$87een(5Y%jJt&U!2EoDFDjqBWyaq=V==7}ojBt;Lt>eKLRj?vIs%0V7 zv@twzl4|Lv(adqEgu?zAs=?TPuqRPIhxwGTwz10f=Uy3XcsGDS?2>`m7u}t4(X^usX#-5sQef?vm>fYx{ zqhivEst)s>UQ>;pB|})HS$Z6@ZVNf=tOC8Ht;oj(ES)_OHb_f`?y zBT3=|JB0@_nd4N#W{E2kw8{p;mi2Xi@{ku$h17@zu6pn zA*- z^h)uHy@#W|Cxq~#J6UvS!KQ27558|G(9A|3Y#fWYH9{^DGu-n)+i=spy89YE&rF1F z94utrZ1r#0+%A$9;<|An<3p^W1+>c6cVNXL~_>{1~ZKXv!Sc>sDlTX{@!a>3)b%*4y zLXOb&-H96>gB7I<5J(0Ni}U-`AUg_;`u8Mjekk%Y9(({$Wn~d7M-}4jm{OS@oWcT| zgDM)nrxZ4-bbZ%LXnGF7jGb&)o-qYph*h;5vFrwbp@Y7MKLwLc@wSfq2UQZOPPlRM zJ3_Mc6elnYg*`QXN4`$TI}SLlH|Q1Ii>B|s%qF6`NY4;K8uGn%;bK)pj{Si1Wf`cYy zD>J|diqrXerV{W%-kg;Z90xBKv5mPjeFZfep;jUp58I1e{)6}Sazf+?IdxS@PdppR zSk_;aZ2vX_0x_`ENiXsdH5~M`Bex{53lP!azq#M{du&GXov)0pUH*x`CL;g{5$0Nw zcE*iS9gFgwS=qSsoiA_WL9+-_Nzq;1@B#PgB!7Fi2AWWqzpBG z*?&Rx!I;Ecfs-1LvA(T})Hv^&Z^y^*Xo3n z7`$}AQERxyaECJ}ao_FxxJL+GVIUR5FY2Ko{~@vI045OJ7`1;+&FzOc6kwQHg8LY$ zxuQM8)8MnOfrOC#Jo!v!y_D>~XWzWcaTh}Lp?VQDd3sMA#)i`urA`h#jf~_{5uiO0 z1SgJtNOhRBpPWVSo^Vf9_bpTV*o;J$S8w9K=cIomqPijyJtU7aY|x!?AfbdTY`O)p zeV{dy0w*(&9s`8QW{uPX@w*t_bgPnz@~{%9k()_p)aJtX!xi)NG;=SfVgML&w)`R< zW&yHoC2vE(fHPFs3Rbfc7+wS?=8{@dF+5h}dU3jLDRbx9qd{T1UiOA))5)-KKt7?8 z;7l~IsH7fqhTxJt;6%Wt2rH5J+Eh?6g@n1|;Q(O3@dQ@AcRIRVM4Q69C4cI;uQ}3E z=yO*3&8=e(dMD*LCGrYa9Z=z#$%=3{xJkIJ@D|D1yCQr-&QOcKZqQ4e;x*zGC&I(3 zj1f`|aIn;5S`t;YtmbWHc#@ReZvv1EWs!SDEhU*)jR0?DI6Z3#2zY!=J;VikVzS9C zOP(mg4!*A$W9|t9;V2EEyGX*W%5rGz0mUI!{Z99@92u!8E7uQ(pVbxtMbw*lk)QY0^%upeDb#d*cTMaLrVR#3ChTA9X60?;<>w+5GD zr2ZTacqj-~-L4vy6Ch8el)d5WVVxaSA>B%|_ZO@ZhRWU)mbME5 z=LKvq>^Y}e42-dgYZ0l-`2Iw6$oa4}*4BNoA2qaAFUOy5+A&VpT0+?tp=3(#CRkM) zgV!;|4w7y_^>U2FY98?QY8ld#>bvvCmbuu3*9Jo&_l56EGW*8=`QLgth}L?+u1`Rp z*1eC<#*+C&uGGVNi!ze|KaT1z=4gHw_%+e2ZKo;W z*_Ogtu(H<<^7GB?UDI3t5H zBs^WSP=??Hw$C|8E>|GbScbyck5ntHWZ0^xKMAz!eIsF{mj4;)pNXWMic+08I(#f~ zwqMOBr`%875S>Y78ZKe(hT; z!XhRer-fC0!rK1slf7cUZDtas3Q>yxgV>N8_%Jz;BLAG?+Ylq zsNI|D;jcZvQR35@r?L5$LJdS_r51`0mLp_jRFMIpOGI;^Cre#@nnTo{P*0*Lq&R#H z2h2;Z^OLeFCCnJadc_?aFKIYBJ5nO{PW&FHdeE|67s(^lJ*2kDs1cygz6z=@;4?_> zL&3=VRzr;tpu4pI(Uz+wby5!A0uJOfEh^B**n~BU3ghfV*+wWM3y>w@`kLAuX?Ar4 z9b8}LQBamBqQ~hdQ!F)DOswl6y}}4rG&-V3+)))Vu3`D1fC@R{`eFdC2k2E?a6}np zSaT^-)GWU*N5@7IQ2{2Ao)Lb|!2O&xBk)Qo4i5kb@N@;mAb?86mf*swWm<&!5MsF7 z_}f!rm|Qt)nn*PQ<u;0iK;31xwQ3C4a`QZoir9r;AS~RvW)O8>*u!+5nKZG zqsnEB!)gfB&qN6ku>Jq={LVG?ke8{diC-KdTAlPBnAgy7)CUeGmbDG79HfTA87(_t zS?iU{SWOj)vgGyqg@5J!)MH+}xF&C3Umlh+XX_LG9F@jYn#-v(=0oS1o@(HR1 zZhk)>F}(_N9riPrjWEbl9J!ijfB45)I3BK+*Dj8P81NI1Lm{CqUkSzIAh)@(U$n2lT2fn({iPc}lq? zlu5*z$@Rg3B)w!ivM|2;67d;g=7CfkQG`*~1ga4!AZqo7Z0#*uDWhjX%s|p1&n#sG zcz>^gbo{z{1Z%WBoTOA)`S7;V2k)r@gfvTpT-FQJmDT&In!P9E0XalUN|q2}bw!`) zh-JqcH_SiBb6;HA`p6wrE8>F{WApL_N#AQxc~pbO$(_?jAUD~l9$gS>)e z2xI6Yh9b>W#f7qF{2#fiQ5tyCwoeYkScYan{L{TB7T790yS zDa4Er(b-nQBIY$+!wFEZ#7oX=ZXVRB_ek4$={{jw4 zo(@iaCV)rCSYO8BNAQYNozZNHB6uK`2xRP8io>gB-gTVWin@M@}74Nvv-6sFZO6b~{leOX?H5 z+H6W>I@ty+^Xyk1vXe3lgrep&u4+gXa+M?i72;SRXg6E+x2)%V@Xj^-Jji?qsZk0pDd|4H;f?Ozs4mH|K+J?X^cW=DQwQ zl@Acwe&H#ZnWDo~WKIi^!Heh?LiZsKvXL4CXc^<#4&m9d;Siusj|$?_A81P1C*n!C z5<7k^($kmlfF`9)1(7%klBfuXQ?tzvfhbX}J?{HG5LfGflA~JGP?>jlw>r78@tBuc zmLW9o66HcARp=GNz2nrNVq;Shi*h3k(IKbdyb~Sf{RFG^f}t{J zVII;3V45*7HPKiAUq zR01@p2Xoa9oFuVaNrMx9exN|r$i`}QA)CB_r>>DlQSLQt%&{0CxfB+QQeqX?k;C&e zZlhX&#hVQ{9~OR6lte9oLW0Ahtn9q#Me35lHT8&Aq4G(K=gsCkt@;RoWlQN|3=jWQ zKVpNjK>$1I1ONgXM!S^`f_^YB!u5$63D?En(60quew{NmOw)%3El&Cpo17y8(qsqW z?*tDZ6cmFsQ9L@?|5V^~SOWT*xt=o^_!;7Mw&xz=)C4aOod%F`N)%H9kri4e)II9e zw{aaC0Y}48-iER{EkzVMfWYZS{Sov05sZ0qtT$y5^29`b1T`VVT&p=w)Ee9f3kO9O z$t@7hErI?t@;HUS#A6&Kc>NLKT!xuW3IP*}v*BK3*l+`Y0RlQ4rr5-p5To7Ufm$LN z_3&sir?Bf)1K2z6+xI2pua>xE3)B}6CPb}P8uR1t$(H6Jfb_}LhS3|8`Bg0>u zB-(7A64{`YDhhFXwQNOrnH#Tg6X5ZONL~vWOv4vq!;K0DK&x8m_h<>ABP63YX&Vj} zol6z$k)|BW%<*$^3P{!Bgyk6L4Uq}v6>RtAXfz87KgnG`{|T?Xz|U|5GR2v@cm<^* zuD32zS$0aU-(X|KJsKejja>!<5q0;zbCCL70gm7y2vSV|fCoF!qF@+H??>JAdSI4e z4l9eLBdU+FWfGMe<8a`#;_>R=07M{niEub9ITVL2tsKp!`Vt^bW*kPbq}Uf*eWT!n zq9m(*Ickp}S%|Yck~60NY#cq#UYKB|N=bhl;rerWOtRhi`;RQt>aT4fb#9jV8;~ns zH+|(d$zc+=^Qo$`Ogdhx`E7xM$uO)uk~H;#)tp!|NKv0ufp&pPO>6rkklac zDD6Xa_NY*PluJ{MUZExytTx9tP;7u%ojb9!SIEZVG*-b)hO4QJ$T_fsl(31H)8SQfv8<45u&*8#zp!;vREq z5n*@gXt9`dUdn{AdZ&^u(amuTJV4}am0I1#+j970||C%ENu)M#80s!%Jl}`sOgqCoJQxsa8mo zhLyP#XQ0*;HAFVx%9vHBcA@6xsnvjb;9I75xjWml;7p3y7RqtPP2Y#W;X*{VSi&UDRh)IQ?u*?h zE#a*5I9L}YQtNoEiaS0x<#k#jMC`kdLn&;GVR!-Z0Ji-~(z!AeviC(^$#7K;*`b07 ztHkt2s1Q;TX}toQ-Sc}qLRYG}vkiI)L@EO^Frum@wUYq`1noc_V)J!Fgl)w@x<60+ zJjY>BdWchz+3P>RT?>cT|Bo-+Ut8?2u!K5b*$V<(DQG2+>hK(6fFT9vnn?F*q=vg+ zIu-%{B|vNxUeR=r-h zblWL5XYGK806YrvtfP13j0#iAq$RL_IAP8J(j3DOu^DgQR>Q@6h^6O1oKkgwPUvgbQ&HhTB^!8DeYeyn_nf?{JkxvFwWUglh&P!Q){bgA+Md| zFet1z54;CXcs4>gp3YN|L2CRV4vIrjK8z^*OgW}{dY8=7-HWgI(K7)%DGOqLf$XY@ zrEalEbA+Z#`8iLS9(YumV;$Z)dHuX+fSL)vL^HtC6(9*M+`7gN0^ne zUwQ+LV(n9HvOXSfS{X=F;KA`!KQ%m~2At+g&K`00Vtf`49ybtN0*3=dI6Y%R#u>iO zP{{U*jh^2Vk5y2W5}p(=27*x?wR1s6n&BygZbP6~nX1^xGZ^#=Onvf{B$UTZ2 z#3n+NE;$X z(k74!U<;!bVLrT0ff$d9jczTvz}^!51za<7G8$Qt3y%_jFVb_iV3`ewa zG5_H}B=SQ|(ntvq5iQHS&anRMP{b#~XsyNNg)gBFfhfEXHfOmBLN5m>dO)OLoQV>O zJgX2Ja)kTJMzNBRJLOr`J~rY5L#z+FdeLhbI6|wA`fGgtp%3I*5*n&shH-20&SCaqk}z4O_&+#fLZ@Wsb#aa zKr=Q+BCraV3N3BCxa(zDYF*;B+OiNW*$(JcFvG(@v_hEIsC$nRW8XxAuqgJ8z_MN2 zYfPC{{{p>21vaiCJVep47~nwCNzS8#9l*d(iGgsDhAg3D?CJ|H3}@$wmH|r6;k;k$iLZJ3H-8Zf;k@cxF=-&1ce| z9RtBgDNo82d9x#k-Gw0I=%QIP*#-wVmH)N0y~+~fTEKXKGDWvkoA$A6iZE=9-xD3n z7zf>LzNG8XFE%9-nr4zu_rEy6$x4BQmFR*_)gkg0j+h}H9TnM=|0 z*!;x%Hyq`*;$Juoi^F(2xQND)BwVWDe0K8t@%1LQeHiJ~BZYp~t5`O#3tGpaqaYN$ zKbiMcx;L1VWxw^AH^1|jzVx#C6_!>{==!_=;_y=EmakY5Q()cF1o=kK0qB5;6K=qw zlwmp)T+k^?PFCRM^a$R}Y@6I{iuzB@;OQJ?Y9h_N4nNpZ?Ks zpx*iqzOs8w{fg^}H4?5@fB4=TQI~u(A&M02sP&kDfGt$W0m>Zw1s*o1wT{SMuTIhy z9)}V_T5p6%*aU3CF|6FqGc^PJT8%Q0tF;>9@US}l!Eb%t zzMwvX>xm1uHrFd(f966QPTuq&iPXl1r@}|;nL~K#xXT9V3FQ=PfU;DD3YQysjPA)p zgSeZWh8-YPcq*xmZKnt^rnm2Ue+eO0u3N$@7*P#lVW-~`DAWQ>Zd3K438jhH{yKt( z+eK&-x|6q-wO-`tn~ps!v2+?%h?yzh8X`#!ksxbEJ}{7mZM4f;#U(Xi@qI-GQrxRM z=d1LyBaJZiI^>KHDklChJk##eOYSyHvkehr=oyi$TN5Wh1V&xTeFhLOx$ymNJ& zsKb7FB5|x>NQ~$Ow7h4Bhk$$w0V6Va-%Wilj)^b>AXz{g>A}Y9Iw|vblJ-wxJ@H1u zwKkNn{Q&&Nt-cVCqHSRyblH-*LUZgjx|&^e2&*#0-N--MWqSwl#uIm^Z{|uOnPIN) z+<@$KD`7~SK1+F=ZY8x!0XA$dhCxZyiDEtXi38N^Ml^s(<(5Kw8?Q%$S@mPE4VbwK zwRug`_a=7;n_6}qj&@Zz7y<}@f$SiJ1J`3y0tncUHoIdEIl>_jik(Fo5I!R<#g-Z~ z6!NAINy+vvk^3~#6s9+fRyZBgPlXXL!(52UGPadal7bG^Fjh?l(1KlxAY3=^AB`pf z?7ZV<@ITB)7S|tTLE|UAo+zH=7cCmf>sN0~!Mwjjec28n1{q?`GvpL3Fd~40v2jRf zahfjSRKR~jJp8DrMeu--k1yHK1(V=Z+H52<-&Yzy{Tq2sz@>0^u7*@SOj+)51K&64 z1qNhMrJO~6GkBpd_PGql+;MI+OZ;aPASsbB_nbxNKC_Kh`nYk&e5{FI2`5h+d3@>8jgNO60>n6znLgI?JW>pA9v}PzP)z5N#MSKQSVn z9ag!@lQr#pOp-Jhw?@cLAElJ$D&{8KMit$nqYYTEu}Lxc}3s#GJHOhu1E=`@5}0hJ7m=x~j9 z5H_ThD6MefY|gTLs)-O<)>0MLPlDo4axi7iDO-S_Su@5SbmS5G4(U|`aDd@Z*Yx3B z$IdwL8LSywYK}$jzpsIT)Osc}O7g`A$1lLoz{#_0zvU1ksT(^!?PX3Zn01b%j-p6K zFnp)`&rI>Wj_tKTu2=~>z^TuAE|ycUcK0^B}~Em z>Ka~S>7)%;6cPc)>Jo8wm2zme2$r>A>2mNL9K@<)La+y_Tii`5RygrFF{=PFRk5U; zvrFno-6>-n6MaJNp%K5&4)ANa?7Jt~Eh%NT2wwo1h90~Lj@@W*2BFk3@^qr-0S2~g z57ZP8ZL=XHVG5(%O?ZpkNZYXvd(MQ##$gHLWobyzE6>O282JP8k>y-PcW9HxGw?#V zKFY*yE=FL>jw<|9z^8xGtFf<^d;~z;Wdwt_OA#}d^3NQ6QoEF@-KfD-~5GZ z>NC7PbwyC~5=JkjgEg{{n}s0(IMnZvDoF1?-zRFO#X*$59ofOk;{TWQf{g^SU3+0A#HJ zQA%Zf%_&`X)M_ye$`O7}kw-aqT&q=$cT_z|RJ9w!Q{tMWbiS2)Rl-y9tmq1g?j0L3 z=bbnhO&+)EaO_o`IgtldNg`YjM_??>Sk=2{Khs`>>r-hYTo=Epuj9CTUU$uYua-7c zHA0#~FM;hBebB7f!3a!We^I&kl$u0CL8gqTgv3(+CAf_Y?Yt>7z}fwnj1fj86P%#b z49;LEI6dtLLLjb}3kQhtM>2Cg0Y?*N;9d{{InhN6MT)4#*BTp18GZt97l{}}zp?eI z8KVQtYFLXE?gHV8q**KpVH`lD5&#cwz_}+NAj2U-DJ1yqEo|;X36VA-TZcoT=tjcu zGp{lFeWj0>dw3+|LK5=DxUS$3LF&(e03NcO7bGc+w+Pp|5yI(k9tsOV6NGw6@&y1K zW4UKkO`&?DTWO5pJ3rI;2-m09NVo)1>6Xv8WqF+e!Vnv6z`l4E>0vYZBejs@k2#74 zJ(JGS(+HC_SPu&xR6y@zkjVh^Pc31X51fSeg8-P4Sbq! z^3T++63Nc)HbN(yel8WL_CZ(IOkqSbfk>&P>paOckdWO%c_hyf_E@@za7v#-g3T6T z&P_RW;x&r$hMc}Ziq{A@TZG;Wn;5wRXO2*7cfqP+sa!_hV3q;~gpSqAr{I~^90zg( zuHB_|Wx4WVSJFXCk9;P;K3fdfuU zB&jTskJuud^?fHXpx}Y#3^p?rZV^xSU!-LM{p#1kOv5WGmv(9GZF?;b8*UHW3kM z&taa0?Mcog!=@i@aZZ{Kts- z!oP45E;jk>PLJE35gs-gq@47CD=C+;hY zG6T+2gf|kkr(h_GFlAe*0%#X!Ajjs+HT5}IpIRfi{8PV&=XeEV;<<=o$q7$GoapUJ zL4ylq-C)z&RY4*VC60TrZYYA;6|HNdY9-2Z zB=h*W0X)C~RdB&@VDmUCw<|K=@IvgG;a!HqBi>?73gg8~ziH(Qb9)84#vgLZ@_UU7NDMjzo zz&JvcEI~*voit1_>}n|cDtf5!eqHjB_u0S$H!u`S1%C=g2tgT$*=nyo7oir{r^-m^ zJ+L#bz(CG9s=t>U+nma&s9_9MR7kB>&_&V%Pc%mQ3^>(xWP1^4XIJw;T7*0^#QEc1 zG=K=vD#3N4a@&f+JfYYyVLekQN|UUlZ8MH?^Wa%BRUibKRjoQj(h*5+#K}%9>!)Gj z>O(7OPh>J^8S zTJR3;Og|<7s1!AD)gVQ(tR?(lQq9mPrUD`o@rG)Vtm*}+*4b4J78f=|<4Q@y&1wco zKt{j)Gl4%j5Qbk%Q}PI*K+4iO#nZkui2ujZM@5DE3|>NHPXWtzK(Mr%fvq3Okk1nN zL5OSNcsNVAm9K-#D3MWz2=j&=$4(o`0gBRzXdh=mdR$L90PH-3H)xV0p}6(Z;i0lw zDHFAbS_RGcND@`<7)MRB;#XP-U{KWzgk`AQZZ8UI55)4rZKBf0$c!9&W9zhH56e74$p}xw}cQcX#%+x@63rhX5a0qa_OZlAh@%YKrv^5 zae_6kqFfbKfzS`v1fHm2=m=ELC4GHZlY7Zs`p;=7giV8bBy&fe)b&6{!fndjPi3;1WO#);j*-K%wvBT#!o(?;;)Eb#Hk3t}(EhQb^ROrAUG4 z=a4kWH9XjBj=ifndbq@iJD00^%7+qZZ>%aNbBUeOulGZ(qpn(9`B}`s2OvJ)JZ5ph?l}`hP=Rfh)&n``b#pq!pY`fJyeC9 zghNKt%t&?X(e?XYOLkqG(KT$?NV@D)5g;DGYvS>?5(FV%tjLKDY57K(tlPdGykDdd`qSKKtfT{J&to30XXpW)@qQfh^B^s zEjwvc(~e`cIVv017wmj)687~vVI-0mJH-ApKlpe%NbHLop$CQG z*z81&V8q^0b2QH|Ks-)pl#NyF80?T|aA+n6O@$!Y3X0RgXsK1qid)5yhYd}f3$hY| z2!aEIK)4I@5Qgn#j>_h$I08Cog}|$0keB&L;9VPSgl%TBnyzJJlnOhCWz?ti$7lF+ zwla7x{URl~4P4G(@qwuEQ?8Wacnw22{xI_>pjqtUZ#jP?=rtWh2OObcjqBAu?G>+? z6K&X-wmS%6Zzv9WGf6Cc_TX^#FMc(BLw(NHk&#@!a_}5>=-Zy7Q@P-F`B1n4o%Drk zVUA0}li^5CDp5Bl{!fw&p-Ql!*z5w`&&oV-l3rHW&VOm=FF^o#&C^TRs z`}GFdrzh|h*hs@ldf!8J2e}F2E^I;(P2+IOj-bMw9lrdUyYm6*6HycorVR%Lkf2sY zv@4^rgBF|!yc`AZ9NupZZ;*7%e`2ZHZGeUatRJHckW7IOW%y7ur)-dt9(hU2DM%ON zz)L1L94bNm*bVA@a#4K_*O8Gp(_QsVIWfU8O2YcLLBKxiSXgB~V8V}rlf(U5!;x(` z!Qf$n==6!IREin%&<_iQAMpsrQc4NC3mP!lq0}GA`*L#Z&REnJYi#TWr+@1U5mxgo z&*ty!1ESLw^FIUX74$F-IM9YAxXAyf!DwSP+;f=E-tcFf>`d zFEddbxrkFcz1le#ebbVgDUnAUs6l<|gy#|Z#N&??!roj32bsbMlC<|`sf3qC zqS6}g(IEmTImZJ`c?a(m!BvnXjM(<Too1gcOWe$(LjJ$ zQgT|zy!Du9sq4k5Y{@jop-U-7e%7s=U&^CkN z$JiV$O{JrWmAek1ok==5q2x4L;WL39{%`FnZ47*JyhX~8&t8$TXKckN?91RgFELDbw9~0^fGAXbl)a%_uiNvix zery4f^cqCodhQ|T`muMeVKOUq0Q+2Km4qnVl+ri_FPDUwK*f3^ zM6%HcIZCM-pj4dL#_O+fO;ORx7&#a82L{23s=kf*z7z(ZgkIKylVD;$WEsp#TZ{5N z1T(Z2uVdA5s8&(q3Snaalq$sLO(}ALB;EsMk}16fyetgU;r^PiKZqiPM1+ZRc){h8 zqa#54jT5QM!p#?%p+N8SPBZj(Kl#-G62Nf!w)K&~#mo~qaCHd)g;(Cr3pgkD>c!t2 z?yJw~TB{#Sq7bK^t&m_MJV30C@Jsr=$rG^ZwZn;60~U;RPmrNkEtv*@V zZ+Oj#5G}(3r{~oG`TzDbY;roOtb^=1g}O z5Y#wVa$pWgdJz59Trr%apD3ZCH9$7SGbc%0o`_LB5rp^lqy6 z2*vEC^vh?l5!DxRK?Ve93*>-612wWVjJ!dp7metxa9`j-LwLO`MXq7{dYzv0r7zy7T|s0&V}W{o`>7kLk^^2 zjSok90n+8^TRKS|{eAD( zdLf|F5l(f4p9_S5;|&CZjC!P`>bTLzRgyK(F$eD<^>E0m> z4S_}$QN6FK{F3^dFS%>JjHXo#uYiN7!-iu^s%~Kb)Vy6H0c4%4;l_%DnT~K`N5}(0 zWVsYKlOeS%ae&LO84@9+>Dn)dd}hh{=*VA2Y0qr29x3Ng9-h=~A=SCo5{V-JKuOQF z2PkE}ANOzLInPiFOT1p3w-JGNsjz7pcs?73GWnJ>+clD3_GggVYhc7JP_Kv+a#@~% z@FjquTRl)2%fQ=Ps^DNwmdl&t*RK(F6gV&_=^x=*Jpz9_;>Oh~ia4%r26AyJ>g=3S zn^t3{ae^up$VCPj5@dW&6`w*Vb_U;nc=FCu4BYm~KRF5t)p2o#V&zyi)1KgASeQs5 zYaTqp@C#G89+pXcUPJ;l3pxQo4{Xmn33o$KITNH&*-ZsUydI!&Cg;r2STbFbgMooj z!z-zSeH<;%f9L$OpPTZNk6OKvq{+UChR^ZP3RhLMG=@6GZCc)h+b4lo$%GEe676_b zX8o~XPDVMiamdf)_cn;6`>x9os??E?h8&7&H&8Ps^irfpnH~%7!<~{VVLcKJjr0~t zNT!gkMDBylgt!>5y?Ox_{bA$Vv?h0shYN%Uo*<+!0ZBWyO2x6DS*5#$&jjO3`u7j; zSyCb05*4>VhnhrQ&QsVen;eHBFkH@MWcb3ytdI${O#fYd2IMR?UV{ab1`u&_8^+#_ zghT2=irFDF#oxN-=kT)60Ejs0A!7wXvzyAKUm97n>SJL}L!&O2GnJ0|5_al|MYz8X zIZ8_;s_u&wHy8E82Aoj%v3EK6DZuB8vm;E}6fH#0#@q zvdiOX>lV*{=Nr%LtL^HIq>b(2okFwg{s-0~RZ{GS&4+|LQyc_C0R=0=Qiyu_n)wHy zVXGz4WXZT4A_kuVK|)wUgvHHaWNC78CI%i%0QQ`14?=J;Mqok@zX1K_mSn^ zBnuD%u_&-ch{%~D#4&446s=F-OTwU1%iGG82FaIBz_tB?VZ%UcSYBCE(5@GSID!TO z%7aEyogoHyA(yl=mmXny2LP*`0t#5cLLx`5Jcukm_ zue0g{VN(|?b&;o$pW$F1vM!B11<%vhVkveC-qD{D0HiP@_H!hg&F9-Ga+5aJnNY225MEOfXrNKIw&=rOzC{5IfUD7#8FK@e1&; zl<8-ebCC}qkyx8j8jFbGt87QqNV*ut88hjg;m`4j3vc7I%8(eG0VW0_*W|s-X{h@a zjYhLnWe$D<`9gVc^m7a)^6nNk-7U4i23~X-&UK8NB3t4rqK1uUnN8Ryue*JsRP2Fe$>% z09|6~3CHMkFb+#7I_zhW94W6*bp_9Bc5ANm7@y%8ZNUk~dSNIWwSf4R6I{-npu?(v-!=s5qR5S#~D0N=3js?AC>AB3)Ff5Z`b~-q& z+d@oSv)+geJ}k{(6|YI8=F5Y#kh*cd!P8L8n!;>29b*6p$>_MdE+!2FqaMbE%pz$( z{88JN-l5|46F6QYYG9u&=eftnt~4+Ry@)7rvO7z0SXmIB%n>-zs$c>QWXrN93M6SY z^nLYjb11V%MA1b0-IZ+aO>r7;)4ubNr8Yz4GaC0Yno0F8`%c`D@}Y(F;Y-~bUWcRD zLU|3&TdbshPU=X7Kd+?_w62ygQkLrD`dNQA*u`PM;ucE4-h?+|X-y|h$m?a6$lqY( z2m)UGt*?JR3BzBs`f#gM*Jp^hx&hpLVq~PTZivV0{ugn4pfO=^8u9KktDj`To~&M^ zmK7&;hcct;W~?~m}4-iHazkfYH8&R$0jvTBPpM2Ohng;SsNQ%n+_ zyzwwndOtfDi!uo-3AAH!&l8*RAt3N0bU9Br=|K4J}-qFlROZ`7Iq{Oe>6z^ zMiXRc$RUlI!g%48z)>}Brw<|Fg_;7-HE0F7Gosst`#=sXH&fTzi{Jih`VF;RcP-gj z7hl|++HkNRvl0}iPgq4lwrQMh2Ad$rs}nk~T$`bZHql)#oDlbyw$^no2appyU5d6f zGlXGt7zcK4#=)8}ju5A&2B{Yj8pZ|_6nFWjg5uQUv)EMC31##UA;cJbN{YC;4c5%` z@p1qMO0w{*7emsY+P)^qgP5~CdApUy6mp*dRZ0Y1V%ZGGRV%gN{1dRyocN^EyFZ`h zfF0y9_UJxP4izB~=ZUZuinB)Mcp-2qWb-%27x12Pz9L`_z~c*eWO@bWXHUy;&x$fe z^kWQ%5QcIbb_=341t*o%2*tXwDBDNfsQYgLXDF4-NyPf9P&O@RCkE{e+NUy`Foa8pal6XE9)e`F}^lB6npOJj)#Dgj4A6-kbq^Br4}d!&yca00l!W?Qc5 zOD2zoj8d6}N*5#>*%lDRy%rZ`RjDdZKBXBQ-49=qRE6gm9#-TXL=l}X|?rw9C zU$BmL76`rTtQ9BeB@&+`68S&Cs?>9Gu22g=lSWj~JEoODpAK?&EEz$ut20|#eDykbiB?i~BhN+xM z6#&cT9Z)0A8)v-~)e#e3lg#a2ZCaM<^BOXE0){Qv&=xUJ1k$F`M(UD+s8@1lZq%|x z7U75!E{0*@DHY)4X4NxGuE;mAPOAkPW)ai7%7~%TkeF-(3V<=;1Rq2qusvXY5jwe) zkb`lMRJTogG?~4GtfE#kG_?}XV!qLJfF70H9Gani0$F|@f7$(>@R3(z%rlksE!=iqfP2$5< zcmYVXhG%F*9R&$?NhTbyZV71GQ8XcwUYANdQ6vel-cWjvSme0^)IxYZU*1w3^0gAi z(Jm=Cw*(*n6e(6lG zl$j84s1x3aLWC%y0v;Tmri?m3@xE{7>a@%|;Z!QZc~)`|JP#alF?(xpPl|5QgC~5i z?APG2B2`l)8zEuVR@b!p;QYnk*b;^JvyP19Tj!tI|Nhlm``XldwwvQYmBO-1dBke1 z%eSeF2sm9;o`ZCpgjE40eHg;v85P*X4M(j_CddJRFztkW<4||J@rjBN42b=RN^QUJ zA}f2KD)yLA*4)iRp}mF&s9EApB}E+n(t3-`obMy~5<{c{XdJ);XCpC6HCoEFs+6UB z_ZT9o?*Rcb52|7ifAt(8UMEBh(cD^U)7Zz}^wXm7|9Ht0n(RFLQTkAaU_fGej-|RI zuZtq&2o+}&!sw{t-r!y#&*?ZZ7uU%)0%gk{A*-k(1^^>2RRT|CVOZc&;T`bW2+f8; zE<`V-iC9iV&p|Q~4?##odf}F{?Y(~exBk7|Uuk6X=WU%BruT3CZ~x}AfldAwh=HU& z$%ALm4MPNTVgs?(sH&@eniNnQA96G@A8IUYImZVOaSF(7L=<5I3>;wdwBeC>wVc`@ z@*4JO2f;lzsN?KI7*Z56vCptchbndx*i_9717A-$h)TKzb)1OjJ7UZkjv-0+Wg;an zS_b8Km0`2S(qUwT|5&dGhL<9oZ0Pn@*VvLV&p%M?v1!2THuuAj{6NSN%eU88HzBZfP%phX_nfXzM{H`5~=U%mb&lD zhnKMd5iS-ru6kcgueQ=s5Tjzh3qm}EnQgQSPues6U7SzxZ-4cbf7iaIw(Eh`i6cCS zhu0Z!bez#m3CxBF*A1L-36QGY6SYk-kf<8SPl4Du$H}?F@(iU!|7oxrOClQhR*)xP zs?z*pR-uL_V#ESLCY{8+*z>?sS&@WsFRZ`*yfT@SoY7>TLXTR7yd@UF5v+rjO330U%gwL>=$ z0^sj%Ahl8K%?@2I%7`U4bBS;yi~3%NuD%7&!78R*QT!k>w&^DXmc(frCbm~9@%;cD zO~?|bq%IHPJtBl+@L+i(x=$<(Q9C`~62OCqC^k=9!omZ1FR=0GO<6 zoF0bY)Z>YuK#s9`fa@~xk%36;j?ZEZj1=LYh*!|KH46uq${=52*PtLu>qaYj%?#cx zAfQZke@DQK65h(0_mR8svrS}}kRI^!v)AKLO7tnBt(HrbO(QX`e5^$~pl5DK^c~>m zcBEH^fVJZRfl!t{UGgj(5GEW-Lzu}MsZwczk-+rLtiacYq5>IEL=Fi5#lO7eKYo>U zB1op-7*8GkIlv|zBD66}Y{-R^UU$~~gsPvr=QYpm1Q`nwMnH}s68q}#hHA?9u|aRi zIOmRG2|0p0-&G$gjX39|UWrq1U2qB*J~lAWG;aP1@paquQ+CZAGCs^L*d57a*a|nm zQya;Ao%V@2cz|)K!7U(9fYG_-&wIHXs)I12?v4lYEZZCKbW;fpnFmlvp{TjxI8JT^ zM;NO)Ql2{6m}yAFEd&&9zJTzjAKgeChNC9n zY{f!OCwjX6b!!y@h2nMZuy9wo6Z2JAMeW-GP&MW|c&`Gv8t#*#uGa!c*9ct7?wD=5 zuflepz4+Cwf&8lLu8bMp|7Y0L=VZV=ehuIa*jpX~g5|8ih828WzhTRCB;ON~3bso6 z!|U=roN{=O;5K9~#yUmttk2@{PV+%*y~6t|AV=i+Vh*yTG9pJfBll?NMcM;g4-4;X zFJH9T@~Z^YR5cMDasw6efif1viYuNW+>fl*k7DSSmHvtXHYN=Oa_*NQRFGxM>Q>mHqg4Yd?HZoDbqL|_&XH6x(BSvUf0mSg| zB2nh@Y|%_~xygv2);!tD=E$%uf^-4so% z4rr692Fem~VO^K%ar~yurDIMSpMn#Z0AlV+6*!5lkX&^?k_};2%3Oejt=M?v7~HDP zPF}ADrVmacjM-Z)8pw8%d>cm6xhn z=4uS?!q}jf1Y%{CAN2E5kP9^|gyhd6MCv$?q(ZKOFmYXZ?eeo~NpU!$crKN%cM-LJ z*)a)%k@rs&l;Yl_Wus}8gs<0&@{RBOd+EN~u7|qrIqB;4AI;v)eYZD961@|g!9EZS z1+n@qpe8ua09A%doS)!1iZm0#OxGoFs7~;FcJk3wkiz#O)EvLuu{D^|oH!kqggSTn zM4Y;_IYNabITDoi*xW5P8=JsbGOtB#5Q%xTfeJB%p|i;`M{+4Dc-3{8;5@W4W$Ue;@*KgT2 z!pCW;YLJ*=MuL##^IDqIR-y3^5COmOdD7;6-0PkMMXN_|cJ}rwmf-?5XM|NFT67A3 zzkw%MNe5j`rkwh)tncC^DJ1YM#i8Zxb>5Y&1I?M-B8H?t)d6@@f zz==w59)lsgA?LIsTm+v|hZMo=vxf%_hy61y2K(}U&ZO+Kw z5FT3GZyr`+7N|-|IPl8 z7D@I(YPp)amR3{`1Z&CC3=n*Aiu^>8tnBUDmpL~4O=X8p`cj%DQh&gneif4Wu8@)! zkCQuM`)=%x=8yOqAOyabVUx`dR3Y;XM^e7;gGllS3O!KjbS=8w6d$T#*iX+|l2Bw5 zQxZ$a=!=<@)JWM$#cs+}+5ieX%55&UJb) zCg!G-Avjb!S8T|_j*FQCrDyJF@r^`kG>AAJ8eYdN5$5zu&MCG{fN@D2=Tc;&IY}qOPSkI2b6+1P>Q-lCC;UWB)gD zqir=E25Q>C>zEqIQ#78k@nefZJ^AY+jl?d@8DRkP3HyRM@y)S_elpH^%7efgi~!tvkC9 z9_ISRfA{HqwO!kFA4~tDFaGX7`R}h*VfR83K80{8Rpqi0G>75@o+aU+*%NFe| zcnhOO5m{&?%YKUR>$W;n6jk#IT(}xB)F{Tvu&D`~x?x?HV{2{#qX>F6bQnVl;?mbv z#IGZQ2a_|%9U94r9OC;5Fe=+#LynjZ15sC8H-5o~4oXpr1Sz~l$EFRmr>#QyJfQ6jPWkv*jb!KyosBHB!5k&761{zdG%gJCs& zvd@ZM86gc4&axPfSZx%l*p39zLK1^8WrhUb_G6zpvxMRYD;d&=+E7$G=^_!iX2Q&F zKZH`(R9(D&7)-BS+UiAZ*F#$RRazMU7g^--PIO#{0l~hnEkpA3KE^kz8Vm04o zU;T!sDHpF!%+1$c+=f-#^@!Jf4Hk{d$s%Hdn9BVL!Y(zuwa&> z+c@D$FIrXZ#PABW^p>+}i;Y5I0~9o|fOA9XyWrp)(f>k@(U9ryVySUzfM%J__bs-Z zm7&!6i+^Rb6))JX$FlCrlW<-BiGLT)Vvm0g%7usyP?VuY7?eaqr8$3ZH71u_Lo%C+ z2wa2wqyto3(@3;bGODp>*@hGSr?nK2Bj>``-cUUWn_QUv+7rcM^SF5vg!ao@v}(H^ z=eqw9)m|nYU173Zw@wH_A9tccB9cAsSWH?|n2zcrAl-uHhpHYfWn^`lB(+m!|&iuyMPs)J!< z*%^U@9jEQKT7?S=BOIt@x>RMtK|llPGfBaL3}nd7rj1h1b}61lN0ik`))z>ZbpGPk z^fk3z+w}>okDp$-xjOZt2Cu>5yiR1U0zsK5>lwyLU${q}#IQZ65+McGg-F0BYNtD` zcA76J3n)1*dwJ0HVs{9O4hN-E=?sM8@}Qs6+t2Fzi(3QPu1|73kSF2#z5ma_+t%rG z(pGx5SK@H0Z^1pW$b9E>8Bo)vOw((bg-n9YhuL)> z4W8fTAKUdwuLtuaT+8xB*VNORGB;JTdXam)48yL$4oJej|D4=kb-Px!LYNkn%0~5F zKT-lFE)vdWRB!I&&DKD+>xozo>`A!(<9~GPQmDdLLK~}yec3|;^r``z%nK2#n?V3DH?Gr+vk*6 z$Yjq2oZrC_Y-ua~8m9YWnbFfqd3~U&pil!{swNMWwnL;I$W*$y%oGgF=3MxS`dhF5 z_BRHX)OKyx6SN*Y+*&O=+If+4+q)4v`C8@XoS8TkP23h9p-_j?Cz5oWMLt$08p(`s z-v-JqSrdFmJ(kv61KF-8a{bbtgzNH;%9nl7UDi4BkLXaD!BPgwG%g0@8>$8{?f^-6 zRxl?S+;iNTK)gWBE^a3*ZPydJekCK}`n@-cH-KM#GZ@}hHl#vt2I4SMZERH2L@EMj zLJg_N2QZvdcfL6x-siX7dE50QuU|UcTCc>FFDHSzt~fC^cv`ja7#v$|7T`m=2wsJS zkD(;xYGYCrT+ZvN1_!b=knMWH*RSkJxGrDy6BVm>$i{2mt2Fvm4Hnya*(#N-^nSMC z)pmW_*01bIxP;HB)L(=FT=&AlZ;HGb8KP6QGxoK=F8Z`v1KF-m(RwJJWOIG*5B(+Z zh_9^wUi)g=bc;8w3ts!q`Q3fBUEB33TMykxxGw+H@4Kd%ZP#{f*LH2! vc5T;oZP#{f*LH2!c5T;oZP#{vLhFA5+|wqcwf3{m00000NkvXXu0mjf&3h^f literal 0 HcmV?d00001 diff --git a/stories/ContentLockup.stories.js b/stories/ContentLockup.stories.js index 6247073..a71f092 100644 --- a/stories/ContentLockup.stories.js +++ b/stories/ContentLockup.stories.js @@ -8,7 +8,7 @@ export default { docs: { description: { component: - "A content lockup component that groups title, subtitle, description, and CTA button. Features responsive typography and spacing that adapts across breakpoints. Used within the HeroBanner component.", + "A content lockup component that groups title, subtitle, description, and CTA button. Features responsive typography and spacing that adapts across breakpoints. Supports hero and feature variants with different styling and typography scales.", }, }, }, @@ -38,11 +38,16 @@ export default { description: "Additional CSS classes to apply to the large button (md/lg breakpoints)", }, + variant: { + control: { type: "select" }, + options: ["hero", "feature"], + description: "The visual variant of the content lockup", + }, }, tags: ["autodocs"], }; -export const Default = { +export const Hero = { args: { title: "Collaborate", subtitle: "with clarity", @@ -50,11 +55,33 @@ export const Default = { "Help your community make important decisions in a way that reflects its unique values.", ctaText: "Learn how Community Rule works", ctaHref: "#", + variant: "hero", }, parameters: { docs: { description: { - story: "Default content lockup with standard Community Rule messaging.", + story: + "Hero variant with large typography and inverse colors, designed for prominent display areas.", + }, + }, + }, +}; + +export const Feature = { + args: { + title: "Build", + subtitle: "consensus", + description: + "Create structured decision-making processes that help your community reach agreement on important matters.", + ctaText: "Explore consensus methods", + ctaHref: "#", + variant: "feature", + }, + parameters: { + docs: { + description: { + story: + "Feature variant with smaller typography and primary colors, designed for content sections.", }, }, }, @@ -68,6 +95,7 @@ export const LongDescription = { "Help your community make important decisions in a way that reflects its unique values. Our platform provides the tools and frameworks needed to build successful, sustainable communities that can navigate complex challenges together.", ctaText: "Learn how Community Rule works", ctaHref: "#", + variant: "hero", }, parameters: { docs: { @@ -86,6 +114,7 @@ export const ShortContent = { description: "Easy community decision making.", ctaText: "Try it", ctaHref: "#", + variant: "feature", }, parameters: { docs: { @@ -105,6 +134,7 @@ export const CustomButtonStyling = { ctaText: "Learn how Community Rule works", ctaHref: "#", buttonClassName: "shrink-0 whitespace-nowrap min-w-[280px]", + variant: "hero", }, parameters: { docs: { diff --git a/stories/FeatureGrid.stories.js b/stories/FeatureGrid.stories.js new file mode 100644 index 0000000..5cbace7 --- /dev/null +++ b/stories/FeatureGrid.stories.js @@ -0,0 +1,307 @@ +import FeatureGrid from "../app/components/FeatureGrid"; + +export default { + title: "Components/FeatureGrid", + component: FeatureGrid, + parameters: { + layout: "fullscreen", + docs: { + description: { + component: ` +A responsive component that displays a collection of organizational tools and services in a clean card-based grid layout with supportive messaging and categorized feature highlights. + +## Features +- **Three grid variants**: 1x4, 2x2, and 2x4 configurations +- **Responsive design**: Adapts from single column to multi-column grid +- **Color coding**: Purple, green, pink, and blue brand colors for categorization +- **Interactive elements**: Hover states and keyboard navigation +- **Accessibility**: WCAG 2.1 AA compliant with proper ARIA labels +- **Design system integration**: Uses design tokens for consistent styling + +## Usage +\`\`\`jsx + +\`\`\` + `, + }, + }, + }, + argTypes: { + variant: { + control: { type: "select" }, + options: ["1x4", "2x2", "2x4"], + description: "Grid layout variant", + }, + headline: { + control: { type: "text" }, + description: "Main headline text", + }, + description: { + control: { type: "text" }, + description: "Supporting description text", + }, + ctaText: { + control: { type: "text" }, + description: "Call-to-action button text", + }, + ctaHref: { + control: { type: "text" }, + description: "Call-to-action link URL", + }, + features: { + control: { type: "object" }, + description: "Array of feature objects", + }, + onFeatureClick: { + action: "feature-click", + description: "Callback when feature card is clicked", + }, + onCtaClick: { + action: "cta-click", + description: "Callback when CTA is clicked", + }, + }, +}; + +// Sample feature data +const sampleFeatures = [ + { + id: "consensus", + label: "Consensus Decision Making", + description: "Build agreement through collaborative processes", + icon: "assets/Icon_Consensus.svg", + color: "purple", + }, + { + id: "governance", + label: "Governance Structures", + description: "Create clear roles and responsibilities", + icon: "assets/Icon_ElectedBoard.svg", + color: "green", + }, + { + id: "communication", + label: "Communication Tools", + description: "Facilitate transparent information sharing", + icon: "assets/Icon_Sociocracy.svg", + color: "pink", + }, + { + id: "resources", + label: "Resource Management", + description: "Efficiently allocate and track resources", + icon: "assets/Icon_Petition.svg", + color: "blue", + }, +]; + +// Default story +export const Default = { + args: { + variant: "2x2", + headline: "Everything you need to build better communities", + description: "Our comprehensive toolkit provides the tools, resources, and guidance to help your organization thrive.", + ctaText: "Learn more", + ctaHref: "#", + features: sampleFeatures, + }, +}; + +// 1x4 Grid Variant +export const OneByFour = { + args: { + variant: "1x4", + headline: "Core organizational tools", + description: "Essential features for effective community governance and decision-making.", + ctaText: "Explore tools", + ctaHref: "#", + features: sampleFeatures, + }, + parameters: { + docs: { + description: { + story: "1x4 grid layout optimized for showcasing four key features in a single row on desktop.", + }, + }, + }, +}; + +// 2x4 Grid Variant +export const TwoByFour = { + args: { + variant: "2x4", + headline: "Complete toolkit for organizations", + description: "Eight essential tools and services to support your community's growth and success.", + ctaText: "Get started", + ctaHref: "#", + features: [ + ...sampleFeatures, + { + id: "analytics", + label: "Analytics & Insights", + description: "Track progress and measure impact", + icon: "assets/Icon_Consensus.svg", + color: "purple", + }, + { + id: "training", + label: "Training & Education", + description: "Build skills and knowledge", + icon: "assets/Icon_ElectedBoard.svg", + color: "green", + }, + { + id: "support", + label: "Community Support", + description: "Connect with peers and experts", + icon: "assets/Icon_Sociocracy.svg", + color: "pink", + }, + { + id: "integration", + label: "System Integration", + description: "Connect with existing tools", + icon: "assets/Icon_Petition.svg", + color: "blue", + }, + ], + }, + parameters: { + docs: { + description: { + story: "2x4 grid layout for comprehensive feature showcases with eight tools.", + }, + }, + }, +}; + +// All Variants Comparison +export const AllVariants = { + render: () => ( +

+
+

1x4 Grid Variant

+ +
+ +
+

2x2 Grid Variant

+ +
+ +
+

2x4 Grid Variant

+ +
+
+ ), + parameters: { + docs: { + description: { + story: "Side-by-side comparison of all three grid variants to show the differences in layout and content density.", + }, + }, + }, +}; + +// Interactive States +export const InteractiveStates = { + args: { + variant: "2x2", + headline: "Interactive feature showcase", + description: "Hover over cards and use keyboard navigation to test interactive states.", + ctaText: "Try it out", + ctaHref: "#", + features: sampleFeatures, + }, + parameters: { + docs: { + description: { + story: "Test hover states, focus indicators, and keyboard navigation for accessibility compliance.", + }, + }, + }, +}; + +// Empty State +export const EmptyState = { + args: { + variant: "2x2", + headline: "No features available", + description: "This is how the component looks when no features are provided.", + ctaText: "Add features", + ctaHref: "#", + features: [], + }, + parameters: { + docs: { + description: { + story: "Empty state when no features are provided, showing graceful fallback messaging.", + }, + }, + }, +}; From 3f3c2d9b3b89baeac9bb7274cd1b30b8379852af Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Tue, 26 Aug 2025 21:45:29 -0600 Subject: [PATCH 02/16] Update noise texture --- app/components/HeroDecor.js | 14 +++++++------- app/components/QuoteBlock.js | 9 +++++++++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/components/HeroDecor.js b/app/components/HeroDecor.js index ab12715..725744c 100644 --- a/app/components/HeroDecor.js +++ b/app/components/HeroDecor.js @@ -23,9 +23,9 @@ const HeroDecor = ({ className = "" }) => { {/* 1) make noise */} @@ -35,10 +35,10 @@ const HeroDecor = ({ className = "" }) => { result="softNoise" type="matrix" values=" - 0 0 0 0 0 - 0 0 0 0 0 - 0 0 0 0 0 - 0 0 0 0.15 0" + 0.1 0 0 0 0.05 + 0 0.1 0 0 0.05 + 0 0 0.1 0 0.05 + 0 0 0 0.25 0" /> {/* 3) MASK noise to the element's alpha only */} + {/* Background with noise texture */} +
#grain\')', + }} + /> + {/* DECORATIONS (behind content) */} {config.showDecor && ( Date: Tue, 26 Aug 2025 22:02:53 -0600 Subject: [PATCH 03/16] Feature Grid md breakpoint --- app/components/FeatureGrid.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index 8e6b1b3..d73eb74 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -7,7 +7,7 @@ import MiniCard from "./MiniCard"; const FeatureGrid = ({ title, subtitle, className = "" }) => { return (
@@ -22,7 +22,7 @@ const FeatureGrid = ({ title, subtitle, className = "" }) => { /> {/* MiniCard Grid */} -
+
Date: Tue, 26 Aug 2025 23:09:21 -0600 Subject: [PATCH 04/16] Feature Grid xl breakpoint --- app/components/ContentLockup.js | 12 +++-- app/components/FeatureGrid.js | 88 +++++++++++++++++---------------- 2 files changed, 53 insertions(+), 47 deletions(-) diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index 6a3099f..fbdb486 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -59,11 +59,13 @@ const ContentLockup = ({ {/* Title container */}

{title}

- Decorative shapes + {variant === "hero" && ( + Decorative shapes + )}
{/* Subtitle */} diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index d73eb74..f6e19c1 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -6,50 +6,54 @@ import MiniCard from "./MiniCard"; const FeatureGrid = ({ title, subtitle, className = "" }) => { return ( -
-
- {/* Feature Content Lockup */} - +
+
+
+ {/* Feature Content Lockup */} +
+ +
- {/* MiniCard Grid */} -
- - - - + {/* MiniCard Grid */} +
+ + + + +
-
-
+
+
); }; From 77882079e80ac6bb1f61a7ce5c782d7de69018ef Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 09:23:54 -0600 Subject: [PATCH 05/16] Add interactivity and accessibility --- app/components/FeatureGrid.js | 14 +++++++- app/components/MiniCard.js | 64 +++++++++++++++++++++++++++++++++-- 2 files changed, 74 insertions(+), 4 deletions(-) diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index f6e19c1..8d29827 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -25,30 +25,42 @@ const FeatureGrid = ({ title, subtitle, className = "" }) => {
{/* MiniCard Grid */} -
+
diff --git a/app/components/MiniCard.js b/app/components/MiniCard.js index 1df1040..9b5abf5 100644 --- a/app/components/MiniCard.js +++ b/app/components/MiniCard.js @@ -10,19 +10,27 @@ const MiniCard = ({ label, labelLine1, labelLine2, + onClick, + href, + ariaLabel, }) => { - return ( + const cardContent = (
{/* Top part - Inner panel */}
{/* Content for the inner panel */} {panelContent && (
@@ -44,6 +52,56 @@ const MiniCard = ({
); + + // If href is provided, render as a link + if (href) { + return ( + + {cardContent} + + ); + } + + // If onClick is provided, render as a button + if (onClick) { + return ( + + ); + } + + // Default render as a div + return ( +
+ {cardContent} +
+ ); }; export default MiniCard; From 0d113488a7c23c9410c1e392f97561a65b7426fd Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 09:25:28 -0600 Subject: [PATCH 06/16] Add focus states --- app/components/ContentLockup.js | 2 +- app/components/FeatureGrid.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index fbdb486..2474f8c 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -80,7 +80,7 @@ const ContentLockup = ({ {variant === "feature" && linkText && ( {linkText} diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index 8d29827..7c6c4fa 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -8,9 +8,10 @@ const FeatureGrid = ({ title, subtitle, className = "" }) => { return (
{/* Feature Content Lockup */} From 733be5f84c65e80c4ef3fcdfb28e7e466dd59bef Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 09:34:10 -0600 Subject: [PATCH 07/16] Feature Grid storybook --- stories/ContentLockup.stories.js | 117 ++---------- stories/FeatureGrid.stories.js | 314 +++++-------------------------- stories/MiniCard.stories.js | 77 ++++++++ 3 files changed, 135 insertions(+), 373 deletions(-) create mode 100644 stories/MiniCard.stories.js diff --git a/stories/ContentLockup.stories.js b/stories/ContentLockup.stories.js index a71f092..2c89d30 100644 --- a/stories/ContentLockup.stories.js +++ b/stories/ContentLockup.stories.js @@ -5,46 +5,21 @@ export default { component: ContentLockup, parameters: { layout: "centered", - docs: { - description: { - component: - "A content lockup component that groups title, subtitle, description, and CTA button. Features responsive typography and spacing that adapts across breakpoints. Supports hero and feature variants with different styling and typography scales.", - }, - }, }, argTypes: { - title: { - control: { type: "text" }, - description: "The main title text", - }, - subtitle: { - control: { type: "text" }, - description: "The subtitle text", - }, - description: { - control: { type: "text" }, - description: "The description text", - }, - ctaText: { - control: { type: "text" }, - description: "The call-to-action button text", - }, - ctaHref: { - control: { type: "text" }, - description: "The call-to-action button link", - }, - buttonClassName: { - control: { type: "text" }, - description: - "Additional CSS classes to apply to the large button (md/lg breakpoints)", - }, + title: { control: { type: "text" } }, + subtitle: { control: { type: "text" } }, + description: { control: { type: "text" } }, + ctaText: { control: { type: "text" } }, + ctaHref: { control: { type: "text" } }, + buttonClassName: { control: { type: "text" } }, variant: { control: { type: "select" }, options: ["hero", "feature"], - description: "The visual variant of the content lockup", }, + linkText: { control: { type: "text" } }, + linkHref: { control: { type: "text" } }, }, - tags: ["autodocs"], }; export const Hero = { @@ -57,14 +32,6 @@ export const Hero = { ctaHref: "#", variant: "hero", }, - parameters: { - docs: { - description: { - story: - "Hero variant with large typography and inverse colors, designed for prominent display areas.", - }, - }, - }, }; export const Feature = { @@ -77,71 +44,15 @@ export const Feature = { ctaHref: "#", variant: "feature", }, - parameters: { - docs: { - description: { - story: - "Feature variant with smaller typography and primary colors, designed for content sections.", - }, - }, - }, }; -export const LongDescription = { +export const FeatureWithLink = { args: { - title: "Collaborate", - subtitle: "with clarity", - description: - "Help your community make important decisions in a way that reflects its unique values. Our platform provides the tools and frameworks needed to build successful, sustainable communities that can navigate complex challenges together.", - ctaText: "Learn how Community Rule works", - ctaHref: "#", - variant: "hero", - }, - parameters: { - docs: { - description: { - story: - "Content lockup with longer description text to test text wrapping.", - }, - }, - }, -}; - -export const ShortContent = { - args: { - title: "Simple", - subtitle: "solution", - description: "Easy community decision making.", - ctaText: "Try it", - ctaHref: "#", + title: "We've got your back, every step of the way", + subtitle: + "Use our toolkit to improve, document, and evolve your organization.", variant: "feature", - }, - parameters: { - docs: { - description: { - story: "Content lockup with minimal content to test compact layouts.", - }, - }, - }, -}; - -export const CustomButtonStyling = { - args: { - title: "Collaborate", - subtitle: "with clarity", - description: - "Help your community make important decisions in a way that reflects its unique values.", - ctaText: "Learn how Community Rule works", - ctaHref: "#", - buttonClassName: "shrink-0 whitespace-nowrap min-w-[280px]", - variant: "hero", - }, - parameters: { - docs: { - description: { - story: - "Content lockup with custom button styling applied to the large button (md/lg breakpoints).", - }, - }, + linkText: "Learn more", + linkHref: "#", }, }; diff --git a/stories/FeatureGrid.stories.js b/stories/FeatureGrid.stories.js index 5cbace7..28864ba 100644 --- a/stories/FeatureGrid.stories.js +++ b/stories/FeatureGrid.stories.js @@ -8,299 +8,73 @@ export default { docs: { description: { component: ` -A responsive component that displays a collection of organizational tools and services in a clean card-based grid layout with supportive messaging and categorized feature highlights. +A responsive feature grid component that displays organizational tools and services in a clean card-based layout with supportive messaging and categorized feature highlights. ## Features -- **Three grid variants**: 1x4, 2x2, and 2x4 configurations -- **Responsive design**: Adapts from single column to multi-column grid -- **Color coding**: Purple, green, pink, and blue brand colors for categorization -- **Interactive elements**: Hover states and keyboard navigation -- **Accessibility**: WCAG 2.1 AA compliant with proper ARIA labels -- **Design system integration**: Uses design tokens for consistent styling -## Usage -\`\`\`jsx - -\`\`\` +- **Responsive Layout**: Adapts from 2x2 grid on mobile to 1x4 grid on tablet to horizontal layout on desktop +- **ContentLockup Integration**: Uses the feature variant with "Learn more" link +- **MiniCard Grid**: Four feature cards with color-coded backgrounds and icons +- **Accessibility**: Full keyboard navigation, focus indicators, and ARIA labels +- **Design System**: Uses design tokens for consistent spacing, colors, and typography + +## Responsive Behavior + +- **Mobile (< 768px)**: 2x2 grid layout with ContentLockup on top +- **Tablet (768px - 1024px)**: 1x4 grid layout with ContentLockup on top +- **Desktop (> 1024px)**: Horizontal layout with ContentLockup on left, 1x4 grid on right + +## Interactive Elements + +- **MiniCards**: Hover effects, focus indicators, and keyboard navigation +- **Learn More Link**: Underlined link with focus states +- **Color-coded Features**: Royal, green, pink, and blue backgrounds for categorization + +## Accessibility + +- WCAG 2.1 AA compliant +- Keyboard navigation support +- Screen reader friendly with proper ARIA labels +- Focus management with visible indicators `, }, }, }, argTypes: { - variant: { - control: { type: "select" }, - options: ["1x4", "2x2", "2x4"], - description: "Grid layout variant", - }, - headline: { + title: { control: { type: "text" }, - description: "Main headline text", + description: "Main headline text for the ContentLockup", }, - description: { + subtitle: { control: { type: "text" }, - description: "Supporting description text", + description: "Supporting subtitle text for the ContentLockup", }, - ctaText: { + className: { control: { type: "text" }, - description: "Call-to-action button text", - }, - ctaHref: { - control: { type: "text" }, - description: "Call-to-action link URL", - }, - features: { - control: { type: "object" }, - description: "Array of feature objects", - }, - onFeatureClick: { - action: "feature-click", - description: "Callback when feature card is clicked", - }, - onCtaClick: { - action: "cta-click", - description: "Callback when CTA is clicked", + description: "Additional CSS classes for custom styling", }, }, }; -// Sample feature data -const sampleFeatures = [ - { - id: "consensus", - label: "Consensus Decision Making", - description: "Build agreement through collaborative processes", - icon: "assets/Icon_Consensus.svg", - color: "purple", - }, - { - id: "governance", - label: "Governance Structures", - description: "Create clear roles and responsibilities", - icon: "assets/Icon_ElectedBoard.svg", - color: "green", - }, - { - id: "communication", - label: "Communication Tools", - description: "Facilitate transparent information sharing", - icon: "assets/Icon_Sociocracy.svg", - color: "pink", - }, - { - id: "resources", - label: "Resource Management", - description: "Efficiently allocate and track resources", - icon: "assets/Icon_Petition.svg", - color: "blue", - }, -]; - -// Default story export const Default = { args: { - variant: "2x2", - headline: "Everything you need to build better communities", - description: "Our comprehensive toolkit provides the tools, resources, and guidance to help your organization thrive.", - ctaText: "Learn more", - ctaHref: "#", - features: sampleFeatures, - }, -}; - -// 1x4 Grid Variant -export const OneByFour = { - args: { - variant: "1x4", - headline: "Core organizational tools", - description: "Essential features for effective community governance and decision-making.", - ctaText: "Explore tools", - ctaHref: "#", - features: sampleFeatures, + title: "We've got your back, every step of the way", + subtitle: + "Use our toolkit to improve, document, and evolve your organization.", }, parameters: { docs: { description: { - story: "1x4 grid layout optimized for showcasing four key features in a single row on desktop.", - }, - }, - }, -}; - -// 2x4 Grid Variant -export const TwoByFour = { - args: { - variant: "2x4", - headline: "Complete toolkit for organizations", - description: "Eight essential tools and services to support your community's growth and success.", - ctaText: "Get started", - ctaHref: "#", - features: [ - ...sampleFeatures, - { - id: "analytics", - label: "Analytics & Insights", - description: "Track progress and measure impact", - icon: "assets/Icon_Consensus.svg", - color: "purple", - }, - { - id: "training", - label: "Training & Education", - description: "Build skills and knowledge", - icon: "assets/Icon_ElectedBoard.svg", - color: "green", - }, - { - id: "support", - label: "Community Support", - description: "Connect with peers and experts", - icon: "assets/Icon_Sociocracy.svg", - color: "pink", - }, - { - id: "integration", - label: "System Integration", - description: "Connect with existing tools", - icon: "assets/Icon_Petition.svg", - color: "blue", - }, - ], - }, - parameters: { - docs: { - description: { - story: "2x4 grid layout for comprehensive feature showcases with eight tools.", - }, - }, - }, -}; - -// All Variants Comparison -export const AllVariants = { - render: () => ( -
-
-

1x4 Grid Variant

- -
- -
-

2x2 Grid Variant

- -
- -
-

2x4 Grid Variant

- -
-
- ), - parameters: { - docs: { - description: { - story: "Side-by-side comparison of all three grid variants to show the differences in layout and content density.", - }, - }, - }, -}; - -// Interactive States -export const InteractiveStates = { - args: { - variant: "2x2", - headline: "Interactive feature showcase", - description: "Hover over cards and use keyboard navigation to test interactive states.", - ctaText: "Try it out", - ctaHref: "#", - features: sampleFeatures, - }, - parameters: { - docs: { - description: { - story: "Test hover states, focus indicators, and keyboard navigation for accessibility compliance.", - }, - }, - }, -}; - -// Empty State -export const EmptyState = { - args: { - variant: "2x2", - headline: "No features available", - description: "This is how the component looks when no features are provided.", - ctaText: "Add features", - ctaHref: "#", - features: [], - }, - parameters: { - docs: { - description: { - story: "Empty state when no features are provided, showing graceful fallback messaging.", + story: ` +Default FeatureGrid with standard content. This component demonstrates: + +- **ContentLockup**: Feature variant with title, subtitle, and "Learn more" link +- **MiniCard Grid**: Four feature cards with different colors and icons +- **Responsive Design**: Layout adapts across mobile, tablet, and desktop breakpoints +- **Interactive States**: Hover effects and focus indicators on all interactive elements + +The component uses a dark background (#171717) with rounded corners and proper spacing using design tokens. + `, }, }, }, diff --git a/stories/MiniCard.stories.js b/stories/MiniCard.stories.js new file mode 100644 index 0000000..77e6997 --- /dev/null +++ b/stories/MiniCard.stories.js @@ -0,0 +1,77 @@ +import MiniCard from "../app/components/MiniCard"; + +export default { + title: "Components/MiniCard", + component: MiniCard, + parameters: { + layout: "centered", + }, + argTypes: { + backgroundColor: { + control: "select", + options: [ + "bg-[var(--color-surface-default-brand-royal)]", + "bg-[#D1FFE2]", + "bg-[#F4CAFF]", + "bg-[#CBDDFF]", + ], + }, + labelLine1: { control: "text" }, + labelLine2: { control: "text" }, + panelContent: { control: "text" }, + href: { control: "text" }, + onClick: { action: "clicked" }, + ariaLabel: { control: "text" }, + }, +}; + +export const Default = { + args: { + backgroundColor: "bg-[var(--color-surface-default-brand-royal)]", + labelLine1: "Decision-making", + labelLine2: "support", + panelContent: "assets/Feature_Support.png", + }, +}; + +export const ColorVariants = { + render: () => ( +
+ + + + +
+ ), +}; + +export const AsLink = { + args: { + backgroundColor: "bg-[var(--color-surface-default-brand-royal)]", + labelLine1: "Decision-making", + labelLine2: "support", + panelContent: "assets/Feature_Support.png", + href: "#decision-making", + ariaLabel: "Navigate to decision-making support tools", + }, +}; From 39261e18d3fee89d55ea660e6562b6d70225f407 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:26:02 -0600 Subject: [PATCH 08/16] SVG noise texture draft --- public/assets/Feature_Support.svg | 57 +++++++++++++++++++++++++++++++ public/file.svg | 1 - public/globe.svg | 1 - public/next.svg | 1 - public/vercel.svg | 1 - public/window.svg | 1 - 6 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 public/assets/Feature_Support.svg delete mode 100644 public/file.svg delete mode 100644 public/globe.svg delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg delete mode 100644 public/window.svg diff --git a/public/assets/Feature_Support.svg b/public/assets/Feature_Support.svg new file mode 100644 index 0000000..185289b --- /dev/null +++ b/public/assets/Feature_Support.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/file.svg b/public/file.svg deleted file mode 100644 index 004145c..0000000 --- a/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/globe.svg b/public/globe.svg deleted file mode 100644 index 567f17b..0000000 --- a/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/next.svg b/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index 7705396..0000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/window.svg b/public/window.svg deleted file mode 100644 index b2b2a44..0000000 --- a/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 580b7b16c128b6ee67330067012487ce980b1dc0 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:28:26 -0600 Subject: [PATCH 09/16] Update noise textures --- app/components/HeroDecor.js | 6 +++--- app/components/QuoteBlock.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/components/HeroDecor.js b/app/components/HeroDecor.js index 725744c..8ce8adc 100644 --- a/app/components/HeroDecor.js +++ b/app/components/HeroDecor.js @@ -35,9 +35,9 @@ const HeroDecor = ({ className = "" }) => { result="softNoise" type="matrix" values=" - 0.1 0 0 0 0.05 - 0 0.1 0 0 0.05 - 0 0 0.1 0 0.05 + 0.8 0 0 0 0.3 + 0 0.6 0 0 0.2 + 0 0 1.0 0 0.4 0 0 0 0.25 0" /> {/* 3) MASK noise to the element's alpha only */} diff --git a/app/components/QuoteBlock.js b/app/components/QuoteBlock.js index 8252ef4..037e5c4 100644 --- a/app/components/QuoteBlock.js +++ b/app/components/QuoteBlock.js @@ -131,7 +131,7 @@ const QuoteBlock = ({ className="absolute inset-0 bg-[var(--color-surface-default-brand-darker-accent)]" style={{ filter: - 'url(\'data:image/svg+xml;charset=utf-8,#grain\')', + 'url(\'data:image/svg+xml;charset=utf-8,#grain\')', }} /> From e606d4b6a5d21acfe6f311301f6b11dc2b19f6ce Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:29:32 -0600 Subject: [PATCH 10/16] Make Feature Grid an HTML section --- app/components/FeatureGrid.js | 118 +++++++++++++++++----------------- 1 file changed, 58 insertions(+), 60 deletions(-) diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index 7c6c4fa..0cdec2e 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -6,67 +6,65 @@ import MiniCard from "./MiniCard"; const FeatureGrid = ({ title, subtitle, className = "" }) => { return ( -
-
-
- {/* Feature Content Lockup */} -
- -
- - {/* MiniCard Grid */} -
- - - - -
+
+
+ {/* Feature Content Lockup */} +
+
-
-
+ + {/* MiniCard Grid */} +
+ + + + +
+
+
); }; From ffdc9b72691549093589b35667d28513bf112a5d Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:36:50 -0600 Subject: [PATCH 11/16] Fix outer padding --- app/components/FeatureGrid.js | 102 +++++++++++++++++----------------- 1 file changed, 52 insertions(+), 50 deletions(-) diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index 0cdec2e..fe91bb3 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -7,61 +7,63 @@ import MiniCard from "./MiniCard"; const FeatureGrid = ({ title, subtitle, className = "" }) => { return (
-
- {/* Feature Content Lockup */} -
- -
+
+
+ {/* Feature Content Lockup */} +
+ +
- {/* MiniCard Grid */} -
- - - - + {/* MiniCard Grid */} +
+ + + + +
From 0f996889d29bb52b51c74e690f2e1b4c4c8acffc Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:50:05 -0600 Subject: [PATCH 12/16] Ask Organizer default breakpoint --- app/components/AskOrganizer.js | 42 +++++++++++++++++++++++++ app/components/ContentLockup.js | 55 +++++++++++++++++++++++---------- app/page.js | 9 ++++++ stories/AskOrganizer.stories.js | 47 ++++++++++++++++++++++++++++ 4 files changed, 137 insertions(+), 16 deletions(-) create mode 100644 app/components/AskOrganizer.js create mode 100644 stories/AskOrganizer.stories.js diff --git a/app/components/AskOrganizer.js b/app/components/AskOrganizer.js new file mode 100644 index 0000000..924bd98 --- /dev/null +++ b/app/components/AskOrganizer.js @@ -0,0 +1,42 @@ +"use client"; + +import React from "react"; +import ContentLockup from "./ContentLockup"; +import Button from "./Button"; + +const AskOrganizer = ({ + title, + subtitle, + description, + buttonText = "Ask an organizer", + buttonHref = "#", + className = "", +}) => { + return ( +
+
+ {/* Content Lockup */} + + + {/* Button */} +
+ +
+
+
+ ); +}; + +export default AskOrganizer; diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index 2474f8c..e540be1 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -46,35 +46,58 @@ const ContentLockup = ({ shape: "w-[20px] h-[20px] md:w-[24px] md:h-[24px] lg:w-[28px] lg:h-[28px]", }, + ask: { + container: "flex flex-col gap-[var(--spacing-scale-008)] relative z-10", + textContainer: "flex flex-col gap-[var(--spacing-scale-008)]", + titleGroup: "flex flex-col gap-[var(--spacing-scale-008)]", + titleContainer: + "flex gap-[var(--spacing-scale-008)] items-center justify-center", + title: + "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] text-[var(--color-content-default-brand-primary)] text-center", + subtitle: + "font-inter font-normal text-[18px] leading-[130%] tracking-[0] text-[var(--color-content-default-primary)] text-center", + shape: + "w-[16px] h-[16px] md:w-[20px] md:h-[20px] lg:w-[24px] lg:h-[24px]", + }, }; const styles = variantStyles[variant] || variantStyles.hero; return (
- {/* Text content container */} -
- {/* Title and subtitle group */} + {variant === "ask" ? ( + /* Simplified structure for ask variant */
- {/* Title container */}

{title}

- {variant === "hero" && ( - Decorative shapes - )}
- - {/* Subtitle */}

{subtitle}

+ ) : ( + /* Full structure for other variants */ +
+ {/* Title and subtitle group */} +
+ {/* Title container */} +
+

{title}

+ {variant === "hero" && ( + Decorative shapes + )} +
- {/* Description */} - {description &&

{description}

} -
+ {/* Subtitle */} +

{subtitle}

+
+ + {/* Description */} + {description &&

{description}

} +
+ )} {/* Link for feature variant */} {variant === "feature" && linkText && ( diff --git a/app/page.js b/app/page.js index 484966f..41d2fd0 100644 --- a/app/page.js +++ b/app/page.js @@ -4,6 +4,7 @@ import LogoWall from "./components/LogoWall"; import RuleStack from "./components/RuleStack"; import QuoteBlock from "./components/QuoteBlock"; import FeatureGrid from "./components/FeatureGrid"; +import AskOrganizer from "./components/AskOrganizer"; export default function Page() { const heroBannerData = { @@ -43,6 +44,13 @@ export default function Page() { "Use our toolkit to improve, document, and evolve your organization.", }; + const askOrganizerData = { + title: "Still have questions?", + subtitle: "Get answers from an experienced organizer", + buttonText: "Ask an organizer", + buttonHref: "#contact", + }; + return (
@@ -51,6 +59,7 @@ export default function Page() { +
); } diff --git a/stories/AskOrganizer.stories.js b/stories/AskOrganizer.stories.js new file mode 100644 index 0000000..1cb5bc5 --- /dev/null +++ b/stories/AskOrganizer.stories.js @@ -0,0 +1,47 @@ +import AskOrganizer from "../app/components/AskOrganizer"; + +export default { + title: "Components/AskOrganizer", + component: AskOrganizer, + parameters: { + docs: { + description: { + component: + "The AskOrganizer component provides clear pathways for user inquiries. This component serves as a conversion point throughout the platform.", + }, + }, + }, + argTypes: { + title: { + control: "text", + description: "The main title for the ask organizer section", + }, + subtitle: { + control: "text", + description: "The subtitle text", + }, + description: { + control: "text", + description: "Additional description text", + }, + buttonText: { + control: "text", + description: "Text for the call-to-action button", + }, + buttonHref: { + control: "text", + description: "URL for the button link", + }, + }, +}; + +export const Default = { + args: { + title: "Need help getting started?", + subtitle: "Our organizers are here to support you", + description: + "Whether you're forming a new community or improving an existing one, our experienced organizers can provide guidance tailored to your specific needs.", + buttonText: "Ask an organizer", + buttonHref: "#contact", + }, +}; From 50d4bf6a0f30185792559d93af8d7a3c90a6e47c Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:53:16 -0600 Subject: [PATCH 13/16] Ask Organizer md breakpoint --- app/components/AskOrganizer.js | 4 ++-- app/components/ContentLockup.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/components/AskOrganizer.js b/app/components/AskOrganizer.js index 924bd98..0660f66 100644 --- a/app/components/AskOrganizer.js +++ b/app/components/AskOrganizer.js @@ -14,7 +14,7 @@ const AskOrganizer = ({ }) => { return (
-
diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index e540be1..be061e2 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -53,9 +53,9 @@ const ContentLockup = ({ titleContainer: "flex gap-[var(--spacing-scale-008)] items-center justify-center", title: - "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] text-[var(--color-content-default-brand-primary)] text-center", + "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] md:text-[44px] md:leading-[110%] text-[var(--color-content-default-brand-primary)] text-center", subtitle: - "font-inter font-normal text-[18px] leading-[130%] tracking-[0] text-[var(--color-content-default-primary)] text-center", + "font-inter font-normal text-[18px] leading-[130%] tracking-[0] md:text-[24px] md:leading-[32px] text-[var(--color-content-default-primary)] text-center", shape: "w-[16px] h-[16px] md:w-[20px] md:h-[20px] lg:w-[24px] lg:h-[24px]", }, From d0ce6f16f2d8f090e26047068a3678d5ee80e197 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:55:58 -0600 Subject: [PATCH 14/16] Ask Organizer xl breakpoint --- app/components/AskOrganizer.js | 7 ++++++- app/components/ContentLockup.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/components/AskOrganizer.js b/app/components/AskOrganizer.js index 0660f66..000c217 100644 --- a/app/components/AskOrganizer.js +++ b/app/components/AskOrganizer.js @@ -30,7 +30,12 @@ const AskOrganizer = ({ {/* Button */}
-
diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index be061e2..fc9ed41 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -53,7 +53,7 @@ const ContentLockup = ({ titleContainer: "flex gap-[var(--spacing-scale-008)] items-center justify-center", title: - "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] md:text-[44px] md:leading-[110%] text-[var(--color-content-default-brand-primary)] text-center", + "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] md:text-[44px] md:leading-[110%] xl:text-[52px] xl:leading-[110%] text-[var(--color-content-default-brand-primary)] text-center", subtitle: "font-inter font-normal text-[18px] leading-[130%] tracking-[0] md:text-[24px] md:leading-[32px] text-[var(--color-content-default-primary)] text-center", shape: From 6a66f5f61fbc83c4338c64bfb6611fad5593a31f Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Wed, 27 Aug 2025 11:03:56 -0600 Subject: [PATCH 15/16] Ask Organizer storybook --- app/components/AskOrganizer.js | 65 ++++++++++++++++++++++++++++++-- app/components/ContentLockup.js | 20 +++++++--- stories/AskOrganizer.stories.js | 39 +++++++++++++++++-- stories/ContentLockup.stories.js | 10 ++++- 4 files changed, 120 insertions(+), 14 deletions(-) diff --git a/app/components/AskOrganizer.js b/app/components/AskOrganizer.js index 000c217..0e3244d 100644 --- a/app/components/AskOrganizer.js +++ b/app/components/AskOrganizer.js @@ -11,30 +11,89 @@ const AskOrganizer = ({ buttonText = "Ask an organizer", buttonHref = "#", className = "", + variant = "centered", // centered, left-aligned, compact + onContactClick, // Analytics callback }) => { + // Analytics tracking for contact button clicks + const handleContactClick = (event) => { + // Track contact button interaction + if (onContactClick) { + onContactClick({ + event: "contact_button_click", + component: "AskOrganizer", + variant, + buttonText, + buttonHref, + timestamp: new Date().toISOString(), + }); + } + + // Additional analytics tracking (can be expanded) + if (typeof window !== "undefined" && window.gtag) { + window.gtag("event", "contact_button_click", { + event_category: "engagement", + event_label: "ask_organizer", + value: 1, + }); + } + }; + + // Variant-specific styling + const variantStyles = { + centered: { + container: "text-center", + buttonContainer: "flex justify-center", + }, + "left-aligned": { + container: "text-left", + buttonContainer: "flex justify-start", + }, + compact: { + container: "text-center", + buttonContainer: "flex justify-center", + }, + }; + + const styles = variantStyles[variant] || variantStyles.centered; + + // Section padding based on variant + const sectionPadding = + variant === "compact" + ? "py-[var(--spacing-scale-016)] px-[var(--spacing-scale-016)] md:py-[var(--spacing-scale-032)] md:px-[var(--spacing-scale-032)]" + : "py-[var(--spacing-scale-032)] px-[var(--spacing-scale-032)] md:py-[var(--spacing-scale-096)] md:px-[var(--spacing-scale-064)]"; + + // Gap between content and button based on variant + const contentGap = + variant === "compact" + ? "gap-[var(--spacing-scale-020)]" + : "gap-[var(--spacing-scale-040)]"; + return (
-
+
{/* Content Lockup */} {/* Button */} -
+
diff --git a/app/components/ContentLockup.js b/app/components/ContentLockup.js index fc9ed41..f6056c9 100644 --- a/app/components/ContentLockup.js +++ b/app/components/ContentLockup.js @@ -12,6 +12,7 @@ const ContentLockup = ({ variant = "hero", linkText, linkHref, + alignment = "center", // center, left }) => { // Variant-specific styling const variantStyles = { @@ -50,12 +51,11 @@ const ContentLockup = ({ container: "flex flex-col gap-[var(--spacing-scale-008)] relative z-10", textContainer: "flex flex-col gap-[var(--spacing-scale-008)]", titleGroup: "flex flex-col gap-[var(--spacing-scale-008)]", - titleContainer: - "flex gap-[var(--spacing-scale-008)] items-center justify-center", + titleContainer: "flex gap-[var(--spacing-scale-008)] items-center", title: - "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] md:text-[44px] md:leading-[110%] xl:text-[52px] xl:leading-[110%] text-[var(--color-content-default-brand-primary)] text-center", + "font-bricolage-grotesque font-medium text-[36px] leading-[110%] tracking-[0] md:text-[44px] md:leading-[110%] xl:text-[52px] xl:leading-[110%] text-[var(--color-content-default-brand-primary)]", subtitle: - "font-inter font-normal text-[18px] leading-[130%] tracking-[0] md:text-[24px] md:leading-[32px] text-[var(--color-content-default-primary)] text-center", + "font-inter font-normal text-[18px] leading-[130%] tracking-[0] md:text-[24px] md:leading-[32px] text-[var(--color-content-default-primary)]", shape: "w-[16px] h-[16px] md:w-[20px] md:h-[20px] lg:w-[24px] lg:h-[24px]", }, @@ -67,8 +67,16 @@ const ContentLockup = ({
{variant === "ask" ? ( /* Simplified structure for ask variant */ -
-
+
+

{title}

{subtitle}

diff --git a/stories/AskOrganizer.stories.js b/stories/AskOrganizer.stories.js index 1cb5bc5..7dc0e03 100644 --- a/stories/AskOrganizer.stories.js +++ b/stories/AskOrganizer.stories.js @@ -32,16 +32,47 @@ export default { control: "text", description: "URL for the button link", }, + variant: { + control: { type: "select" }, + options: ["centered", "left-aligned", "compact"], + description: "Layout variant for the component", + }, + onContactClick: { + action: "contact clicked", + description: "Analytics callback for contact button clicks", + }, }, }; export const Default = { args: { - title: "Need help getting started?", - subtitle: "Our organizers are here to support you", - description: - "Whether you're forming a new community or improving an existing one, our experienced organizers can provide guidance tailored to your specific needs.", + title: "Still have questions?", + subtitle: "Get answers from an experienced organizer", buttonText: "Ask an organizer", buttonHref: "#contact", + variant: "centered", + onContactClick: (data) => console.log("Contact clicked:", data), + }, +}; + +export const LeftAligned = { + args: { + title: "Still have questions?", + subtitle: "Get answers from an experienced organizer", + buttonText: "Ask an organizer", + buttonHref: "#contact", + variant: "left-aligned", + onContactClick: (data) => console.log("Contact clicked:", data), + }, +}; + +export const Compact = { + args: { + title: "Still have questions?", + subtitle: "Get answers from an experienced organizer", + buttonText: "Ask an organizer", + buttonHref: "#contact", + variant: "compact", + onContactClick: (data) => console.log("Contact clicked:", data), }, }; diff --git a/stories/ContentLockup.stories.js b/stories/ContentLockup.stories.js index 2c89d30..387d4ad 100644 --- a/stories/ContentLockup.stories.js +++ b/stories/ContentLockup.stories.js @@ -15,7 +15,7 @@ export default { buttonClassName: { control: { type: "text" } }, variant: { control: { type: "select" }, - options: ["hero", "feature"], + options: ["hero", "feature", "ask"], }, linkText: { control: { type: "text" } }, linkHref: { control: { type: "text" } }, @@ -56,3 +56,11 @@ export const FeatureWithLink = { linkHref: "#", }, }; + +export const Ask = { + args: { + title: "Still have questions?", + subtitle: "Get answers from an experienced organizer", + variant: "ask", + }, +}; From 4d8e735398aa9debc693536a234a333e63cc71b8 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Thu, 28 Aug 2025 14:29:04 -0600 Subject: [PATCH 16/16] Storybook Image fixes --- app/components/FeatureGrid.js | 1 + app/components/MiniCard.js | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/components/FeatureGrid.js b/app/components/FeatureGrid.js index fe91bb3..ecda70e 100644 --- a/app/components/FeatureGrid.js +++ b/app/components/FeatureGrid.js @@ -3,6 +3,7 @@ import React from "react"; import ContentLockup from "./ContentLockup"; import MiniCard from "./MiniCard"; +import Image from "next/image"; const FeatureGrid = ({ title, subtitle, className = "" }) => { return ( diff --git a/app/components/MiniCard.js b/app/components/MiniCard.js index 9b5abf5..a1e2b3a 100644 --- a/app/components/MiniCard.js +++ b/app/components/MiniCard.js @@ -1,6 +1,7 @@ "use client"; import React from "react"; +import Image from "next/image"; const MiniCard = ({ children, @@ -23,7 +24,7 @@ const MiniCard = ({ {/* Content for the inner panel */} {panelContent && (
- {
)}