From a0a0ab8ee440931329f1deb2e1c614b1d9e85b16 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Sun, 20 Jul 2025 10:35:54 +0100 Subject: [PATCH] Updates --- bun.lockb | Bin 103273 -> 216319 bytes .../(functions)/popver/grab-popover-styles.ts | 75 +++ components/lib/(partials)/ModalComponent.tsx | 63 +++ .../lib/(partials)/PopoverComponent.tsx | 113 ++++ components/lib/Readme.md | 17 + components/lib/base.css | 155 ++++++ components/lib/bun.lock | 193 +++++++ .../lib/composites/docs/TWUIDocsAside.tsx | 5 +- .../lib/composites/docs/TWUIDocsLink.tsx | 19 +- .../composites/docs/TWUIDocsRightAside.tsx | 179 ++++++ components/lib/composites/docs/index.tsx | 64 ++- components/lib/editors/AceEditor.tsx | 30 +- components/lib/editors/TinyMCE/index.tsx | 154 +++++- components/lib/editors/ace-editor-modes.ts | 125 +++++ components/lib/elements/Border.tsx | 4 +- components/lib/elements/Breadcrumbs.tsx | 202 +++++-- components/lib/elements/Card.tsx | 43 +- components/lib/elements/CheckBulletPoints.tsx | 61 +++ components/lib/elements/CodeBlock.tsx | 11 +- .../lib/elements/ColorSchemeSelector.tsx | 84 ++- components/lib/elements/Dropdown.tsx | 58 +- components/lib/elements/EmptyContent.tsx | 88 +++ components/lib/elements/HeaderLink.tsx | 33 ++ components/lib/elements/HeaderNav.tsx | 97 ++++ .../lib/elements/HeaderNavLinkComponent.tsx | 141 +++++ .../lib/elements/HtmlToReactComponent.tsx | 34 ++ components/lib/elements/LinkList.tsx | 157 ++++++ components/lib/elements/Loading.tsx | 4 +- components/lib/elements/LoadingOverlay.tsx | 33 ++ components/lib/elements/Modal.tsx | 215 ++++++-- components/lib/elements/Pagination.tsx | 126 +++++ components/lib/elements/Paper.tsx | 6 +- components/lib/elements/Popover.tsx | 9 + components/lib/elements/Search.tsx | 23 +- components/lib/elements/Table.tsx | 76 +++ components/lib/elements/Tabs.tsx | 61 ++- components/lib/elements/Tag.tsx | 42 +- components/lib/elements/Toast.tsx | 87 ++- components/lib/elements/Toggle.tsx | 28 +- components/lib/form/Checkbox.tsx | 135 +++-- components/lib/form/FileUpload.tsx | 244 +++++++-- components/lib/form/Form.tsx | 25 +- components/lib/form/ImageUpload.tsx | 120 +++- components/lib/form/Input.tsx | 287 ---------- .../lib/form/Input/NumberInputButtons.tsx | 121 ++++ components/lib/form/Input/index.tsx | 517 ++++++++++++++++++ components/lib/form/SearchSelect.tsx | 293 ++++++++++ components/lib/form/Select.tsx | 273 ++++++--- .../lib/hooks/useIntersectionObserver.tsx | 25 +- components/lib/hooks/useReady.tsx | 29 + components/lib/hooks/useWebSocket.tsx | 108 +++- components/lib/layout/ArrowedLink.tsx | 25 + components/lib/layout/Button.tsx | 147 ++++- components/lib/layout/Center.tsx | 2 +- components/lib/layout/Divider.tsx | 18 +- components/lib/layout/DocsImg.tsx | 17 + components/lib/layout/H1.tsx | 7 +- components/lib/layout/H2.tsx | 7 +- components/lib/layout/H3.tsx | 7 +- components/lib/layout/H4.tsx | 7 +- components/lib/layout/H5.tsx | 7 +- components/lib/layout/IconLink.tsx | 38 ++ components/lib/layout/Img.tsx | 45 +- components/lib/layout/Link.tsx | 18 +- components/lib/layout/P.tsx | 14 +- components/lib/layout/Row.tsx | 16 +- components/lib/layout/Spacer.tsx | 30 + components/lib/layout/Span.tsx | 2 +- components/lib/layout/Stack copy.tsx | 37 ++ components/lib/layout/Stack.tsx | 10 +- .../lib/mdx/markdown/MarkdownEditor.tsx | 88 +++ .../mdx/markdown/MarkdownEditorComponent.tsx | 32 ++ .../mdx/markdown/MarkdownEditorDeprecated.tsx | 28 + .../MarkdownEditorPreviewComponent.tsx | 77 +++ .../MarkdownEditorSelectorButtons.tsx | 111 ++++ components/lib/mdx/mdx-components.tsx | 77 +++ .../lib/next-js/hooks/useMDXComponents.tsx | 4 +- components/lib/package.json | 40 +- components/lib/types.ts | 68 +++ components/lib/utils/camel-to-normal-case.ts | 6 + components/lib/utils/fetch/fetchApi.ts | 5 +- .../lib/utils/form/imageInputToBase64.ts | 27 +- components/lib/utils/normalize-text.ts | 6 + components/lib/utils/numberfy.ts | 31 ++ components/lib/utils/slug-to-normal-text.ts | 15 + components/lib/utils/slugify.ts | 37 ++ .../pages/blog/(sections)/BlogPostsList.tsx | 25 + .../blog/(sections)/BlogPostsListCard.tsx | 42 ++ components/pages/blog/(sections)/Hero.tsx | 24 + components/pages/blog/index.tsx | 12 + components/pages/blog/slug/index.tsx | 65 +++ next.config.ts | 25 +- package.json | 10 +- pages/_app.tsx | 21 +- pages/blog/[slug]/index.tsx | 91 +++ pages/blog/index.tsx | 34 ++ postcss.config.mjs | 5 +- styles/globals.css | 13 +- types.ts | 22 + 99 files changed, 5678 insertions(+), 909 deletions(-) create mode 100644 components/lib/(functions)/popver/grab-popover-styles.ts create mode 100644 components/lib/(partials)/ModalComponent.tsx create mode 100644 components/lib/(partials)/PopoverComponent.tsx create mode 100644 components/lib/Readme.md create mode 100644 components/lib/base.css create mode 100644 components/lib/bun.lock create mode 100644 components/lib/composites/docs/TWUIDocsRightAside.tsx create mode 100644 components/lib/editors/ace-editor-modes.ts create mode 100644 components/lib/elements/CheckBulletPoints.tsx create mode 100644 components/lib/elements/EmptyContent.tsx create mode 100644 components/lib/elements/HeaderLink.tsx create mode 100644 components/lib/elements/HeaderNav.tsx create mode 100644 components/lib/elements/HeaderNavLinkComponent.tsx create mode 100644 components/lib/elements/HtmlToReactComponent.tsx create mode 100644 components/lib/elements/LinkList.tsx create mode 100644 components/lib/elements/LoadingOverlay.tsx create mode 100644 components/lib/elements/Pagination.tsx create mode 100644 components/lib/elements/Popover.tsx create mode 100644 components/lib/elements/Table.tsx delete mode 100644 components/lib/form/Input.tsx create mode 100644 components/lib/form/Input/NumberInputButtons.tsx create mode 100644 components/lib/form/Input/index.tsx create mode 100644 components/lib/form/SearchSelect.tsx create mode 100644 components/lib/hooks/useReady.tsx create mode 100644 components/lib/layout/ArrowedLink.tsx create mode 100644 components/lib/layout/DocsImg.tsx create mode 100644 components/lib/layout/IconLink.tsx create mode 100644 components/lib/layout/Spacer.tsx create mode 100644 components/lib/layout/Stack copy.tsx create mode 100644 components/lib/mdx/markdown/MarkdownEditor.tsx create mode 100644 components/lib/mdx/markdown/MarkdownEditorComponent.tsx create mode 100644 components/lib/mdx/markdown/MarkdownEditorDeprecated.tsx create mode 100644 components/lib/mdx/markdown/MarkdownEditorPreviewComponent.tsx create mode 100644 components/lib/mdx/markdown/MarkdownEditorSelectorButtons.tsx create mode 100644 components/lib/mdx/mdx-components.tsx create mode 100644 components/lib/types.ts create mode 100644 components/lib/utils/camel-to-normal-case.ts create mode 100644 components/lib/utils/normalize-text.ts create mode 100644 components/lib/utils/numberfy.ts create mode 100644 components/lib/utils/slug-to-normal-text.ts create mode 100644 components/lib/utils/slugify.ts create mode 100644 components/pages/blog/(sections)/BlogPostsList.tsx create mode 100644 components/pages/blog/(sections)/BlogPostsListCard.tsx create mode 100644 components/pages/blog/(sections)/Hero.tsx create mode 100644 components/pages/blog/index.tsx create mode 100644 components/pages/blog/slug/index.tsx create mode 100644 pages/blog/[slug]/index.tsx create mode 100644 pages/blog/index.tsx create mode 100644 types.ts diff --git a/bun.lockb b/bun.lockb index ed7f8ce2a0a3a209750659712ebfb4c2ec0c192e..46b7e53ae7055323fa0415cc56ef5c424623c6a9 100755 GIT binary patch literal 216319 zcmeF4d0b83_y2FX(nK^-Xiftu8Wc&BR1zu)rFo)B^I*sjiU=XfR8oi(nL=nl86q;5 z5EVkEGSqLa?%8kW?St;E@9)3ðnI-90?lT6;MA?0dRzA9-2zu#jMNH{Sqt&wy|l zx3B4b9FMAw5s2Zdm}T$hU-~NTlVwEO zRTB@V?8xU`2h?@tOgf@(GPSOC_iXefUlRY zrw1b(qkvXx0q6_m4?%~58iNXgh6V?QdHXOJ)>PgzGSoA`gTe6d4EGBRLR}E%>c?QX zx%$F8gYgaQ_XloBZ-^2!I>I;99r#wrWBCRi24fKD3Q+X-2+D_mazR&QK;uD$L0|V_ zFvLI$K}UgRfFd^-f)~Yd;ABCwKrw#~{9?Q$?qnzzf&5BP?Dt!$ehD-}JFTGdSPseu z8VijiK|3HQjN23PgF$sbF^#c}oU zbPMx_aq{zo4$Ch?9^=acMf)2;r9ri!li1J0@P_T(-2=k{LZQ!K4?>Qu00^}R z6ysa~#&KMOT!TYAwHXZ0fKcC1U(b+RP!1u*-jrhbE2cCT6zyh$;<}TCpmBWpKp})! zFW>|~KR_^8ejNPZI2@N{*_kQF(kYw{uE>M(gipt6w1_<2Eb906KN3#{ z_`!Z8Q7Q=iMZdwGuI|u%Mji}4=Ih}z_PZJs{gHZM7<4R;a`pFvDh3ziF|J?N_eUkx zIv-EjQBY;Ia}Nm#jSBK))T*%h)d=ly9Qa1C=A~metGopimPl-0HP&^J2#Rqp2gUL5 z1I77lpxPIYWR1fXb=Eo%(_k=Q=wr8nVtgvl4s{4+cOkUHb?*v_K+&z0DUO{Ke(=zYO&@w5EQT5QLrXZ*Ms8x+Cw?c%OkLd+i~N z4fgKb+6LOO;&K8-d*He=PI4bT1?4!tWZxkB#giGVc9o$0p*|NBwxn3wnXLKE1`gMk zwF67Z_`+`B=NrOcyoYk^59xmm4%x2BkC{SU@ySw^(`uRqC-h_JW$9c-$0Z@#q zWe&@~4&(RzJO5!~8;FY+2_Z24f$Tuj3mBZ2Z7?yo z-g!J(?P1M$hPX2rE1?`YAy8aT;h;DlKA>oKHl@LyA%TA3o(wCvDdTl#42tVf3l!V= zxP}Bq1b{tQTR6@QUaa~cUoTjN42BhD#|RYT(V^5gM9teT(2X%>9;^KbC`Y@eAdhzB zsJ!WXR(x*3uI`>N|Ammpc3gfe|F)nQ{~)S8=?@R&vE1J?*xPe7gF*b-`?LD#1sml8 zh%eYPECfRx2z|iuxCe^krx3^*XEUn3yHDVJUk}${uMp30xTlA_gL>?LG;C71Ug5sy z;o%z`_uAx3^^F5;?e0=eE$?y&F zjD#h?m;*e{gMS1yKE46IL9QVoHc*b^B_GMM6A6m_v!Kccz-*#lCMd@D0~Fg=g5rE+ zL%&dWKpw|WFNU@5MuMV0SExtriW6PL^7|`y8pZ?tWq{&(PF~Eq|HXhxKz`a1R=F4C z#UM}ihk0=Nf^IWB{9s@p!T!~$7VwV!fu+$Im(fyI+;Dd6>|eYct3QloEWaj{E}_c9 zK`|b{I`@w;D_GnCQ0#vyD9%R`DE6D213d!$!$N)iLRQDI>_>y*ICHOLDLH4Z0uJq~ zf#SIOy9WEZdblxeu43htR8Liw_F+42AP&aA2gL zFP>ZPCa~6HDX1{mJp_vT-&RmuU$LM#zVktG934RMx|jrt>rn#iVt@LAVn6c|S$;Yo z9_&XmD7Is+XN|8rD2{^-D3(8=+L3jjoy6ilu4A=-28!)&f?|9ZsPcSJw3ANdH&W`q zkyRe*AB5dzyoWrF8yP2eI7fJRhBB5yd$bz}igqPoT(Mua%!tgH5V8nqR z%zK9h&i4#pFy=*cP8+BzRx?g)W1U<0AWrn-5eVNa!{Phma@IIEZfC8x(Wxx800!4{ z6Vzk-(U8Zu$-1tEa?DqOV*f}zxb7SW3<~2f*};ly+D=y91Qf6LS(H8E2abE4cF6St zK0EihVY^xVez1r2{pD@4s6LHVe>LOV zQ!_csK~lzZdxhd<XF;Wn+YEwk$@ zcJ)5#+;3gURaptcp=JK&$F|sRE;)Wxoy0BPwoFvou%AGd%3!CwJF^D7Ynf@ElD?t- zTcp;T*fTHEhMSmOFj>(YW_ECy->S&6QvR{?>isyvL=-`p8dN@Z9Lh`PAcrdlz^Z_g!)``_w#D zp;*SUx?xQ#hn$e%5pW&bF=_nWnrqgUMyj#a72DS>XK2+)mY3~4R&uA{?t1fP6W6<9 zp+$Qp2HQ#Ra~QYmn7j959;wi<^wL)O?ZL+Cwy{cH6W-LXJu+6INV4*t*GbVKhXzV! zPrPI7{w_KuHQ)lzvIKe2rc~`$ThgOTo(A=cT|76pcJ3MV)!7%)_Kx4mxA~LsxNVbf z@$+~cn%emNy#9w>=feKCOFJJ$uj1J6++@#wlJQgV$gGx?bts$f=4K4`#~9hWQEjwEAits7$XO zKW&Jm+jLzqWARHPZC8yP^eVsK)S#(zrk>h)O!AJMZ%)-T-rJ5%)1B;I=$8E6-F4Fzxa-6W8u!(Am7Q18%X>8vNhQfP&-TqvcFVP|I3%6oS(S99 z-2I&ocYMGlQos3hk*4hlhp}2;1<%ghoHuv*)NlRUrmL6yy1p%IYR8Ru`F(|?nBst? z^0rscuKj2x`ZlUe?{lc2K-8uU+{SIW*GyX0iUd?tHf&PN%6$HkIm&&;qvx+rOP-hc zadS^*aCG6mq5Zwx`nz3y8C}>sLHkN%?*dl|q0Msz=Ow7;OGrgKkBFqhSaVwU-Shv<=yKyvg_Ixgd(W95Sq*`4* zn0UxFa+UXtgISVXTTbPlG~BpGXx`Jqsybd5kFMm~9Ujn;w(MQ+J`0ix#~*Orv-pwR zq{YnsbL#Drnr6su-n?PMeEr-KnZ>JGZ)ARuZ0|k4RAk>$KIg_y28M^G3)c@kx-@&- zgfB9^Hy%=VRvoxvL`?3Ce49D50x#BHeJ`AyBtG!k@{?7T_b)E7t_!R!oVzh#>;1O+ z@3M)NeT;=1y;C0M)EyR* zY{*U!s;=eG?Xs^_k`YdrjNtGapZ74j$?+aMATnzE9G*)JB6#>Ft$s zUexb>>+pDUKg)uFLk734sn-;$-e2g_l(Eb!{OcMc`NdV+!eU;#y%Su%KRsxl!O3MY zuXbH*9nqS5`Az!d2rkR%A0G8zdV^cZb~*Q==GCho@lIN>?8ybO_7(Shp8IB`_d6*p zJke~|;{)jf3tN5K7RE9s6igDcsJHLCQQ=wIW0_Uc^LyuNTb4!`UBJ*=*0d;^=z4{IwPD(&2Y9f^W{xcXXaAtsr-?dX3aZ zYu{Kao2>B0>q+Z2wCrVjLF24Wk-^d z9ASnn(x?O ztSQ@MpT%XK$#q8V@JYXST9E;}6k|sWkMndR_tDFrw*AmJQy@n64YFUPOg+NCEV)4E z(#WFM*K=Ol#N>ZUStb7Xb6U2#$XLPW4|BIg4mrH^rKEHEp=R4#^K!`eeu@41O+I9X zS;O|^S)NX+7Nq})LUEt3O`jH+8NXXz)jHkaV(S1E&D#Y$JldnKr0{%jtK$3G8dE#_ zQt-%@(e54gM~ds#Zt-8Q$&9o>yWGU0+^Thg2P!MaGShs>JWB-CYI_~_Ib+#+#jp3< z47-xU5yrw?rZMT7)z-T*+s4?M-)~_q*4{R?t+?O}(`|d?5Z}tW)pJ{hXbS5pRx0e6 zbx^*kZ(R5pjldh*HVj;(tvo98#^8pqFW=9PX{+#@?y>xc=M7c8si!jLg@;A8&lzey zVGUor<&(&3{aVcPsV>K?4<^GtK_{w1}CUluT|FCMk4KI4}9%D*Jl;pOy-87{9o zz9zYTJ}-KY=XCK)>G2=V=au)@_F+1Vw!6l2pj1`e{Cn#h(U!cvQqSWP_p6cqjGC}l zapCd-k{|a8r*UueN+N!XMx;I%H)D`x_*2U&4eLZFA%%%{6E=@vPYhGPrDs&_(G_f+lW9@N! z-$y%}<)pVt43)E4(;C*cV#ceD1;U$i z5N6W*i^ub(XYm>>A95PAoi8M2evb68?N`>jC9x?NQt#H%bxc-iQek-`r-jys0O1pctDugF#k$cM6NNMh; zbEh{q2hA#K?wwZiMtSD++f$rcuGF2EROBgic6pK=)gGw1d$7^Y0~=q7i`|NwQT19O zIlQd=lSGL&E`sbX!d1S&<{VZBSCVe4{`!W9rJ5;-}%~O_Ke5+=S|@>oGwvb zEZP+}t4znH$+GSBuUvIMy#Qgc$rh<%Cz>SV&dhHc;5olt>)N)c_XYPJPB^pJ#ll@c zE`G*?y7p^_m9_e&ko_S(t$HTYUhsU;GLNGNw@;oaSSojS`qt@ks|)wt8WeGJ#0K@* ziNgxU>+uEZmo-h_UZ^=H2rBI^oc) z1-(8n4MrzA7B=1*yU2E4ak;XL@QhDVmx?B(mMs7N*xYQYt)a}U@(@wKIpac3tXpcp zEo(r|f!6iU#W%C3eBl`9Z4-2HB+_2MDlX8F`qCB!TqG^;{y^9YgN z2^#u4-pNf9S=E+Z{AjL*P5$sxiBp6IrrxqRE9Pmfy~VJ!WxUb2<=Vm7a?I_S@0Hto zrSmQ6l{-RnIry$4$b)@Dy0 zf9b;3BY_IaQToRf%(>F#!7=L6LNQW{SXimF$@+g5-}fcA{stqacb0k z_kKCcue%*1<5VN{Ej&o!vSx+W!;y1t@r3UPh<{V{+3l_K{iybf!!{}h3{=-|JNZdR z_M!S*rMa>%c_W_fT+g7l`q}tjn z>(%-?t-;M!7L|%p6*Fzp80~Mrmf!y-+4!*cw9vs>dtUDPGDg&XSVEI(oa^K82^*sg z+NLq}u2w70VaWE4$#dMeB<4=@ThmqRmCF|1^>`**@Zhb{(onN4Lz=4i#L0S|zx`BB zO<8^Guj~50o6fVv2L$$>dS4(XeS4h+sW&vu5zb9~FGcR(6FZdr^Nt+ezP9h2(N>RB zD_bH(rBWBHC?xk2;)k5q$@LO6%eG`l!`>~;GoFd{PZ28C@;ftH$0+REm2rz)G{RQd zHd^(b_J(WTd4*BaN1Dt&y?$F?dx;C?AB6AB*ir5?rRmD*S9bf3?Xxo6aB9<;Yax^R z=*uY1HET%M_Q|wAzG2$FAhBD|M|`~zRbbNJU;jzNa%pn@s_EG9*jw?2YGTLp5%m*X zN0a*Njdu>krGHA)*4G|n(vXxv&S%+Uw|O}k-`v!)^+>hkLfMw0Z(gUv&+R&x)~s8| zHKR#+Lh0QFhP~9%gH@W|)wv9~r_p(>Z#v;>mX zs!DV%%bQ21N=9xuJ~@MTOv#tUC&NN6>)sjd>2tp+{&~&qMK?RDA{N~6QS(viJu9*I zT?w^Yw%MmsPajryFTS(dpK*m}c$`4&4aLRr=bk@5*&4NDF~is?efPX2OdI*u4XbaC zndR&Ce$U8}WFO z#2$&`cRuN5q*>y8*F{C?o!Pp1D|f9%d7;ko*-u0L}968l{#;Z1;d zp~epxPW{XBG8jI%Hj zih;-Z!#w)t)W14EgE6fK{+9qhkH&NAzmf9K?z+dmVDe$=Ob%!?)WH5|?XE$zE^gsP?1)i)QdR(O4 zpOnNu82$(be=F-;f7q7YJ`g@0cpQH+Z>0QBen~lLx4j>O0YCltXZ@4HOIW_l!RZd{6q%2Y+nu3GWQNTMznw0r=6t->dzc73A_!dC+y*#rO9gL-!V6oVfbkntmZV@FB+5x~>WPwcSR zhVXZQC-;9WC-*`8{I^7S3HULD3pIX!YyWE<;iG`Z^^f`P%-;>*y=eZ~wL$z(gCBL^ z{gYgOr2N--f6bG27lFs|@9y^>Vfe9$RuAGg1KzR+{3D7d@pC$U!{Em=hTtE*26QG) z`4zz9`IU?(nFq?;ABD7k2|SJ;e2rs!??H)pu)O- zaQu)Z>kvNvHIe?i18+?AAImuPp9wtPe@Og)bxNxw{u_ZG2RuB6=!_lKJX?wI+Nuo3 zMBw2u5(D=jcpS%8B78LPI<)vX9ls+KPwa8(|HUu<*$N&S5r4|?@WKn?CwWf!b-?5P zjU0|26F;z#h`(~+O@PPex43plc~>S#J83lrV+!y%ZltU$7VAmd-N57i-QE488F=hJ znRiatzv@T^V=C~RTzmBRqkt#=+4W859|7N!^TSbf*7F0>f3(d`BIBkrk7DgVgy&^50Kx|W@7RO*uL6(fM>1~2ZdYND zc9!t)(}(7t*kPB?2Oj5-U5?l#{>97C)!_X5gm*Pwa8p|9ar9DF4I;J28;9CfY2X?At`UvO)MP z;PL#8d3Iw*+l21`9`_%TXV(U4KMQWYhQPDSp>Irt&jB9ye_T6ggWYvZcrEzyK7sO& zJp4I^twi``z~lLq#LveT{WJcDz+?P~p-oQbPX)fb;re5@-{=Pui9ZT>`u@YJ?fRYY zcY&w(ziX1!g772tdba;B2OiIFIR5O8Jw`zMp8_8DA2NTe=(>I;hAvw?#cW)1CP%y$@=3o{ygA~X*{v>_vnAl-v{9F z`XT-4iX-);y%8L~$o_}Ec}RmUlOcrS>*ySy+ge&|AH|Is(6{;h$>>yO=i@7M9$3_Kj6I=}y69jEJOxFLfvvj_aL z9`g5rpV0&VBaIjg+aB;sd&u7getHl5D;l%DKasN=r}GyI{Nx_^F9IIVj|@n%@Z$9Q z!$VUB!y9-mGysX+bxf{5#rk+(Ui< z+`RGp)!qI(^^o7+L;e%+a0zugeoNRq$@vxcUb2tjc>FDq{cAPw@Cc#v{KX3Zr~GNk zKe5N@{@)uW557Woo?m#tKc~DN@EAW6Sd4*Feg*J`z+=Dp;KgbG9|3O)JfNNa$v9yC zZ;7-U4i8Up{;(~^PRcR=w?x|c0#84`;W)692%ibOG59BWPW%57c-TTa#}ECAmS17Z z1o1Z#HV=#+S=_t(;s-Vo;pYJlUm;=leozU$}>`lZbyi zisxkP(LUjmfj6Y$XE$~_e;asX;IZsF2L_0LBRD+c^9vk%eD)-UhS*4ij{qLm5Av8e zUB6Yp!x5l!{#X{+dnf(}!{NiU2fRP<*ne`}a2kIG<)6gE?i7&rAAvUp|JZ9}Ips~^ z%NJfh7WeGpl{^$KiqAQ42Pxvt4asDt*?m@I>fBZ=JJmB&A$9c!Kk2cszgl_|W zHt@*e_;Y&wtb~Uz`27hv9Dh#v8sOmw91CbC%kCN=@jHWae11S;?~jJqNQCE^_4E9T zHb{9_CP+J7;I+U%_8sSdl(WnG0dELAjvKpUhqj5I9N_8q|4~@UMk4$(;Nb|=xqe6) z8~8u|XTsuvTWDwhyTfMz4@cR;TgVXEB3wR^o zF)rNyIQ5?eJg#5lFeVZgeEe%7?YJFTfB(Y9-SKY(JS>6E^C!86{_2>jB>v9xNT40eJl$@MXZ8^?(qz@&1E(d~tgHJ_jDp z4;VkbIOTO+e)52G{QYMw@VI}XUrxq=^#2j?qk$*uhLnT3zb4YIpDXMBfqftRSK{B5 zgr7*`rT*RIuQ|dm1YVCCf6>1Z|E?r_0q{n^`MED~ftpENDuRRQ(ly_x= zv=jCG_x?x9+2!4U$MYk`&q*SFwg8XkH?nR?c~`bbyXU}@`*(NxFXhF${(6H$VzVpX zSWntI18)lPVFmR^!=OD z@h_#~$Lk(_bLwBnkF|br|HZ^9?+85hpWS_j<>lu(-2yzhesK)RxRQ2%Qqt}g<)4f_ zr{gE+|MUKZEV271zoeYB^8y~{562DH5U1m}9eBL{ar}`bcH!e+6KQu3cs#!lmecjC z8o>Jf3-WmO;WU0H;B_ef7%;hx@bljiiGLIDc>l#b`X=k}Z!Fdk{yFf5wElO+k$S>w z2L3!hV;QIGCkl8Re`1f*_)h|l&!5mQ*~3YUe^cVGo#ILCoW`#c#Jc{GXLs%~F5-U; z@Rn5n+4W85?*QME{`Xz*lgIekje*4P2RxqNkdw#2*i3|P0Dd~~h@tp@$cMTE#3h-tSKgo0Ie@HlM{yAAY^!VojPxc=idrrsy2=Ms) zhr~~`tA3DnPk-UN;z&K=MI(OR{{^}ce>m{tAbzrb*&RpXKM!~uKXU#gq7f`7u1xc(G3DJSj9fhW&D@EYQD{A8n8>lf|f{IQ#e ze|O-~KRNf2@~-TVc1qDKo?O3OaipH`e!%1Tom}^197(%BDdF=ep3FO^d^7Nd;2*~x zZE`yP(_(t|@2Bkp9`9dd{QuP7U&~4VpHn<1YX@x+UT)#f`Db_R=)5EFIDh2&{WZ=% z<%$0kipTlyj{n=h8-jnFf8>c>`1sdE+Q}_qUBB3vl>HT?DoI-};Bo$N|G_d+-jxl~ zZZE}S|FMkSF(CX?;Kzc0oPT6F<%cZ(`TGZ4`{X);kAF?Xe=hJg;2-_6%c5bzb1nJ# z{2%>GU?m%g@ZP}V`3qT$fs}V;g0#y69?uVi<#hbM0Ivf)UccCXPWKPpSl0Ou{ffbh z?1S*}uZhI(8_Qsfq~b>#ociBN@nr6Z-M>1AO46*ny9KO@!~Wl(l|E zq4fZG4f!kevy$*rfHwmFIBp{FVs{@U{5s&r1CQ4a`tJ`fb`s$$fY%0|3m`1xbpH63 zvHIU#-U@gv@K4rXKX!trV#TJhz~lPG&zQg#TM7G$={WG%e590PU};Z0Yt{{05b<9BCvZ4mxA@P^=@aHPDeI7qwCz~lbG?z$&-39ldb@B2R~ zC++^Eq}@i~@%)VA&Pfb}FQ<6CcF7q0$tS&>@cmb^?*GI$r~8i;@TL$y+GCf+IEeow z8c&a}tIveL4g54}{JLW3^@LYg_4EGA$ruuTF7UYj@PKhVLvXtPqymrEFZ#wcfG>6u z@&6Ebec+M77}%Wy!fUQ(T|bz|^+U?x<6jeL7Xm!)UxfcFM5`ox7V!A@dqJq{L#yxV zBjMHJS%1Gn7WYt6&Mxl+JUM?M!|C{E0gu-&jysM&r~X9}e*XQSJN0z-Q^DgZ`K3;J@Cdo;58Fj_aAoG z9W0a1MA|O^-Vprby2mw4$~znV<&CsE4Lm+S!lros<#hk~1Uz1UgkyIN694M!Sn(r= z*B`ry@S^Kk0+0I#@lDFR!2cO*txc@+8@9(W7}OO=)e}F9fG6L-*xkF(1mTYYZv^q< z`5XJt7c1FFg#QSi7|JA_b`G>4sw8Ks!yy{lg{zZJ_I%Fpi-izWfPh#MN&!Kqo{goXS z+YtX>fwzMGllu>+<7bw_`u;)u5<4XSCnf&Ffye!e?!mhw;552ySa%0F`C8vIkt z^l}of(l*xmBlAyh^S950p9B0z=s&ybhS(&0JjIhdr~SVPyd(H098u!uPfGl$ZU6W8 z2Tu72;I+X&o;z?1*j>lOe-7~E`6phxWF7n|ZcqK*-8cyEzT@Bj{uH}=IN`4W zuMhF#xFbu-;p1NuX~(y-XZz=D;L$(1Zi(H$I)_TqZVT|n6p!nll(Wm<10KIW;M&C) zI6XfN+{N-Q3@rL5{eX{uO(f1)z~lNMJg473lYuAu53V0h&#yOu$LqJd{ny>iU>Np* zXQZ?K{p9ZY_W|Cm2mZ@@$dAZiFkE`ze=YEHd%!pKkT>7Uy8m`}{P*^dXJoSe``zyP zpAEc25615c@Ob`aK;niMr`Mm+KGyY*JU#~%Yiol|G0197~nq4P9ppT;B|Yz zw*gO{U!z})ft^JB8)dQXzsRtA@4~i(Uj}?n=I;UU_R#{~bdwBkeu_ zkMoat@}jr<(`Uk~9Q=8H!7@(IFFwEv1W;f3jMitSW7 zTm4&ce;NTVK6t@1i_V0KQQb6li~V#ls5|D%we;bOWWELD60cywDCjPU=jkn1{zJoe7l}Ug_|{y*dkCSf5Sh zVH@b2zoVeot`J`6uLxc^pJi0O92EH*@WOtxz$uXD%wi|#i9*VIV#4r1r*mq8Yo^@*`Vm>04OF@tUm&Z z<8u@gua{y__#dN$Qu1$lpkjF$rI$c)Jyd`qPyX#pRPK&Xd`c9bYPJy8r*8SJ2{P^wDla7ssjVnW4s zYE&K-^CKx$r&NQ|QJ|Q9r&y&4Z>ZYvhIVu?^NV8n7^)l<^SV?X6+e!p@^r;{7*Cbc z6?p@y92N5us5~mJ7ZWOviXSIZc~op~M&(iQqdApF#d-@WkBZNn9jQEBas9bMIaaw- z^}kcB@`N|E>jjG3d{8_Chhya*6#E|q^{5M}cI+tnSwyu*#p{0sWoH#AUXO`X{qGd3 z)>HMrQ;a{Es{fs$|IJkW?-Z-HQuV0VK84ED70b6#<*1n7PUTVY`Z)rMMfp@YU2z>8 zr^@MyMJM46>(7AV_!d#^=!*W%LpkaNsvZ^d7peU36zhwrb|q9hRQy;*{8&wu-=)gwiu-&mRgQ}Go=|yI%-4Zp z(KC3%b=8EKUlhml4U}X1W=h{u?S7}Y9zRj_sQB>#YjSpJ+ZJB?C`O}Wttr5Fz{54_tRQc}|{mVc-sw~xxu2?Py1`QIs4O@TM$tf_W%#r0`V)z1XQxMxxAP&>~( zRNnRfKrs$C$_^^#-9d5R4gkgR2&L-jisz?AP>xlxR6QzQuW_I_Uh$MBg2Mk8NtAA) z%C}OQN|o;fMgO}%F`;69HtisB(4`xeF9m42ozO#s5w*o=Z@VdYNj6iuo&)mQz|m)uUqlRZ6c>dL0z~ zSAt?f#r!QQ|2suHRaCn>R6A50mj|HzKpUv?{|m+WY6g2~@;$tv{}xI=fMUF#sQhP2 zzkp);oua)TR6SkMZaYYa;0tN!of6pse`}cp(D_HBH zJI^n0FYd{63iOOT-ba)v{qK3jf6ps$J^c5)g0&9l&nfVF!91SJ{(D}5qXB=nz`>yO zzvmUOHsG*>=N?{AJoo(fyyCy-6?lF8_q>9&Z~phZ;=kt=|9_uXvry`EsIGWmCQK*k|jH&fM4k%*-u&zsO#EspVA`vhzXU z&4~7==Ze=VzPaMu9oN9&#sbJFoE zy+-08;r?)}HQ}(>zB9CWgsSS5{owlERI8XgC%`QIEBZ-;V|Niae z0>^J=JhMsjYMbxEv-*)z)85n0nH_5vD{I%ZZfdxdJ4t)n*BKvft}}UMHTL92E=Jvf z&mOCmm@6D}8d^xRi}z%bn3c@URl6CxcQ45gef4!=5>dE}&G^1kNiZyK+{ z(ls=TMr z;^kOv{f}Q7$6N~(XsJ1t=w2YX^||N0s`)g#_$-_xW^1e5*AFA7-RHY(<)$$>N^ZK3 zrd(ETTAfndh%AGJ4h=>Fla*z+^}c-bvR{8SX~8?(e0pa0AKN|bWm;3v?z znoDe6Ttuyx(;6M-xut!k%B-7JKU&s!UXyF}u&X(FX2XQd^@JPi;v*C-QVX`b^fTq#-RleY zh5H7~0k8M<+7dUTY#=YqZeL;)lvyQmdfTcPg`p|YS4~v6&0ZwwxBB&s6L&)I-<`^P z{N7!09{u{yPj0u2*`d0_%7yof@Sf$es!1bz>sIa&H|Cz$i}l+R*1m(!xJhE(e!frb z@q_cyZ(6c^`ahGrwykg8C)=oX($<$X7jQW_J~(5&;#%E?BRN;4XD;>F)wki;xAICH+_twfl$YW$1zert;5EDy!qH)sp;J$~?tZpErw z&F9u!_`bW(*U3-c`8@k}`pUWsZV#iL+lo#rvN>RRS`dG0Lgo#BQ$iBce}V1->E|<2 zEIpUpT>D-+IXuB$Ol<3Q?>$rAHWo={eq@F?M)rDrp-d+-xmFxv5UXKC5fs2p=r*TstNZ)u9}_Z zJ*c(G_xvQ$$DR+5)avhf|2WZ3;&u7^XBLY^W?wq-p=|ge?$k5uH6BhXTkGq(bVBqT z?)*(OyZBoLl9&&6Z<10u5+PiBvL-Vr>W<@JG;~DiV~xs%rxyKZ}Z$6>pqn)9I;@<^}PJT zL(&~K;|F^N1t}&w`{eOe%PyU?pLgN?Or3oP6x&aJH2F9%#9sSu{F*5>TV_p}PO~dU zw;Pi6NZ58pqq4teR8H)@-ePn8XDnLpJ6EQ)ICevklw-`xrt%gA$@}vke7rXIT=?yl z-Ew)y^iQ2o(DP=FjDP6VMzc%)et_ng`9os%^krOV?C32#bfcd7jh#YiM!et6-#Kcn z_S!Y}d-@LltV^q=)&3CY;gM*KJ8}H$(`6rLRn;4=h>-vAIQwiI&F(;Yyyvd_zvG{M zs&>l5D>D4Y>_R8)s54%C!96hkLdAss+drCkx;+_GYpXRt|5U}C^R?m1TJK7&c})W% zqoY2rXptIqlV%rx`$ZCSLFr&O>tz>adZZ`_mY+Krwy^cyq)U<}mC1wJvW|-l9(zXq z$f3k=i^DI@yS}b{Be^(0^L4a>_5S9v#;?628cpflzFj3EzI;v%{?2@=@zOF z9F$+k4f=7esAknUYmvf>`*{UKMqkfg(|9MvC+z6(Tl{5tH`ZA+Yr# z?it;EyLL>xxmLYY&L(xzGQp>|X0sA+4h`m!>N9deP`s1LE>mSkueYMTGaiVpF0iZT zcbQl%nUK6Tx%c$R1~j`viBV8yl2@W%YuKhEy|42JM6?Qqw+wqZc!hwNa~BW4GAt?RjEkU`ZmW{-N9PjpEdM#5os{3yx7h7C<#H#* zFX@iF%qRcNC5`iEG)g2W+7C12-ZI~+T9*;>kY-ngZuirma~Z}COB-x`ry2EIt}5ru zGq<{W`Pr~>F~b+%?Gv|S=z#?y*~hbG4vo5d;&$mvsQ8$++nEMUezsZX7> zTTl1n1?>Y_@@~FsQeJ+HHGZ-{WYn0oItfpu?925!_Kx1B`Xq&BSDtS7s7TZHbsyDb z1`NBVaetB`L;m(O%gkdcd=0IZp%;6d-0{Ssqw?GP)iGfSTaD!d-{(u;x6ZT}z<6^c z%V={_;jK?Jy9#u>*SDU1-*4~PgN^)Wr;N8-HtNMim3QBG`zG$+b+CL=;)-YH3X+c1 zH!V-x3kb?P5_jmCwx)T@^v2*j@v~R&vzsflkY-nrZr6#s`Q?sui;BRsNixp;&P|qT zlV~&4zuBugCni#Oaj}w7pxZKk@wu&!)MbnWHLo>qcUpYkW9#1jL$Yp(@-tE#Xm*Fu z?HZX(?EkDptu42xdDQBAI(gz!lRtcanp}NTWA}u#M;~X;jJ|pA=Du%}h4Z->iG0`Q z4!73(+$13Hcxrd^jF6dgR?zG!(d~Y$HBa|i;#RlPb6Zl>HLCzY|1JC@my0%pIrh3S zO8I0th+XnKshX*D zF~Mw0GSJk>8g-S*iU zwJMDDTV&SxcO>1e-dUwnJ8r1fzPu%}L3((D(8Fyji?+?L=)JpRUD_ojhr^ybnMWBX z`@3We|0Fy^&#lR5P5!Qfnc1EjogPUyIBRXD#j8%YTYr4^+e>9rl~HKT)c+y!!3ZI*av= z&Jkk4gL!tQg!#XD>-^20W_J|bu2b{DzPCI#dX<`5`C2t@SYH(}Ds!J7@6b%u3&!u_ z4h%eMvzQ^3KFNQN(xL(fH>JE8!zZ*qSQoawxNOj4emQR$n%&WKyDAr#9Z-71+$xd# zwy@l?myDJ0{IKc_X06uO@%O|>B}V4EOq@TRH{9pUo|67YiiP$>C%l>FXsWns!1XmF z3Py3^Z{5lLO_Of7VOGegV-+6$SMKLtvy)MbG$UR8R6p{j>hoSQvXcjkDS zUHtE2NMcH!UnZMW(!S&AmxFJFa~8j;w3CQ_^mfd~;R`kNgC!^G+I*{mL)OiM<8&kT zYg^3FU;fx6=eB*RC(p{AmQFmM?Pzv&h*41Hxr?!f1muDP-c*fWd76(~wR-N#%we^& zr3Q&DQL)QD3^7Zr{@p`m;)vZ?K4 z^uY~_y>C3)SY9C(mt;b-i~n5^Nz9Tc+p+VPS*|hfRZ?B;a#=I;^EkV7=S@H4p1jGP zrzAdr|5o+@`L#O*4qh#p7#?LYxtkC> zAZKL$td_`?yJHSjgw?&3ZuTGIx6akZrR8#bP*G~h@dTA)OL%q6Dz3gbboJn7f4*4P zvg(WxU;EMQj-}gWXuI!yws-w_*Og|IlLw{rx;x+=U+ufOefDqe*VsI_Z*gUW>HFfX z@749+r&$PZXe+J~d}{8K+gv8QsZH(diBI(N`Z&7X4*9y0MDOE4*YaiGT+L5OoAP$a ztyzud(}MWy)=vu!$iFR`Dj!rJo$6#j8)Z zySriB#)Wn9m;2Y$^yk;uvQ%%E&frQvjhBk`0iQdxbB}r+tK7U@q~%V_bmxFZ*$VZGMY4)3!sxwm}Q7%v)mCzxU&hWwi#QEN(Qd-C!4ejTWx~-L70=pib+1f!SJ3 z)l0c-LeearuUX*5;1D`E>k?LNbALC#*HEd0Q)Q{0qhFCth6}aY!$^KJvgHOg3cG$?@ z@HXWcvh6^4NvOcb2}y(7k60diGnW>xG2L$d0h8Ht`s_L~G)PNzPhFLF<5YvQM%SiUUP^QhoU>~DbltUy6$3^s$`Mo1E5QGDij1!b-R|?S zsrN2!pOD@@c%Nj+2lta_xeQL9P0u@FU4H*l+{0cm#l`Qq<(D(_qkHXJyiF&dY)6V3 zS8<|}e4TEGnpU#pS(;r_x?OAUFnggFj~BK+&Z-&H|8ks%zgUXkeVZ2Fc6AFKjZ?Q< zqMyHvUiRg{owdDEYSc$`jGI$D%y)C0z{a3yu@5SzUZmNbNVnVmCFSkLIU0xM?<&7N zWffq5d1Jd|$5YwYAML6dFN?$saS}0ZY3Fkc>aVb6X-B_R&lAP(+lIePAOAh2anFVw ziqbT@W^}tTs-?Gd<1*Ku2tW3<_F8Rqwuj$*0ZXN8+!|wV$H{x?t>N>zT(E9UpSy29 zt@i0BD8229(L>#Umo|^yzKsejp3Y6PJBe<0HlO1OlP!1Wd*o@4i0swk@O4c7$qRbx z-mA{e{H|HPChuWhwe6Mki`>gky=PcjTrD*jplDs9sF!#}ur8!e%Q^b<5_7uUy$fT6 zR{Fns{(6aErgUwlTYuLZ%BE?GuiNdLzQ?GQMeE&IEf%4q<1q2qyi3mpWwZ=VFjYNu zp(w>Esrj6*M5PifUJJV2jpvW@j_`C#%f4nCs@EC%miVVn0{DXZPI) z7%u2L?I>@|H^WEw^*$`07uMQVkW}Y2Z-j!q%ZWPtZ`sH?v!vVQGu<$BVZ!=R4MkTI z@_5U1EoN5yC{az@`f`uJPNPe;Yl>&~opL8M>CRThS^Zdpn+Md!B~191r}<*d2KlCe z@6|MEb|=&A%EZ65J@FvGsr7)**`@0T>N&c)%a1;}C~w+>IS+CtxHq@Gbjys^8*uJm z@!k7Z_e?B0#kDdZ!?)Mo=Ecnu)sto|r`ffl+x4l9(GH7i=)H7GwzJ*S;e9^Xth9Ri zd~xaLvwojlz69yEs;+Z>knL)}QZT-t^tJEgvoAV?e6nZdoY^Wo{>{v+8k*fHbh|ZH zruIhsC#>Es*ipwP&f9YO;Bo;^nL4Z4W{;8?x$CCAdw25eWFLCiroMspQJ6V#Leg{7FGf$lFJACr#Je|Aqj|C08{(?u0`>BajRer+j zFoR?@J)sc?55KI-5l^aLo<1?r^qsRy%ZlQ%`zOwv{MwX9vpba-1!cZeeCseuW`9G< z>VXBD&o~S$5M;y`$(E~>TzEB#(Nq&t9;{g|C+@M?cugzUIHkhaz3UV%yvf;l@m%D( zWa|m0^zTE{=ys=aNwh7==iQdF@Lbh+le9D9kw#xd>Q`kM%LO=hd^|1{A!vQ1YRF{a zyX7?_4qoAM3X922ir2esB$Jb@<*=>aHd?&X>2{Z&aQ=L>xAVvKYZj|rcFCV6YHGY} z@4U33?jJwa@%^yU-X+z4(24bzZ}k#OI8*+TOEb!H^;*NlYC%QiTfTAcZ+Ju0>iTl-;&y}+qGfHLujw`wcyy0m<((L9G^E+E)YF^Xq+R^Pgd^7Mrrcu8;jtNV$j}4kLR@h~5`Jv28!Oa?ZBOi)5^sA7z-SZ>QSn9m@P0d>` z{67w$*_}bRE8Z-t`0zuFit(aejh|$<#6JkhsTfx-v_*kb8}yJMmJ8xU&4%jKengaO*1Mm|5Uo$HLvZi{Nj6W-=CKke#N_L zPp`X!oS%<6Az-y+Q_~A??*P?^F@~r8o3d6FZM_j#ab!%G{TLV9H($SurNujwZg-G> ztWjL{Nbc`%PxhC|+Mw@VP~yBe(m!DB%C`I!r((ZVm^dEKxG?#Pm5!0S(~?_bUfHT- zo%`H)BXfP2R`#KQ!8E%Lbi4g{rey_ahm`kgJg;qWtYo%gO@>(HgEmK{L48_>)~%T) zcOd=XspJR`*M)M6YS*tXs%U>D)n@H++&^|#>+xzH`Z&y@+l8OmtyCRmeBH#!dqAJr zO-BbL=U3l6ywqC%lVQ5MM@QJDNgIO)B<&feP#rT*^78)ImgOBAE*u#6`fGXJ*CEkU zDrxb~rrTZVbuVtok5MMQUo^xVt8W?J_R;Ipe%~5LpZ?mf=W{oGKg_>x%N7N*=ZEG^ zzL&Ml+;mjNQrUoxi~W@*3)IYMdE-s9i@$Fti7Don?|w)yN;5c0!8hsJ>RdIR&yw@s zc6bOS4ioyqV>mf|bD6{B1ce(ViTC>*93i)G>5)T?9~S4RpFVbB-)ST zF$&6DEgm^=?SMe}4fYks)_#gv8rAQJm;9iR7rlnJOUahC@SZZLJgc0Tarf2t_WN%B zgP-m3{P^(9{*=I%l`+;YYMOV^;&r0iHQV(6NV}`BteWp}_#ijkUD8N*cXxM}h;(;{ zbcZON(%mWD-5rtw(%taa$FIL@zsK)7xjp*0uGzC^_Ns*-*!jlOo$jB*yYL3vvPbe&&?9S`Dy(ml*=i{)1VeqqvT#+yq4 zFpw9ikao{X(w-y$*AVD3_m$?p_XE&vgz(K|CM_7fOzhU**j6(JWtp6v z`@5@N!5FxueU5-r%36c`1lc5o+)4bV_9`5p&5bvd z8=ppw`m=6<`HA+j3gMf#bR<&`nT&>=%2Sqf>?_B(c-_I1(=nZ6i4$ z^kxKW!3g{fS}C0hue7^5n0a*KEEg;UHx!yzZ<_s1|At;rXUA0qX#t=e%z!Qd z!BY>av=a(;Ybl$y&I4?@zFmK%N`AzSb9f7S#5!DCqSjdfUTM->SSBQjcQhgdrReY7 zx*-V@%n5+?9dn>t@8fSgkVD1CjFB71l2 zFiw9V$E@sp}O1x#Be|r?e03zZO7OY(}>jPv-Vkk66R{`4A;!tMh^hu|)ad zHmW3>N#+6<)A8 zfyNv?AJD#5K=)h8zTlXDxDU3k+-D+k5oUL2UtKj0^=Y*1FxfGp2h+}Ba&UCB^E!69 zhJl*lsp``-(hySdZ%@RJ-j0E6%$Oh=fpOu(YXsO3I zqE_-ZJbXMV?gDu=IAzze$b_miD-`D$;cQb+_b_&S_)=a)A1gl`5;+Oo)V6P?b87X9 zqRiF-$k!I=4pi1$Af0KA#s#$*f4q|tKcF!+^yH4RVC!ihWVw6BpX zZ0utKgJ5327qO<2TWL+v^r#IV0&wksZtK$a2xV_*^j`k6+#^W@!be4$*dZ;+g20r4 znUqzk+pPy7T`Dwl`4uYvk;e6X$A+!lj@3He>d@nJg3d-+VExP<=!!5OOPAoK{K8AL z7)Ipp%MN#coV6d~F1k*TfSevrm{{a_7n*}IxO&Zm&Kh(gOo7|y2Bt}URgqzQYK68H z3EUTP0J_9CpG?*#WUypjy*x$74}7>$(@Nmw*BQrGi(>ci34~n&9Sqgm$}v7Y-fYBE zNuDlblN7Onk3ih0+YFO@VRQtvgCo!lqEMB2!XJBI8B%8PjQ6D!lK*yD*w5yF-?(zb7+@ceSCK#?|w{x?vdn5akM4#woL3XyPj@=}kwE1!qCC+~cv0*LyH)?sU7@W?suX zPASulba8;|26U6`jpOC)`1UAw6z*J-OLkDprm(dNjys>8VbX z6pbqDbl~>&>CD>?Zc#gnobq8V9Q^^VJJ3ZU+}&$R&B&o5O6L7P<}`|_bqKcfa?Wx<8hv#e?ps3^2b9FXkQ4gJYXa(cit|i zeS^Y*TE1&xpfDpwSxmK4!}dFnPyXtU?wkD{k}WEj#|Y%5HaT!B0dT#6u8t+*MM2n` zn0fi&H1M>Lvl~!|uiQkeO=@KVB2tLb|QkNroo(NPb0eE}ZFl#D=gUj5Yd= zUqYU(|M_OlzdDQ$(B**jBXY$a#PkvGm3P&kGu`h@#b@r}vq0t%MMD)<11}F|fI@;@ zZHU|U*Y;ET?x7@fSu$7eM6AMAl5E@(2?DsjKo?^C);no4J){HK6rrg% z!1VhKd#+%RrLQ7EPuB-#y7tm}-28NJ5!waSW+Xk%LhHKvFU3^$>(Kz$59lJqf80#X zL#wkWy%iFq{90&WgV#t~mTW$c7V&dKNAZ#$_Jd5A_3B*9ZW*X$je3e%!q2OC_Ci;bm#eu(C&R@UQy8*j%J!j)r$n?xk4*}H3xzP#1IYIi(A_giS5_4t zy19lhg3sw?dg63}1eZ^tG-;ymiqFg~!ItwuczpLESYk{3YhZ1RVv7#d>|SwOc77kY z8}B#gePBH`5a_zRza%LCS|mRBbS!qYf0)yQPL<-CLerb8+L13nv2Abea%4!P z%Wz_ZU!|s{f;c?{Ba|q}s59tAhyXrElH)IdY*sPYY?S<1kasZQ!)~YIX@Ls3l|hm2K5-C znz7ofWo!eNj9RS&tq#%4hk#R97eG6N0^J~8OJWXH5(ytj$CXP4Y9s5s!z04Duu68d z)zo`Fj=-FI&G@YJ7JK1K8!;>G#)G*F8W*kN2)*qG&1H)j?Nopp26UYTI}vJJz_%Ht z-UM_WH;mdea7LvCpX^|SxG{7NPFh%VwE3?VFx!c&!Rt0x2q5-sgi=SNsxJ)~j%=Ur z|J($);Xt>d()#Z6dq0skA-tl7xF0E-xaLDlcBwTRGT@02{C5Ywb^D&u7#DASK8!2? zxj)|UD>PTZ69&{DlT!agP+AB8xDh~?Jw4pA%8;>nzB8g7gXO_A>*B4H0bh?w(QXqRlkk2XhJq5g6xoSYZ!u7c#T z4RE7?F6vNBAwKSHc4gu-CkKoTkun{_@>SOC&n?y2cS3p&hRR){g`Rmej)*>4@%^Ke zFAF03qrEEJt?HF-nRAxV4FES9=zbNvym+QPNVDd=g<@MVNVUkyu7WgmAGKbM9L36t z<;vrl$o|?i_V(WJml^~&=iAt&dppsI2vl%e+;vuxvN?bo19Zuty9(yZ6Hnt{zECYp z(zMr(m8i?*+i9V+MUrR;NTl7A40hvV1=7tLxm%%VB^#11q%|d5UY~8TuD-1K!bp8G!VSTaZ2>aAh@M#?jW3{~X&9bAlEBGY&OEs=>nAm4bP`!$=Z>?6@^N~%4XhIYEM z&a*z@H>Lqz2<<@hZ}7#54sN|Zh)+YMX6KC{4zp2M)HIZ3*ZuD3+^A)|WM^UpV7)H^ z=x$F0ywqsC$sn`*pbG~5%vw+MdW~5GhmZ=n3Aw6@kkC&Z8!6%Hb5jU)53{@DHku#k zB%5}Jf`Eyle@DMTb_&S%GtljW2FKx(wkz7kAir#bHw?RfFn*j^JjIyp9OPRV5>bzO ze@`#Sn2XoddptrHGk$Ry>f-|yu_^2(_DKiKxyT6MCIVgjh~m5^xYm0fY>)*ZNiNk* ztehs)IuaAR`m4ym$vs{is}Jayui}}RxUc(}Z@TYik}@NR0NoXi`ZWUE=rRf5egV2u z-@ao>$(w4unuLr+)|~gZx#rY8+P9fz-}Y`TvNMQ3GN}B3&t5kScQujCm_Ida)l=hp8T z->igC-cgKwdH}R<3eeSJ_U#w261NEax%glm5g(bIM;E+eJ&WOl0X=G6CdxaIG7q(A zd+^M8MJYwyYfkRoFE1B1^8|sDgW zu<{I4Cd(U>oM6cT-)~6=y4;_Rh>e7IW9(y`3x#dV*W7ta-6oIJ(|R6P4QApMyi=ug z-||d?2cAr12_%~pavY!6KY#Ov<2=g|#voax(FWw30d&v4wwFyiGpu{^58TSZ7DFcg z9O&1hO+4D{WF_7|iay-92}+{y@RSzgKs}tjSh)=?kkzq-V~oG^g{*YF?NtQ0nLu}g zE;ZAi!9^_Kjjzmt!yN@a0#WX>$;*Ouy}|SJ?~?^`yp4f_t?1{%yVq>;R$n}3`tIOu=MrmZ0 zL^7ReZVN8QMDAa-Ps%+#%BfswHM0F|)**>_O@Falf&Gh1wo(}`z|8@=$Cz+F z?r2Oytc?Y>29~LLhoy8MCVXKYl2+o)nw9aw?LNyj42Qn`k+9~3_G#w|*VQMGrKkuT zF*?VLR<5|<7r@O0y5G`9ju!I!#hDD0Mu_eyUTmfU+4^5%Vgh81GqpmF@o~OWtUv+s%>%lN#9-1x z<{7Wym`3vC_iOgQgw8}^yUJ0{>LJNRO7!Ym9$d;htzUW>nU2^=3w}kt9ZQiMzc&Y?2U+u=<C*05`IcK_VryJySs>(o3A?)T0V8} z=j(b86Tbo6BB0wh5V}0HS>G;qqg8@56x5TM@8$cD!eN5yw~g8{)jQ?r31OSm7+s^3 zBse7+d$HOo{zN4g<*!7Q+kM&f<=Cf1O2uk7R^=ZjGBEFhKQSYlxgU|) zsE1d%I+SS)u9HAe4*!^A>MwY|LW}uhF~H)@odL;z?F;(vd%tBsS4W8afUqtNY?~-t z;wjF;&RR0b?n;9nSK?TejJ<+8bn<4!hfNnI!jT;I`EDl9qM#Z z2;i0jUB#^I!1qiA{hT}@k$oamz8~;U!h}>b5kJ}x@gpU_In>emTHUDO5_-z&Y5*w~ zSh@oy^ak@7a@fRV6~jK4!|y*A495SrSpjs_CRy*C+_}sdO~<2nf(JD}k;sI6|kU zcV$%_J_g#Msh%4{2rZG%RqUbMafQuXuh;fFQ$_6v>Z1xisxY+s*UV!-s;vYVPn=y2 zZ46B1{aYn~TLp9jj9=mA>&>q%iOnJGiq8|u>h`&rC>O!fzr{PdB+Y^8N`Do;ZwfX# zw~6eJAbIncI~g>ee8Hc8fX$qV{~=-Jf9(tUZB_%_T4zDFU$k)Di_WB#BI=3vl_BoX zZt%Ujt8H2tht`3Rm%(GR@|MRUaeiwX-!S$hR0Nb#+@>t$U0Xs4=8|*&)~o;f#2i=+ z&^5#LQ$$Eo|J;p9dDUtpADaf6)US{%N}$CoE)CBAd{ue%^TCKTUPkRJDbETF;sMK<2cNw_l_=HXyO$G;#-5ZMwC0;X&n18RZynIR=4ywmTSOee zFN`8Grg(x|s*liS_#`CQGJuhlk4>wspGPkp^KOOyT)Q4uID~cSXS6&_Q=ly}QLyN+ z%+&th_np9C{`7}>pxaJ?IGg{RcDjitV$&8veMcPm$x*YL9Q?f)?=n6iND)&O+%n-$oPJ=O`3R(OMbnDB-Du@{rI zl9|_asHtab`3Vnv0#vs#V>nI}GB6~O7~5iI)R;y3a!<>xzh|v?tcv|T_X_srPri*n zx3#|ZmzS|L6_k`2nOUZBT4|+1ZM9U;_vb|_wP8{mMXCKbBGn8QqBwIT4Y2tI23&@X zX9ye5X|rCWIJC|$f7{`2`!)gHE246XEQln!lCea}oGnH~HNQmzko7>Z-hd$cobG2{ zSUYZv7|hexHYlOYW9KR^qhv%uTc;LD=6s(HnZ4+;|J@gV`foGP?RSVjk4$-gA(8Uo zG*!0{Ge5k#L-h%wVOR!vRqu7mS5wop$OwJMu*?z`epW6wmwrK~tf9J))!@GEee`Z9 z`2XBL?a%^rSw0qsy2oOsUXdKWfM770+m;3y;M_Giqx8(!tC20o>%25!d=6I{j$_Ud+ z9`U9;S6tX#Y#&K_eNVn(!WQa_3rQJm(wuhsU%r2?TRYHI7NCBhdtLOU?*XHtqsfAp zgZ`Pog9O7wC0t?t)SCWI={$|}!{g%jW1`Ms2(t(h3%Z|b**j`^G~P5K^@OgZ-{^~iKhy_iv>(GRM=%8<90$NE{1~?RO`1! z7n5ux$O8O~U$XG(C4CRZDGOhHA4;UGQU9Jl`#W#;09}@^g5M^d5(I-Bz3tm;?<`nU zbdi_MYNT)p@gRSim>~(DUYI@1^FOQF*AGLb%s%4Y5#t1NeWpTUrdUk>)oJ^`eE;;{ zUZ9&B*UqD0AvVd{@=y!zEcsCj`r+G)R1!$N zo>D_x-ivRqzjZjRxb_x-R?uHfCC1zQt|iR;H(#)q-@pApcUT;2qh7*% z0OLlttpWdOhhmBefykp!gxuLW@O^;?R)>AMwR)_w&AQjS9%d+!P)j7WSHc-7JQaHb zj5BHV@&DYv^VjT17(@2)9Xl{S5?38*Gb+xmnzO*41ausFgg8?|L%3YRuglU;ws z_@C=pV_*NKz=k4-U~t!b_@#;>cLca zhE;rS!3?D8FuSK*VRA?z<4gQOrelg~`v7+Y=+4)#H;a?vSY9L$eR9XP-3e{wN+(UH zLir%EdSnzoz~G?f-JTj!l92EklSeZ-qQw34ZAA|2X2I(2GhDsG{06`s1-dnOb5&pp%w8slzd157is)UTYpa1x zXFw_J$$Zr&enBG`x~*13VK%ez=urW<<3QI#%@XeVVKBhkFPQ+k&PVO5@L$); ztJoVPNw;zHIfV28Vii2qu3W$ZnY`uc2>buN<&ETAMBzLBtFX`HYUZhg&%OSQiDa!6LXJ{GP1DjUmaBbrmy zN22=Ig}`&gGeFnNNO?;aHbLwob=EH!r?cy?34LP->XKfc=8w$@ms!r&-)RtD^aPwS zX~#VW)&+&)QZw9iMjQyFXGFiL_Z)`>^oLoXTl~%ukuxfH!A>{=TB}x~3sw3pWA1(0 z8YC7~)us{rZub0>yKk-QGinDL(zJ0&CDrtgA2T=fu@pm zBtFA!Beq<$1?UHVT76$tqU)No9b68Df$I??rIU}D!W9{ppAE_ zq@CKqsLUc8VlS#5mbpBYb5W!u~&qT`i$);nwyGfg)JPaSPG-vN z@hQ4CZGfwMMXvyzT0eoFdUW4Jt-(legF5b>5XCFDnXX-IyqyfdT?e{9Uur(C!_vA% zkvUiv(J<6PT6XW_K`h@n&kHXgyiKjTT7t#g@nJc(SJLfe63M~)7;V8iU-Em6B!Q;v zJl*v7IrZ;2`2*-S5jUuLO^QdhCl0!^G9FlS5k zmPSAH=LG~GRjFI4wni?Igp&2-D%X(Wa93air zQM?fG0*3zyMCe70qcM!PAJzS|3I6#LFl=*DQonSlSQI9NnT2DqC**QK|<#jvfx zEbun*Wx!6*6K%t7DTuv%q~>gjSd6z$v0$YW`Otmyqo#$_3?w#fo@Q_&BNkk1 zqGXIG@Ofto=#Em)H0a4^!vs3H(|j;Z27m8x?D93dlmXlLJM)Q#^$)5#$InXH_EC@W z`S^n6^|)y@)ml)|v9;G$4<3uAb1i^;w}I{sItJY`{`?)JVGfxnlJS_)dHEg|?Igmf z<%$3Dm7KOd(|(<=K=|jQb*f0`Uh_M9$w}h0_uGi$)E~k(U;VKG?heq+6@@<9U7&2B z<($d;ag|iz)fDdM$fMZs(=%y{I$_zuCtP zr@2{48L?k=t$CqH*|-f^b$%l7dFLn4{g!AxQYw!h6#1l@2Ls_L$+cxEp|X-FYoxQv zvLapFsDFl8nvR@>FW?onu4t!F{2jG2DH&ywkk2{A`is{-aDRRe=prv5f07;fqJO*^ zH8RPM!*K3@1!J;t%cu#7&nc;b*QO&VYSriu%3#NDvij8|RF{m@gjed~$5r|TpF6z% z9N2&N0q+0re*)U~0DytaQy#j@-JT1V3h!pFp-eladP+*C@iNpERy80@#n_H3uU4>+B!r$*kGjEG*V&g21E~bnRuG zXP~?YOS&t{3h6kqgD^KE*S8MTs4R$&Cw&0!G0^Q*w{6w`5PGD?TcZGGEYIzse|fcv z;@Gi4Ro;Y2sNDX(6iqgEp25=y)NcHp0soH>aYFNS)(CKtUFBi zc?AjZ__`bek&IKY)EFjsA2l&L?-a-=0QsH)T^vE7D{$FS)en`;JigGSGG&IH?D>!I z$g=v1XtfbudOMo@EXSyyZV+~P-n~*ZQ4bP~VYq}fS($Ug<$5Qg6aw6Hpu4#hvskEv z>V~>g!zDawnV6pUPH6I-(Ym%jLtOYnH3m*j!K!zR36eoQzf=n*VbQs=k!UwauzJ_M zrXR+#zfBr1@g1m9I2Q|H)or77PY}|wD_F{nA17&hnI6Ld?iJ7llVB!V+s0Ad zdoIsaL%_PMw^a&9omE$(B7Ee8fIP8RMG`tJ7aS<~F<3_GEbOka(li6&B-;JT+mmNp z%*yn)Uh;Q7z6QFs_-fH+eiOwu6y!{Sl4^dau=jS~T=NLdIp*oDGl}DOGlvUs>claB z5dJh`15fUlAabtxIF-2GV${28L1OF+$oB^5j!4&21mnu6c1F9{@Ljh~6=-;WdUYXt z1k*;%bdQ9q={V~g&PALVBJWBWg1ARd(?q@M2-+X0c)>P6b{4t;jytzNm+PHkdSF^@ zpzDpCYAnkSmG3bLH)5r~3@_OFrnUIcTZ0sKLm>_yW8DOMQ*ukb-0jKx%r={TyoQVS zHc|NAnhwbK4(NLI%9z)Wa%ts0$`|nHR7F=^P38sB6zpbxZu2^=w{WiazCy~U*UBwa ze~T9z6%Jit5HyuX8g%o(uM%w-UHp)8Iju3it>9*o8A6RMp#Tin}wyO9sk1c zS5~b?kL;_IJu%A8f#Ex!?T%F-%ZS18^$dXR84ae@8_*4!O%49C* zt&Ib(+au6*QT#k$b~K!>`e}L}-M6rSeztgUTB=9OS0+0(fTTY4(ELSRryTA`8%v!7 z?|d7%!9@_?%0Xjb4JL8#=IEdqkna=Fo%341n?XEM|MtOvks*Y;uB}T=OfV}tnGvdl zJa922Qu}5@vT=OQVVg-C&M9Szeu-6+G-43LF4_GZhHjk{@cp-Epi8w0#d4C7{M9DE zP7uhdNp+cg?Vs#br>4g5=z0%zuHnJGwq=df}sQ5W=U*;=9E@w=`q~ znG`_2FF?0xh3fs<@7|gUJGUE{gM+M+%J(x~8^w`{g4H@7dwc&q^TWA|TILrj$If=o$hez@GOnD#G2@SFCBZ5FVJqGO}JCi1GzWBW$_`d-0#J?K`;6=FS!>vlf{5j)mGHbh~Q1`k#~ho^^ymd+o6*Cn^nC$rHj@7{+g zM8n*>S)tT1FHjrX=(@sktlz;s3c&sI4$Z#+CCF9b#ifgfSqg=cSXic9w%d;V62Uavuc1=$n%&qj~_tt&me$qa&BV0 z#HK*vJD9z}<`hOLDe?x^KGJ>}ajfqB{4XdYyJO8C*6Ek4;qSS4X}i}D*W)|U?k3Li zCiy(5XHLHH0P_8_2LBhJHIKu`260*4YR`8NZTcKt$Z?2`+&^Qz>ViE+oztZ*EbN;* zDuw#^hjG^DQ44pqTjXq+x3cxa%k;s=XVNF#0WKua4MS&f7e4pV9<-E0YGOaokmTNQ z|Hc7UBScU&rP(jc_0j8_W>yBPYQA6VR!=DEDx&CqjBi8%R3kqV#JP>`-~G+M?eOR9 z#=iim^5Cj;B>CvwHhSIBk_2VGlf6Qj%7NE9nW-s%n-;J70YSayn_iCIRB0K;WPiq% z-J~qI74K(LI7oO%2?>cSK)%pGSIo>RY$#6T#?`VQuGF=P4JiZ0N~VCg&;IC8-m(Xr zKPudESXlLEZ*^!=14sHw%a=XpIJqK2$-)mZNya13!1Ee^zA5`JK*$J35DM_3`j7-1 zwv37!?ra+>QA3hV=LPdQ|wqSMB@9U1SEtOr^R{=g}8ghg6UUAU!Tyc#FX13|io0V?}^=Z^a zeA81_8SOcR3PD*B+pBcaJKz59oBr)*h(H&|D^Tp%RhGtfsn2U_O+OAXNaf?eCoik9 z7CSDYxRDe7;m?M6;7Y{wSs|D!Su{hE)IBg@sMP}Ft)e_3GzWjrKm2w7?D_r+(0k!& z0Y(2G6389LD1L)&%#G_$^d!#LJM&{7_|^6`hfU5f=nD~@9e?nn#fpFq;)IVd}zW_Drci~*W!(j93Lh*

)+zq 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 delta 22736 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 + position: (typeof TWUIPopoverStyles)[number]; +}; + +export default function twuiGrabPopoverStyles({ + position, + targetElRef, +}: Params): React.CSSProperties { + if (!targetElRef.current) return {}; + const rect = targetElRef.current.getBoundingClientRect(); + + const targetElCurrStyles = window.getComputedStyle(targetElRef.current); + + const targetElRightPadding = twuiNumberfy(targetElCurrStyles.paddingRight); + + let popoverStyle: React.CSSProperties = { + position: "absolute", + zIndex: 100, + }; + + const defaultBottomStyle: React.CSSProperties = { + top: rect.bottom + window.scrollY + 8, + left: rect.left + window.scrollX + rect.width / 2, + transform: "translateX(-50%)", + }; + + const defaultTopStyleStyle: React.CSSProperties = { + bottom: window.innerHeight - (rect.top + window.scrollY) + 8, + left: rect.left + window.scrollX + rect.width / 2, + transform: "translateX(-50%)", + }; + + if (position === "bottom") { + popoverStyle = _.merge(popoverStyle, defaultBottomStyle); + } else if (position === "bottom-left") { + popoverStyle = _.merge( + popoverStyle, + _.omit(defaultBottomStyle, ["transform"]), + { + left: rect.left, + } as React.CSSProperties + ); + } else if (position === "bottom-right") { + popoverStyle = _.merge( + popoverStyle, + _.omit(defaultBottomStyle, ["left", "transform"]), + { + right: + window.innerWidth - + (rect.left + window.scrollX) - + rect.width - + targetElRightPadding, + } as React.CSSProperties + ); + } else if (position === "top") { + popoverStyle = _.merge(popoverStyle, defaultTopStyleStyle); + } else if (position === "right") { + popoverStyle.top = rect.top + window.scrollY + rect.height / 2; + popoverStyle.left = rect.right + window.scrollX + 8; + popoverStyle.transform = "translateY(-50%)"; + } else if (position === "left") { + popoverStyle.top = rect.top + window.scrollY + rect.height / 2; + popoverStyle.right = + window.innerWidth - (rect.left + window.scrollX) + 8; + popoverStyle.transform = "translateY(-50%)"; + } + + return popoverStyle; +} diff --git a/components/lib/(partials)/ModalComponent.tsx b/components/lib/(partials)/ModalComponent.tsx new file mode 100644 index 0000000..7112b2a --- /dev/null +++ b/components/lib/(partials)/ModalComponent.tsx @@ -0,0 +1,63 @@ +import React, { DetailedHTMLProps, HTMLAttributes } from "react"; +import { twMerge } from "tailwind-merge"; +import ReactDOM from "react-dom"; +import Button from "../layout/Button"; +import { X } from "lucide-react"; +import { TWUI_MODAL_PROPS } from "../elements/Modal"; +import Paper from "../elements/Paper"; +import _ from "lodash"; + +type Props = TWUI_MODAL_PROPS & { + open: boolean; + setOpen: React.Dispatch>; +}; + +/** + * # Modal Main Component + */ +export default function ModalComponent({ open, setOpen, ...props }: Props) { + if (!open) return null; + + return ReactDOM.createPortal( +

+
{ + setOpen(false); + }} + >
+ + {props.children} + + +
, + document.getElementById("twui-modal-root") as HTMLElement + ); +} diff --git a/components/lib/(partials)/PopoverComponent.tsx b/components/lib/(partials)/PopoverComponent.tsx new file mode 100644 index 0000000..91e3e6a --- /dev/null +++ b/components/lib/(partials)/PopoverComponent.tsx @@ -0,0 +1,113 @@ +import React from "react"; +import { twMerge } from "tailwind-merge"; +import ReactDOM from "react-dom"; +import { TWUI_MODAL_PROPS } from "../elements/Modal"; +import Paper from "../elements/Paper"; +import _ from "lodash"; +import twuiGrabPopoverStyles from "../(functions)/popver/grab-popover-styles"; + +type Props = TWUI_MODAL_PROPS & { + open: boolean; + setOpen: React.Dispatch>; + targetElRef?: React.RefObject; + popoverTargetActiveRef: React.MutableRefObject; + popoverContentActiveRef: React.MutableRefObject; +}; + +/** + * # Modal Main Component + */ +export default function PopoverComponent({ + open, + setOpen, + targetElRef, + position = "bottom", + trigger = "hover", + debounce, + popoverTargetActiveRef, + popoverContentActiveRef, + popoverReferenceRef, + isPopover, + ...props +}: Props) { + if (!open) return null; + + const [style, setStyle] = React.useState({}); + + React.useEffect(() => { + if (open && targetElRef?.current) { + const popoverStyle = twuiGrabPopoverStyles({ + position, + targetElRef, + }); + setStyle(popoverStyle); + } + }, [open, targetElRef, position]); + + let closeTimeout: any; + + const popoverEnterFn = React.useCallback(() => { + popoverContentActiveRef.current = true; + popoverTargetActiveRef.current = false; + setOpen(true); + }, []); + + const popoverLeaveFn = React.useCallback(() => { + window.clearTimeout(closeTimeout); + closeTimeout = setTimeout(() => { + if (popoverTargetActiveRef.current) { + popoverTargetActiveRef.current = false; + return; + } + setOpen(false); + }, debounce); + }, []); + + if (!open) return null; + + return ReactDOM.createPortal( + + {/*
*/} + {props.children} + , + document.getElementById("twui-popover-root") as HTMLElement + ); +} diff --git a/components/lib/Readme.md b/components/lib/Readme.md new file mode 100644 index 0000000..f4e40ab --- /dev/null +++ b/components/lib/Readme.md @@ -0,0 +1,17 @@ +# Tailwind CSS UI + +A modular skeletal framework for tailwind css + +## Perequisites + +You need a couple of packages and settings to integrate this package + +### Packages + +- React +- React Dom +- Tailwind CSS **version 4** + +### CSS Base + +This package contains a `base.css` file which has all the base css rules required to run. This css file must be imported in your base project, and it can be update in a separate `.css` file. diff --git a/components/lib/base.css b/components/lib/base.css new file mode 100644 index 0000000..5097795 --- /dev/null +++ b/components/lib/base.css @@ -0,0 +1,155 @@ +@import "tailwindcss"; + +@theme inline { + --breakpoint-xs: 350px; + + --color-background-light: #ffffff; + --color-foreground-light: #171717; + --color-background-dark: #0a0a0a; + --color-foreground-dark: #ededed; + + --color-dark: #000000; + + --color-primary: #000000; + --color-primary-hover: #29292b; + --color-primary-outline: #29292b; + --color-primary-text: #29292b; + --color-primary-dark: #29292b; + --color-primary-dark-hover: #4b4b4b; + --color-primary-dark-outline: #4b4b4b; + --color-primary-dark-text: #ffffff; + + --color-secondary: #000000; + --color-secondary-hover: #dddddd; + --color-secondary-outline: #dddddd; + --color-secondary-text: #dddddd; + --color-secondary-dark: #000000; + --color-secondary-dark-hover: #dddddd; + --color-secondary-dark-outline: #dddddd; + --color-secondary-dark-text: #dddddd; + + --color-accent: #000000; + --color-accent-hover: #dddddd; + --color-accent-outline: #dddddd; + --color-accent-text: #dddddd; + --color-accent-dark: #000000; + --color-accent-dark-hover: #dddddd; + --color-accent-dark-outline: #dddddd; + --color-accent-dark-text: #dddddd; + + --color-gray: #dfe6ef; + --color-gray-hover: #dfe6ef; + --color-gray-dark: #1d2b3f; + --color-gray-dark-hover: #132033; + + --color-success: #0aa156; + --color-success-dark: #0aa156; + + --color-error: #e5484d; + --color-error-dark: #e5484d; + + --color-warning: #ff6900; + + --color-link: #0051c9; + --color-link-dark: #548adb; + + --radius-default: 5px; + --radius-default-sm: 3px; + --radius-default-xs: 1px; + --radius-default-lg: 7px; + --radius-default-xl: 10px; +} + +@custom-variant dark (&:where(.dark, .dark *)); + +body { + @apply bg-background-light dark:bg-background-dark; + @apply text-foreground-light dark:text-foreground-dark; + font-family: Arial, Helvetica, sans-serif; +} + +.tox-tinymce { + @apply w-full !rounded-default !border-slate-300 dark:!border-white/20; +} + +/* .moving-object { + @apply !bg-green-500; +} */ + +option { + @apply dark:bg-background-dark; +} + +.mobile-paper-hidden { + @apply max-md:p-0 max-md:border-none max-md:bg-transparent; +} + +::-webkit-scrollbar { + @apply w-2; +} + +::-webkit-scrollbar-track { + @apply bg-gray rounded-full dark:bg-gray; +} + +::-webkit-scrollbar-thumb { + @apply bg-foreground-light/40 rounded-full hover:bg-foreground-light/60; + @apply dark:bg-foreground-dark/40 rounded-full hover:bg-foreground-dark/60; +} + +* { + scrollbar-width: thin; + scrollbar-color: theme("colors.gray.400") theme("colors.gray.100"); +} + +@supports (selector(:where(*))) { + :where(*) { + scrollbar-width: thin; + scrollbar-color: theme("colors.gray.400") theme("colors.gray.100"); + } + + .dark :where(*) { + scrollbar-color: theme("colors.gray.500") theme("colors.gray.800"); + } +} + +.ace_editor { + @apply dark:bg-background-dark; +} + +.tox-editor-header, +.tox-toolbar-overlord, +.tox .tox-toolbar, +.tox .tox-toolbar__overflow, +.tox .tox-toolbar__primary, +.tox .tox-tbtn, +.tox .tox-sidebar, +.tox .tox-statusbar, +.tox .tox-view-wrap, +.tox .tox-view-wrap__slot-container, +.tox .tox-editor-container, +.tox .tox-edit-area__iframe, +.twui-tinymce { + @apply dark:!bg-background-dark; +} + +.twui-tinymce *:focus { + @apply !outline-white/10; +} + +.tox .tox-tbtn:hover { + @apply dark:!bg-white/10; +} + +.ace_gutter { + @apply dark:!bg-background-dark; +} + +.ace_active-line, +.ace_gutter-active-line { + @apply dark:!bg-white/5; +} + +.normal-text { + @apply text-foreground-light dark:text-foreground-dark; +} diff --git a/components/lib/bun.lock b/components/lib/bun.lock new file mode 100644 index 0000000..24c7d85 --- /dev/null +++ b/components/lib/bun.lock @@ -0,0 +1,193 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "tailwind-ui", + "dependencies": { + "@xterm/xterm": "latest", + "html-to-react": "^1.7.0", + "lodash": "latest", + "lucide-react": "latest", + "react-code-blocks": "latest", + "react-responsive-modal": "latest", + "tailwind-merge": "latest", + "typescript": "latest", + }, + "devDependencies": { + "@next/mdx": "latest", + "@types/ace": "latest", + "@types/bun": "latest", + "@types/lodash": "latest", + "@types/mdx": "latest", + "@types/node": "latest", + "@types/react": "latest", + "@types/react-dom": "latest", + "postcss": "latest", + "tailwindcss": "^4", + }, + }, + }, + "packages": { + "@babel/runtime": ["@babel/runtime@7.27.1", "", {}, "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog=="], + + "@bedrock-layout/use-forwarded-ref": ["@bedrock-layout/use-forwarded-ref@1.6.1", "", { "dependencies": { "@bedrock-layout/use-stateful-ref": "^1.4.1" }, "peerDependencies": { "react": "^16.8 || ^17 || ^18" } }, "sha512-GD9A9AFLzFNjr7k6fgerSqxfwDWl+wsPS11PErOKe1zkVz0y7RGC9gzlOiX/JrgpyB3NFHWIuGtoOQqifJQQpw=="], + + "@bedrock-layout/use-stateful-ref": ["@bedrock-layout/use-stateful-ref@1.4.1", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18" } }, "sha512-4eKO2KdQEXcR5LI4QcxqlJykJUDQJWDeWYAukIn6sRQYoabcfI5kDl61PUi6FR6o8VFgQ8IEP7HleKqWlSe8SQ=="], + + "@emotion/is-prop-valid": ["@emotion/is-prop-valid@1.2.2", "", { "dependencies": { "@emotion/memoize": "^0.8.1" } }, "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw=="], + + "@emotion/memoize": ["@emotion/memoize@0.8.1", "", {}, "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="], + + "@emotion/unitless": ["@emotion/unitless@0.8.1", "", {}, "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ=="], + + "@next/mdx": ["@next/mdx@15.3.2", "", { "dependencies": { "source-map": "^0.7.0" }, "peerDependencies": { "@mdx-js/loader": ">=0.15.0", "@mdx-js/react": ">=0.15.0" }, "optionalPeers": ["@mdx-js/loader", "@mdx-js/react"] }, "sha512-D6lSSbVzn1EiPwrBKG5QzXClcgdqiNCL8a3/6oROinzgZnYSxbVmnfs0UrqygtGSOmgW7sdJJSEOy555DoAwvw=="], + + "@types/ace": ["@types/ace@0.0.52", "", {}, "sha512-YPF9S7fzpuyrxru+sG/rrTpZkC6gpHBPF14W3x70kqVOD+ks6jkYLapk4yceh36xej7K4HYxcyz9ZDQ2lTvwgQ=="], + + "@types/bun": ["@types/bun@1.2.13", "", { "dependencies": { "bun-types": "1.2.13" } }, "sha512-u6vXep/i9VBxoJl3GjZsl/BFIsvML8DfVDO0RYLEwtSZSp981kEO1V5NwRcO1CPJ7AmvpbnDCiMKo3JvbDEjAg=="], + + "@types/hast": ["@types/hast@2.3.10", "", { "dependencies": { "@types/unist": "^2" } }, "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw=="], + + "@types/lodash": ["@types/lodash@4.17.16", "", {}, "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g=="], + + "@types/mdx": ["@types/mdx@2.0.13", "", {}, "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw=="], + + "@types/node": ["@types/node@22.15.19", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw=="], + + "@types/react": ["@types/react@19.1.4", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g=="], + + "@types/react-dom": ["@types/react-dom@19.1.5", "", { "peerDependencies": { "@types/react": "^19.0.0" } }, "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg=="], + + "@types/stylis": ["@types/stylis@4.2.5", "", {}, "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw=="], + + "@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + + "@xterm/xterm": ["@xterm/xterm@5.5.0", "", {}, "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A=="], + + "body-scroll-lock": ["body-scroll-lock@3.1.5", "", {}, "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg=="], + + "bun-types": ["bun-types@1.2.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-rRjA1T6n7wto4gxhAO/ErZEtOXyEZEmnIHQfl0Dt1QQSB4QV0iP6BZ9/YB5fZaHFQ2dwHFrmPaRQ9GGMX01k9Q=="], + + "camelize": ["camelize@1.0.1", "", {}, "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ=="], + + "character-entities": ["character-entities@1.2.4", "", {}, "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="], + + "character-entities-legacy": ["character-entities-legacy@1.1.4", "", {}, "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA=="], + + "character-reference-invalid": ["character-reference-invalid@1.1.4", "", {}, "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg=="], + + "classnames": ["classnames@2.5.1", "", {}, "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="], + + "comma-separated-tokens": ["comma-separated-tokens@1.0.8", "", {}, "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw=="], + + "css-color-keywords": ["css-color-keywords@1.0.0", "", {}, "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg=="], + + "css-to-react-native": ["css-to-react-native@3.2.0", "", { "dependencies": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", "postcss-value-parser": "^4.0.2" } }, "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ=="], + + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], + + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], + + "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], + + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "fault": ["fault@1.0.4", "", { "dependencies": { "format": "^0.2.0" } }, "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA=="], + + "format": ["format@0.2.2", "", {}, "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@2.2.5", "", {}, "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ=="], + + "hastscript": ["hastscript@6.0.0", "", { "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" } }, "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w=="], + + "highlight.js": ["highlight.js@10.7.3", "", {}, "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="], + + "highlightjs-vue": ["highlightjs-vue@1.0.0", "", {}, "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA=="], + + "html-to-react": ["html-to-react@1.7.0", "", { "dependencies": { "domhandler": "^5.0", "htmlparser2": "^9.0", "lodash.camelcase": "^4.3.0" }, "peerDependencies": { "react": "^0.13.0 || ^0.14.0 || >=15" } }, "sha512-b5HTNaTGyOj5GGIMiWVr1k57egAZ/vGy0GGefnCQ1VW5hu9+eku8AXHtf2/DeD95cj/FKBKYa1J7SWBOX41yUQ=="], + + "htmlparser2": ["htmlparser2@9.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="], + + "is-alphabetical": ["is-alphabetical@1.0.4", "", {}, "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg=="], + + "is-alphanumerical": ["is-alphanumerical@1.0.4", "", { "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A=="], + + "is-decimal": ["is-decimal@1.0.4", "", {}, "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw=="], + + "is-hexadecimal": ["is-hexadecimal@1.0.4", "", {}, "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lowlight": ["lowlight@1.20.0", "", { "dependencies": { "fault": "^1.0.0", "highlight.js": "~10.7.0" } }, "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw=="], + + "lucide-react": ["lucide-react@0.511.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "parse-entities": ["parse-entities@2.0.0", "", { "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], + + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + + "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + + "property-information": ["property-information@5.6.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA=="], + + "react": ["react@19.1.0", "", {}, "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg=="], + + "react-code-blocks": ["react-code-blocks@0.1.6", "", { "dependencies": { "@babel/runtime": "^7.10.4", "react-syntax-highlighter": "^15.5.0", "styled-components": "^6.1.0", "tslib": "^2.6.0" }, "peerDependencies": { "react": ">=16" } }, "sha512-ENNuxG07yO+OuX1ChRje3ieefPRz6yrIpHmebQlaFQgzcAHbUfVeTINpOpoI9bSRSObeYo/OdHsporeToZ7fcg=="], + + "react-dom": ["react-dom@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw=="], + + "react-responsive-modal": ["react-responsive-modal@6.4.2", "", { "dependencies": { "@bedrock-layout/use-forwarded-ref": "^1.3.1", "body-scroll-lock": "^3.1.5", "classnames": "^2.3.1" }, "peerDependencies": { "react": "^16.8.0 || ^17 || ^18", "react-dom": "^16.8.0 || ^17 || ^18" } }, "sha512-ARjGEKE5Gu5CSvyA8U9ARVbtK4SMAtdXsjtzwtxRlQIHC99RQTnOUctLpl7+/sp1Kg1OJZ6yqvp6ivd4TBueEw=="], + + "react-syntax-highlighter": ["react-syntax-highlighter@15.6.1", "", { "dependencies": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", "highlightjs-vue": "^1.0.0", "lowlight": "^1.17.0", "prismjs": "^1.27.0", "refractor": "^3.6.0" }, "peerDependencies": { "react": ">= 0.14.0" } }, "sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg=="], + + "refractor": ["refractor@3.6.0", "", { "dependencies": { "hastscript": "^6.0.0", "parse-entities": "^2.0.0", "prismjs": "~1.27.0" } }, "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA=="], + + "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + + "shallowequal": ["shallowequal@1.1.0", "", {}, "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="], + + "source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "space-separated-tokens": ["space-separated-tokens@1.1.5", "", {}, "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA=="], + + "styled-components": ["styled-components@6.1.18", "", { "dependencies": { "@emotion/is-prop-valid": "1.2.2", "@emotion/unitless": "0.8.1", "@types/stylis": "4.2.5", "css-to-react-native": "3.2.0", "csstype": "3.1.3", "postcss": "8.4.49", "shallowequal": "1.1.0", "stylis": "4.3.2", "tslib": "2.6.2" }, "peerDependencies": { "react": ">= 16.8.0", "react-dom": ">= 16.8.0" } }, "sha512-Mvf3gJFzZCkhjY2Y/Fx9z1m3dxbza0uI9H1CbNZm/jSHCojzJhQ0R7bByrlFJINnMzz/gPulpoFFGymNwrsMcw=="], + + "stylis": ["stylis@4.3.2", "", {}, "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg=="], + + "tailwind-merge": ["tailwind-merge@3.3.0", "", {}, "sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ=="], + + "tailwindcss": ["tailwindcss@4.1.7", "", {}, "sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + + "refractor/prismjs": ["prismjs@1.27.0", "", {}, "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA=="], + + "styled-components/postcss": ["postcss@8.4.49", "", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], + + "styled-components/tslib": ["tslib@2.6.2", "", {}, "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="], + } +} diff --git a/components/lib/composites/docs/TWUIDocsAside.tsx b/components/lib/composites/docs/TWUIDocsAside.tsx index 3760489..98e52fe 100644 --- a/components/lib/composites/docs/TWUIDocsAside.tsx +++ b/components/lib/composites/docs/TWUIDocsAside.tsx @@ -20,7 +20,10 @@ export default function TWUIDocsAside({ return (