From 50e5d053fb2ab340af00d31cc350b7d4a11c3f3b Mon Sep 17 00:00:00 2001 From: A1Gard Date: Sun, 8 Jun 2025 07:29:42 +0330 Subject: [PATCH] added theme part sarv menu --- .../segments/menu/SarvMenu/SarvMenu.blade.php | 167 ++++++++++++ .../views/segments/menu/SarvMenu/SarvMenu.js | 19 ++ .../segments/menu/SarvMenu/SarvMenu.json | 10 + .../views/segments/menu/SarvMenu/SarvMenu.php | 94 +++++++ .../segments/menu/SarvMenu/SarvMenu.scss | 256 ++++++++++++++++++ .../segments/menu/SarvMenu/screenshot.webp | Bin 0 -> 3976 bytes 6 files changed, 546 insertions(+) create mode 100644 resources/views/segments/menu/SarvMenu/SarvMenu.blade.php create mode 100644 resources/views/segments/menu/SarvMenu/SarvMenu.js create mode 100644 resources/views/segments/menu/SarvMenu/SarvMenu.json create mode 100644 resources/views/segments/menu/SarvMenu/SarvMenu.php create mode 100644 resources/views/segments/menu/SarvMenu/SarvMenu.scss create mode 100644 resources/views/segments/menu/SarvMenu/screenshot.webp diff --git a/resources/views/segments/menu/SarvMenu/SarvMenu.blade.php b/resources/views/segments/menu/SarvMenu/SarvMenu.blade.php new file mode 100644 index 0000000..56d4628 --- /dev/null +++ b/resources/views/segments/menu/SarvMenu/SarvMenu.blade.php @@ -0,0 +1,167 @@ +
+
+
+
+ {{config('app.name')}} +
+
+ +
+ +
+ + + +
+
+ + + + {{getSetting($data->area_name.'_'.$data->part.'_title')}} + +
+
+
+ +
+ + +
+
+
+ + +
diff --git a/resources/views/segments/menu/SarvMenu/SarvMenu.js b/resources/views/segments/menu/SarvMenu/SarvMenu.js new file mode 100644 index 0000000..ad41519 --- /dev/null +++ b/resources/views/segments/menu/SarvMenu/SarvMenu.js @@ -0,0 +1,19 @@ +window.addEventListener('load', function () { + window.addEventListener('scroll',function (e) { + if (window.scrollY > 100){ + document.querySelector('.SarvMenu').classList.add('fixed'); + }else{ + document.querySelector('.SarvMenu').classList.remove('fixed'); + } + }); + + document.querySelector('#sarv-toggle').addEventListener('click',function () { + document.querySelector('#sarv-responsive-menu').style.display = 'flex'; + }); + + document.querySelector('#sarv-responsive-menu').addEventListener('click',function (e) { + if (e.target == this){ + document.querySelector('#sarv-responsive-menu').style.display = 'none'; + } + }) +}) diff --git a/resources/views/segments/menu/SarvMenu/SarvMenu.json b/resources/views/segments/menu/SarvMenu/SarvMenu.json new file mode 100644 index 0000000..cf765d8 --- /dev/null +++ b/resources/views/segments/menu/SarvMenu/SarvMenu.json @@ -0,0 +1,10 @@ +{ + "name": "SarvMenu", + "version": "1.0", + "author": "xStack", + "email": "xshop@xstack.ir", + "license": "GPL-3.0-or-later", + "url": "https:\/\/xstack.ir", + "author_url": "https:\/\/4xmen.ir", + "packages": [] +} \ No newline at end of file diff --git a/resources/views/segments/menu/SarvMenu/SarvMenu.php b/resources/views/segments/menu/SarvMenu/SarvMenu.php new file mode 100644 index 0000000..0308713 --- /dev/null +++ b/resources/views/segments/menu/SarvMenu/SarvMenu.php @@ -0,0 +1,94 @@ +section = 'theme'; + $setting->key = $part->area_name . '_' . $part->part.'_title'; + $setting->value = __("Download app"); + $setting->size = 4; + $setting->type = 'TEXT'; +// $setting->data = json_encode(['xmin' => 2, 'xmax' => 90]); + $setting->title = $part->area_name . ' ' . $part->part. ' title'; + $setting->save(); + + $setting = new Setting(); + $setting->section = 'theme'; + $setting->key = $part->area_name . '_' . $part->part.'_link'; + $setting->value = __("link"); + $setting->size = 4; + $setting->type = 'TEXT'; +// $setting->data = json_encode(['xmin' => 2, 'xmax' => 90]); + $setting->title = $part->area_name . ' ' . $part->part. ' link'; + $setting->save(); + + $setting = new Setting(); + $setting->section = 'theme'; + $setting->key = $part->area_name . '_' . $part->part.'_icon'; + $setting->value = 'ri-mobile-download-line' ; + $setting->size = 4; + $setting->type = 'ICON'; +// $setting->data = json_encode(['xmin' => 2, 'xmax' => 90]); + $setting->title = $part->area_name . ' ' . $part->part. ' icon'; + $setting->save(); + + $setting = new Setting(); + $setting->section = 'theme'; + $setting->key = $part->area_name . '_' . $part->part.'_menu'; + $setting->value = Menu::first()->id; + $setting->type = 'MENU'; + $setting->size = 4; + $setting->title = $part->area_name . ' ' . $part->part .' menu'; + $setting->save(); + + + + + $setting = new Setting(); + $setting->section = 'theme'; + $setting->key = $part->area_name . '_' . $part->part.'_color'; + $setting->value = '#dddddd'; + $setting->type = 'COLOR'; + $setting->data = json_encode(['name' => 'sarv -color']); + $setting->size = 4; + $setting->title = $part->area_name . ' ' . $part->part .' menu text color'; + $setting->save(); + + $setting = new Setting(); + $setting->section = 'theme'; + $setting->key = $part->area_name . '_' . $part->part.'_bg'; + $setting->value = '#ffffff'; + $setting->type = 'COLOR'; + $setting->data = json_encode(['name' => 'sarv-bg']); + $setting->size = 4; + $setting->title = $part->area_name . ' ' . $part->part .' background color'; + $setting->save(); + + + + + } + public static function onRemove(Part $part = null) + { + Setting::where('key',$part->area_name . '_' . $part->part.'_title')->first()?->delete(); + Setting::where('key',$part->area_name . '_' . $part->part.'_icon')->first()?->delete(); + Setting::where('key',$part->area_name . '_' . $part->part.'_link')->first()?->delete(); + Setting::where('key',$part->area_name . '_' . $part->part.'_color')->first()?->delete(); + Setting::where('key',$part->area_name . '_' . $part->part.'_bg')->first()?->delete(); + Setting::where('key',$part->area_name . '_' . $part->part.'_menu')->first()?->delete(); + } + + + public static function onMount(Part $part = null) + { + return $part; + } +} diff --git a/resources/views/segments/menu/SarvMenu/SarvMenu.scss b/resources/views/segments/menu/SarvMenu/SarvMenu.scss new file mode 100644 index 0000000..1488f9a --- /dev/null +++ b/resources/views/segments/menu/SarvMenu/SarvMenu.scss @@ -0,0 +1,256 @@ +#sarv-toggle { + display: none; +} + +.SarvMenu { + + top: -150px; + transition: 400ms; + background: var(--sarv-bg); + color: var(--sarv-color); + + a { + color: var(--sarv-color); + } + + .omg-search { + } + + .mobile-search { + position: relative; + top: -1rem; + display: none; + } + + .form-control { + margin-top: 1rem; + padding: 0; + + input { + border: 0; + background: #dddddd00; + width: calc(100% - 35px); + outline: none; + padding: .35rem 1rem; + margin-bottom: -5px; + position: relative; + top: -5px; + } + + i { + font-size: 25px; + margin: 5px; + } + } + + .sarv-row { + position: relative; + display: grid; + grid-template-columns: 2fr 20fr 8fr; + grid-gap: 1rem; + + img { + max-width: 100%; + } + + + .sarv-btn-container { + display: grid; + grid-gap: .5rem; + grid-template-columns: 5fr 2fr; + padding: 1rem 0; + } + + .btn { + font-size: 15px; + border-color: var(--sarv-color); + } + + nav { + > ul { + display: flex; + align-items: center; + justify-content: start; + flex-direction: row; + padding: 0; + margin: 0; + list-style: none; + + > li { + transition: 400ms; + padding: 1rem 1rem .5rem 1rem; + border-bottom: 2px transparent solid; + } + } + + } + + .sub-menu { + padding-bottom: 1rem; + position: absolute; + background: var(--sarv-bg); + top: 90%; + left: 0; + right: 0; + z-index: 99; + column-count: 4; + border-radius: var(--xshop-border-radius); + font-size: 14px; + max-height: 0; + transition: 500ms; + transition-delay: .3s; + opacity: 0; + + ul { + padding: 0 1rem; + list-style: none; + + ul { + li { + padding: .25rem .5rem; + position: relative; + + &:before { + position: absolute; + inset-inline-start: -.4rem; + content: '\EA63'; + font-family: "remixicon" !important; + } + } + } + } + } + + li:hover { + border-bottom-color: var(--sarv-color); + + .sub-menu { + max-height: 90vh; + opacity: 1; + z-index: 999; + } + } + } + + &.fixed { + position: fixed; + left: 0; + right: 0; + top: 0; + z-index: 555; + + .no-view { + display: none; + } + + .mobile-search { + display: none !important; + } + } +} + + +#sarv-responsive-menu { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 9999; + top: 0; + background: #0d0d0d44; + backdrop-filter: blur(7px); + display: none; + align-items: end; + + nav { + max-height: 60vh; + overflow-y: auto; + width: 100%; + background: var(--sarv-bg); + color: var(--sarv-color); + + ul { + list-style: none; + padding: 0 !important; + margin: 0 !important; + + ul{ + background: #00000022; + } + + li { + border-top: 1px solid var(--sarv-color); + + a { + padding: 1rem; + display: block; + color: var(--sarv-color); + } + + i{ + font-size: 35px; + position: relative; + top: 5px; + } + } + } + } + +} + +/*-1000px width*/ +@media (max-width: 1000px) { + #sarv-toggle { + display: block; + } + .SarvMenu { + + .mobile-search { + display: block; + } + + nav, .omg-search, .float-end { + display: none; + } + + .sarv-row { + grid-template-columns: 2fr 1fr 5fr; + + img { + height: 60px; + } + + .btn { + padding: 3px; + } + } + + .sarv-btn-container { + grid-template-columns: 5fr 3fr 2fr !important; + } + } + + //#sarv-responsive-menu { + // display: flex; + //} + +} + +/*-450px width*/ +@media (max-width: 450px) { + .SarvMenu { + a span { + display: none; + } + + .sarv-btn-container { + grid-template-columns: 3fr 3fr 3fr !important; + } + + .btn { + border-color: transparent !important; + } + } + + +} diff --git a/resources/views/segments/menu/SarvMenu/screenshot.webp b/resources/views/segments/menu/SarvMenu/screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..50dcf958e3048a95153799cbb534b3e7c055ede2 GIT binary patch literal 3976 zcmaJ?2Q*w=+dX4+#t;&M7`>MW(OU>2Aw)MMYLr9^61_##geXy?cTplj5H(t~B+5jM z7HxDvFbwmLy#M;&?_b~derK(7&c6G3_PNiq?_KxmYN)9N!2vK*Rn{@okuoL+0I=fc zG8Cu*prN9olTCoX1O(ZR)=ut(N&q-Hd${SUE3+D#AX!OP05Kp1P#^=CEUn#Luj%M$ zo@M{%u|EPJXOUr{v$Otl&Ofp+oBQt806&e|zh0D|Y1%1))?1fM^y zf9RVOFZe&-{%g+v`iFmWSwB(&prZ#eApB^kI#3X0h*Du^%b}6w_G5(-R@b`L&mLfL zw?jiN75yMkE%P0gsc#6Kbxa6wYT?^2oq(=GQAWo+KbP&{+3+AlTVPCJDvoAM@06sN z1f#v@Z^06TsAPF%UWtI>ssi^F(SDFXfzzCWsjAZO9b!-U z*p$7esN;s|Rz#=b z>p(y3g3lyv4c4eKW2NN9k?;Wl0F7=b;W4LJ*V#S zz2en$k+h|Rx|(!SS7Ym>VG&8_R6<)+doQl>GHH=MEpt3Qy-MfL(dq!bTyNi3JGEGY zo==n5oICDn@~7E6Bi0G`nmPF1WHk161JowMbRi-A5KuuIYt#%d)6UVCuNd7uD&1|I zVzjU+YlSe1+AA!N*Yb@JwFw`x0C!Z)EL#lc@23o^TDPaQx^5bO^NU~aasd5FM#$oP z$o;l=w&#i^Fchn``Xxd*+a@&Oj^S1-@&3jEtJ*~TSu^|t98MZME&E%E7G~=01+^wE z7lMtiJMVfp1izG#&04QgP7K9ZFCZcPET4st9qoRt+MtDkyelsPCHDWztN6&sF#x<$ zy&^hImB@0QJ6M%QHfh0A{BtY$G^7C%; zO=2MjNwt)V{I3YrpLe2d3NV92+5c9c-46|d7T(t$Lw~%U3j(KO+L*}0JCw2Gs$(PJ z_TP0%pF_LZfqr|{7;>0bfDUmkI;@kLw~)2K)!3;Efpe8Av3hHYNwNq!^uQG+Ou}D_;8f=l_j|gWUc@ zNRq5o&_pbf$nGdib1ldNG+#jnP z$X!n(zOE)x7y@;@^x=X8y!NMU6?=#44!@@{49WzLVrI4yA1;$U*lVf?JZw4L!=<32 z`CD7-rB-Hj;o_x0XJ(>cQqJWOJClWt5yup--kM#a30v61v|qXoa%Fi?s7(s<8q*Wv zvL3Bb@|RI_1=Sg*?sMH2LMz^^d0Y|+;S;SSs*|lh?-{Lh*i^Y@0K)4SDut}*0-l-m z`n`>H?oPBQ-aGrgQodwbv~~Py*l}w|?898r7jpw*p=t=MflqqoVWQGUs*W@>hMI_> zoQP5QoJAgY-~4aWm$3OPLpL=&ta`lLGY^Y2tQLA#C9hO8obBOLnA)3IekQ$P8MUU;<$7M$p4 zWm$J)e1s)LIPJekar&FeWfa_?3!exU@O%`0)vC4c`_PEZuA20OkMtakn(YT#WlS-~ z(I`UYy%+@p&*!Ybp7(Dsw{E?Fe5xXH3C;Lwed)CBx&UI|_xH%@kQO}!;eyR=1krB8eDp5pRnINXHSeOx${~_1W3#XtNI9+wnhWDZzzzpy{0EZ zPfj8EqC@Sq`27X~Sni{_$q7EVc9A^`oL7~p*LzYPIj7PX=!V06wK%t`BN37S4vqoyz__ymo?pC*$$W*M!+?QtzZjDNl^{(np}r$Schumg@oJ=I8B> zBye-FlrtlVxBO_r#@oCE`fPB|G4V$zOGu&OlXtWZESr+voVfO2I{F`7N141j#MXi3 zP;{X#HoTk`V6O*9=q|i?I2>}A-sst^BI&Yigql^HpEf-uDGw6%sFhYMK^|-mH>+0X zb}-f}InU^N1qx*&9%zRhcsWYSxj@}-o$I#{Do9k++ddb!!`2=Vb{NH^+t8%OH>UO> zyfbJbwJ6LxIKZNoV8@)^^C)SteFvjG|Ax=dPY9t=R#~U#p6MPu^jmN9XvAsn<<>l$ zFxxXg(AGaIXjEv|9yue==OEbLYwz5{;s1l?ZRlH$L^4Bmia~)+u+lE z_ITE%!swRjDMg4oDalS374g8 zh>3+Zaqm82u)0@I@($f-$oEDy@8BAGDZc1+)VAH19|o$G?2f9ksCGEQ&XSm3_@|Oa zNWSn}{rA}Ux?TJ4QEaV~?*13vv94?q2B^JCeP_dE#`#rnej(4+5z+SOSDgBM^D?Db z4b`gWFJ~0z2F$zXLx(nv@B1sKpN5G{Fo}p2i=fNiGgp|_LakM}2@{sO$~D)EbLu_j zUe!9TMjNZ@k#>EW@$3jwPTOvcxF`Os^4-Vbs7U?!&y+Zst{b*0tI~%wOluC!<~7<6 zTHk-P(vx8GJ0*C^LM`r~Ac;q&G!sdtP8 zx$YMoJe6iM3cmz!s+ta@uc%9$rxZQv5jk2E+wPokbv*u$#WL)E@R;n<*D!}fmP*7B zi7moxGy4gNOJ46J+wgB6W`3DQCODUsg;}j!UBym%$KQD*C~-27uMuvYYj9)fVUgD6 z7K?*2#k`Z48wMCQFOw zp~pg%8A4IGRj%#?&n~#cMV=(`#I~Fgm7S#@mGwAOT%0-E<8rxd)%(vZ^?dJq30^Km z@^I=nxI_e?_oLYEvejj=_>v+5WVVl#Q`^?z>diN@s|qC*Ed1P9!4T3gy_Y6^h#ku- z99o?K>kmx|oe)dd(}gzUDA5e1o&^zn{k`!Qy`B@oPzDNx0&(4|ZQg3{2h`V(VQ;wi z2L<6C$v9-gy6oyW$=#B7fvt?zB@2t^$GG~}9hZF=uWC;1r%lfsuvaPEQfTHACrl0c z)P(G6YdpfOZM<0qFI=VepIOQINH}mvd{ig4G`~irGJw$Yy&Kt4yh4fgEH-Ps^q(N^Yv9SmJH z_J}&?pBrkM<>9Tps>G&ioBnx(KCjvcdZ1#0FfMy?OS^SH4tU4Xt1e z>S<;qyP4RjLVVjGR&&dhjDe^8+T{DG!h;Hdvb~C=BUjMjN57Rf;bQj*5@W$;63Gkm z{(-