Theme fixes, logo updated, reduce duplication of components

And many more updates
This commit is contained in:
hackerESQ
2024-08-23 21:59:42 -05:00
parent c255d14f23
commit a0ec39638e
26 changed files with 248 additions and 231 deletions
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
@@ -18,7 +20,7 @@
</div>
<div class="flex justify-end mt-4">
<x-button type="submit" class="ms-4">
<x-button type="submit" class="btn-primary ms-4">
{{ __('Confirm') }}
</x-button>
</div>
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
@@ -25,7 +27,7 @@
</div>
<div class="flex items-center justify-end mt-4">
<x-button>
<x-button class="btn-primary">
{{ __('Email Password Reset Link') }}
</x-button>
</div>
+4 -2
View File
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<x-errors class="mb-4" />
@@ -39,7 +41,7 @@
</a>
@endif
<x-button type="submit" class="ms-4" >
<x-button type="submit" class="btn-primary ms-4" >
{{ __('Log in') }}
</x-button>
+6 -4
View File
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<x-errors class="mb-4" />
@@ -37,8 +39,8 @@
<div class="ms-2 text-sm">
{!! __('I agree to the :terms_of_service and :privacy_policy', [
'terms_of_service' => '<a target="_blank" href="'.route('terms.show').'" class=" text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800">'.__('Terms of Service').'</a>',
'privacy_policy' => '<a target="_blank" href="'.route('policy.show').'" class=" text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800">'.__('Privacy Policy').'</a>',
'terms_of_service' => '<a target="_blank" href="'.route('terms.show').'" class="underline">'.__('Terms of Service').'</a>',
'privacy_policy' => '<a target="_blank" href="'.route('policy.show').'" class="underline">'.__('Privacy Policy').'</a>',
]) !!}
</div>
</div>
@@ -51,7 +53,7 @@
{{ __('Already registered?') }}
</a>
<x-button type="submit" class="ms-4">
<x-button type="submit" class="btn-primary ms-4">
{{ __('Register') }}
</x-button>
</div>
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<x-errors class="mb-4" />
@@ -27,7 +29,7 @@
</div>
<div class="flex items-center justify-end mt-4">
<x-button>
<x-button class="btn-primary">
{{ __('Reset Password') }}
</x-button>
</div>
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<div x-data="{ recovery: false }">
@@ -48,7 +50,7 @@
{{ __('Use an authentication code') }}
</button>
<x-button type="submit" class="ms-4">
<x-button type="submit" class="btn-primary ms-4">
{{ __('Log in') }}
</x-button>
</div>
+4 -2
View File
@@ -1,7 +1,9 @@
<x-guest-layout>
<x-authentication-card>
<x-slot name="logo">
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
</x-slot>
<div class="mb-4 text-sm text-gray-600 dark:text-gray-400">
@@ -19,7 +21,7 @@
@csrf
<div>
<x-button type="submit" type="submit">
<x-button type="submit" type="submit" class="btn-primary">
{{ __('Resend Verification Email') }}
</x-button>
</div>
@@ -1,19 +1,15 @@
<a href="{{ route('dashboard') }}">
<a href="{{ route('dashboard') }}" title="Investbrain">
<svg id="Layer_1" class="fill-current" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2175.97 336.95" {{ $attributes }}>
<path class="text-inherit" d="M.34,23.63l67.11.08-.34,307.46L0,331.1Z"/>
<path class="text-inherit" d="M334.22,331.47,268,331.4l.18-157.46c0-25.44-11.8-40.37-34.17-40.39-19.3,0-35.1,11.36-42.58,29.34l-.19,168.42L125,331.24l.28-247.82,51.76.06,13.13,23.26h1.75c14.94-18,40.83-29.34,66.71-29.31,48.24.06,75.85,26.84,75.78,82.55Z"/>
<path class="text-inherit" d="M459.81,202.22c9.17,32.47,12.66,47.83,16.15,67.13h1.75c2.66-18.42,6.18-34.64,15-67.09L524.85,83.87l66.23.07L512.73,331.67l-74.12-.08L354.67,83.68l71.49.08Z"/>
<path class="text-inherit" d="M807.5,309.2c-19.31,15.76-43.45,27.58-90.82,27.53-78.07-.09-117.94-44-117.84-129.53.09-80.26,44.88-128,116.37-127.94,63.17.07,99.53,40,99.46,100.55a300.65,300.65,0,0,1-3.12,44.3l-147.82-.17c.84,39,18.36,60.55,60.47,60.6,26.75,0,45.19-12.67,54.41-22.31ZM665.1,180.08l87.28.1V173.6c0-28.95-12.23-44.31-39-44.34C683.58,129.23,666,151.14,665.1,180.08Z"/>
<path class="text-inherit" d="M841.89,156.6c0-40.36,34.73-76.72,92.19-76.66,44.74,0,73.23,15.87,89.44,34.75l-42.59,41.62c-8.76-10.09-25.85-23.27-48.66-23.3-14.91,0-24.57,7.87-24.59,19.27,0,37.29,116.65,24.26,116.56,107.16,0,32.89-26,77.16-97.9,77.08-54.39-.06-87.26-22.9-100.84-37.39L865,253.56c11,12.73,35.05,30.74,64.88,30.77,20.61,0,28.52-9.62,28.53-21C958.48,227.34,841.79,239.06,841.89,156.6Z"/>
<path class="text-inherit" d="M1063.27,252.9l.14-118-31.58,0,0-41.23,32-13.12,22.87-58.31,42.11,0-.08,62.29,61.85.07-.06,50.44-61.84-.07-.14,119.74c0,17.1,9.63,25.89,25.85,25.91,10.53,0,24.13-3.49,33.79-10.93l17,49.58c-8.34,6.13-27.65,15.32-68.88,15.28C1093.89,334.52,1063.21,313,1063.27,252.9Z"/>
<path class="text-primary" d="M2175.77,332.71l-66.23-.07.18-157.47c0-25.44-11.8-40.36-34.17-40.39-19.3,0-35.1,11.37-42.58,29.34l-.19,168.43-66.23-.07.28-247.82,51.76.06L2031.72,108h1.75c14.94-18,40.83-29.34,66.71-29.31,48.24,0,75.85,26.84,75.79,82.54Z"/>
<path class="text-primary" d="M1924.39,84.6l-65.23-.07L1859,247.87h.1c28.85,0,50.32,21.55,50.29,51a47,47,0,0,1-13.95,33.55l29.69,0,.26-225.58Z"/>
<path class="text-primary" d="M1223.65,0,1289,.07l-.11,95.62h1.76c9.66-6.57,27.65-13.56,48.26-13.54,56.14.06,97.78,30.81,97.68,122C1436.5,279.64,1392.14,337,1309.68,337c-40.79,0-65.35-6.21-86.39-15.88Zm147.14,209.38c.06-55.26-19.22-72.83-47.73-72.86-15.35,0-27.2,6.11-33.35,13.12l-.15,131.15c7.46,2.64,15.79,3.52,25,3.53C1349.65,284.36,1370.73,262,1370.79,209.38Z"/>
<path class="text-primary" d="M1624.37,147.38c-8.77-1.76-19.73-2.21-28.5-2.22-20.62,0-43.44,7.85-57.92,19.67l-.19,168-65.79-.07.27-247.82L1524,85l13.56,36.42h1.75c10.12-24.11,31.63-41.63,64.09-41.6a103.79,103.79,0,0,1,21,2.22Z"/>
<path class="text-primary" d="M1815.15,163l-.11,99.13c0,14,5.24,20.18,17.09,20.19h7l-.05,45.62c-10.53,6.56-21.94,8.31-32.9,8.29-23.69,0-37.27-11.44-44.71-26.8h-1.76c-9.22,12.27-27.66,27.6-63.19,27.56-48.25-.06-73.21-33-73.17-68.51.06-57,51.41-83.28,129.48-79.24l0-19.3c0-27.63-15.31-36-35.49-36-23.68,0-36.42,13.56-42.57,28l-46.9-34.71c9.67-13.58,34.27-46.45,89.1-46.39C1780.16,80.89,1815.22,102.86,1815.15,163Zm-62.36,71c-43.42-3.12-64.92,6.94-65,28.43,0,14,9.63,24.14,26.73,24.16,16.23,0,30.71-7.43,38.18-17.51Z"/>
</svg>
<svg width="100%" height="100%" viewBox="0 0 8725 3300" id="Layer_1" class="fill-current" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" {{ $attributes }}>
<path class="text-primary" d="M8552.76,2082.3c-29.398,31.58 -65.414,61.734 -109.477,88.913c-93.073,57.415 -187.726,88.717 -281.882,93.29c-3.382,78.783 -36.293,162.794 -94.597,239.914c-81.292,107.573 -205.229,189.232 -341.752,225.651c-12.868,19.865 -27.578,38.641 -40.812,55.515c-33.134,42.276 -61.761,78.796 -62.405,119.335c-1.433,91.582 60.149,145.057 62.501,147.052l32.954,27.084c8.676,7.108 13.07,17.417 11.786,27.65c-1.267,10.236 -8.036,19.118 -18.163,23.842l-295.907,138.107c-6.835,3.186 -14.455,4.175 -21.78,3.165c-8.783,-1.211 -17.133,-5.303 -23.146,-11.883l-16.639,-18.215c-57.077,-62.493 -91.097,-118.496 -121.288,-199.772c-6.014,-16.171 -9.874,-32.19 -13.962,-49.188c-16.226,-67.446 -31.557,-131.138 -182.986,-189.87c-82.12,-31.857 -147.49,-71.267 -194.676,-117.327c-75.111,10.992 -155.253,11.169 -233.182,0.422c-25.692,-3.543 -50.714,-8.279 -74.709,-14.127c-7.053,9.759 -14.544,19.264 -22.39,28.48c-99.559,116.926 -238.221,151.123 -337.029,159.216c-46.51,3.819 -95.337,2.499 -141.191,-3.825c-28.804,-3.972 -55.74,-9.792 -79.214,-17.061c-85.093,65.633 -233.771,128.313 -399.088,105.514c-50.637,-6.983 -101.092,-21.588 -149.972,-43.415c-103.835,-46.369 -180.461,-116.747 -221.585,-203.482c-27.984,-59.043 -38.525,-125.286 -30.394,-186.867c-19.339,-1.398 -38.288,-3.384 -56.69,-5.922c-141.634,-19.533 -258.996,-72.781 -348.884,-158.273c-134.159,-127.632 -201.905,-332.501 -181.22,-548.004c19.912,-207.48 165.75,-311.983 255.693,-357.22c-65.08,-96.514 -153.712,-291.3 -19.413,-514.829c25.051,-41.697 53.577,-76.953 84.255,-106.738l-1.361,1217.56c81.954,37.671 177.59,61.694 336.462,61.873c321.164,0.358 493.952,-223.234 494.283,-517.06c0.397,-355.329 -161.754,-475.093 -380.419,-475.338c-80.291,-0.09 -150.362,27.166 -187.977,52.747l-6.832,-0.008l0.421,-380.663l-200.689,-0.242c130.631,-103.947 271.572,-115.779 367.175,-116.868c0.657,-91.206 36.405,-256.485 258.17,-379.723c132.938,-73.879 271.905,-101.479 413.074,-81.994c99.585,13.734 175.808,48.279 220.675,73.584c30.765,-40.209 82.29,-96.415 158.299,-145.58c95.245,-61.606 201.447,-94.937 315.654,-99.077c57.759,-2.094 113.282,0.464 165.039,7.602c188.252,25.967 301.08,106.575 366.384,179.174c93.352,-63.386 253.281,-119.361 441.071,-93.462c40.503,5.585 81.03,14.932 120.459,27.774c292.042,95.127 434.759,301.369 471.686,457.553c265.013,87.875 422.942,278.274 434.408,525.151c5.02,107.761 -20.922,194.438 -77.267,258.999c-7.203,-201.358 -113.632,-298.324 -294.791,-298.527c-100.789,-0.113 -201.625,44.19 -259.79,114.168l-6.835,-0.008l-51.147,-90.6l-201.574,-0.226l-1.083,965.193l257.955,0.288l0.733,-655.986c29.121,-70.009 90.666,-114.359 165.832,-114.273c87.126,0.097 133.186,58.231 133.069,157.31l-0.682,613.284l216.842,0.242Zm-2106.47,-721.757l0.285,-254.539c-22.197,-5.149 -54.652,-8.6 -81.986,-8.631c-126.416,-0.14 -210.197,68.096 -249.597,162.007l-6.827,-0.008l-52.802,-141.848l-201.578,-0.225l-1.079,965.193l256.245,0.288l0.729,-654.281c56.427,-46.059 145.295,-76.711 225.582,-76.622c34.169,0.039 76.871,1.796 111.028,8.666Zm743.051,60.626c0.264,-234.042 -136.31,-319.61 -382.304,-319.887c-213.536,-0.237 -309.347,127.777 -346.99,180.695l182.642,135.161c23.976,-56.346 73.576,-109.249 165.824,-109.148c78.585,0.09 138.339,32.615 138.218,140.236l-0.082,75.169c-304.066,-15.715 -504.051,86.558 -504.304,308.638c-0.152,138.37 97.077,266.602 284.993,266.812c138.374,0.156 210.189,-59.551 246.119,-107.344l6.831,0.008c28.973,59.824 81.88,104.294 174.128,104.399c42.706,0.051 87.134,-6.738 128.162,-32.315l0.198,-177.664l-27.333,-0.031c-46.126,-0.051 -66.597,-23.988 -66.535,-78.655l0.433,-386.074Zm-242.891,276.471l-0.152,136.664c-29.09,39.259 -85.49,68.236 -148.702,68.166c-66.621,-0.074 -104.162,-39.407 -104.096,-94.074c0.089,-83.707 83.843,-122.904 252.95,-110.756Zm668.347,-581.618l-254.056,-0.288l-0.713,636.185c0.128,0 0.389,-0.144 0.389,-0.007c1.425,269.565 -15.92,322.775 141.545,329.175l115.651,0.128l0.982,-878.604l-3.798,-86.589Zm-128.798,-416.522c-77.037,0 -139.58,62.544 -139.58,139.581c-0,77.036 62.543,139.58 139.58,139.58c77.037,0 139.58,-62.544 139.58,-139.58c0,-77.037 -62.543,-139.581 -139.58,-139.581Zm1108.54,786.767c24.863,27.223 42.926,54.876 53.843,77.957c18.242,38.646 41.742,141.763 27.021,253.89c-8.161,62.239 -29.776,139.339 -81.474,213.305l0.61,-545.152Zm-3135.91,115.749c-0.229,204.998 -82.328,292.027 -218.992,291.875c-35.874,-0.039 -68.33,-3.493 -97.357,-13.776l0.572,-510.781c23.945,-27.306 70.098,-51.173 129.883,-51.103c111.044,0.12 186.136,68.54 185.894,283.785Z" />
<g>
<path class="text-inherit" d="M300.767,2076.36l1.338,-1197.53l-261.369,-0.292l-1.339,1197.52l261.37,0.293Z" />
<path class="text-inherit" d="M1341.11,2077.52l-257.952,-0.288l0.686,-613.284c0.113,-99.079 -45.951,-157.213 -133.073,-157.31c-75.166,-0.086 -136.715,44.26 -165.832,114.269l-0.736,655.99l-257.956,-0.288l1.083,-965.193l201.578,0.226l51.151,90.596l6.831,0.008c58.161,-69.978 159.001,-114.277 259.794,-114.164c187.911,0.21 295.415,104.536 295.174,321.491l-0.748,667.947Z" />
<path class="text-inherit" d="M1830.24,1574.12c35.73,126.456 49.331,186.26 62.912,261.441l6.835,0.008c10.329,-71.738 24.066,-134.931 58.375,-261.305l125.221,-461.103l257.956,0.288l-305.16,964.854l-288.705,-0.323l-326.912,-965.563l278.453,0.311l131.025,461.392Z" />
<path class="text-inherit" d="M2629.81,1487.89l339.952,0.382l0.031,-25.628c0.125,-112.746 -47.641,-172.59 -151.846,-172.71c-116.165,-0.129 -184.593,85.21 -188.137,197.956m554.636,502.863c-75.235,61.417 -169.24,107.434 -353.739,107.231c-304.078,-0.343 -459.339,-171.351 -458.969,-504.468c0.35,-312.618 174.805,-498.633 453.259,-498.321c245.998,0.276 387.612,155.892 387.348,391.639c-0.055,49.542 -1.815,97.37 -12.152,172.524l-575.699,-0.643c3.248,152.041 71.484,235.825 235.482,236.008c104.209,0.117 176.013,-49.343 211.927,-86.888l112.543,182.918Z" />
<path class="text-inherit" d="M3318.36,1396.42c0.175,-157.166 135.293,-298.804 359.079,-298.555c174.249,0.199 285.219,61.818 348.342,135.348l-165.887,162.105c-34.122,-39.33 -100.687,-90.655 -189.52,-90.753c-58.083,-0.066 -95.698,30.641 -95.749,75.061c-0.164,145.205 454.303,94.464 453.945,417.333c-0.144,128.123 -101.128,300.549 -381.292,300.233c-211.829,-0.237 -339.854,-89.209 -392.746,-145.645l153.946,-177.493c42.651,49.592 136.531,119.737 252.697,119.866c80.291,0.09 111.083,-37.456 111.13,-81.872c0.155,-140.08 -454.303,-94.468 -453.945,-415.628" />
<path class="text-inherit" d="M4180.61,1771.5l0.514,-459.534l-122.997,-0.136l0.179,-160.582l124.765,-51.111l89.082,-227.105l163.998,0.183l-0.273,242.583l240.877,0.268l-0.222,196.453l-240.873,-0.268l-0.522,466.368c-0.074,66.625 37.472,100.832 100.676,100.903c41,0.046 93.973,-13.562 131.585,-42.559l66.41,193.111c-32.482,23.879 -107.691,59.668 -268.272,59.493c-165.704,-0.187 -285.188,-84.03 -284.927,-318.067" />
</g>
</svg>
<span class="sr-only">Investbrain</span>
</a>
@@ -1,18 +0,0 @@
<a href="/">
<svg class="w-32 fill-current" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1244.31 573.74">
<path class="text-inherit" d="M.34,1.42l67.11.07L67.11,309,0,308.88Z"/>
<path class="text-inherit" d="M334.22,230.65,279.15,309.2l-11.16,0,.18-157.46c0-25.44-11.8-40.36-34.17-40.39-19.3,0-35.1,11.36-42.58,29.34l-.19,168.43L125,309l.28-247.81,51.76,0,13.13,23.27h1.75c14.94-18,40.83-29.34,66.71-29.31,48.24.05,75.85,26.84,75.78,82.54Z"/>
<path class="text-inherit" d="M459.81,180c9.17,32.47,12.66,47.82,16.15,67.12h1.75c2.66-18.42,6.18-34.65,15-67.1L524.85,61.65l66.23.08L512.73,309.46l-74.12-.09L354.67,61.46l71.49.08Z"/>
<path class="text-inherit" d="M807.5,287c-19.31,15.77-43.45,27.58-90.82,27.53-78.07-.09-117.94-44-117.84-129.52.09-80.27,44.88-128,116.37-128,63.17.07,99.53,40,99.46,100.56a300.44,300.44,0,0,1-3.12,44.29l-147.82-.16c.84,39,18.36,60.55,60.47,60.59,26.75,0,45.19-12.67,54.41-22.3ZM665.1,157.87l87.28.1v-6.58c0-28.95-12.23-44.32-39-44.35C683.58,107,666,128.92,665.1,157.87Z"/>
<path class="text-inherit" d="M841.89,134.38c0-40.35,34.73-76.72,92.19-76.65,44.74.05,73.23,15.87,89.44,34.75L980.93,134.1c-8.76-10.1-25.85-23.28-48.66-23.3-14.91,0-24.57,7.86-24.59,19.27,0,37.28,116.65,24.25,116.56,107.15,0,32.9-26,77.17-97.9,77.09-54.39-.06-87.26-22.91-100.84-37.4L865,231.34c11,12.73,35.05,30.74,64.88,30.78,20.61,0,28.52-9.62,28.53-21C958.48,205.13,841.79,216.84,841.89,134.38Z"/>
<path class="text-inherit" d="M1063.27,230.69l.14-118-31.58,0,0-41.23,32-13.12L1086.78,0l42.11.05-.08,62.28,61.85.07-.06,50.44-61.84-.07-.14,119.74c0,17.11,9.63,25.89,25.85,25.91,10.53,0,24.13-3.48,33.79-10.93l17,49.59c-8.34,6.13-27.65,15.32-68.88,15.27C1093.89,312.3,1063.21,290.78,1063.27,230.69Z"/>
<path class="text-primary" d="M1244.11,569.49l-66.23-.07.18-157.46c0-25.44-11.8-40.37-34.17-40.39-19.3,0-35.1,11.36-42.58,29.34l-.18,168.42-66.23-.07.27-247.82,51.76.06,13.13,23.26h1.76c14.93-18,40.82-29.35,66.7-29.32,48.25.06,75.85,26.84,75.79,82.55Z"/>
<path class="text-primary" d="M992.73,321.39l-65.23-.08-.18,163.35h.1c28.85,0,50.32,21.56,50.29,51a47,47,0,0,1-14,33.55l29.69,0,.26-225.58Z"/>
<path class="text-primary" d="M292,308.65l51.38-71.83,14,0-.1,95.62H359c9.66-6.57,27.65-13.57,48.26-13.55C463.4,319,505,349.75,504.93,441c-.09,75.44-44.45,132.85-126.91,132.76-40.79,0-65.35-6.22-86.39-15.89ZM439.13,446.17c.06-55.27-19.22-72.83-47.73-72.87-15.35,0-27.2,6.11-33.35,13.13l-.15,131.14c7.46,2.64,15.79,3.53,25,3.54C418,521.15,439.07,498.8,439.13,446.17Z"/>
<path class="text-primary" d="M692.71,384.17c-8.77-1.77-19.73-2.22-28.5-2.23-20.62,0-43.43,7.85-57.92,19.68l-.19,168-65.79-.08.28-247.81,51.75,0,13.56,36.42h1.75c10.12-24.12,31.63-41.64,64.09-41.6a103.09,103.09,0,0,1,21,2.22Z"/>
<path class="text-primary" d="M883.49,399.73l-.11,99.13c0,14,5.24,20.18,17.09,20.2h7l-.05,45.62c-10.53,6.57-21.94,8.31-32.9,8.3-23.69,0-37.27-11.45-44.71-26.81h-1.75c-9.23,12.27-27.67,27.6-63.2,27.56-48.24-.05-73.21-33-73.17-68.5.07-57,51.41-83.28,129.48-79.25l0-19.3c0-27.63-15.31-36-35.48-36-23.69,0-36.42,13.55-42.58,28L696.25,364c9.66-13.59,34.26-46.46,89.09-46.4C848.5,317.67,883.56,339.64,883.49,399.73Zm-62.36,71c-43.42-3.12-64.92,6.95-64.94,28.44,0,14,9.62,24.13,26.72,24.15,16.23,0,30.71-7.42,38.18-17.5Z"/>
</svg>
</a>
@@ -1,13 +1,13 @@
<div class="bg-base-100 border-base-300 border-b sticky top-0 z-10">
<div class="flex justify-between items-center px-6 py-5 mx-auto">
<div class="flex justify-between items-center px-7 py-3 mx-auto">
<div class="flex-1 flex items-center">
<label for="main-drawer" class="lg:hidden mr-3">
<x-icon name="o-bars-3" class="cursor-pointer" />
</label>
<x-application-logo style="height:1.3em" />
<x-application-logo style="height:3.1em" />
</div>
<div class="flex flex-grow gap-4 w-50">
@@ -24,13 +24,13 @@
</div>
<div class="p-4">
<x-menu-separator />
<x-section-border />
@php
$user = auth()->user();
@endphp
<x-list-item :item="$user" avatar="profile_photo_url" value="name" sub-value="email" no-separator no-hover class="-mx-2 !-my-2 rounded">
<x-list-item :item="$user" avatar="profile_photo_url" value="name" sub-value="email" no-separator no-hover class="-mx-2 !-mt-5 rounded">
<x-slot:actions>
<x-dropdown>
<x-slot:trigger>
@@ -40,7 +40,7 @@
<x-menu-item title="{{ __('Manage Profile') }}" icon="o-user" link="{{ @route('profile.show') }}" />
<x-menu-item title="{{ __('Import / Export Data') }}" icon="o-cloud-arrow-down" link="{{ @route('import-export') }}" />
<x-menu-separator />
<x-section-border />
<x-menu-item title="{{ __('Log Out') }}" icon="o-power" onclick="event.preventDefault(); document.getElementById('logout').submit();" />
<form id="logout" action="{{ route('logout') }}" method="POST" style="display: none;">
@@ -1,6 +1,6 @@
<div class="hidden sm:block">
<div {{ $attributes->merge(['class' => 'py-8']) }}>
<div {{ $attributes->merge(['class' => 'py-6']) }}>
<div class="border-t border-gray-200 dark:border-gray-700"></div>
</div>
</div>
@@ -0,0 +1,9 @@
<a href="/" title="Investbrain">
<svg width="100%" height="100%" id="Layer_1" class="fill-current" data-name="Layer 1" viewBox="0 0 4119 3245" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" >
<path {{ $attributes->merge(['class' => 'text-primary']) }} d="M3991.44,2054.36c-29.398,31.58 -65.414,61.734 -109.477,88.913c-93.073,57.415 -187.726,88.716 -281.881,93.29c-3.382,78.782 -36.293,162.794 -94.598,239.913c-81.292,107.573 -205.229,189.232 -341.752,225.652c-12.868,19.865 -27.578,38.64 -40.812,55.515c-33.134,42.276 -61.76,78.795 -62.405,119.335c-1.433,91.582 60.149,145.056 62.501,147.051l32.954,27.084c8.676,7.109 13.07,17.418 11.786,27.651c-1.267,10.235 -8.036,19.118 -18.163,23.842l-295.907,138.106c-6.835,3.186 -14.454,4.176 -21.779,3.166c-8.784,-1.212 -17.134,-5.303 -23.147,-11.884l-16.639,-18.215c-57.077,-62.492 -91.097,-118.496 -121.288,-199.771c-6.014,-16.172 -9.874,-32.191 -13.961,-49.189c-16.227,-67.445 -31.558,-131.137 -182.987,-189.87c-82.12,-31.856 -147.49,-71.266 -194.676,-117.326c-75.111,10.992 -155.253,11.169 -233.182,0.421c-25.692,-3.543 -50.714,-8.279 -74.709,-14.126c-7.053,9.759 -14.544,19.264 -22.39,28.48c-99.559,116.926 -238.221,151.122 -337.029,159.215c-46.51,3.819 -95.337,2.5 -141.191,-3.824c-28.804,-3.973 -55.74,-9.792 -79.214,-17.062c-85.093,65.634 -233.771,128.314 -399.088,105.515c-50.636,-6.983 -101.092,-21.589 -149.972,-43.415c-103.834,-46.37 -180.461,-116.747 -221.584,-203.483c-27.985,-59.042 -38.525,-125.286 -30.395,-186.866c-19.338,-1.398 -38.288,-3.385 -56.69,-5.923c-141.634,-19.533 -258.996,-72.78 -348.884,-158.272c-134.159,-127.632 -201.905,-332.502 -181.22,-548.004c19.912,-207.481 165.75,-311.984 255.693,-357.221c-65.08,-96.513 -153.712,-291.299 -19.413,-514.829c25.051,-41.697 53.578,-76.953 84.255,-106.737l53.889,-41.131c130.63,-103.946 271.571,-115.778 367.174,-116.867c0.657,-91.207 36.405,-256.485 258.17,-379.723c132.938,-73.879 271.905,-101.479 413.074,-81.994c99.585,13.733 175.808,48.279 220.675,73.583c30.765,-40.208 82.29,-96.414 158.299,-145.58c95.245,-61.605 201.447,-94.936 315.654,-99.076c57.759,-2.094 113.282,0.464 165.039,7.602c188.252,25.967 301.08,106.574 366.384,179.174c93.353,-63.386 253.281,-119.361 441.072,-93.463c40.502,5.586 81.029,14.933 120.458,27.775c292.042,95.127 434.759,301.368 471.686,457.552c265.014,87.876 422.943,278.274 434.408,525.152c5.021,107.76 -20.922,194.438 -77.267,258.998c-0.341,12.298 -1.766,40.395 -3.896,78.559c0.019,0.002 0.036,0.021 0.052,0.057c24.822,27.232 47.095,71.124 57.997,94.173c18.242,38.647 41.743,141.763 27.022,253.891c-8.162,62.239 -70.947,190.22 -122.646,264.186Z"/>
</svg>
<span class="sr-only">Investbrain</span>
</a>
+13 -23
View File
@@ -55,32 +55,22 @@
</x-ib-card>
@if (!$user->portfolios->isEmpty())
<x-ib-card title="{{ __('Recent activity') }}" class="md:col-span-3">
@livewire('transactions-list', [
'transactions' => $user->transactions
])
</x-ib-card>
@endif
@if (!$user->portfolios->isEmpty())
<x-ib-card title="{{ __('Top performers') }}" class="md:col-span-3">
@foreach($user->holdings->sortBy('market_gain_percent')->where('quantity', '>', 0)->take(5) as $holding)
<x-list-item no-separator :item="$holding" link="{{ route('portfolio.show', ['portfolio' => $holding->portfolio_id]) }}">
@php
$gainPercent = (($holding->market_data?->market_value - $holding->average_cost_basis) / $holding->average_cost_basis) * 100;
@endphp
<x-slot:value class="flex items-center">
{{ $holding->symbol }}
<x-badge class="{{ $gainPercent > 0 ? 'badge-success' : 'badge-error' }} ml-2 badge-sm" >
<x-slot:value>
{{ Number::percentage($gainPercent) }}
</x-slot:value>
</x-badge>
</x-slot:value>
<x-slot:sub-value>
{{ $holding->market_data?->name }}
</x-slot:sub-value>
</x-list-item>
@endforeach
@livewire('top-performers-list', [
'holdings' => $user->holdings
])
</x-ib-card>
@endif
@@ -0,0 +1,52 @@
<?php
use App\Models\Portfolio;
use App\Models\Transaction;
use Illuminate\Support\Collection;
use Livewire\Volt\Component;
new class extends Component {
// props
public Collection $holdings;
// methods
}; ?>
<div class="">
@foreach(
$holdings->sortBy('market_gain_percent')
->where('quantity', '>', 0)
->where('market_data.market_value', '>', 0)
->take(5)
as $holding
)
<x-list-item
no-separator
:item="$holding"
link="{{ route('portfolio.show', ['portfolio' => $holding->portfolio_id]) }}"
>
@php
$gainPercent = (($holding->market_data->market_value - $holding->average_cost_basis) / $holding->average_cost_basis) * 100;
@endphp
<x-slot:value class="flex items-center">
{{ $holding->market_data?->name }} ({{ $holding->symbol }})
<x-badge class="{{ $gainPercent > 0 ? 'badge-success' : 'badge-error' }} ml-2 badge-sm" >
<x-slot:value>
{{ Number::percentage($gainPercent) }}
</x-slot:value>
</x-badge>
</x-slot:value>
<x-slot:sub-value>
{{ $holding->portfolio->title }}
</x-slot:sub-value>
</x-list-item>
@endforeach
</div>
@@ -8,7 +8,8 @@ use Livewire\Volt\Component;
new class extends Component {
// props
public Portfolio $portfolio;
public Collection $transactions;
public ?Portfolio $portfolio;
public ?Transaction $editingTransaction;
// methods
@@ -22,7 +23,7 @@ new class extends Component {
<div class="">
@foreach($portfolio->transactions->take(10) as $transaction)
@foreach($transactions->take(10) as $transaction)
<x-list-item
no-separator
+2 -2
View File
@@ -1,8 +1,8 @@
<x-guest-layout>
<div class="pt-4 bg-gray-100 dark:bg-gray-900">
<div class="min-h-screen flex flex-col items-center pt-6 sm:pt-0">
<div>
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
<div class="w-full sm:max-w-2xl mt-6 p-6 bg-white dark:bg-gray-800 shadow-md overflow-hidden sm:rounded-lg prose dark:prose-invert">
+18 -37
View File
@@ -90,7 +90,24 @@
])
</x-ib-card>
<x-ib-card title="{{ __('Recent activity') }}" class="md:col-span-3">
@livewire('transactions-list', [
'portfolio' => $portfolio,
'transactions' => $portfolio->transactions
])
</x-ib-card>
<x-ib-card title="{{ __('Top performers') }}" class="md:col-span-3">
@livewire('top-performers-list', [
'holdings' => $portfolio->holdings
])
</x-ib-card>
{{-- <x-ib-card title="{{ __('Top headlines') }}" class="md:col-span-3">
@php
@@ -103,42 +120,6 @@
</x-ib-card> --}}
<x-ib-card title="{{ __('Recent activity') }}" class="md:col-span-3">
@livewire('transactions-list', [
'portfolio' => $portfolio
])
</x-ib-card>
<x-ib-card title="{{ __('Top performers') }}" class="md:col-span-3">
@foreach($portfolio->holdings->sortBy('market_gain_percent')->where('quantity', '>', 0)->take(5) as $holding)
<x-list-item no-separator :item="$holding">
@php
$gainPercent = (($holding->market_data?->market_value - $holding->average_cost_basis) / $holding->average_cost_basis) * 100;
@endphp
<x-slot:value class="flex items-center">
{{ $holding->symbol }}
<x-badge class="{{ $gainPercent > 0 ? 'badge-success' : 'badge-error' }} ml-2 badge-sm" >
<x-slot:value>
{{ Number::percentage($gainPercent) }}
</x-slot:value>
</x-badge>
</x-slot:value>
<x-slot:sub-value>
{{ $holding->market_data?->name }}
</x-slot:sub-value>
</x-list-item>
@endforeach
</x-ib-card>
</div>
</div>
</x-app-layout>
+2 -2
View File
@@ -1,8 +1,8 @@
<x-guest-layout>
<div class="pt-4 bg-gray-100 dark:bg-gray-900">
<div class="min-h-screen flex flex-col items-center pt-6 sm:pt-0">
<div>
<x-auth-logo />
<div class="w-24 mb-10">
<x-small-logo />
</div>
<div class="w-full sm:max-w-2xl mt-6 p-6 bg-white dark:bg-gray-800 shadow-md overflow-hidden sm:rounded-lg prose dark:prose-invert">
+54 -84
View File
@@ -1,99 +1,69 @@
@extends('layouts.main-layout', ['attributes' => null])
<div class="flex flex-col min-h-[100dvh] bg-gradient-to-br from-[#03255B] to-[#011638] text-white">
<header class="px-4 lg:px-6 h-14 flex items-center">
<a class="flex items-center justify-center" href="#">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="h-6 w-6"
>
<path d="m8 3 4 8 5-5 5 15H2L8 3z"></path>
</svg>
<span class="sr-only">Investbrain</span>
</a>
<header class="px-4 lg:px-6 h-14 flex items-center w-20">
<x-small-logo class="text-white" />
</header>
<main class="flex-1 flex flex-col items-center justify-center px-4 md:px-6 gap-8">
<div class="text-center space-y-4">
<h1 class="text-4xl sm:text-5xl md:text-6xl font-bold tracking-tighter">Your smartest portfolio</h1>
<div class="flex justify-center items-center gap-4">
<div
class="bg-white/10 px-4 py-2 rounded-lg text-2xl font-bold"
x-data="countdown"
x-init="startCountdown"
id="countdown"
>
<span x-text="days"></span>d
<span x-text="hours"></span>h
<span x-text="minutes"></span>m
<span x-text="seconds"></span>s
<div class="text-center space-y-4">
<h1 class="text-4xl sm:text-5xl md:text-6xl font-bold tracking-tighter">A better portfolio</h1>
<div class="flex justify-center items-center gap-4" title="Yeah, that's halloween.">
<div class="bg-white/10 px-4 py-2 rounded-lg text-2xl font-bold" x-data="countdown"
x-init="startCountdown" id="countdown">
<span x-text="days"></span>d
<span x-text="hours"></span>h
<span x-text="minutes"></span>m
<span x-text="seconds"></span>s
</div>
</div>
</div>
</div>
<div class="max-w-lg space-y-4">
<p class="text-md text-center">
Investbrain is a smart open-source platform that consolidates your portfolios from different brokerages, tracks market performance across your portfolios, and gives you an AI-powered investment best friend.
</p>
<div class="flex flex-col items-center gap-2 pt-7">
<p class="text-lg font-medium">Stay up to date on our progress!</p>
<form
class="flex gap-2 w-full"
action="https://mail.lumifylabs.com/subscribe/0dcb1b4e-8a73-46f6-b9b5-6a6c12ef2f73"
method="post"
>
<div class="max-w-lg space-y-4">
<p class="text-md text-center">
Investbrain is a smart open-source platform that consolidates your portfolios from different brokerages,
tracks market performance across your portfolios, and gives you an AI-powered investment best friend.
</p>
<div class="flex flex-col items-center gap-2 pt-7">
<p class="text-lg font-medium">Stay up to date on our progress!</p>
<form class="flex gap-2 w-full"
action="https://mail.lumifylabs.com/subscribe/0dcb1b4e-8a73-46f6-b9b5-6a6c12ef2f73" method="post">
<input
class="flex rounded-md px-3 py-2 text-md ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed flex-1 bg-white/10 text-white placeholder:text-white/50"
placeholder="steve@savvyinvestor.com"
name="email"
type="email"
/>
<div style="position: absolute; left: -9999px">
<label for="website-robot">Your Website</label>
<input type="text" id="website-robot" name="robot" tabindex="-1" autocomplete="nope" />
<input
class="flex rounded-md px-3 py-2 text-md ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed flex-1 bg-white/10 text-white placeholder:text-white/50"
placeholder="steve@savvyinvestor.com" name="email" type="email" />
<div style="position: absolute; left: -9999px">
<label for="website-robot">Your Website</label>
<input type="text" id="website-robot" name="robot" tabindex="-1" autocomplete="nope" />
</div>
<input type="hidden" name="tags" value="coming-soon-page" />
<button
class="rounded-md text-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2"
type="submit">
Join Waitlist
</button>
</form>
</div>
<div class="flex flex-col items-center gap-2 pt-7">
<a target="_blank" href="https://github.com/hackeresq/investbrain" title="We're open source!" class="">
<x-github-icon />
</a>
</div>
<input type="hidden" name="tags" value="coming-soon-page" />
<button
class="rounded-md text-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2"
type="submit"
>
Count me in!
</button>
</form>
</div>
<div class="flex flex-col items-center gap-2 pt-7">
<a
target="_blank"
href="https://github.com/hackeresq/investbrain"
title="We're open source!"
class=""
>
<x-github-icon/>
</a>
</div>
</div>
</main>
<footer class="flex flex-col gap-2 sm:flex-row py-6 w-full shrink-0 items-center px-4 md:px-6 border-t border-white/20">
<p class="text-xs text-white/50">© {{ date('Y') }} Investbrain. All rights reserved.</p>
<nav class="sm:ml-auto flex gap-4 sm:gap-6">
<a class="text-xs hover:underline underline-offset-4 text-white/50" href="{{ route('terms.show') }}">
Terms
</a>
<a class="text-xs hover:underline underline-offset-4 text-white/50" href="{{ route('policy.show') }}">
Privacy
</a>
</nav>
<footer
class="flex flex-col gap-2 sm:flex-row py-6 w-full shrink-0 items-center px-4 md:px-6 border-t border-white/20">
<p class="text-xs text-white/50">© {{ date('Y') }} Investbrain. All rights reserved.</p>
<nav class="sm:ml-auto flex gap-4 sm:gap-6">
<a class="text-xs hover:underline underline-offset-4 text-white/50" href="{{ route('terms.show') }}">
Terms
</a>
<a class="text-xs hover:underline underline-offset-4 text-white/50" href="{{ route('policy.show') }}">
Privacy
</a>
</nav>
</footer>
</div>
</div>
<script>
<script>
function countdown() {
return {
days: 0,
@@ -101,7 +71,7 @@
minutes: 0,
seconds: 0,
countdownDate: new Date("Oct 31, 2024 00:00:00").getTime(),
startCountdown() {
this.updateCountdown();
setInterval(() => this.updateCountdown(), 1000);