This commit is contained in:
MuslemRahimi 2025-03-10 22:57:44 +01:00
parent 184ac52059
commit 6792b74084
82 changed files with 439 additions and 484 deletions

View File

@ -80,7 +80,7 @@
{:else} {:else}
<a class="block relative" href="/pricing"> <a class="block relative" href="/pricing">
<span <span
class="text-base font-semibold text-blue-link blur-sm group-hover:blur-[3px]" class=" font-semibold text-blue-link blur-sm group-hover:blur-[3px]"
> >
XX XX
</span> </span>

View File

@ -252,7 +252,7 @@
The DCF model signals a The DCF model signals a
{#if change < -3} {#if change < -3}
<span class="text-[#00FC50]"> <span class="text-green-600 dark:text-[#00FC50]">
<svg <svg
class="w-6 h-6 sm:w-7 sm:h-7 inline-block" class="w-6 h-6 sm:w-7 sm:h-7 inline-block"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
@ -307,7 +307,7 @@
{:else if change < 0} {:else if change < 0}
<div class="text-white"> <div class="text-white">
The Stock Price is The Stock Price is
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>{Math?.abs(change)}% undervalued</span >{Math?.abs(change)}% undervalued</span
>. >.
</div> </div>

View File

@ -357,7 +357,7 @@
{#each tableList as item, index} {#each tableList as item, index}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
> >
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap"> <td class="text-white text-sm sm:text-[1rem] whitespace-nowrap">
{new Date(item?.date)?.toLocaleDateString("en-US", { {new Date(item?.date)?.toLocaleDateString("en-US", {
@ -385,7 +385,7 @@
{#if index === tableList?.length - 1} {#if index === tableList?.length - 1}
n/a n/a
{:else if item?.shortVolume > tableList[index + 1]?.shortVolume} {:else if item?.shortVolume > tableList[index + 1]?.shortVolume}
<span class="text-[#00FC50]"> <span class="text-green-600 dark:text-[#00FC50]">
+{( +{(
((item?.shortVolume - ((item?.shortVolume -
tableList[index + 1]?.shortVolume) / tableList[index + 1]?.shortVolume) /

View File

@ -83,7 +83,7 @@
rawData?.dividendPrior - rawData?.dividendPrior -
1 > 1 >
0 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"
> >
{( {(

View File

@ -207,7 +207,7 @@
<p> <p>
Current Price: {stockChartData?.price?.toFixed(2)} (<span Current Price: {stockChartData?.price?.toFixed(2)} (<span
class="text-xs {change >= 0 class="text-xs {change >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'}">{change?.toFixed(2)}</span : 'text-[#FF2F1F]'}">{change?.toFixed(2)}</span
>) >)
</p> </p>

View File

@ -99,7 +99,7 @@
{#each displayList as item} {#each displayList as item}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
> >
<td class=" text-sm sm:text-[1rem] whitespace-nowrap"> <td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a <a
@ -138,7 +138,7 @@
<td <td
class="{item?.profitMargin >= 0 class="{item?.profitMargin >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end" : 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
> >
{abbreviateNumber(item?.profitMargin)}% {abbreviateNumber(item?.profitMargin)}%
@ -146,7 +146,7 @@
<td <td
class="{item?.avgChange1D >= 0 class="{item?.avgChange1D >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap" : 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.avgChange1D?.toFixed(2) ?? "n/a"}% {item?.avgChange1D?.toFixed(2) ?? "n/a"}%

View File

@ -343,7 +343,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
displayList?.slice(0, 3)?.length && displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -388,7 +388,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null} {#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>{item?.put_call_ratio?.toFixed(2)}</span >{item?.put_call_ratio?.toFixed(2)}</span
> >
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null} {:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -319,7 +319,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
displayList?.slice(0, 3)?.length && displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -364,7 +364,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null} {#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>{item?.put_call_ratio?.toFixed(2)}</span >{item?.put_call_ratio?.toFixed(2)}</span
> >
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null} {:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -436,7 +436,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
displayList?.slice(0, 3)?.length && displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -481,7 +481,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.putCallRatio <= 1 && item?.putCallRatio !== null} {#if item?.putCallRatio <= 1 && item?.putCallRatio !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>{item?.putCallRatio?.toFixed(2)}</span >{item?.putCallRatio?.toFixed(2)}</span
> >
{:else if item?.putCallRatio >= 0 && item?.putCallRatio !== null} {:else if item?.putCallRatio >= 0 && item?.putCallRatio !== null}

View File

@ -592,7 +592,7 @@
<tbody> <tbody>
{#each volumeList as item, index} {#each volumeList as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
volumeList?.slice(0, 3)?.length && volumeList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -668,7 +668,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.changeOI >= 0} {#if item?.changeOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0} {:else if item?.changeOI < 0}
@ -712,7 +712,7 @@
<tbody> <tbody>
{#each openInterestList as item, index} {#each openInterestList as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
openInterestList?.slice(0, 3)?.length && openInterestList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -788,7 +788,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.changeOI >= 0} {#if item?.changeOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0} {:else if item?.changeOI < 0}
@ -971,7 +971,7 @@
</td> </td>
<td class="text-sm sm:text-[1rem] text-end text-white"> <td class="text-sm sm:text-[1rem] text-end text-white">
{#if item?.changeOI >= 0 && item?.changeOI !== null} {#if item?.changeOI >= 0 && item?.changeOI !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0 && item?.changeOI !== null} {:else if item?.changeOI < 0 && item?.changeOI !== null}
@ -985,7 +985,7 @@
<td class="text-sm sm:text-[1rem] text-end text-white"> <td class="text-sm sm:text-[1rem] text-end text-white">
{#if item?.changesPercentageOI > 0 && item?.changesPercentageOI !== undefined} {#if item?.changesPercentageOI > 0 && item?.changesPercentageOI !== undefined}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentageOI + "%"}</span >+{item?.changesPercentageOI + "%"}</span
> >
{:else if item?.changesPercentageOI < 0 && item?.changesPercentageOI !== undefined} {:else if item?.changesPercentageOI < 0 && item?.changesPercentageOI !== undefined}

View File

@ -301,7 +301,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
displayList?.slice(0, 3)?.length && displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -340,7 +340,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null} {#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>{item?.put_call_ratio?.toFixed(2)}</span >{item?.put_call_ratio?.toFixed(2)}</span
> >
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null} {:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -274,7 +274,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
displayList?.slice(0, 3)?.length && displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -309,7 +309,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap" class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
> >
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null} {#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>{item?.put_call_ratio?.toFixed(2)}</span >{item?.put_call_ratio?.toFixed(2)}</span
> >
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null} {:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -103,7 +103,7 @@
> >
<div class="text-[#c3c6d0] text-sm mb-2 flex items-center"> <div class="text-[#c3c6d0] text-sm mb-2 flex items-center">
<span>Net Call Prem</span> <span>Net Call Prem</span>
<span class="ml-1 text-green-500"></span> <span class="ml-1 text-green-600"></span>
</div> </div>
<div class="flex items-baseline"> <div class="flex items-baseline">
<span class="text-xl font-bold text-white" <span class="text-xl font-bold text-white"

View File

@ -749,7 +749,7 @@
<tbody> <tbody>
{#each data?.user?.tier !== "Pro" ? displayList?.slice(0, 3) : displayList as item, index} {#each data?.user?.tier !== "Pro" ? displayList?.slice(0, 3) : displayList as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
rawData?.slice(0, 3)?.length && rawData?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -767,7 +767,7 @@
> >
<span <span
class="inline-block px-2 {item?.optionType === 'Calls' class="inline-block px-2 {item?.optionType === 'Calls'
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"
> >
{item?.optionType} {item?.optionType}
@ -815,7 +815,7 @@
<td <td
class="text-sm sm:text-[1rem] text-end whitespace-nowrap {item?.sentiment === class="text-sm sm:text-[1rem] text-end whitespace-nowrap {item?.sentiment ===
'Bullish' 'Bullish'
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: item?.sentiment === 'Bearish' : item?.sentiment === 'Bearish'
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-[#C8A32D]'} " : 'text-[#C8A32D]'} "
@ -1002,7 +1002,7 @@
</td> </td>
<td class="text-sm sm:text-[1rem] text-end text-white"> <td class="text-sm sm:text-[1rem] text-end text-white">
{#if item?.changeOI >= 0 && item?.changeOI !== null} {#if item?.changeOI >= 0 && item?.changeOI !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0 && item?.changeOI !== null} {:else if item?.changeOI < 0 && item?.changeOI !== null}
@ -1016,7 +1016,7 @@
<td class="text-sm sm:text-[1rem] text-end text-white"> <td class="text-sm sm:text-[1rem] text-end text-white">
{#if item?.changesPercentageOI > 0 && item?.changesPercentageOI !== undefined} {#if item?.changesPercentageOI > 0 && item?.changesPercentageOI !== undefined}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentageOI + "%"}</span >+{item?.changesPercentageOI + "%"}</span
> >
{:else if item?.changesPercentageOI < 0 && item?.changesPercentageOI !== undefined} {:else if item?.changesPercentageOI < 0 && item?.changesPercentageOI !== undefined}

View File

@ -479,7 +479,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
displayList?.slice(0, 3)?.length && displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -494,7 +494,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null} {#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000 >+{item?.changesPercentage >= 1000
? abbreviateNumberWithColor(item?.changesPercentage) ? abbreviateNumberWithColor(item?.changesPercentage)
: item?.changesPercentage?.toFixed(2)}%</span : item?.changesPercentage?.toFixed(2)}%</span
@ -524,7 +524,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentageOI >= 0 && item?.changesPercentageOI !== null} {#if item?.changesPercentageOI >= 0 && item?.changesPercentageOI !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentageOI >= 1000 >+{item?.changesPercentageOI >= 1000
? abbreviateNumberWithColor(item?.changesPercentageOI) ? abbreviateNumberWithColor(item?.changesPercentageOI)
: item?.changesPercentageOI?.toFixed(2)}%</span : item?.changesPercentageOI?.toFixed(2)}%</span

View File

@ -194,7 +194,7 @@
<div class="sm:mt-10"> <div class="sm:mt-10">
The Options activity signals a The Options activity signals a
{#if signal === "Bullish"} {#if signal === "Bullish"}
<span class="text-[#00FC50]"> <span class="text-green-600 dark:text-[#00FC50]">
<svg <svg
class="w-6 h-6 sm:w-7 sm:h-7 inline-block" class="w-6 h-6 sm:w-7 sm:h-7 inline-block"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"

View File

@ -212,7 +212,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {r2Score >= 65 class="stroke-current {r2Score >= 65
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: r2Score >= 50 : r2Score >= 50
? 'text-[#F8901E]' ? 'text-[#F8901E]'
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"
@ -267,7 +267,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {mape <= 15 class="stroke-current {mape <= 15
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: mape <= 35 : mape <= 35
? 'text-[#F8901E]' ? 'text-[#F8901E]'
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"

View File

@ -1,7 +1,8 @@
<script lang="ts"> <script lang="ts">
import { setCache, getCache } from "$lib/store"; import { setCache, getCache } from "$lib/store";
import { monthNames } from "$lib/utils";
import highcharts from "$lib/highcharts.ts"; import highcharts from "$lib/highcharts.ts";
import { abbreviateNumber } from "$lib/utils";
import { mode } from "mode-watcher";
export let data; export let data;
export let symbol; export let symbol;
@ -140,13 +141,13 @@
radius: 6, radius: 6,
fillColor: markerColor, fillColor: markerColor,
lineWidth: 2, lineWidth: 2,
lineColor: "#FFFFFF", lineColor: $mode === "light" ? "black" : "white",
}, },
dataLabels: { dataLabels: {
enabled: true, enabled: true,
format: formattedType, format: formattedType,
style: { style: {
color: "#FFFFFF", color: $mode === "light" ? "black" : "white",
fontWeight: "bold", fontWeight: "bold",
fontSize: "14px", fontSize: "14px",
}, },
@ -159,7 +160,7 @@
// Create Highcharts options // Create Highcharts options
const options = { const options = {
chart: { chart: {
backgroundColor: "#09090B", backgroundColor: $mode === "light" ? "#fff" : "#09090B",
height: 360, height: 360,
}, },
credits: { enabled: false }, credits: { enabled: false },
@ -167,20 +168,20 @@
title: { title: {
text: `<h3 class="mt-3 mb-1 text-[1rem] sm:text-lg">${symbol} - ${numOfRatings} Transaction</h3>`, text: `<h3 class="mt-3 mb-1 text-[1rem] sm:text-lg">${symbol} - ${numOfRatings} Transaction</h3>`,
useHTML: true, useHTML: true,
style: { color: "white" }, style: { color: $mode === "light" ? "black" : "white" },
}, },
xAxis: { xAxis: {
type: "datetime", type: "datetime",
endOnTick: false, endOnTick: false,
categories: dates, categories: dates,
crosshair: { crosshair: {
color: "#fff", // Set the color of the crosshair line color: $mode === "light" ? "black" : "white", // Set the color of the crosshair line
width: 1, // Adjust the line width as needed width: 1, // Adjust the line width as needed
dashStyle: "Solid", dashStyle: "Solid",
}, },
labels: { labels: {
style: { style: {
color: "#fff", color: $mode === "light" ? "black" : "white",
}, },
distance: 20, // Increases space between label and axis distance: 20, // Increases space between label and axis
formatter: function () { formatter: function () {
@ -206,9 +207,9 @@
}, },
yAxis: { yAxis: {
gridLineWidth: 1, gridLineWidth: 1,
gridLineColor: "#111827", gridLineColor: $mode === "light" ? "#d1d5dc" : "#111827",
labels: { labels: {
style: { color: "white" }, style: { color: $mode === "light" ? "black" : "white" },
}, },
title: { text: null }, title: { text: null },
opposite: true, opposite: true,
@ -220,21 +221,27 @@
borderColor: "rgba(255, 255, 255, 0.2)", // Slightly visible white border borderColor: "rgba(255, 255, 255, 0.2)", // Slightly visible white border
borderWidth: 1, borderWidth: 1,
style: { style: {
color: "#fff", color: "white",
fontSize: "16px", fontSize: "16px",
padding: "10px", padding: "10px",
}, },
borderRadius: 4, borderRadius: 4,
formatter: function () { formatter: function () {
// Format the x value to display time in hh:mm format // Format the x value to display time in hh:mm format
let tooltipContent = `<span class="text-white m-auto text-black text-[1rem] font-[501]">${this?.x}</span><br>`; let tooltipContent = `<span class=" m-auto text-[1rem] font-[501]">${new Date(
this?.x,
).toLocaleDateString("en-US", {
year: "numeric",
month: "short",
day: "numeric",
})}</span><br>`;
// Loop through each point in the shared tooltip // Loop through each point in the shared tooltip
this.points.forEach((point) => { this.points.forEach((point) => {
tooltipContent += `<span class="text-white font-semibold text-sm">${point.series.name}:</span> tooltipContent += `<span class=" font-semibold text-sm">${point.series.name}:</span>
<span class="text-white font-normal text-sm" style="color:${point.color}">${ <span class=" font-normal text-sm">${abbreviateNumber(
point.y point.y,
}</span><br>`; )}</span><br>`;
}); });
return tooltipContent; return tooltipContent;
@ -242,7 +249,7 @@
}, },
plotOptions: { plotOptions: {
series: { series: {
color: "white", color: $mode === "light" ? "black" : "white",
animation: false, // Disable series animation animation: false, // Disable series animation
states: { states: {
hover: { hover: {
@ -261,7 +268,7 @@
: value; : value;
}), }),
type: "area", type: "area",
color: "#FFFFFF", color: $mode === "light" ? "#2C6288" : "white",
lineWidth: 1, lineWidth: 1,
animation: false, animation: false,
zIndex: 10, zIndex: 10,
@ -290,7 +297,7 @@
} }
$: { $: {
if (symbol && timePeriod) { if ((symbol && timePeriod) || $mode) {
isLoaded = false; isLoaded = false;
config = null; config = null;
historicalData = []; historicalData = [];
@ -313,8 +320,8 @@
<label <label
on:click={() => (timePeriod = item)} on:click={() => (timePeriod = item)}
class="px-3 py-1 {timePeriod === item class="px-3 py-1 {timePeriod === item
? 'bg-white text-black ' ? 'bg-gray-300 dark:bg-white text-muted'
: 'text-white bg-table text-opacity-[0.6]'} border border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer" : 'text-muted dark:text-white bg-gray-100 dark:bg-table text-opacity-[0.6]'} border border-gray-200 dark:border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer"
> >
{item} {item}
</label> </label>
@ -322,8 +329,8 @@
<a <a
href="/pricing" href="/pricing"
class="px-3 py-1 flex flex-row items-center {timePeriod === item class="px-3 py-1 flex flex-row items-center {timePeriod === item
? 'bg-white text-black ' ? 'bg-white text-muted'
: 'text-white bg-table text-opacity-[0.6]'} border border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer" : 'text-muted dark:text-white bg-table text-opacity-[0.6]'} border border-gray-200 dark:border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer"
> >
{item} {item}
<svg <svg
@ -341,13 +348,13 @@
</div> </div>
</div> </div>
<div <div
class="border border-gray-800 rounded w-full" class="border border-gray-300 dark:border-gray-800 rounded w-full"
use:highcharts={config} use:highcharts={config}
></div> ></div>
{:else} {:else}
<div class="h-[250px] sm:h-[350px]"> <div class="h-[250px] sm:h-[350px]">
<div <div
class="flex h-full w-full flex-col items-center justify-center rounded-sm border border-gray-800 p-6 text-center md:p-12" class="flex h-full w-full flex-col items-center justify-center rounded-sm border border-gray-300 dark:border-gray-800 p-6 text-center md:p-12"
> >
<div class="mb-4 text-white text-[1rem] sm:text-xl font-semibold"> <div class="mb-4 text-white text-[1rem] sm:text-xl font-semibold">
No chart data available for {symbol} No chart data available for {symbol}

View File

@ -77,7 +77,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {oneYearResult > 5 class="stroke-current {oneYearResult > 5
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: oneYearResult < 5 : oneYearResult < 5
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-white'} text-opacity-[0.7]" : 'text-white'} text-opacity-[0.7]"
@ -114,7 +114,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {oneMonthResult > 5 class="stroke-current {oneMonthResult > 5
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: oneMonthResult < 5 : oneMonthResult < 5
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-white'} " : 'text-white'} "

View File

@ -553,7 +553,7 @@
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap" class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{#if item?.changeInSharesNumberPercentage >= 0} {#if item?.changeInSharesNumberPercentage >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber( >+{abbreviateNumber(
item?.changeInSharesNumberPercentage?.toFixed(2), item?.changeInSharesNumberPercentage?.toFixed(2),
)}%</span )}%</span

View File

@ -69,9 +69,9 @@
animation: false, animation: false,
}, },
title: { title: {
text: `<div class="text-muted dark:text-gray-200 mt-3 text-center font-normal text-2xl">Price Target: <span class="${changesPercentage >= 0 ? "text-green-500 dark:text-[#00FC50]" : "text-[#FF2F1F]"}">$${priceTarget}</span></div> text: `<div class="text-muted dark:text-gray-200 mt-3 text-center font-normal text-2xl">Price Target: <span class="${changesPercentage >= 0 ? "text-green-600 dark:text-[#00FC50]" : "text-[#FF2F1F]"}">$${priceTarget}</span></div>
<div class="text-muted dark:text-gray-200 mb-2 text-center font-normal text-xl">(${changesPercentage}% ${changesPercentage >= 0 ? "upside" : "downside"})</div> <div class="text-muted dark:text-gray-200 mb-2 text-center font-normal text-xl">(${changesPercentage}% ${changesPercentage >= 0 ? "upside" : "downside"})</div>
<div class="text-muted dark:text-gray-200 text-center font-normal text-xl flex justify-center items-center">Analyst Consensus: <span class="ml-1 ${consensusRating === "Buy" ? "text-green-500 dark:text-[#00FC50]" : consensusRating === "Sell" ? "text-red-500 dark:text-[#FF2F1F]" : consensusRating === "Hold" ? "text-orange-500 dark:text-[#D5AB31]" : "text-muted dark:text-white"}">${consensusRating ?? "n/a"}</span></div>`, <div class="text-muted dark:text-gray-200 text-center font-normal text-xl flex justify-center items-center">Analyst Consensus: <span class="ml-1 ${consensusRating === "Buy" ? "text-green-600 dark:text-[#00FC50]" : consensusRating === "Sell" ? "text-red-500 dark:text-[#FF2F1F]" : consensusRating === "Hold" ? "text-orange-500 dark:text-[#D5AB31]" : "text-muted dark:text-white"}">${consensusRating ?? "n/a"}</span></div>`,
style: { style: {
color: "white", color: "white",
// Using inline CSS for margin-top and margin-bottom // Using inline CSS for margin-top and margin-bottom

View File

@ -44,7 +44,7 @@
</div> </div>
Unlimited access to all data and tools Unlimited access to all data and tools
</dt> </dt>
<dd class="mt-2 text-base leading-7"> <dd class="mt-2 leading-7">
Unlimited access to all data and tools, giving you the edge over Unlimited access to all data and tools, giving you the edge over
everyone else in the market. everyone else in the market.
</dd> </dd>
@ -72,7 +72,7 @@
</div> </div>
Realtime Options & Dark Pool Data Realtime Options & Dark Pool Data
</dt> </dt>
<dd class="mt-2 text-base leading-7"> <dd class="mt-2 leading-7">
Instant access to live options & dark pool data to spot Instant access to live options & dark pool data to spot
opportunities and trade with precision before the market moves. opportunities and trade with precision before the market moves.
</dd> </dd>
@ -106,7 +106,7 @@
</div> </div>
Top Wallstreet Analyst Ratings Top Wallstreet Analyst Ratings
</dt> </dt>
<dd class="mt-2 text-base leading-7"> <dd class="mt-2 leading-7">
Follow ratings from the best analysts on Wall Street to stay Follow ratings from the best analysts on Wall Street to stay
ahead. ahead.
</dd> </dd>
@ -135,7 +135,7 @@
</div> </div>
Up to 30 years financial history Up to 30 years financial history
</dt> </dt>
<dd class="mt-2 text-base leading-7"> <dd class="mt-2 leading-7">
We deliver premium Wall Street data with top-tier accuracy and up We deliver premium Wall Street data with top-tier accuracy and up
to 30 years of history. to 30 years of history.
</dd> </dd>

View File

@ -166,7 +166,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {rating > 5 class="stroke-current {rating > 5
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: rating < 5 : rating < 5
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-white'} " : 'text-white'} "

View File

@ -73,7 +73,7 @@
{#each watchList as item} {#each watchList as item}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b-[#09090B]"
> >
<td <td
class="text-sm sm:text-[1rem] text-start border-b-[#09090B]" class="text-sm sm:text-[1rem] text-start border-b-[#09090B]"
@ -128,7 +128,7 @@
class="border-b-[#09090B] text-end text-sm sm:text-[1rem] whitespace-nowrap" class="border-b-[#09090B] text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{#if item?.changesPercentage >= 0} {#if item?.changesPercentage >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage?.toFixed(2)}%</span >+{item?.changesPercentage?.toFixed(2)}%</span
> >
{:else} {:else}

View File

@ -922,7 +922,7 @@
> >
<a <a
href="/" href="/"
class="ml-3 mb-5 flex justify-end items-center h-9 w-9 shrink-0 gap-2 rounded-full text-lg font-semibold text-primary-foreground md:h-10 md:w-10 md:text-base" class="ml-3 mb-5 flex justify-end items-center h-9 w-9 shrink-0 gap-2 rounded-full text-lg font-semibold text-primary-foreground md:h-10 md:w-10 md:"
> >
<img <img
class="avatar w-9 3xl:w-12 rounded-full" class="avatar w-9 3xl:w-12 rounded-full"

View File

@ -474,7 +474,7 @@
: "decrease"} of {analystReport?.highPriceChange}% from the : "decrease"} of {analystReport?.highPriceChange}% from the
latest price. latest price.
</div> </div>
<table class="w-full text-right xs:text-sm sm:text-base mt-5"> <table class="w-full text-right xs:text-sm sm: mt-5">
<thead <thead
><tr ><tr
class="border-b border-gray-600 font-normal text-sm sm:text-[1rem]" class="border-b border-gray-600 font-normal text-sm sm:text-[1rem]"

View File

@ -141,8 +141,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Top Wall Street Analysts</li> <li class="text-muted dark:text-gray-300">Top Wall Street Analysts</li>
</ul> </ul>
</div> </div>
@ -153,10 +153,10 @@
> >
<main class="w-full lg:w-3/4 lg:pr-5"> <main class="w-full lg:w-3/4 lg:pr-5">
<div class="mb-6 border-b-[2px]"> <div class="mb-6 border-b-[2px]">
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold"> <h1 class="mb-1 text-2xl sm:text-3xl font-bold">
Top Wall Street Analysts Top Wall Street Analysts
</h1> </h1>
<p class="mb-3 px-1 text-base font-semibold text-muted sm:px-0"> <p class="mb-3 px-1 font-semibold text-muted sm:px-0">
A list of Wall Street Analysts, ranked by their performance A list of Wall Street Analysts, ranked by their performance
</p> </p>
</div> </div>
@ -167,7 +167,7 @@
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden" class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden"
> >
<table <table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto" class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
> >
<thead> <thead>
<TableHeader {columns} {sortOrders} {sortData} /> <TableHeader {columns} {sortOrders} {sortData} />
@ -175,16 +175,14 @@
<tbody> <tbody>
{#each analystList as item, index} {#each analystList as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-odd{index +
1 === 1 ===
rawData?.length && rawData?.length &&
!['Pro', 'Plus']?.includes(data?.user?.tier) !['Pro', 'Plus']?.includes(data?.user?.tier)
? 'opacity-[0.1]' ? 'opacity-[0.1]'
: ''}" : ''}"
> >
<td <td class=" text-sm sm:text-[1rem] text-center">
class="text-white text-sm sm:text-[1rem] text-white text-center"
>
{item?.rank} {item?.rank}
</td> </td>
@ -194,10 +192,10 @@
<div class="flex flex-col items-start"> <div class="flex flex-col items-start">
<a <a
href={"/analysts/" + item?.analystId} href={"/analysts/" + item?.analystId}
class="sm:hover:text-white text-blue-400" class="font-semibold dark:font-normal text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
>{item?.analystName} >{item?.analystName}
</a> </a>
<!--<span class="text-white">{item?.companyName} </span>--> <!--<span class="">{item?.companyName} </span>-->
<div class="flex flex-row items-center mt-1"> <div class="flex flex-row items-center mt-1">
{#each Array.from({ length: 5 }) as _, i} {#each Array.from({ length: 5 }) as _, i}
{#if i < Math.floor(item?.analystScore)} {#if i < Math.floor(item?.analystScore)}
@ -214,7 +212,7 @@
</svg> </svg>
{:else} {:else}
<svg <svg
class="w-3.5 h-3.5 text-gray-300 dark:text-gray-500" class="w-3.5 h-3.5 text-gray-400 dark:text-gray-500"
aria-hidden="true" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
fill="currentColor" fill="currentColor"
@ -227,7 +225,7 @@
{/if} {/if}
{/each} {/each}
<span class="ml-1 text-gray-400"> <span class="ml-1 dark:text-gray-400">
({item?.analystScore !== null ({item?.analystScore !== null
? item?.analystScore ? item?.analystScore
: 0}) : 0})
@ -237,43 +235,46 @@
</td> </td>
<td <td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{#if Number(item?.successRate) >= 0} {#if Number(item?.successRate) >= 0}
<span class="text-[#00FC50]" <span
class="font-semibold dark:font-normal text-green-600 dark:text-[#00FC50]"
>+{Number(item?.successRate)?.toFixed(2)}%</span >+{Number(item?.successRate)?.toFixed(2)}%</span
> >
{/if} {/if}
</td> </td>
<td <td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{#if Number(item?.avgReturn) >= 0} {#if Number(item?.avgReturn) >= 0}
<span class="text-[#00FC50]" <span
class="font-semibold dark:font-normal text-green-600 dark:text-[#00FC50]"
>+{Number(item?.avgReturn)?.toFixed(2)}%</span >+{Number(item?.avgReturn)?.toFixed(2)}%</span
> >
{:else} {:else}
<span class="text-[#B84242]" <span
class="font-semibold dark:font-normal text-[#B84242]"
>{Number(item?.avgReturn)?.toFixed(2)}%</span >{Number(item?.avgReturn)?.toFixed(2)}%</span
> >
{/if} {/if}
</td> </td>
<td <td
class="text-end text-white text-sm sm:text-[1rem] whitespace-nowrap" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.totalRatings} {item?.totalRatings}
</td> </td>
<!-- <!--
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-white text-end"> <td class=" text-sm sm:text-[1rem] whitespace-nowrap text-end">
{item?.mainSectors?.at(0)} {item?.mainSectors?.at(0)}
</td> </td>
--> -->
<td <td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.lastRating !== null {item?.lastRating !== null
? new Date(item?.lastRating)?.toLocaleString( ? new Date(item?.lastRating)?.toLocaleString(
@ -314,12 +315,12 @@
<div class="mx-auto max-w-7xl px-3 xs:px-6 lg:px-8"> <div class="mx-auto max-w-7xl px-3 xs:px-6 lg:px-8">
<div class="mx-auto max-w-2xl md:text-center"> <div class="mx-auto max-w-2xl md:text-center">
<h3 <h3
class="mt-2 text-2xl font-bold tracking-tight text-white bp:text-3xl" class="mt-2 text-2xl font-bold tracking-tight bp:text-3xl"
> >
Analyst Star Rankings Analyst Star Rankings
</h3> </h3>
<p <p
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg" class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg"
> >
Our analyst star rankings are based on these four factors Our analyst star rankings are based on these four factors
</p> </p>
@ -329,9 +330,7 @@
class="grid grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:max-w-none lg:grid-cols-4 lg:gap-y-16" class="grid grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:max-w-none lg:grid-cols-4 lg:gap-y-16"
> >
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -351,16 +350,12 @@
</div> </div>
Success Rate Success Rate
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The percentage of ratings that are profitable. The percentage of ratings that are profitable.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -380,17 +375,13 @@
</div> </div>
Average Return Average Return
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The average percentage return within one year of the The average percentage return within one year of the
rating. rating.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -410,17 +401,13 @@
</div> </div>
Rating Count Rating Count
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The more ratings the analyst has provided, the higher The more ratings the analyst has provided, the higher
the score. the score.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -440,9 +427,7 @@
</div> </div>
Recency Recency
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
Ratings provided within the past year contribute to a Ratings provided within the past year contribute to a
higher score. higher score.
</dd> </dd>
@ -465,9 +450,7 @@
<h2 class="text-start text-xl font-semibold ml-3"> <h2 class="text-start text-xl font-semibold ml-3">
Top Stocks Picks Top Stocks Picks
</h2> </h2>
<ArrowLogo <ArrowLogo class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:" />
class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:text-white"
/>
</div> </div>
<span class="p-3 ml-3 mr-3"> <span class="p-3 ml-3 mr-3">
Get the latest top Wall Street analyst ratings. Get the latest top Wall Street analyst ratings.
@ -486,9 +469,7 @@
<h2 class="text-start text-xl font-semibold ml-3"> <h2 class="text-start text-xl font-semibold ml-3">
Top Shorted Stocks Top Shorted Stocks
</h2> </h2>
<ArrowLogo <ArrowLogo class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:" />
class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:text-white"
/>
</div> </div>
<span class="p-3 ml-3 mr-3"> <span class="p-3 ml-3 mr-3">
Never miss out another short squeeze Never miss out another short squeeze

View File

@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import { screenWidth, numberOfUnreadNotification } from "$lib/store"; import { screenWidth } from "$lib/store";
import { sectorNavigation } from "$lib/utils"; import { sectorNavigation } from "$lib/utils";
import TableHeader from "$lib/components/Table/TableHeader.svelte"; import TableHeader from "$lib/components/Table/TableHeader.svelte";
import { onMount } from "svelte"; import { onMount } from "svelte";
@ -180,10 +180,12 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li><a href="/analysts" class="text-gray-300">Analyst</a></li> <li>
<a href="/analysts" class="text-muted dark:text-gray-300">Analyst</a>
</li>
<li class="text-gray-300">{analystName ?? "n/a"}</li> <li class="text-muted dark:text-gray-300">{analystName ?? "n/a"}</li>
</ul> </ul>
</div> </div>
@ -200,7 +202,7 @@
> >
<div class="shrink-0"> <div class="shrink-0">
<svg <svg
class="h-16 w-16 sm:h-20 sm:w-20 text-gray-200" class="h-16 w-16 sm:h-20 sm:w-20 text-gray-500 dark:text-gray-200"
fill="currentColor" fill="currentColor"
viewBox="0 0 24 24" viewBox="0 0 24 24"
style="max-width:100px" style="max-width:100px"
@ -212,10 +214,12 @@
> >
</div> </div>
<div class="mt-0 pt-0.5 text-left"> <div class="mt-0 pt-0.5 text-left">
<h1 class="mb-0 text-2xl font-bold text-white"> <h1 class="mb-0 text-2xl font-bold">
{analystName ?? "n/a"} {analystName ?? "n/a"}
</h1> </h1>
<p class="mb-0.5 text-[1rem] font-semibold text-gray-300"> <p
class="mb-0.5 text-[1rem] font-semibold text-muted dark:text-gray-300"
>
Stock Analyst at {companyName ?? "n/a"} Stock Analyst at {companyName ?? "n/a"}
</p> </p>
<div class="inline-flex items-center"> <div class="inline-flex items-center">
@ -235,7 +239,7 @@
</svg> </svg>
{:else} {:else}
<svg <svg
class="w-5 h-5 text-gray-300 dark:text-gray-500" class="w-5 h-5 text-gray-400 dark:text-gray-500"
aria-hidden="true" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
fill="currentColor" fill="currentColor"
@ -248,39 +252,39 @@
{/if} {/if}
{/each} {/each}
</div> </div>
<span class="ml-1 text-[1rem] text-white" <span class="ml-1 text-[1rem]"
>({analystScore ?? "n/a"})</span >({analystScore ?? "n/a"})</span
> >
</div> </div>
</div> </div>
</div> </div>
<div <div
class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-600 py-2 text-center md:grid-cols-4 md:p-0 lg:mt-0 lg:border-none" class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-300 dark:border-gray-600 py-2 text-center md:grid-cols-4 md:p-0 lg:mt-0 lg:border-none"
> >
<div class="flex flex-col px-4 py-2 bp:px-6 md:py-6"> <div class="flex flex-col px-4 py-2 bp:px-6 md:py-6">
<div class="text-2xl font-semibold tracking-tight text-white"> <div class="text-2xl font-semibold tracking-tight">
# {rank ?? "n/a"} # {rank ?? "n/a"}
</div> </div>
<div <div
class="text-[1rem] font-semibold leading-6 text-gray-300" class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
> >
Out of {numOfAnalysts ?? "n/a"} analysts Out of {numOfAnalysts ?? "n/a"} analysts
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-bold tracking-tight text-white"> <div class="text-2xl font-bold tracking-tight">
{totalRatings ?? "n/a"} {totalRatings ?? "n/a"}
</div> </div>
<div <div
class="text-[1rem] font-semibold leading-6 text-gray-300" class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
> >
Total ratings Total ratings
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-bold tracking-tight"> <div class="text-2xl font-bold tracking-tight">
<span <span
@ -288,35 +292,35 @@
? "before:content-['+'] text-[#36D984]" ? "before:content-['+'] text-[#36D984]"
: successRate < 0 && successRate !== undefined : successRate < 0 && successRate !== undefined
? "text-[#EF4444]" ? "text-[#EF4444]"
: "text-white"} : ""}
>{successRate !== undefined >{successRate !== undefined
? successRate?.toFixed(2) + "%" ? successRate?.toFixed(2) + "%"
: "n/a"}</span : "n/a"}</span
> >
</div> </div>
<div <div
class="text-[1rem] font-semibold leading-6 text-gray-300" class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
> >
Success rate Success rate
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-bold tracking-tight text-white"> <div class="text-2xl font-bold tracking-tight">
<span <span
class={avgReturn >= 0 && avgReturn !== undefined class={avgReturn >= 0 && avgReturn !== undefined
? "before:content-['+'] text-[#36D984]" ? "before:content-['+'] text-[#36D984]"
: avgReturn < 0 && avgReturn !== undefined : avgReturn < 0 && avgReturn !== undefined
? "text-[#EF4444]" ? "text-[#EF4444]"
: "text-white"} : ""}
>{avgReturn !== undefined >{avgReturn !== undefined
? avgReturn?.toFixed(2) + "%" ? avgReturn?.toFixed(2) + "%"
: "n/a"}</span : "n/a"}</span
> >
</div> </div>
<div <div
class="text-[1rem] font-semibold leading-6 text-gray-300" class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
> >
Average return Average return
</div> </div>
@ -325,9 +329,9 @@
</div> </div>
{#if data?.getAnalystStats?.mainSectors?.length > 0} {#if data?.getAnalystStats?.mainSectors?.length > 0}
<div class="mb-10 mt-10 text-white"> <div class="mb-10 mt-10">
<div <div
class="relative my-3 space-y-2 rounded border border-gray-600 sm:my-6 p-4" class="relative my-3 space-y-2 rounded border border-gray-300 dark:border-gray-600 sm:my-6 p-4"
> >
<div class="flex flex-col sm:flex-row"> <div class="flex flex-col sm:flex-row">
<div class="mb-2 font-semibold sm:mb-0">Main Sectors:</div> <div class="mb-2 font-semibold sm:mb-0">Main Sectors:</div>
@ -337,7 +341,7 @@
href={sectorNavigation?.find( href={sectorNavigation?.find(
(listItem) => listItem?.title === item, (listItem) => listItem?.title === item,
)?.link} )?.link}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0" class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
> >
{item} {item}
</a> </a>
@ -352,7 +356,7 @@
{#each data?.getAnalystStats?.mainIndustries as item} {#each data?.getAnalystStats?.mainIndustries as item}
<a <a
href={`/list/industry/${item?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`} href={`/list/industry/${item?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0" class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
> >
{item} {item}
</a> </a>
@ -364,16 +368,16 @@
{/if} {/if}
{#if rawData?.length > 0} {#if rawData?.length > 0}
<span class="text-white font-semibold text-xl sm:text-2xl"> <span class=" font-semibold text-xl sm:text-2xl">
{numOfStocks} Stocks {numOfStocks} Stocks
</span> </span>
<div class="w-full m-auto mt-10"> <div class="w-full m-auto mt-4">
<div <div
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto" class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto"
> >
<table <table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto" class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
> >
<thead> <thead>
<TableHeader {columns} {sortOrders} {sortData} /> <TableHeader {columns} {sortOrders} {sortData} />
@ -381,7 +385,7 @@
<tbody> <tbody>
{#each stockList as item, index} {#each stockList as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-odd"
> >
<td class="hidden lg:table-cell" <td class="hidden lg:table-cell"
><button ><button
@ -393,7 +397,7 @@
? 'rotate-180' ? 'rotate-180'
: ''}" : ''}"
viewBox="0 0 20 20" viewBox="0 0 20 20"
fill="white" fill="currentColor"
style="max-width:40px" style="max-width:40px"
><path ><path
fill-rule="evenodd" fill-rule="evenodd"
@ -410,20 +414,20 @@
{#if index >= 5 && !["Pro", "Plus"]?.includes(data?.user?.tier)} {#if index >= 5 && !["Pro", "Plus"]?.includes(data?.user?.tier)}
<a class="block relative" href="/pricing"> <a class="block relative" href="/pricing">
<span <span
class="text-base font-semibold text-blue-link blur-sm group-hover:blur-[6px]" class=" font-semibold text-blue-link blur-sm group-hover:blur-[6px]"
> >
XXXX XXXX
</span> </span>
<div <div
class="ml-px max-w-[130px] truncate text-sm text-white blur-sm group-hover:blur-[6px] lg:max-w-[150px]" class="ml-px max-w-[130px] truncate text-sm blur-sm group-hover:blur-[6px] lg:max-w-[150px]"
> >
XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
</div> </div>
<div class="absolute top-3 flex items-center"> <div class="absolute top-3 flex items-center">
<svg <svg
class="size-5 text-[#fff]" class="size-5 text-muted dark:text-[#fff]"
viewBox="0 0 20 20" viewBox="0 0 20 20"
fill="currentColor" fill="currentColor"
style="max-width: 40px;" style="max-width: 40px;"
@ -437,7 +441,7 @@
</svg> </svg>
<span <span
class="ml-1 font-semibold text-gray-300 group-hover:text-white" class="ml-1 font-semibold text-muted dark:text-gray-300"
> >
Upgrade Upgrade
</span> </span>
@ -447,7 +451,7 @@
<div class="flex flex-col items-start"> <div class="flex flex-col items-start">
<HoverStockChart symbol={item?.ticker} /> <HoverStockChart symbol={item?.ticker} />
<span class="text-white"> <span class="">
{item?.name?.length > charNumber {item?.name?.length > charNumber
? item?.name?.slice(0, charNumber) + "..." ? item?.name?.slice(0, charNumber) + "..."
: item?.name} : item?.name}
@ -460,18 +464,16 @@
class="text-sm sm:text-[1rem] text-start whitespace-nowrap" class="text-sm sm:text-[1rem] text-start whitespace-nowrap"
> >
<div class="flex flex-col sm:flex-row items-start"> <div class="flex flex-col sm:flex-row items-start">
<span class=" text-white mr-1" <span class="mr-1">{item?.action_company}:</span>
>{item?.action_company}:</span
>
<span <span
class=" {[ class=" {[
'Strong Buy', 'Strong Buy',
'Buy', 'Buy',
'Outperform', 'Outperform',
]?.includes(item?.rating_current) ]?.includes(item?.rating_current)
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: item?.rating_current === 'Hold' : item?.rating_current === 'Hold'
? 'text-[#FF7070]' ? '"text-red-600 dark:text-[#FF7070]"'
: [ : [
'Strong Sell', 'Strong Sell',
'Sell', 'Sell',
@ -485,12 +487,11 @@
</div> </div>
</td> </td>
<td <td class=" text-sm sm:text-[1rem] whitespace-nowrap">
class="text-white text-sm sm:text-[1rem] whitespace-nowrap"
>
<div class="flex flex-row items-center justify-end"> <div class="flex flex-row items-center justify-end">
{#if Math?.ceil(item?.adjusted_pt_prior) !== 0} {#if Math?.ceil(item?.adjusted_pt_prior) !== 0}
<span class="text-gray-100 font-normal" <span
class="text-muted dark:text-gray-100 font-normal"
>{Math?.ceil(item?.adjusted_pt_prior)}</span >{Math?.ceil(item?.adjusted_pt_prior)}</span
> >
<svg <svg
@ -499,18 +500,18 @@
viewBox="0 0 24 24" viewBox="0 0 24 24"
><path ><path
fill="none" fill="none"
stroke="white" stroke="currentColor"
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
stroke-width="1.5" stroke-width="1.5"
d="M4 12h16m0 0l-6-6m6 6l-6 6" d="M4 12h16m0 0l-6-6m6 6l-6 6"
/></svg /></svg
> >
<span class="text-white font-semibold" <span class=" font-semibold"
>{Math?.ceil(item?.adjusted_pt_current)}</span >{Math?.ceil(item?.adjusted_pt_current)}</span
> >
{:else if Math?.ceil(item?.adjusted_pt_current) !== 0} {:else if Math?.ceil(item?.adjusted_pt_current) !== 0}
<span class="text-white font-semibold" <span class=" font-semibold"
>{Math?.ceil(item?.adjusted_pt_current)}</span >{Math?.ceil(item?.adjusted_pt_current)}</span
> >
{:else} {:else}
@ -520,29 +521,29 @@
</td> </td>
<td <td
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap" class=" text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.price !== null ? item?.price : "n/a"} {item?.price !== null ? item?.price : "n/a"}
</td> </td>
<td <td
class="{item?.upside >= 0 && item?.upside !== null class="{item?.upside >= 0 && item?.upside !== null
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: item?.upside < 0 && item?.upside !== null : item?.upside < 0 && item?.upside !== null
? 'text-[#FF2F1F]' ? 'text-red-600 dark:text-[#FF2F1F]'
: 'text-white'} text-end text-sm sm:text-[1rem] whitespace-nowrap" : ''} text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.upside !== null ? item?.upside + "%" : "n/a"} {item?.upside !== null ? item?.upside + "%" : "n/a"}
</td> </td>
<td <td
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap" class=" text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.ratings !== null ? item?.ratings : "n/a"} {item?.ratings !== null ? item?.ratings : "n/a"}
</td> </td>
<td <td
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap" class=" text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{new Date(item?.date).toLocaleString("en-US", { {new Date(item?.date).toLocaleString("en-US", {
month: "short", month: "short",
@ -553,7 +554,7 @@
</td> </td>
</tr> </tr>
{#if checkedSymbol === item?.ticker} {#if checkedSymbol === item?.ticker}
<tr class="bg-default" <tr class=""
><td colspan="8" class="px-0" style="" ><td colspan="8" class="px-0" style=""
><div class="-mt-0.5 px-0 pb-2"> ><div class="-mt-0.5 px-0 pb-2">
<div class="relative h-[400px]"> <div class="relative h-[400px]">

View File

@ -35,8 +35,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Top Analyst Stocks</li> <li class="text-muted dark:text-gray-300">Top Analyst Stocks</li>
</ul> </ul>
</div> </div>
@ -47,7 +47,7 @@
> >
<main class="w-full lg:pr-5"> <main class="w-full lg:pr-5">
<div class="mb-6 border-b-[2px]"> <div class="mb-6 border-b-[2px]">
<h1 class="mb-3 text-white text-2xl sm:text-3xl font-bold"> <h1 class="mb-3 text-2xl sm:text-3xl font-bold">
Top Strong Buy Stocks Top Strong Buy Stocks
</h1> </h1>
</div> </div>
@ -56,7 +56,7 @@
text={"Strong Buy stocks by top-rated analysts with a star rating of 4 or above, known for their exceptional accuracy and returns. Stocks are ranked based on the volume of analyst ratings."} text={"Strong Buy stocks by top-rated analysts with a star rating of 4 or above, known for their exceptional accuracy and returns. Stocks are ranked based on the volume of analyst ratings."}
/> />
<div class="w-full m-auto mt-10"> <div class="w-full m-auto">
<Table <Table
{data} {data}
{rawData} {rawData}
@ -69,14 +69,10 @@
<div class="mt-4 py-6 xl:mt-10 border-t border-gray-200"> <div class="mt-4 py-6 xl:mt-10 border-t border-gray-200">
<div class="mx-auto max-w-7xl px-3 xs:px-6 lg:px-8"> <div class="mx-auto max-w-7xl px-3 xs:px-6 lg:px-8">
<div class="mx-auto max-w-2xl md:text-center"> <div class="mx-auto max-w-2xl md:text-center">
<h3 <h3 class="mt-2 text-2xl font-bold tracking-tight bp:text-3xl">
class="mt-2 text-2xl font-bold tracking-tight text-white bp:text-3xl"
>
Analyst Star Rankings Analyst Star Rankings
</h3> </h3>
<p <p class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg">
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg"
>
Our analyst star rankings are based on these four factors Our analyst star rankings are based on these four factors
</p> </p>
</div> </div>
@ -85,9 +81,7 @@
class="grid grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:max-w-none lg:grid-cols-4 lg:gap-y-16" class="grid grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:max-w-none lg:grid-cols-4 lg:gap-y-16"
> >
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -107,16 +101,12 @@
</div> </div>
Success Rate Success Rate
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The percentage of ratings that are profitable. The percentage of ratings that are profitable.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -136,17 +126,13 @@
</div> </div>
Average Return Average Return
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The average percentage return within one year of the The average percentage return within one year of the
rating. rating.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -166,17 +152,13 @@
</div> </div>
Rating Count Rating Count
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The more ratings the analyst has provided, the higher the The more ratings the analyst has provided, the higher the
score. score.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt class=" font-semibold leading-4 md:leading-7">
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
> >
@ -196,9 +178,7 @@
</div> </div>
Recency Recency
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
Ratings provided within the past year contribute to a Ratings provided within the past year contribute to a
higher score. higher score.
</dd> </dd>

View File

@ -159,8 +159,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Corporate Lobbying Tracker</li> <li class="text-muted dark:text-gray-300">Corporate Lobbying Tracker</li>
</ul> </ul>
</div> </div>
@ -174,7 +174,7 @@
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold"> <h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
Lobbying Tracker Lobbying Tracker
</h1> </h1>
<p class="mb-3 px-1 text-base font-semibold text-muted sm:px-0"> <p class="mb-3 px-1 font-semibold text-muted sm:px-0">
Track the latest lobbying spendings of US stock companies Track the latest lobbying spendings of US stock companies
</p> </p>
</div> </div>
@ -230,7 +230,7 @@
class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]" class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]"
> >
{#if item?.changesPercentage >= 0} {#if item?.changesPercentage >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000 >+{item?.changesPercentage >= 1000
? item?.changesPercentage ? item?.changesPercentage
: item?.changesPercentage?.toFixed(2)}%</span : item?.changesPercentage?.toFixed(2)}%</span

View File

@ -701,8 +701,8 @@
<!-- <!--
<div class="text-sm sm:text-[1rem] breadcrumbs mb-5"> <div class="text-sm sm:text-[1rem] breadcrumbs mb-5">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Options Flow</li> <li class="text-muted dark:text-gray-300">Options Flow</li>
</ul> </ul>
</div> </div>
--> -->
@ -899,7 +899,7 @@
> >
<label <label
for="ruleModal" for="ruleModal"
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller" class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
> >
<svg <svg
class="h-5 w-5" class="h-5 w-5"
@ -920,7 +920,7 @@
{#if ruleOfList?.length !== 0} {#if ruleOfList?.length !== 0}
<label <label
on:click={handleResetAll} on:click={handleResetAll}
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller" class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
> >
<svg <svg
class="h-4 w-4" class="h-4 w-4"

View File

@ -313,8 +313,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Dividends Calendar</li> <li class="text-muted dark:text-gray-300">Dividends Calendar</li>
</ul> </ul>
</div> </div>
@ -453,7 +453,7 @@
{#each day as item} {#each day as item}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
> >
<td class=" text-sm sm:text-[1rem]"> <td class=" text-sm sm:text-[1rem]">
<HoverStockChart symbol={item?.symbol} /> <HoverStockChart symbol={item?.symbol} />

View File

@ -315,8 +315,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Earnings Calendar</li> <li class="text-muted dark:text-gray-300">Earnings Calendar</li>
</ul> </ul>
</div> </div>
@ -454,7 +454,7 @@
{#each ["Pro", "Plus"]?.includes(data?.user?.tier) ? day : day?.slice(0, 6) as item, index} {#each ["Pro", "Plus"]?.includes(data?.user?.tier) ? day : day?.slice(0, 6) as item, index}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
day?.slice(0, 6)?.length && day?.slice(0, 6)?.length &&
!['Pro', 'Plus']?.includes(data?.user?.tier) !['Pro', 'Plus']?.includes(data?.user?.tier)

View File

@ -302,8 +302,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Economic Calendar</li> <li class="text-muted dark:text-gray-300">Economic Calendar</li>
</ul> </ul>
</div> </div>
@ -619,7 +619,7 @@
<tbody> <tbody>
{#each day as item} {#each day as item}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder border-gray-800"
> >
<td class="text-white text-sm sm:text-[1rem]"> <td class="text-white text-sm sm:text-[1rem]">
{item?.time} {item?.time}

View File

@ -627,8 +627,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">US Economic Indicator</li> <li class="text-muted dark:text-gray-300">US Economic Indicator</li>
</ul> </ul>
</div> </div>
@ -870,7 +870,7 @@
{#each tableList as item} {#each tableList as item}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder border-gray-800"
> >
<td <td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap" class="text-white text-sm sm:text-[1rem] whitespace-nowrap"

View File

@ -753,7 +753,7 @@
> >
<span <span
class={displayLegend?.change >= 0 class={displayLegend?.change >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"} : "text-[#FF2F1F]"}
> >
{displayLegend?.change} {displayLegend?.change}
@ -795,9 +795,9 @@
{prePostData?.price?.toFixed(2)} {prePostData?.price?.toFixed(2)}
</div> </div>
<div <div
class="mt-1.5 block text-sm xs:text-base sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >= class="mt-1.5 block text-sm xs: sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >=
0 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"
> >
{prePostData?.changesPercentage?.toFixed( {prePostData?.changesPercentage?.toFixed(

View File

@ -746,7 +746,7 @@
> >
<span <span
class={displayLegend?.graphChange >= 0 class={displayLegend?.graphChange >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"} : "text-[#FF2F1F]"}
> >
{displayLegend?.graphChange ?? {displayLegend?.graphChange ??

View File

@ -31,7 +31,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} &#183; {formatDate(item?.publishedDate)} &#183;
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.url} href={item?.url}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -32,7 +32,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} &#183; {formatDate(item?.publishedDate)} &#183;
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.url} href={item?.url}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -248,7 +248,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {buySellRatio >= 0.5 class="stroke-current {buySellRatio >= 0.5
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: 'text-[#EE5365]'} " : 'text-[#EE5365]'} "
stroke-width="3" stroke-width="3"
stroke-dasharray="100" stroke-dasharray="100"
@ -371,7 +371,7 @@
<div class="flex flex-col ml-3 font-normal"> <div class="flex flex-col ml-3 font-normal">
<a <a
href={`/politicians/${item?.id}`} href={`/politicians/${item?.id}`}
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
>{getAbbreviatedName( >{getAbbreviatedName(
item?.representative?.replace("_", " "), item?.representative?.replace("_", " "),
)}</a )}</a
@ -410,7 +410,9 @@
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white" class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
> >
{#if item?.type === "Bought"} {#if item?.type === "Bought"}
<span class="text-[#00FC50]">Bought</span> <span class="text-green-600 dark:text-[#00FC50]"
>Bought</span
>
{:else if item?.type === "Sold"} {:else if item?.type === "Sold"}
<span class="text-[#FF2F1F]">Sold</span> <span class="text-[#FF2F1F]">Sold</span>
{:else if item?.type === "Exchange"} {:else if item?.type === "Exchange"}

View File

@ -411,7 +411,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
optionList?.slice(0, 3)?.length && optionList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -424,7 +424,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null} {#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000 >+{item?.changesPercentage >= 1000
? abbreviateNumberWithColor( ? abbreviateNumberWithColor(
item?.changesPercentage, item?.changesPercentage,
@ -552,7 +552,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changeOI >= 0} {#if item?.changeOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0} {:else if item?.changeOI < 0}
@ -566,7 +566,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentageOI >= 0} {#if item?.changesPercentageOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentageOI >= 1000 >+{item?.changesPercentageOI >= 1000
? abbreviateNumberWithColor( ? abbreviateNumberWithColor(
item?.changesPercentageOI, item?.changesPercentageOI,

View File

@ -143,8 +143,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Heatmap</li> <li class="text-muted dark:text-gray-300">Heatmap</li>
</ul> </ul>
</div> </div>

View File

@ -87,8 +87,8 @@
<body class="w-full overflow-hidden m-auto"> <body class="w-full overflow-hidden m-auto">
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Hedge Funds</li> <li class="text-muted dark:text-gray-300">Hedge Funds</li>
</ul> </ul>
</div> </div>
@ -98,22 +98,22 @@
class="relative flex justify-center items-center overflow-hidden w-full" class="relative flex justify-center items-center overflow-hidden w-full"
> >
<main class="w-full"> <main class="w-full">
<h1 class="mb-3 text-white text-2xl sm:text-3xl font-bold"> <h1 class="mb-3 text-2xl sm:text-3xl font-bold">
All US Hedge Funds All US Hedge Funds
</h1> </h1>
<div class="w-full pb-3"> <div class="w-full pb-3">
<div class="relative right-0 bg-default"> <div class="relative right-0">
<ul <ul
class="relative grid grid-cols-1 sm:grid-cols-4 gap-y-3 gap-x-3 flex flex-wrap p-1 list-none rounded-[3px]" class="relative grid grid-cols-1 sm:grid-cols-4 gap-y-3 gap-x-3 flex flex-wrap p-1 list-none rounded-[3px]"
> >
<li <li
class="pl-3 py-1.5 flex-auto text-center bg-[#2E3238] rounded-[3px]" class="pl-3 py-1.5 flex-auto text-center shadow-sm bg-gray-100 dark:bg-[#2E3238] rounded-[3px]"
> >
<label class="flex flex-row items-center"> <label class="flex flex-row items-center">
<input <input
id="modal-search" id="modal-search"
type="search" type="search"
class="text-white ml-2 text-[1rem] placeholder-gray-400 border-transparent focus:border-transparent focus:ring-0 flex items-center justify-center w-full px-0 py-1 bg-inherit" class=" ml-2 text-[1rem] dark:placeholder-gray-400 bg-inherit border-transparent focus:border-transparent focus:ring-0 flex items-center justify-center w-full px-0 py-1"
placeholder="Find by name" placeholder="Find by name"
bind:value={filterQuery} bind:value={filterQuery}
on:input={handleInput} on:input={handleInput}
@ -124,7 +124,7 @@
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24" viewBox="0 0 24 24"
><path ><path
fill="#fff" fill="currentColor"
d="m19.485 20.154l-6.262-6.262q-.75.639-1.725.989t-1.96.35q-2.402 0-4.066-1.663T3.808 9.503T5.47 5.436t4.064-1.667t4.068 1.664T15.268 9.5q0 1.042-.369 2.017t-.97 1.668l6.262 6.261zM9.539 14.23q1.99 0 3.36-1.37t1.37-3.361t-1.37-3.36t-3.36-1.37t-3.361 1.37t-1.37 3.36t1.37 3.36t3.36 1.37" d="m19.485 20.154l-6.262-6.262q-.75.639-1.725.989t-1.96.35q-2.402 0-4.066-1.663T3.808 9.503T5.47 5.436t4.064-1.667t4.068 1.664T15.268 9.5q0 1.042-.369 2.017t-.97 1.668l6.262 6.261zM9.539 14.23q1.99 0 3.36-1.37t1.37-3.361t-1.37-3.36t-3.36-1.37t-3.361 1.37t-1.37 3.36t1.37 3.36t3.36 1.37"
/></svg /></svg
> >
@ -141,7 +141,7 @@
{#each displayList as item} {#each displayList as item}
<a <a
href={`/hedge-funds/${item?.cik}`} href={`/hedge-funds/${item?.cik}`}
class="w-full cursor-pointer bg-[#141417] sm:hover:bg-[#000] transition-colors ease-in-out border sm:hover:border-[#000] sm:hover:shadow-[#8C5F1B] border-gray-800 shadow-md rounded-md h-auto pb-4 pt-4 mb-7" class="w-full cursor-pointer bg-gray-300 dark:bg-[#141417] sm:hover:bg-gray-400 dark:sm:hover:bg-[#000] transition-colors ease-in-out border dark:sm:hover:border-[#000] sm:hover:shadow-[#8C5F1B] border-gray-300 dark:border-gray-800 shadow-md rounded-md h-auto pb-4 pt-4 mb-7"
> >
<div class="flex flex-col relative"> <div class="flex flex-col relative">
<img <img
@ -152,7 +152,7 @@
class="flex flex-col justify-center items-center rounded-2xl" class="flex flex-col justify-center items-center rounded-2xl"
> >
<div <div
class="-mt-3 shadow-lg rounded-full border border-slate-600 w-20 h-20 relative hedge-fund-striped bg-[#20202E] flex items-center justify-center" class="-mt-3 shadow-lg rounded-full border border-slate-300 dark:border-slate-600 w-20 h-20 relative hedge-fund-striped bg-[#20202E] flex items-center justify-center"
> >
<img <img
style="clip-path: circle(50%);" style="clip-path: circle(50%);"
@ -162,11 +162,11 @@
/> />
</div> </div>
<span <span
class="text-white text-md font-semibold mt-2 mb-2 w-64 text-center" class=" text-md font-semibold mt-2 mb-2 w-64 text-center"
> >
{formatString(item?.name)} {formatString(item?.name)}
</span> </span>
<span class="text-white text-md mb-8"> <span class=" text-md mb-8">
AUM: {abbreviateNumber(item?.marketValue)} AUM: {abbreviateNumber(item?.marketValue)}
</span> </span>
</div> </div>
@ -178,21 +178,20 @@
<label <label
class="cursor-pointer flex flex-col items-start" class="cursor-pointer flex flex-col items-start"
> >
<span class="text-white text-[1rem] font-semibold"> <span class=" text-[1rem] font-semibold">
{new Intl.NumberFormat("en", { {new Intl.NumberFormat("en", {
minimumFractionDigits: 0, minimumFractionDigits: 0,
maximumFractionDigits: 0, maximumFractionDigits: 0,
}).format(item?.numberOfStocks)} }).format(item?.numberOfStocks)}
</span> </span>
<span class="text-white text-sm"># of Holdings</span <span class=" text-sm"># of Holdings</span>
>
</label> </label>
<div class="flex flex-col items-end"> <div class="flex flex-col items-end">
<span class="text-white text-[1rem] font-semibold"> <span class=" text-[1rem] font-semibold">
{item?.turnover?.toFixed(2)} {item?.turnover?.toFixed(2)}
</span> </span>
<span class="text-white text-sm">Turnover</span> <span class=" text-sm">Turnover</span>
</div> </div>
</div> </div>
@ -206,7 +205,7 @@
class="flex flex-row mt-1 text-[1rem] font-semibold" class="flex flex-row mt-1 text-[1rem] font-semibold"
> >
{#if item?.performancePercentage3Year >= 0} {#if item?.performancePercentage3Year >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber( >+{abbreviateNumber(
item?.performancePercentage3Year?.toFixed( item?.performancePercentage3Year?.toFixed(
2, 2,
@ -223,9 +222,7 @@
</span> </span>
{/if} {/if}
</div> </div>
<span class="text-white text-sm" <span class=" text-sm">3-Year Performance</span>
>3-Year Performance</span
>
</label> </label>
<div class="flex flex-col items-end"> <div class="flex flex-col items-end">
@ -233,7 +230,7 @@
class="flex flex-row mt-1 text-[1rem] font-semibold" class="flex flex-row mt-1 text-[1rem] font-semibold"
> >
{#if item?.winRate >= 0} {#if item?.winRate >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber( >+{abbreviateNumber(
item?.winRate?.toFixed(2), item?.winRate?.toFixed(2),
)}%</span )}%</span
@ -246,7 +243,7 @@
</span> </span>
{/if} {/if}
</div> </div>
<span class="text-white text-sm">Win Rate</span> <span class=" text-sm">Win Rate</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -54,10 +54,18 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li>
<li><a href="/hedge-funds" class="text-gray-300">Hedge Fund</a></li> <a href="/" class="text-muted dark:text-gray-300">Home</a>
</li>
<li>
<a href="/hedge-funds" class="text-muted dark:text-gray-300"
>Hedge Fund</a
>
</li>
<li class="text-gray-300">{formatString(companyName)}</li> <li class="text-muted dark:text-gray-300">
{formatString(companyName)}
</li>
</ul> </ul>
</div> </div>
@ -84,51 +92,59 @@
</div> </div>
<div class="mt-0 pt-0.5 text-left"> <div class="mt-0 pt-0.5 text-left">
<h1 class="mb-0 text-2xl font-bold text-white"> <h1 class="mb-0 text-2xl font-bold">
{formatString(companyName)} {formatString(companyName)}
</h1> </h1>
<p class="mb-0.5 text-sm font-semibold text-gray-300"> <p
class="mb-0.5 text-sm font-semibold text-muted dark:text-gray-300"
>
CIK Number: {data?.getHedgeFundsData?.cik} CIK Number: {data?.getHedgeFundsData?.cik}
</p> </p>
</div> </div>
</div> </div>
<div <div
class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-600 py-2 text-center md:grid-cols-5 md:p-0 lg:mt-0 lg:border-none" class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-300 dark:border-gray-600 py-2 text-center md:grid-cols-5 md:p-0 lg:mt-0 lg:border-none"
> >
<div class="flex flex-col px-4 py-2 bp:px-6 md:py-6"> <div class="flex flex-col px-4 py-2 bp:px-6 md:py-6">
<div class="text-2xl font-bold tracking-tight text-white"> <div class="text-2xl font-bold tracking-tight">
{abbreviateNumber(hedgeFundStats?.marketValue)} {abbreviateNumber(hedgeFundStats?.marketValue)}
</div> </div>
<div class="text-sm font-semibold leading-6 text-gray-300"> <div
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
>
Market Value Market Value
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-semibold tracking-tight text-white"> <div class="text-2xl font-semibold tracking-tight">
{data?.getHedgeFundsData?.holdings?.length?.toLocaleString( {data?.getHedgeFundsData?.holdings?.length?.toLocaleString(
"en-US", "en-US",
)} )}
</div> </div>
<div class="text-sm font-semibold leading-6 text-gray-300"> <div
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
>
# of Holdings # of Holdings
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-bold tracking-tight text-white"> <div class="text-2xl font-bold tracking-tight">
{hedgeFundStats?.averageHoldingPeriod} months {hedgeFundStats?.averageHoldingPeriod} months
</div> </div>
<div class="text-sm font-semibold leading-6 text-gray-300"> <div
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
>
Avg. Holding Period Avg. Holding Period
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-bold tracking-tight"> <div class="text-2xl font-bold tracking-tight">
<span <span
@ -138,14 +154,16 @@
>{hedgeFundStats?.winRate?.toFixed(2)}%</span >{hedgeFundStats?.winRate?.toFixed(2)}%</span
> >
</div> </div>
<div class="text-sm font-semibold leading-6 text-gray-300"> <div
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
>
Win Rate Win Rate
</div> </div>
</div> </div>
<div <div
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6" class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
> >
<div class="text-2xl font-bold tracking-tight text-white"> <div class="text-2xl font-bold tracking-tight">
<span <span
class={hedgeFundStats?.performancePercentage3Year >= 0 class={hedgeFundStats?.performancePercentage3Year >= 0
? "before:content-['+'] text-[#36D984]" ? "before:content-['+'] text-[#36D984]"
@ -155,16 +173,18 @@
)}%</span )}%</span
> >
</div> </div>
<div class="text-sm font-semibold leading-6 text-gray-300"> <div
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
>
Peformance 3-Years Peformance 3-Years
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="mb-10 mt-10 text-white"> <div class="mb-10 mt-10">
<div <div
class="relative my-3 space-y-2 rounded border border-gray-600 sm:my-6 p-4" class="relative my-3 space-y-2 rounded border border-gray-300 dark:border-gray-600 sm:my-6 p-4"
> >
<div class="flex flex-col sm:flex-row"> <div class="flex flex-col sm:flex-row">
<div class="mb-2 font-semibold sm:mb-0">Main Sectors:</div> <div class="mb-2 font-semibold sm:mb-0">Main Sectors:</div>
@ -174,7 +194,7 @@
href={sectorNavigation?.find( href={sectorNavigation?.find(
(listItem) => listItem?.title === item, (listItem) => listItem?.title === item,
)?.link} )?.link}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0" class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
> >
{item} {item}
</a> </a>
@ -189,7 +209,7 @@
{#each data?.getHedgeFundsData?.mainIndustries as item} {#each data?.getHedgeFundsData?.mainIndustries as item}
<a <a
href={`/list/industry/${item?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`} href={`/list/industry/${item?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0" class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
> >
{item} {item}
</a> </a>
@ -199,7 +219,7 @@
</div> </div>
</div> </div>
<div class="w-full m-auto mt-10"> <div class="w-full m-auto mt-4">
<Table <Table
{data} {data}
rawData={["Pro", "Plus"]?.includes(data?.user?.tier) rawData={["Pro", "Plus"]?.includes(data?.user?.tier)

View File

@ -756,7 +756,7 @@
> >
<span <span
class={displayLegend?.change >= 0 class={displayLegend?.change >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"} : "text-[#FF2F1F]"}
> >
{displayLegend?.change} {displayLegend?.change}
@ -798,9 +798,9 @@
{prePostData?.price?.toFixed(2)} {prePostData?.price?.toFixed(2)}
</div> </div>
<div <div
class="mt-1.5 block text-sm xs:text-base sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >= class="mt-1.5 block text-sm xs: sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >=
0 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"
> >
{prePostData?.changesPercentage?.toFixed( {prePostData?.changesPercentage?.toFixed(

View File

@ -747,7 +747,7 @@
> >
<span <span
class={displayLegend?.graphChange >= 0 class={displayLegend?.graphChange >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"} : "text-[#FF2F1F]"}
> >
{displayLegend?.graphChange ?? {displayLegend?.graphChange ??

View File

@ -419,7 +419,7 @@
<tbody> <tbody>
{#each ["Pro"]?.includes(data?.user?.tier) ? optionList : optionList?.slice(0, 3) as item, index} {#each ["Pro"]?.includes(data?.user?.tier) ? optionList : optionList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
optionList?.slice(0, 3)?.length && optionList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -432,7 +432,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null} {#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000 >+{item?.changesPercentage >= 1000
? abbreviateNumberWithColor( ? abbreviateNumberWithColor(
item?.changesPercentage, item?.changesPercentage,
@ -560,7 +560,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changeOI >= 0} {#if item?.changeOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0} {:else if item?.changeOI < 0}
@ -574,7 +574,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentageOI >= 0} {#if item?.changesPercentageOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentageOI >= 1000 >+{item?.changesPercentageOI >= 1000
? abbreviateNumberWithColor( ? abbreviateNumberWithColor(
item?.changesPercentageOI, item?.changesPercentageOI,

View File

@ -37,8 +37,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li><span class="text-gray-300">Industry</span></li> <li><span class="text-muted dark:text-gray-300">Industry</span></li>
</ul> </ul>
</div> </div>

View File

@ -112,7 +112,7 @@
{#each displayList as item} {#each displayList as item}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
> >
<td class=" text-sm sm:text-[1rem] whitespace-nowrap"> <td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a <a
@ -151,7 +151,7 @@
<td <td
class=" {item?.profitMargin >= 0 class=" {item?.profitMargin >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end" : 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
> >
{abbreviateNumber(item?.profitMargin)}% {abbreviateNumber(item?.profitMargin)}%

View File

@ -111,7 +111,7 @@
{#each displayList as item} {#each displayList as item}
<!-- row --> <!-- row -->
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
> >
<td class=" text-sm sm:text-[1rem] whitespace-nowrap"> <td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a <a
@ -152,7 +152,7 @@
<td <td
class=" {item?.profitMargin >= 0 class=" {item?.profitMargin >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end" : 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
> >
{abbreviateNumber(item?.profitMargin)}% {abbreviateNumber(item?.profitMargin)}%

View File

@ -6,6 +6,8 @@
import TableHeader from "$lib/components/Table/TableHeader.svelte"; import TableHeader from "$lib/components/Table/TableHeader.svelte";
import HoverStockChart from "$lib/components/HoverStockChart.svelte"; import HoverStockChart from "$lib/components/HoverStockChart.svelte";
import RatingsChart from "$lib/components/RatingsChart.svelte"; import RatingsChart from "$lib/components/RatingsChart.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import SEO from "$lib/components/SEO.svelte"; import SEO from "$lib/components/SEO.svelte";
export let data; export let data;
@ -169,8 +171,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Insider Tracker</li> <li class="text-muted dark:text-gray-300">Insider Tracker</li>
</ul> </ul>
</div> </div>
@ -181,46 +183,22 @@
> >
<main class="w-full"> <main class="w-full">
<div class="mb-6 border-b-[2px]"> <div class="mb-6 border-b-[2px]">
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold"> <h1 class="mb-1 text-2xl sm:text-3xl font-bold">Insider Tracker</h1>
Insider Tracker
</h1>
</div> </div>
{#if isLoaded} {#if isLoaded}
<div class="mt-8 sm:px-0"> <Infobox
<div text="We update our data in real time to bring you the latest
class="border-l-4 border-white p-0 sm:p-4 text-white flex flex-row items-center"
>
<svg
class="h-6 w-6 hidden sm:block"
viewBox="0 0 20 20"
fill="currentColor"
style="max-width:40px"
aria-hidden="true"
><path
fill-rule="evenodd"
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
clip-rule="evenodd"
></path></svg
>
<div class="ml-3 w-full">
<div class="flex w-full flex-row justify-between">
<div>
We update our data in real time to bring you the latest
insights on unusual insider trading, sourced from SEC insights on unusual insider trading, sourced from SEC
filings with a minimum transaction value of $100,000. filings with a minimum transaction value of $100,000."
</div> />
</div>
</div>
</div>
</div>
<div class="w-full m-auto mt-20 sm:mt-10"> <div class="w-full m-auto mt-20 sm:mt-10">
<div <div
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden" class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden"
> >
<table <table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto" class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
> >
<thead> <thead>
<TableHeader {columns} {sortOrders} {sortData} /> <TableHeader {columns} {sortOrders} {sortData} />
@ -228,7 +206,7 @@
<tbody> <tbody>
{#each stockList as item, index} {#each stockList as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-odd{index +
1 === 1 ===
stockList?.length && stockList?.length &&
!['Pro', 'Plus']?.includes(data?.user?.tier) !['Pro', 'Plus']?.includes(data?.user?.tier)
@ -245,7 +223,7 @@
? 'rotate-180' ? 'rotate-180'
: ''}" : ''}"
viewBox="0 0 20 20" viewBox="0 0 20 20"
fill="white" fill="currentColor"
style="max-width:40px" style="max-width:40px"
><path ><path
fill-rule="evenodd" fill-rule="evenodd"
@ -260,7 +238,7 @@
<HoverStockChart symbol={item?.symbol} /> <HoverStockChart symbol={item?.symbol} />
</td> </td>
<td <td
class="whitespace-nowrap text-white text-sm sm:text-[1rem] text-white text-start" class="whitespace-nowrap text-sm sm:text-[1rem] text-start"
> >
{item?.name?.length > charNumber {item?.name?.length > charNumber
? item?.name?.slice(0, charNumber) + "..." ? item?.name?.slice(0, charNumber) + "..."
@ -268,7 +246,7 @@
</td> </td>
<td <td
class="whitespace-nowrap text-white text-sm sm:text-[1rem] text-white text-start" class="whitespace-nowrap text-sm sm:text-[1rem] text-start"
> >
{item?.reportingName?.length > charNumber {item?.reportingName?.length > charNumber
? item?.reportingName?.slice(0, charNumber) + "..." ? item?.reportingName?.slice(0, charNumber) + "..."
@ -276,13 +254,13 @@
</td> </td>
<td <td
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{abbreviateNumber(item?.marketCap)} {abbreviateNumber(item?.marketCap)}
</td> </td>
<td <td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{item?.price} {item?.price}
</td> </td>
@ -290,7 +268,7 @@
<td <td
class="text-sm sm:text-[1rem] whitespace-nowrap text-end {item?.changesPercentage >= class="text-sm sm:text-[1rem] whitespace-nowrap text-end {item?.changesPercentage >=
0 0
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: 'text-[#FF2F1F]'}" : 'text-[#FF2F1F]'}"
> >
{item?.changesPercentage > 0 {item?.changesPercentage > 0
@ -299,7 +277,7 @@
</td> </td>
<td <td
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap" class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
> >
{abbreviateNumber(item?.totalShares)} {abbreviateNumber(item?.totalShares)}
</td> </td>
@ -307,7 +285,7 @@
<td <td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap {item?.transactionType === class="text-end text-sm sm:text-[1rem] whitespace-nowrap {item?.transactionType ===
'Buy' 'Buy'
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: item?.transactionType === 'Sell' : item?.transactionType === 'Sell'
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-[#E57C34]'}" : 'text-[#E57C34]'}"
@ -325,7 +303,7 @@
</td> </td>
</tr> </tr>
{#if checkedSymbol === item?.symbol} {#if checkedSymbol === item?.symbol}
<tr class="bg-default" <tr class=""
><td colspan="9" class="px-0" style="" ><td colspan="9" class="px-0" style=""
><div class="-mt-0.5 px-0 pb-2"> ><div class="-mt-0.5 px-0 pb-2">
<div class="relative h-[400px]"> <div class="relative h-[400px]">

View File

@ -56,8 +56,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">IPO Data</li> <li class="text-muted dark:text-gray-300">IPO Data</li>
</ul> </ul>
</div> </div>

View File

@ -69,7 +69,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{item?.timestamp} {item?.timestamp}
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.link} href={item?.link}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -91,7 +91,7 @@
<tbody> <tbody>
{#each ipoList as item} {#each ipoList as item}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b-[#09090B]"
> >
<td <td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-start border-b-[#09090B] whitespace-nowrap" class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-start border-b-[#09090B] whitespace-nowrap"
@ -109,7 +109,7 @@
> >
<a <a
href={"/stocks/" + item?.symbol} href={"/stocks/" + item?.symbol}
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
> >
{item?.symbol} {item?.symbol}
</a> </a>
@ -188,7 +188,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{item?.timestamp} {item?.timestamp}
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.link} href={item?.link}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -194,7 +194,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} ago - {formatDate(item?.publishedDate)} ago -
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.url} href={item?.url}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -84,7 +84,7 @@
<h4 class="text-xl font-semibold sm:text-2xl sm:font-bold"> <h4 class="text-xl font-semibold sm:text-2xl sm:font-bold">
Stay informed in just 2 minutes Stay informed in just 2 minutes
</h4> </h4>
<p class="text-base text-white lg:text-lg"> <p class=" text-white lg:text-lg">
Get a daily email with the top market-moving news in bullet Get a daily email with the top market-moving news in bullet
point format, for Pro Members only. point format, for Pro Members only.
</p> </p>
@ -105,7 +105,7 @@
> >
<div class="space-y-3 p-6"> <div class="space-y-3 p-6">
<h4 class="text-xl font-semibold">Watchlist</h4> <h4 class="text-xl font-semibold">Watchlist</h4>
<p class="text-base text-white lg:text-lg"> <p class=" text-white lg:text-lg">
Build your watchlist to keep track of their performance Build your watchlist to keep track of their performance
</p> </p>
</div> </div>
@ -116,7 +116,7 @@
> >
<div class="space-y-3 p-6"> <div class="space-y-3 p-6">
<h4 class="text-xl font-semibold">Top Stocks</h4> <h4 class="text-xl font-semibold">Top Stocks</h4>
<p class="text-base text-white lg:text-lg"> <p class=" text-white lg:text-lg">
Get the latest Top Wall Street Analyst Ratings Get the latest Top Wall Street Analyst Ratings
</p> </p>
</div> </div>

View File

@ -263,7 +263,7 @@
Category of Stocks Ranked by Market Cap Category of Stocks Ranked by Market Cap
</h2> </h2>
<ul <ul
class="list-outside list-disc space-y-1 p-1 pl-6 text-base md:columns-2 md:gap-x-8 md:text-lg" class="list-outside list-disc space-y-1 p-1 pl-6 md:columns-2 md:gap-x-8 md:text-lg"
> >
<li> <li>
<a <a

View File

@ -39,8 +39,8 @@
<!-- <!--
<div class="text-sm breadcrumbs ml-4"> <div class="text-sm breadcrumbs ml-4">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Markdown Guide</li> <li class="text-muted dark:text-gray-300">Markdown Guide</li>
</ul> </ul>
</div> </div>
--> -->

View File

@ -838,8 +838,8 @@
<!-- <!--
<div class="text-sm sm:text-[1rem] breadcrumbs mb-5"> <div class="text-sm sm:text-[1rem] breadcrumbs mb-5">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Options Flow</li> <li class="text-muted dark:text-gray-300">Options Flow</li>
</ul> </ul>
</div> </div>
--> -->
@ -1045,7 +1045,7 @@
> >
<label <label
for="ruleModal" for="ruleModal"
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-gray-300 dark:border-none py-2 pl-3 pr-4 text-base font-semibold shadow-sm bg-white sm:hover:bg-gray-100 dark:bg-[#000] dark:sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500" class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-gray-300 dark:border-none py-2 pl-3 pr-4 font-semibold shadow-sm bg-white sm:hover:bg-gray-100 dark:bg-[#000] dark:sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500"
> >
<svg <svg
class="h-5 w-5" class="h-5 w-5"
@ -1066,7 +1066,7 @@
{#if ruleOfList?.length !== 0} {#if ruleOfList?.length !== 0}
<label <label
on:click={handleResetAll} on:click={handleResetAll}
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500" class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500"
> >
<svg <svg
class="h-4 w-4" class="h-4 w-4"

View File

@ -152,8 +152,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Politicians</li> <li class="text-muted dark:text-gray-300">Politicians</li>
</ul> </ul>
</div> </div>

View File

@ -113,12 +113,13 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li> <li>
<a href="/politicians" class="text-gray-300">Congress</a> <a href="/politicians" class="text-muted dark:text-gray-300">Congress</a
>
</li> </li>
<li class="text-gray-300">{name}</li> <li class="text-muted dark:text-gray-300">{name}</li>
</ul> </ul>
</div> </div>
@ -318,7 +319,7 @@
<tbody class="p-0"> <tbody class="p-0">
{#each tableData as item} {#each tableData as item}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#27272A] text-white" class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b-[#27272A] text-white"
> >
<td class="hidden lg:table-cell" <td class="hidden lg:table-cell"
><button ><button
@ -363,7 +364,9 @@
> >
<span class=""> <span class="">
{#if item?.type === "Bought"} {#if item?.type === "Bought"}
<span class="text-[#00FC50]">{item?.type}</span> <span class="text-green-600 dark:text-[#00FC50]"
>{item?.type}</span
>
{:else if item?.type === "Sold"} {:else if item?.type === "Sold"}
<span class="text-[#FF2F1F]">{item?.type}</span> <span class="text-[#FF2F1F]">{item?.type}</span>
{:else if item?.type === "Exchange"} {:else if item?.type === "Exchange"}

View File

@ -71,8 +71,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Congress Flow</li> <li class="text-muted dark:text-gray-300">Congress Flow</li>
</ul> </ul>
</div> </div>
@ -169,7 +169,7 @@
<div class="flex flex-col ml-3 font-normal"> <div class="flex flex-col ml-3 font-normal">
<a <a
href={`/politicians/${item?.id}`} href={`/politicians/${item?.id}`}
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
>{getAbbreviatedName( >{getAbbreviatedName(
item?.representative?.replace( item?.representative?.replace(
"_", "_",
@ -235,7 +235,10 @@
class="text-sm sm:text-[1rem] text-end text-white" class="text-sm sm:text-[1rem] text-end text-white"
> >
{#if item?.type === "Bought"} {#if item?.type === "Bought"}
<span class="text-[#00FC50]">Bought</span> <span
class="text-green-600 dark:text-[#00FC50]"
>Bought</span
>
{:else if item?.type === "Sold"} {:else if item?.type === "Sold"}
<span class="text-[#FF2F1F]">Sold</span> <span class="text-[#FF2F1F]">Sold</span>
{/if} {/if}

View File

@ -200,9 +200,7 @@
<h1 class="mb-1 text-2xl sm:text-3xl font-bold">My Account</h1> <h1 class="mb-1 text-2xl sm:text-3xl font-bold">My Account</h1>
</div> </div>
<div <div class="rounded border border-gray-600 p-4 xs:p-4 xs:text-lg">
class="rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg"
>
<h2 class=" text-2xl font-semibold mb-3">User Information</h2> <h2 class=" text-2xl font-semibold mb-3">User Information</h2>
<div class="mt-1"> <div class="mt-1">
<strong>Email:</strong> <strong>Email:</strong>
@ -224,7 +222,7 @@
</div> </div>
<div <div
class="mt-6 rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg" class="mt-6 rounded border border-gray-600 p-4 xs:p-4 xs:text-lg"
> >
<h2 class=" text-2xl font-semibold mb-3">Notification</h2> <h2 class=" text-2xl font-semibold mb-3">Notification</h2>
Customize your notification alerts based on your preferences. Customize your notification alerts based on your preferences.
@ -380,7 +378,7 @@
</div> </div>
<div <div
class="mt-6 rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg" class="mt-6 rounded border border-gray-600 p-4 xs:p-4 xs:text-lg"
> >
<h2 class=" text-2xl font-semibold mb-3">Manage Subscription</h2> <h2 class=" text-2xl font-semibold mb-3">Manage Subscription</h2>
<div class="flex flex-row items-center"> <div class="flex flex-row items-center">
@ -487,7 +485,7 @@
</div> </div>
<div <div
class="mt-6 rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg" class="mt-6 rounded border border-gray-600 p-4 xs:p-4 xs:text-lg"
> >
<h2 class=" text-2xl font-semibold mb-3">Need help?</h2> <h2 class=" text-2xl font-semibold mb-3">Need help?</h2>
<div class="mt-1"> <div class="mt-1">

View File

@ -67,8 +67,8 @@
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-gray-300">Sentiment Tracker</li> <li class="text-muted dark:text-gray-300">Sentiment Tracker</li>
</ul> </ul>
</div> </div>

View File

@ -2538,8 +2538,8 @@ const handleKeyDown = (event) => {
> >
<div class="text-sm sm:text-[1rem] breadcrumbs"> <div class="text-sm sm:text-[1rem] breadcrumbs">
<ul> <ul>
<li><a href="/" class="text-gray-300">Home</a></li> <li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li><span class="text-gray-300">Stock Screener</span></li> <li><span class="text-muted dark:text-gray-300">Stock Screener</span></li>
</ul> </ul>
</div> </div>
@ -2683,7 +2683,7 @@ const handleKeyDown = (event) => {
<Button <Button
on:click={handleCreateStrategy} on:click={handleCreateStrategy}
builders={[builder]} builders={[builder]}
class="p-0 -mb-2 -mt-2 text-sm inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap text-base text-white bg-[#0909B] focus:outline-hidden sm:text-smaller" class="p-0 -mb-2 -mt-2 text-sm inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap text-white bg-[#0909B] focus:outline-hidden sm:text-smaller"
> >
<svg <svg
class="h-4 w-4" class="h-4 w-4"
@ -2752,7 +2752,7 @@ const handleKeyDown = (event) => {
<div class="mt-3 flex flex-col gap-y-2.5 sm:flex-row lg:gap-y-2"> <div class="mt-3 flex flex-col gap-y-2.5 sm:flex-row lg:gap-y-2">
<label <label
for="ruleModal" for="ruleModal"
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller" class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
> >
<svg <svg
class="h-5 w-5" class="h-5 w-5"
@ -2774,7 +2774,7 @@ const handleKeyDown = (event) => {
<label <label
for={!data?.user ? "userLogin" : ""} for={!data?.user ? "userLogin" : ""}
on:click={() => handleSave(true)} on:click={() => handleSave(true)}
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller" class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
> >
<svg <svg
class="h-5 w-5" class="h-5 w-5"
@ -2790,7 +2790,7 @@ const handleKeyDown = (event) => {
<label <label
for="deleteStrategy" for="deleteStrategy"
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out sm:hover:text-red-500 focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller" class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out sm:hover:text-red-500 focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
> >
<svg <svg
class="h-5 w-5" class="h-5 w-5"
@ -2808,7 +2808,7 @@ const handleKeyDown = (event) => {
{#if ruleOfList?.length !== 0} {#if ruleOfList?.length !== 0}
<label <label
on:click={handleResetAll} on:click={handleResetAll}
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller" class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
> >
<svg <svg
class="h-4 w-4" class="h-4 w-4"
@ -3262,7 +3262,7 @@ const handleKeyDown = (event) => {
> >
<nav class="w-full flex flex-row items-center py-2.5 sm:py-3 lg:py-1"> <nav class="w-full flex flex-row items-center py-2.5 sm:py-3 lg:py-1">
<ul <ul
class="flex flex-row overflow-x-auto items-center space-x-2 whitespace-nowrap text-base" class="flex flex-row overflow-x-auto items-center space-x-2 whitespace-nowrap"
> >
<li> <li>
<button <button
@ -3371,7 +3371,7 @@ const handleKeyDown = (event) => {
<td class="text-white text-end text-sm sm:text-[1rem]"> <td class="text-white text-end text-sm sm:text-[1rem]">
{#if item?.changesPercentage >= 0} {#if item?.changesPercentage >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000 >+{item?.changesPercentage >= 1000
? abbreviateNumber(item?.changesPercentage) ? abbreviateNumber(item?.changesPercentage)
: item?.changesPercentage?.toFixed(2)}%</span : item?.changesPercentage?.toFixed(2)}%</span
@ -3478,7 +3478,7 @@ const handleKeyDown = (event) => {
{#if row?.rule === "marketCap"} {#if row?.rule === "marketCap"}
{abbreviateNumber(item[row?.rule])} {abbreviateNumber(item[row?.rule])}
{:else if item[row?.rule] > 0} {:else if item[row?.rule] > 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber( >+{abbreviateNumber(
item[row?.rule]?.toFixed(2), item[row?.rule]?.toFixed(2),
)}%</span )}%</span
@ -3537,7 +3537,7 @@ const handleKeyDown = (event) => {
> >
{:else if row?.rule === "upside"} {:else if row?.rule === "upside"}
{#if item[row?.rule] > 0} {#if item[row?.rule] > 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item[row?.rule]?.toFixed(2)}%</span >+{item[row?.rule]?.toFixed(2)}%</span
> >
{:else if item[row?.rule] < 0} {:else if item[row?.rule] < 0}
@ -3549,7 +3549,9 @@ const handleKeyDown = (event) => {
{/if} {/if}
{:else if ["analystRating", "topAnalystRating"]?.includes(row?.rule)} {:else if ["analystRating", "topAnalystRating"]?.includes(row?.rule)}
{#if ["Strong Buy", "Buy"].includes(item[row?.rule])} {#if ["Strong Buy", "Buy"].includes(item[row?.rule])}
<span class="text-[#00FC50]">{item[row?.rule]}</span> <span class="text-green-600 dark:text-[#00FC50]"
>{item[row?.rule]}</span
>
{:else if ["Strong Sell", "Sell"].includes(item[row?.rule])} {:else if ["Strong Sell", "Sell"].includes(item[row?.rule])}
<span class="text-[#FF2F1F]">{item[row?.rule]}</span> <span class="text-[#FF2F1F]">{item[row?.rule]}</span>
{:else if item[row?.rule] === "Hold"} {:else if item[row?.rule] === "Hold"}

View File

@ -756,7 +756,7 @@
> >
<span <span
class={displayLegend?.graphChange >= 0 class={displayLegend?.graphChange >= 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"} : "text-[#FF2F1F]"}
> >
{displayLegend?.graphChange ?? {displayLegend?.graphChange ??

View File

@ -31,7 +31,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} &#183; {formatDate(item?.publishedDate)} &#183;
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.url} href={item?.url}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -817,7 +817,7 @@
class="hide-scroll mb-1 mt-2 overflow-x-auto px-1.5 text-center md:mb-0 md:px-0 lg:mt-2" class="hide-scroll mb-1 mt-2 overflow-x-auto px-1.5 text-center md:mb-0 md:px-0 lg:mt-2"
> >
<table <table
class="w-full text-right text-tiny text-white xs:text-sm sm:text-base" class="w-full text-right text-tiny text-white xs:text-sm sm:"
> >
<thead <thead
><tr ><tr
@ -842,22 +842,22 @@
><td class="py-[3px] text-left lg:py-0.5">Change</td> ><td class="py-[3px] text-left lg:py-0.5">Change</td>
<td <td
class={lowChange > 0 class={lowChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{lowChange}%</td : "text-[#FF2F1F]"}>{lowChange}%</td
> >
<td <td
class={avgChange > 0 class={avgChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{avgChange}%</td : "text-[#FF2F1F]"}>{avgChange}%</td
> >
<td <td
class={medianChange > 0 class={medianChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{medianChange}%</td : "text-[#FF2F1F]"}>{medianChange}%</td
> >
<td <td
class={highChange > 0 class={highChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{highChange}%</td : "text-[#FF2F1F]"}>{highChange}%</td
></tr ></tr
></tbody ></tbody
@ -1008,9 +1008,7 @@
<div <div
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b lg:border-b-0 border-gray-600" class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b lg:border-b-0 border-gray-600"
> >
<div class="text-base font-normal text-white"> <div class=" font-normal text-white">Revenue This Year</div>
Revenue This Year
</div>
<div <div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0" class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
> >
@ -1080,9 +1078,7 @@
<div <div
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b md:border-l lg:border-b-0" class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b md:border-l lg:border-b-0"
> >
<div class="text-base font-normal text-white"> <div class=" font-normal text-white">Revenue Next Year</div>
Revenue Next Year
</div>
<div <div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0" class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
> >
@ -1148,9 +1144,7 @@
<div <div
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b-0 lg:border-l" class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b-0 lg:border-l"
> >
<div class="text-base font-normal text-white"> <div class=" font-normal text-white">EPS This Year</div>
EPS This Year
</div>
<div <div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0" class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
> >
@ -1201,9 +1195,7 @@
<div <div
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-l border-gray-600" class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-l border-gray-600"
> >
<div class="text-base font-normal text-white"> <div class=" font-normal text-white">EPS Next Year</div>
EPS Next Year
</div>
<div <div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0" class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
> >

View File

@ -362,7 +362,7 @@
class="font-bold {['Strong Buy', 'Buy']?.includes( class="font-bold {['Strong Buy', 'Buy']?.includes(
consensusRating, consensusRating,
) )
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: ['Strong Sell', 'Sell']?.includes(consensusRating) : ['Strong Sell', 'Sell']?.includes(consensusRating)
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-[#fff]'}">{consensusRating}</span : 'text-[#fff]'}">{consensusRating}</span
@ -380,7 +380,7 @@
class="hide-scroll mb-1 mt-2 overflow-x-auto px-1.5 text-center md:mb-0 md:px-0 lg:mt-2" class="hide-scroll mb-1 mt-2 overflow-x-auto px-1.5 text-center md:mb-0 md:px-0 lg:mt-2"
> >
<table <table
class="w-full text-right text-tiny text-white xs:text-sm sm:text-base" class="w-full text-right text-tiny text-white xs:text-sm sm:"
> >
<thead <thead
><tr ><tr
@ -405,22 +405,22 @@
><td class="py-[3px] text-left lg:py-0.5">Change</td> ><td class="py-[3px] text-left lg:py-0.5">Change</td>
<td <td
class={lowChange > 0 class={lowChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{lowChange}%</td : "text-[#FF2F1F]"}>{lowChange}%</td
> >
<td <td
class={avgChange > 0 class={avgChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{avgChange}%</td : "text-[#FF2F1F]"}>{avgChange}%</td
> >
<td <td
class={medianChange > 0 class={medianChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{medianChange}%</td : "text-[#FF2F1F]"}>{medianChange}%</td
> >
<td <td
class={highChange > 0 class={highChange > 0
? "before:content-['+'] text-[#00FC50]" ? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{highChange}%</td : "text-[#FF2F1F]"}>{highChange}%</td
></tr ></tr
></tbody ></tbody

View File

@ -387,7 +387,7 @@
href={item?.analystId !== null href={item?.analystId !== null
? `/analysts/${item?.analystId}` ? `/analysts/${item?.analystId}`
: "#"} : "#"}
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
>{item?.analyst_name} >{item?.analyst_name}
</a> </a>
@ -444,9 +444,9 @@
class=" {['Strong Buy', 'Buy']?.includes( class=" {['Strong Buy', 'Buy']?.includes(
item?.rating_current, item?.rating_current,
) )
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: item?.rating_current === 'Hold' : item?.rating_current === 'Hold'
? 'text-[#FF7070]' ? '"text-red-600 dark:text-[#FF7070]"'
: ['Strong Sell', 'Sell']?.includes( : ['Strong Sell', 'Sell']?.includes(
item?.rating_current, item?.rating_current,
) )
@ -558,9 +558,7 @@
> >
Analyst Star Rankings Analyst Star Rankings
</h3> </h3>
<p <p class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg">
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg"
>
Our analyst star rankings are based on these four factors Our analyst star rankings are based on these four factors
</p> </p>
</div> </div>
@ -570,7 +568,7 @@
> >
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt
class="text-base font-semibold leading-4 text-white md:leading-7" class=" font-semibold leading-4 text-white md:leading-7"
> >
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
@ -591,15 +589,13 @@
</div> </div>
Success Rate Success Rate
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The percentage of ratings that are profitable. The percentage of ratings that are profitable.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt
class="text-base font-semibold leading-4 text-white md:leading-7" class=" font-semibold leading-4 text-white md:leading-7"
> >
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
@ -620,16 +616,14 @@
</div> </div>
Average Return Average Return
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The average percentage return within one year of the The average percentage return within one year of the
rating. rating.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt
class="text-base font-semibold leading-4 text-white md:leading-7" class=" font-semibold leading-4 text-white md:leading-7"
> >
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
@ -650,16 +644,14 @@
</div> </div>
Rating Count Rating Count
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
The more ratings the analyst has provided, the higher the The more ratings the analyst has provided, the higher the
score. score.
</dd> </dd>
</div> </div>
<div class="relative pl-14"> <div class="relative pl-14">
<dt <dt
class="text-base font-semibold leading-4 text-white md:leading-7" class=" font-semibold leading-4 text-white md:leading-7"
> >
<div <div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]" class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
@ -680,9 +672,7 @@
</div> </div>
Recency Recency
</dt> </dt>
<dd <dd class="mt-2 leading-7 text-muted dark:text-faded">
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
Ratings provided within the past year contribute to a Ratings provided within the past year contribute to a
higher score. higher score.
</dd> </dd>

View File

@ -143,7 +143,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} ago - {formatDate(item?.publishedDate)} ago -
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.url} href={item?.url}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -240,7 +240,7 @@
r="16" r="16"
fill="none" fill="none"
class="stroke-current {buySellRatio >= 0.5 class="stroke-current {buySellRatio >= 0.5
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: 'text-[#EE5365]'} " : 'text-[#EE5365]'} "
stroke-width="3" stroke-width="3"
stroke-dasharray="100" stroke-dasharray="100"
@ -366,7 +366,7 @@
<div class="flex flex-col ml-3 font-normal"> <div class="flex flex-col ml-3 font-normal">
<a <a
href={`/politicians/${item?.id}`} href={`/politicians/${item?.id}`}
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
>{getAbbreviatedName( >{getAbbreviatedName(
item?.representative?.replace("_", " "), item?.representative?.replace("_", " "),
)}</a )}</a
@ -405,7 +405,9 @@
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white" class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
> >
{#if item?.type === "Bought"} {#if item?.type === "Bought"}
<span class="text-[#00FC50]">Bought</span> <span class="text-green-600 dark:text-[#00FC50]"
>Bought</span
>
{:else if item?.type === "Sold"} {:else if item?.type === "Sold"}
<span class="text-[#FF2F1F]">Sold</span> <span class="text-[#FF2F1F]">Sold</span>
{:else if item?.type === "Exchange"} {:else if item?.type === "Exchange"}

View File

@ -12,7 +12,6 @@
import { onMount } from "svelte"; import { onMount } from "svelte";
import SEO from "$lib/components/SEO.svelte"; import SEO from "$lib/components/SEO.svelte";
let chats = []; let chats = [];
let date; let date;
@ -78,15 +77,13 @@
}); });
</script> </script>
<SEO
title={`${$displayCompanyName} (${$stockTicker}) Q${quarter} ${year} · Earnings Call Transcript · Stocknear`}
<SEO title={`${$displayCompanyName} (${$stockTicker}) Q${quarter} ${year} · Earnings Call Transcript · Stocknear`}
description={`Get the latest Earnings Call Transcript of ${$displayCompanyName} (${$stockTicker}) for different years and quarters.`} description={`Get the latest Earnings Call Transcript of ${$displayCompanyName} (${$stockTicker}) for different years and quarters.`}
/> />
<section <section
class="w-full bg-default overflow-hidden text-white min-h-screen mb-40 sm:mb-0" class="w-full bg-default overflow-hidden text-white min-h-screen mb-40 sm:mb-0"
> >
<div class="h-full overflow-hidden"> <div class="h-full overflow-hidden">
<div class="relative flex justify-center items-center overflow-hidden"> <div class="relative flex justify-center items-center overflow-hidden">
@ -217,7 +214,7 @@
<div <div
class="flex items-center space-x-2 rtl:space-x-reverse" class="flex items-center space-x-2 rtl:space-x-reverse"
> >
<span class="text-sm text-base"> <span class="text-sm">
{item?.name} {item?.name}
</span> </span>
</div> </div>
@ -247,7 +244,7 @@
<div class="flex flex-col items-start gap-2.5 mt-8"> <div class="flex flex-col items-start gap-2.5 mt-8">
<div class="flex flex-row items-center"> <div class="flex flex-row items-center">
<div <div
class="avatar rounded-full w-8 h-8 sm:w-10 sm:h-10 relative bg-red-600 bg-opacity-[0.6] flex items-center justify-center text-white text-sm sm:text-base" class="avatar rounded-full w-8 h-8 sm:w-10 sm:h-10 relative bg-red-600 bg-opacity-[0.6] flex items-center justify-center text-white text-sm sm:"
> >
<span <span
class="absolute inset-0 flex items-center justify-center" class="absolute inset-0 flex items-center justify-center"
@ -258,7 +255,7 @@
<div <div
class="ml-2 flex items-center space-x-2 rtl:space-x-reverse" class="ml-2 flex items-center space-x-2 rtl:space-x-reverse"
> >
<span class="text-sm text-base"> <span class="text-sm">
{item?.name} {item?.name}
</span> </span>
</div> </div>
@ -281,9 +278,9 @@
Back to top Back to top
</label> </label>
{:else} {:else}
<Infobox <Infobox
text={`No transcript available for ${$displayCompanyName} for the Q${displayQuarter} of ${displayYear}`} text={`No transcript available for ${$displayCompanyName} for the Q${displayQuarter} of ${displayYear}`}
/> />
{/if} {/if}
{:else} {:else}
<div class="flex justify-center items-center h-80"> <div class="flex justify-center items-center h-80">

View File

@ -139,7 +139,7 @@
{#each growthValues[index] as growthValue} {#each growthValues[index] as growthValue}
<td <td
class="text-sm sm:text-[1rem] text-end {growthValue > 0 class="text-sm sm:text-[1rem] text-end {growthValue > 0
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: growthValue < 0 : growthValue < 0
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-white'} border-b border-gray-800" : 'text-white'} border-b border-gray-800"
@ -214,7 +214,7 @@
<td <td
class="text-sm sm:text-[1rem] text-center {growthValue > class="text-sm sm:text-[1rem] text-center {growthValue >
0 0
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: growthValue < 0 : growthValue < 0
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-white'} border-b border-gray-800" : 'text-white'} border-b border-gray-800"
@ -291,7 +291,7 @@
<td <td
class="text-sm sm:text-[1rem] text-center {growthValue > class="text-sm sm:text-[1rem] text-center {growthValue >
0 0
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: growthValue < 0 : growthValue < 0
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-white'} border-b border-gray-800" : 'text-white'} border-b border-gray-800"

View File

@ -276,7 +276,7 @@
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end" class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
> >
{#if item?.valueGrowth > 0} {#if item?.valueGrowth > 0}
<span class="text-[#00FC50]"> <span class="text-green-600 dark:text-[#00FC50]">
+{item?.valueGrowth?.toFixed(2)}% +{item?.valueGrowth?.toFixed(2)}%
</span> </span>
{:else if item?.valueGrowth < 0} {:else if item?.valueGrowth < 0}

View File

@ -411,7 +411,7 @@
<tbody> <tbody>
{#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index} {#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index}
<tr <tr
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index + class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
1 === 1 ===
optionList?.slice(0, 3)?.length && optionList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier) !['Pro']?.includes(data?.user?.tier)
@ -424,7 +424,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null} {#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000 >+{item?.changesPercentage >= 1000
? abbreviateNumberWithColor( ? abbreviateNumberWithColor(
item?.changesPercentage, item?.changesPercentage,
@ -552,7 +552,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changeOI >= 0} {#if item?.changeOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changeOI?.toLocaleString("en-US")}</span >+{item?.changeOI?.toLocaleString("en-US")}</span
> >
{:else if item?.changeOI < 0} {:else if item?.changeOI < 0}
@ -566,7 +566,7 @@
<td class="text-white text-sm sm:text-[1rem] text-end"> <td class="text-white text-sm sm:text-[1rem] text-end">
{#if item?.changesPercentageOI >= 0} {#if item?.changesPercentageOI >= 0}
<span class="text-[#00FC50]" <span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentageOI >= 1000 >+{item?.changesPercentageOI >= 1000
? abbreviateNumberWithColor( ? abbreviateNumberWithColor(
item?.changesPercentageOI, item?.changesPercentageOI,

View File

@ -294,7 +294,7 @@ ${paragraphs.join("\n")}
Key Executives Key Executives
</h2> </h2>
{#if rawData?.executives?.length > 0} {#if rawData?.executives?.length > 0}
<table class="mb-6 w-full text-base xs:mb-8"> <table class="mb-6 w-full xs:mb-8">
<thead class="bg-gray-200 shadow-sm dark:bg-primary" <thead class="bg-gray-200 shadow-sm dark:bg-primary"
><tr class="border-y border-gray-300 dark:border-gray-600" ><tr class="border-y border-gray-300 dark:border-gray-600"
><th ><th

View File

@ -128,7 +128,7 @@
<li class="mb-3 last:mb-1"> <li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} ago - {formatDate(item?.publishedDate)} ago -
<a <a
class="sm:hover:text-white text-blue-400" class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
href={item?.url} href={item?.url}
target="_blank" target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -517,7 +517,7 @@
<div class="mt-5 w-full overflow-x-auto"> <div class="mt-5 w-full overflow-x-auto">
<table <table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto" class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
> >
<thead class="bg-default"> <thead class="bg-default">
<tr> <tr>
@ -581,7 +581,7 @@
{#if index === historyList?.length - 1} {#if index === historyList?.length - 1}
n/a n/a
{:else if item?.employeeCount > historyList[index + 1]?.employeeCount} {:else if item?.employeeCount > historyList[index + 1]?.employeeCount}
<span class="text-[#00FC50]"> <span class="text-green-600 dark:text-[#00FC50]">
+{( +{(
((item?.employeeCount - ((item?.employeeCount -
historyList[index + 1]?.employeeCount) / historyList[index + 1]?.employeeCount) /

View File

@ -921,7 +921,7 @@
Dividends &amp; Yields Dividends &amp; Yields
</h2> </h2>
<p <p
class="mb-4 px-0.5 text-base leading-relaxed xs:text-[1.05rem] lg:leading-normal" class="mb-4 px-0.5 leading-relaxed xs:text-[1.05rem] lg:leading-normal"
> >
{#if rawData?.annualDividend !== null && rawData?.dividendYield !== null} {#if rawData?.annualDividend !== null && rawData?.dividendYield !== null}
{$stockTicker} pays an annual dividend of ${rawData?.annualDividend}, {$stockTicker} pays an annual dividend of ${rawData?.annualDividend},
@ -1011,7 +1011,7 @@
<div> <div>
<h2 class="mb-2 px-0.5 text-xl font-bold">Analyst Forecast</h2> <h2 class="mb-2 px-0.5 text-xl font-bold">Analyst Forecast</h2>
<p <p
class="mb-4 px-0.5 text-base leading-relaxed xs:text-[1.05rem] lg:leading-normal" class="mb-4 px-0.5 leading-relaxed xs:text-[1.05rem] lg:leading-normal"
data-test="statistics-text" data-test="statistics-text"
> >
{#if rawData?.priceTarget && rawData?.upside && rawData?.analystRating} {#if rawData?.priceTarget && rawData?.upside && rawData?.analystRating}
@ -1083,7 +1083,7 @@
<div> <div>
<h2 class="mb-2 px-0.5 text-xl font-bold">Stock Splits</h2> <h2 class="mb-2 px-0.5 text-xl font-bold">Stock Splits</h2>
<p <p
class="mb-4 px-0.5 text-base leading-relaxed xs:text-[1.05rem] lg:leading-normal" class="mb-4 px-0.5 leading-relaxed xs:text-[1.05rem] lg:leading-normal"
data-test="statistics-text" data-test="statistics-text"
> >
The last stock split was on {new Date( The last stock split was on {new Date(

View File

@ -319,7 +319,7 @@
<td <td
class="text-sm sm:text-[1rem] {item?.put_call === class="text-sm sm:text-[1rem] {item?.put_call ===
'Calls' 'Calls'
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: 'text-[#FF2F1F]'} text-start" : 'text-[#FF2F1F]'} text-start"
> >
{item?.put_call} {item?.put_call}
@ -328,7 +328,7 @@
<td <td
class="text-sm sm:text-[1rem] {item?.sentiment === class="text-sm sm:text-[1rem] {item?.sentiment ===
'Bullish' 'Bullish'
? 'text-[#00FC50]' ? 'text-green-600 dark:text-[#00FC50]'
: item?.sentiment === 'Bearish' : item?.sentiment === 'Bearish'
? 'text-[#FF2F1F]' ? 'text-[#FF2F1F]'
: 'text-[#C6A755]'} text-start" : 'text-[#C6A755]'} text-start"

View File

@ -1608,7 +1608,8 @@
: "n/a"} : "n/a"}
{:else if row?.type === "percentSign"} {:else if row?.type === "percentSign"}
{#if item[row?.rule] >= 0} {#if item[row?.rule] >= 0}
<span class="text-[#00FC50]" <span
class="text-green-600 dark:text-[#00FC50]"
>+{item[row?.rule]?.toFixed(2)}%</span >+{item[row?.rule]?.toFixed(2)}%</span
> >
{:else} {:else}
@ -1618,7 +1619,8 @@
{/if} {/if}
{:else if row?.type === "rating"} {:else if row?.type === "rating"}
{#if ["Strong Buy", "Buy"].includes(item[row?.rule])} {#if ["Strong Buy", "Buy"].includes(item[row?.rule])}
<span class="text-[#00FC50]" <span
class="text-green-600 dark:text-[#00FC50]"
>{item[row?.rule]}</span >{item[row?.rule]}</span
> >
{:else if ["Strong Sell", "Sell"].includes(item[row?.rule])} {:else if ["Strong Sell", "Sell"].includes(item[row?.rule])}