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}
<a class="block relative" href="/pricing">
<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
</span>

View File

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

View File

@ -357,7 +357,7 @@
{#each tableList as item, index}
<!-- row -->
<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">
{new Date(item?.date)?.toLocaleDateString("en-US", {
@ -385,7 +385,7 @@
{#if index === tableList?.length - 1}
n/a
{:else if item?.shortVolume > tableList[index + 1]?.shortVolume}
<span class="text-[#00FC50]">
<span class="text-green-600 dark:text-[#00FC50]">
+{(
((item?.shortVolume -
tableList[index + 1]?.shortVolume) /

View File

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

View File

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

View File

@ -99,7 +99,7 @@
{#each displayList as item}
<!-- row -->
<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">
<a
@ -138,7 +138,7 @@
<td
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"
>
{abbreviateNumber(item?.profitMargin)}%
@ -146,7 +146,7 @@
<td
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"
>
{item?.avgChange1D?.toFixed(2) ?? "n/a"}%

View File

@ -343,7 +343,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<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 ===
displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier)
@ -388,7 +388,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{#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
>
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -319,7 +319,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<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 ===
displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier)
@ -364,7 +364,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{#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
>
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -436,7 +436,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<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 ===
displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier)
@ -481,7 +481,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{#if item?.putCallRatio <= 1 && item?.putCallRatio !== null}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>{item?.putCallRatio?.toFixed(2)}</span
>
{:else if item?.putCallRatio >= 0 && item?.putCallRatio !== null}

View File

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

View File

@ -301,7 +301,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<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 ===
displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier)
@ -340,7 +340,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{#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
>
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}

View File

@ -274,7 +274,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<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 ===
displayList?.slice(0, 3)?.length &&
!['Pro']?.includes(data?.user?.tier)
@ -309,7 +309,7 @@
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{#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
>
{: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">
<span>Net Call Prem</span>
<span class="ml-1 text-green-500"></span>
<span class="ml-1 text-green-600"></span>
</div>
<div class="flex items-baseline">
<span class="text-xl font-bold text-white"

View File

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

View File

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

View File

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

View File

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

View File

@ -1,7 +1,8 @@
<script lang="ts">
import { setCache, getCache } from "$lib/store";
import { monthNames } from "$lib/utils";
import highcharts from "$lib/highcharts.ts";
import { abbreviateNumber } from "$lib/utils";
import { mode } from "mode-watcher";
export let data;
export let symbol;
@ -140,13 +141,13 @@
radius: 6,
fillColor: markerColor,
lineWidth: 2,
lineColor: "#FFFFFF",
lineColor: $mode === "light" ? "black" : "white",
},
dataLabels: {
enabled: true,
format: formattedType,
style: {
color: "#FFFFFF",
color: $mode === "light" ? "black" : "white",
fontWeight: "bold",
fontSize: "14px",
},
@ -159,7 +160,7 @@
// Create Highcharts options
const options = {
chart: {
backgroundColor: "#09090B",
backgroundColor: $mode === "light" ? "#fff" : "#09090B",
height: 360,
},
credits: { enabled: false },
@ -167,20 +168,20 @@
title: {
text: `<h3 class="mt-3 mb-1 text-[1rem] sm:text-lg">${symbol} - ${numOfRatings} Transaction</h3>`,
useHTML: true,
style: { color: "white" },
style: { color: $mode === "light" ? "black" : "white" },
},
xAxis: {
type: "datetime",
endOnTick: false,
categories: dates,
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
dashStyle: "Solid",
},
labels: {
style: {
color: "#fff",
color: $mode === "light" ? "black" : "white",
},
distance: 20, // Increases space between label and axis
formatter: function () {
@ -206,9 +207,9 @@
},
yAxis: {
gridLineWidth: 1,
gridLineColor: "#111827",
gridLineColor: $mode === "light" ? "#d1d5dc" : "#111827",
labels: {
style: { color: "white" },
style: { color: $mode === "light" ? "black" : "white" },
},
title: { text: null },
opposite: true,
@ -220,21 +221,27 @@
borderColor: "rgba(255, 255, 255, 0.2)", // Slightly visible white border
borderWidth: 1,
style: {
color: "#fff",
color: "white",
fontSize: "16px",
padding: "10px",
},
borderRadius: 4,
formatter: function () {
// 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
this.points.forEach((point) => {
tooltipContent += `<span class="text-white font-semibold text-sm">${point.series.name}:</span>
<span class="text-white font-normal text-sm" style="color:${point.color}">${
point.y
}</span><br>`;
tooltipContent += `<span class=" font-semibold text-sm">${point.series.name}:</span>
<span class=" font-normal text-sm">${abbreviateNumber(
point.y,
)}</span><br>`;
});
return tooltipContent;
@ -242,7 +249,7 @@
},
plotOptions: {
series: {
color: "white",
color: $mode === "light" ? "black" : "white",
animation: false, // Disable series animation
states: {
hover: {
@ -261,7 +268,7 @@
: value;
}),
type: "area",
color: "#FFFFFF",
color: $mode === "light" ? "#2C6288" : "white",
lineWidth: 1,
animation: false,
zIndex: 10,
@ -290,7 +297,7 @@
}
$: {
if (symbol && timePeriod) {
if ((symbol && timePeriod) || $mode) {
isLoaded = false;
config = null;
historicalData = [];
@ -313,8 +320,8 @@
<label
on:click={() => (timePeriod = item)}
class="px-3 py-1 {timePeriod === item
? 'bg-white text-black '
: '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"
? 'bg-gray-300 dark:bg-white text-muted'
: '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}
</label>
@ -322,8 +329,8 @@
<a
href="/pricing"
class="px-3 py-1 flex flex-row items-center {timePeriod === item
? 'bg-white text-black '
: '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"
? 'bg-white text-muted'
: '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}
<svg
@ -341,13 +348,13 @@
</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}
></div>
{:else}
<div class="h-[250px] sm:h-[350px]">
<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">
No chart data available for {symbol}

View File

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

View File

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

View File

@ -69,9 +69,9 @@
animation: false,
},
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 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: {
color: "white",
// Using inline CSS for margin-top and margin-bottom

View File

@ -44,7 +44,7 @@
</div>
Unlimited access to all data and tools
</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
everyone else in the market.
</dd>
@ -72,7 +72,7 @@
</div>
Realtime Options & Dark Pool Data
</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
opportunities and trade with precision before the market moves.
</dd>
@ -106,7 +106,7 @@
</div>
Top Wallstreet Analyst Ratings
</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
ahead.
</dd>
@ -135,7 +135,7 @@
</div>
Up to 30 years financial history
</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
to 30 years of history.
</dd>

View File

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

View File

@ -73,7 +73,7 @@
{#each watchList as item}
<!-- row -->
<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
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"
>
{#if item?.changesPercentage >= 0}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage?.toFixed(2)}%</span
>
{:else}

View File

@ -922,7 +922,7 @@
>
<a
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
class="avatar w-9 3xl:w-12 rounded-full"

View File

@ -474,7 +474,7 @@
: "decrease"} of {analystReport?.highPriceChange}% from the
latest price.
</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
><tr
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">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Top Wall Street Analysts</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Top Wall Street Analysts</li>
</ul>
</div>
@ -153,10 +153,10 @@
>
<main class="w-full lg:w-3/4 lg:pr-5">
<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
</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
</p>
</div>
@ -167,7 +167,7 @@
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden"
>
<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>
<TableHeader {columns} {sortOrders} {sortData} />
@ -175,16 +175,14 @@
<tbody>
{#each analystList as item, index}
<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 ===
rawData?.length &&
!['Pro', 'Plus']?.includes(data?.user?.tier)
? 'opacity-[0.1]'
: ''}"
>
<td
class="text-white text-sm sm:text-[1rem] text-white text-center"
>
<td class=" text-sm sm:text-[1rem] text-center">
{item?.rank}
</td>
@ -194,10 +192,10 @@
<div class="flex flex-col items-start">
<a
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}
</a>
<!--<span class="text-white">{item?.companyName} </span>-->
<!--<span class="">{item?.companyName} </span>-->
<div class="flex flex-row items-center mt-1">
{#each Array.from({ length: 5 }) as _, i}
{#if i < Math.floor(item?.analystScore)}
@ -214,7 +212,7 @@
</svg>
{:else}
<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"
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
@ -227,7 +225,7 @@
{/if}
{/each}
<span class="ml-1 text-gray-400">
<span class="ml-1 dark:text-gray-400">
({item?.analystScore !== null
? item?.analystScore
: 0})
@ -237,43 +235,46 @@
</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}
<span class="text-[#00FC50]"
<span
class="font-semibold dark:font-normal text-green-600 dark:text-[#00FC50]"
>+{Number(item?.successRate)?.toFixed(2)}%</span
>
{/if}
</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}
<span class="text-[#00FC50]"
<span
class="font-semibold dark:font-normal text-green-600 dark:text-[#00FC50]"
>+{Number(item?.avgReturn)?.toFixed(2)}%</span
>
{:else}
<span class="text-[#B84242]"
<span
class="font-semibold dark:font-normal text-[#B84242]"
>{Number(item?.avgReturn)?.toFixed(2)}%</span
>
{/if}
</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}
</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)}
</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
? 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-2xl md:text-center">
<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
</h3>
<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
</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"
>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -351,16 +350,12 @@
</div>
Success Rate
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
The percentage of ratings that are profitable.
</dd>
</div>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -380,17 +375,13 @@
</div>
Average Return
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
The average percentage return within one year of the
rating.
</dd>
</div>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -410,17 +401,13 @@
</div>
Rating Count
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
The more ratings the analyst has provided, the higher
the score.
</dd>
</div>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -440,9 +427,7 @@
</div>
Recency
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
Ratings provided within the past year contribute to a
higher score.
</dd>
@ -465,9 +450,7 @@
<h2 class="text-start text-xl font-semibold ml-3">
Top Stocks Picks
</h2>
<ArrowLogo
class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:text-white"
/>
<ArrowLogo class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:" />
</div>
<span class="p-3 ml-3 mr-3">
Get the latest top Wall Street analyst ratings.
@ -486,9 +469,7 @@
<h2 class="text-start text-xl font-semibold ml-3">
Top Shorted Stocks
</h2>
<ArrowLogo
class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:text-white"
/>
<ArrowLogo class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:" />
</div>
<span class="p-3 ml-3 mr-3">
Never miss out another short squeeze

View File

@ -1,5 +1,5 @@
<script lang="ts">
import { screenWidth, numberOfUnreadNotification } from "$lib/store";
import { screenWidth } from "$lib/store";
import { sectorNavigation } from "$lib/utils";
import TableHeader from "$lib/components/Table/TableHeader.svelte";
import { onMount } from "svelte";
@ -180,10 +180,12 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li><a href="/analysts" class="text-gray-300">Analyst</a></li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</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>
</div>
@ -200,7 +202,7 @@
>
<div class="shrink-0">
<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"
viewBox="0 0 24 24"
style="max-width:100px"
@ -212,10 +214,12 @@
>
</div>
<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"}
</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"}
</p>
<div class="inline-flex items-center">
@ -235,7 +239,7 @@
</svg>
{:else}
<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"
xmlns="http://www.w3.org/2000/svg"
fill="currentColor"
@ -248,39 +252,39 @@
{/if}
{/each}
</div>
<span class="ml-1 text-[1rem] text-white"
<span class="ml-1 text-[1rem]"
>({analystScore ?? "n/a"})</span
>
</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="text-2xl font-semibold tracking-tight text-white">
<div class="text-2xl font-semibold tracking-tight">
# {rank ?? "n/a"}
</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
</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"}
</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
</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">
<span
@ -288,35 +292,35 @@
? "before:content-['+'] text-[#36D984]"
: successRate < 0 && successRate !== undefined
? "text-[#EF4444]"
: "text-white"}
: ""}
>{successRate !== undefined
? successRate?.toFixed(2) + "%"
: "n/a"}</span
>
</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
</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
class={avgReturn >= 0 && avgReturn !== undefined
? "before:content-['+'] text-[#36D984]"
: avgReturn < 0 && avgReturn !== undefined
? "text-[#EF4444]"
: "text-white"}
: ""}
>{avgReturn !== undefined
? avgReturn?.toFixed(2) + "%"
: "n/a"}</span
>
</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
</div>
@ -325,9 +329,9 @@
</div>
{#if data?.getAnalystStats?.mainSectors?.length > 0}
<div class="mb-10 mt-10 text-white">
<div class="mb-10 mt-10">
<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="mb-2 font-semibold sm:mb-0">Main Sectors:</div>
@ -337,7 +341,7 @@
href={sectorNavigation?.find(
(listItem) => listItem?.title === item,
)?.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}
</a>
@ -352,7 +356,7 @@
{#each data?.getAnalystStats?.mainIndustries as item}
<a
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}
</a>
@ -364,16 +368,16 @@
{/if}
{#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
</span>
<div class="w-full m-auto mt-10">
<div class="w-full m-auto mt-4">
<div
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto"
>
<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>
<TableHeader {columns} {sortOrders} {sortData} />
@ -381,7 +385,7 @@
<tbody>
{#each stockList as item, index}
<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"
><button
@ -393,7 +397,7 @@
? 'rotate-180'
: ''}"
viewBox="0 0 20 20"
fill="white"
fill="currentColor"
style="max-width:40px"
><path
fill-rule="evenodd"
@ -410,20 +414,20 @@
{#if index >= 5 && !["Pro", "Plus"]?.includes(data?.user?.tier)}
<a class="block relative" href="/pricing">
<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
</span>
<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
</div>
<div class="absolute top-3 flex items-center">
<svg
class="size-5 text-[#fff]"
class="size-5 text-muted dark:text-[#fff]"
viewBox="0 0 20 20"
fill="currentColor"
style="max-width: 40px;"
@ -437,7 +441,7 @@
</svg>
<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
</span>
@ -447,7 +451,7 @@
<div class="flex flex-col items-start">
<HoverStockChart symbol={item?.ticker} />
<span class="text-white">
<span class="">
{item?.name?.length > charNumber
? item?.name?.slice(0, charNumber) + "..."
: item?.name}
@ -460,18 +464,16 @@
class="text-sm sm:text-[1rem] text-start whitespace-nowrap"
>
<div class="flex flex-col sm:flex-row items-start">
<span class=" text-white mr-1"
>{item?.action_company}:</span
>
<span class="mr-1">{item?.action_company}:</span>
<span
class=" {[
'Strong Buy',
'Buy',
'Outperform',
]?.includes(item?.rating_current)
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: item?.rating_current === 'Hold'
? 'text-[#FF7070]'
? '"text-red-600 dark:text-[#FF7070]"'
: [
'Strong Sell',
'Sell',
@ -485,12 +487,11 @@
</div>
</td>
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap"
>
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<div class="flex flex-row items-center justify-end">
{#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
>
<svg
@ -499,18 +500,18 @@
viewBox="0 0 24 24"
><path
fill="none"
stroke="white"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="1.5"
d="M4 12h16m0 0l-6-6m6 6l-6 6"
/></svg
>
<span class="text-white font-semibold"
<span class=" font-semibold"
>{Math?.ceil(item?.adjusted_pt_current)}</span
>
{: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
>
{:else}
@ -520,29 +521,29 @@
</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"}
</td>
<td
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
? 'text-[#FF2F1F]'
: 'text-white'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
? 'text-red-600 dark:text-[#FF2F1F]'
: ''} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.upside !== null ? item?.upside + "%" : "n/a"}
</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"}
</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", {
month: "short",
@ -553,7 +554,7 @@
</td>
</tr>
{#if checkedSymbol === item?.ticker}
<tr class="bg-default"
<tr class=""
><td colspan="8" class="px-0" style=""
><div class="-mt-0.5 px-0 pb-2">
<div class="relative h-[400px]">

View File

@ -35,8 +35,8 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Top Analyst Stocks</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Top Analyst Stocks</li>
</ul>
</div>
@ -47,7 +47,7 @@
>
<main class="w-full lg:pr-5">
<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
</h1>
</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."}
/>
<div class="w-full m-auto mt-10">
<div class="w-full m-auto">
<Table
{data}
{rawData}
@ -69,14 +69,10 @@
<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-2xl md:text-center">
<h3
class="mt-2 text-2xl font-bold tracking-tight text-white bp:text-3xl"
>
<h3 class="mt-2 text-2xl font-bold tracking-tight bp:text-3xl">
Analyst Star Rankings
</h3>
<p
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg"
>
<p class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg">
Our analyst star rankings are based on these four factors
</p>
</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"
>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -107,16 +101,12 @@
</div>
Success Rate
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
The percentage of ratings that are profitable.
</dd>
</div>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -136,17 +126,13 @@
</div>
Average Return
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
The average percentage return within one year of the
rating.
</dd>
</div>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -166,17 +152,13 @@
</div>
Rating Count
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
The more ratings the analyst has provided, the higher the
score.
</dd>
</div>
<div class="relative pl-14">
<dt
class="text-base font-semibold leading-4 text-white md:leading-7"
>
<dt class=" font-semibold leading-4 md:leading-7">
<div
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
>
@ -196,9 +178,7 @@
</div>
Recency
</dt>
<dd
class="mt-2 text-base leading-7 text-muted dark:text-faded"
>
<dd class="mt-2 leading-7 text-muted dark:text-faded">
Ratings provided within the past year contribute to a
higher score.
</dd>

View File

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

View File

@ -701,8 +701,8 @@
<!--
<div class="text-sm sm:text-[1rem] breadcrumbs mb-5">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Options Flow</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Options Flow</li>
</ul>
</div>
-->
@ -899,7 +899,7 @@
>
<label
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
class="h-5 w-5"
@ -920,7 +920,7 @@
{#if ruleOfList?.length !== 0}
<label
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
class="h-4 w-4"

View File

@ -313,8 +313,8 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Dividends Calendar</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Dividends Calendar</li>
</ul>
</div>
@ -453,7 +453,7 @@
{#each day as item}
<!-- row -->
<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]">
<HoverStockChart symbol={item?.symbol} />

View File

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

View File

@ -302,8 +302,8 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Economic Calendar</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Economic Calendar</li>
</ul>
</div>
@ -619,7 +619,7 @@
<tbody>
{#each day as item}
<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]">
{item?.time}

View File

@ -627,8 +627,8 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">US Economic Indicator</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">US Economic Indicator</li>
</ul>
</div>
@ -870,7 +870,7 @@
{#each tableList as item}
<!-- row -->
<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] whitespace-nowrap"

View File

@ -753,7 +753,7 @@
>
<span
class={displayLegend?.change >= 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}
>
{displayLegend?.change}
@ -795,9 +795,9 @@
{prePostData?.price?.toFixed(2)}
</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
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'}"
>
{prePostData?.changesPercentage?.toFixed(

View File

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

View File

@ -31,7 +31,7 @@
<li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} &#183;
<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}
target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -32,7 +32,7 @@
<li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} &#183;
<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}
target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a

View File

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

View File

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

View File

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

View File

@ -87,8 +87,8 @@
<body class="w-full overflow-hidden m-auto">
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Hedge Funds</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Hedge Funds</li>
</ul>
</div>
@ -98,22 +98,22 @@
class="relative flex justify-center items-center overflow-hidden 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
</h1>
<div class="w-full pb-3">
<div class="relative right-0 bg-default">
<div class="relative right-0">
<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]"
>
<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">
<input
id="modal-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"
bind:value={filterQuery}
on:input={handleInput}
@ -124,7 +124,7 @@
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
><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"
/></svg
>
@ -141,7 +141,7 @@
{#each displayList as item}
<a
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">
<img
@ -152,7 +152,7 @@
class="flex flex-col justify-center items-center rounded-2xl"
>
<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
style="clip-path: circle(50%);"
@ -162,11 +162,11 @@
/>
</div>
<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)}
</span>
<span class="text-white text-md mb-8">
<span class=" text-md mb-8">
AUM: {abbreviateNumber(item?.marketValue)}
</span>
</div>
@ -178,21 +178,20 @@
<label
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", {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
}).format(item?.numberOfStocks)}
</span>
<span class="text-white text-sm"># of Holdings</span
>
<span class=" text-sm"># of Holdings</span>
</label>
<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)}
</span>
<span class="text-white text-sm">Turnover</span>
<span class=" text-sm">Turnover</span>
</div>
</div>
@ -206,7 +205,7 @@
class="flex flex-row mt-1 text-[1rem] font-semibold"
>
{#if item?.performancePercentage3Year >= 0}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber(
item?.performancePercentage3Year?.toFixed(
2,
@ -223,9 +222,7 @@
</span>
{/if}
</div>
<span class="text-white text-sm"
>3-Year Performance</span
>
<span class=" text-sm">3-Year Performance</span>
</label>
<div class="flex flex-col items-end">
@ -233,7 +230,7 @@
class="flex flex-row mt-1 text-[1rem] font-semibold"
>
{#if item?.winRate >= 0}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber(
item?.winRate?.toFixed(2),
)}%</span
@ -246,7 +243,7 @@
</span>
{/if}
</div>
<span class="text-white text-sm">Win Rate</span>
<span class=" text-sm">Win Rate</span>
</div>
</div>
</div>

View File

@ -54,10 +54,18 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li><a href="/hedge-funds" class="text-gray-300">Hedge Fund</a></li>
<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>
</div>
@ -84,51 +92,59 @@
</div>
<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)}
</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}
</p>
</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="text-2xl font-bold tracking-tight text-white">
<div class="text-2xl font-bold tracking-tight">
{abbreviateNumber(hedgeFundStats?.marketValue)}
</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
</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(
"en-US",
)}
</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
</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
</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
</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">
<span
@ -138,14 +154,16 @@
>{hedgeFundStats?.winRate?.toFixed(2)}%</span
>
</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
</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
class={hedgeFundStats?.performancePercentage3Year >= 0
? "before:content-['+'] text-[#36D984]"
@ -155,16 +173,18 @@
)}%</span
>
</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
</div>
</div>
</div>
</div>
<div class="mb-10 mt-10 text-white">
<div class="mb-10 mt-10">
<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="mb-2 font-semibold sm:mb-0">Main Sectors:</div>
@ -174,7 +194,7 @@
href={sectorNavigation?.find(
(listItem) => listItem?.title === item,
)?.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}
</a>
@ -189,7 +209,7 @@
{#each data?.getHedgeFundsData?.mainIndustries as item}
<a
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}
</a>
@ -199,7 +219,7 @@
</div>
</div>
<div class="w-full m-auto mt-10">
<div class="w-full m-auto mt-4">
<Table
{data}
rawData={["Pro", "Plus"]?.includes(data?.user?.tier)

View File

@ -756,7 +756,7 @@
>
<span
class={displayLegend?.change >= 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}
>
{displayLegend?.change}
@ -798,9 +798,9 @@
{prePostData?.price?.toFixed(2)}
</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
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: 'text-[#FF2F1F]'}"
>
{prePostData?.changesPercentage?.toFixed(

View File

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

View File

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

View File

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

View File

@ -112,7 +112,7 @@
{#each displayList as item}
<!-- row -->
<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">
<a
@ -151,7 +151,7 @@
<td
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"
>
{abbreviateNumber(item?.profitMargin)}%

View File

@ -111,7 +111,7 @@
{#each displayList as item}
<!-- row -->
<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">
<a
@ -152,7 +152,7 @@
<td
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"
>
{abbreviateNumber(item?.profitMargin)}%

View File

@ -6,6 +6,8 @@
import TableHeader from "$lib/components/Table/TableHeader.svelte";
import HoverStockChart from "$lib/components/HoverStockChart.svelte";
import RatingsChart from "$lib/components/RatingsChart.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
@ -169,8 +171,8 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Insider Tracker</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Insider Tracker</li>
</ul>
</div>
@ -181,46 +183,22 @@
>
<main class="w-full">
<div class="mb-6 border-b-[2px]">
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
Insider Tracker
</h1>
<h1 class="mb-1 text-2xl sm:text-3xl font-bold">Insider Tracker</h1>
</div>
{#if isLoaded}
<div class="mt-8 sm:px-0">
<div
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
<Infobox
text="We update our data in real time to bring you the latest
insights on unusual insider trading, sourced from SEC
filings with a minimum transaction value of $100,000.
</div>
</div>
</div>
</div>
</div>
filings with a minimum transaction value of $100,000."
/>
<div class="w-full m-auto mt-20 sm:mt-10">
<div
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden"
>
<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>
<TableHeader {columns} {sortOrders} {sortData} />
@ -228,7 +206,7 @@
<tbody>
{#each stockList as item, index}
<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 ===
stockList?.length &&
!['Pro', 'Plus']?.includes(data?.user?.tier)
@ -245,7 +223,7 @@
? 'rotate-180'
: ''}"
viewBox="0 0 20 20"
fill="white"
fill="currentColor"
style="max-width:40px"
><path
fill-rule="evenodd"
@ -260,7 +238,7 @@
<HoverStockChart symbol={item?.symbol} />
</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?.slice(0, charNumber) + "..."
@ -268,7 +246,7 @@
</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?.slice(0, charNumber) + "..."
@ -276,13 +254,13 @@
</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)}
</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}
</td>
@ -290,7 +268,7 @@
<td
class="text-sm sm:text-[1rem] whitespace-nowrap text-end {item?.changesPercentage >=
0
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: 'text-[#FF2F1F]'}"
>
{item?.changesPercentage > 0
@ -299,7 +277,7 @@
</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)}
</td>
@ -307,7 +285,7 @@
<td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap {item?.transactionType ===
'Buy'
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: item?.transactionType === 'Sell'
? 'text-[#FF2F1F]'
: 'text-[#E57C34]'}"
@ -325,7 +303,7 @@
</td>
</tr>
{#if checkedSymbol === item?.symbol}
<tr class="bg-default"
<tr class=""
><td colspan="9" class="px-0" style=""
><div class="-mt-0.5 px-0 pb-2">
<div class="relative h-[400px]">

View File

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

View File

@ -69,7 +69,7 @@
<li class="mb-3 last:mb-1">
{item?.timestamp}
<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}
target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -91,7 +91,7 @@
<tbody>
{#each ipoList as item}
<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
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-start border-b-[#09090B] whitespace-nowrap"
@ -109,7 +109,7 @@
>
<a
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}
</a>
@ -188,7 +188,7 @@
<li class="mb-3 last:mb-1">
{item?.timestamp}
<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}
target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -194,7 +194,7 @@
<li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} ago -
<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}
target="_blank"
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">
Stay informed in just 2 minutes
</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
point format, for Pro Members only.
</p>
@ -105,7 +105,7 @@
>
<div class="space-y-3 p-6">
<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
</p>
</div>
@ -116,7 +116,7 @@
>
<div class="space-y-3 p-6">
<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
</p>
</div>

View File

@ -263,7 +263,7 @@
Category of Stocks Ranked by Market Cap
</h2>
<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>
<a

View File

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

View File

@ -838,8 +838,8 @@
<!--
<div class="text-sm sm:text-[1rem] breadcrumbs mb-5">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Options Flow</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Options Flow</li>
</ul>
</div>
-->
@ -1045,7 +1045,7 @@
>
<label
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
class="h-5 w-5"
@ -1066,7 +1066,7 @@
{#if ruleOfList?.length !== 0}
<label
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
class="h-4 w-4"

View File

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

View File

@ -113,12 +113,13 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<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="/politicians" class="text-gray-300">Congress</a>
<a href="/politicians" class="text-muted dark:text-gray-300">Congress</a
>
</li>
<li class="text-gray-300">{name}</li>
<li class="text-muted dark:text-gray-300">{name}</li>
</ul>
</div>
@ -318,7 +319,7 @@
<tbody class="p-0">
{#each tableData as item}
<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"
><button
@ -363,7 +364,9 @@
>
<span class="">
{#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"}
<span class="text-[#FF2F1F]">{item?.type}</span>
{:else if item?.type === "Exchange"}

View File

@ -71,8 +71,8 @@
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Congress Flow</li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li class="text-muted dark:text-gray-300">Congress Flow</li>
</ul>
</div>
@ -169,7 +169,7 @@
<div class="flex flex-col ml-3 font-normal">
<a
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(
item?.representative?.replace(
"_",
@ -235,7 +235,10 @@
class="text-sm sm:text-[1rem] text-end text-white"
>
{#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"}
<span class="text-[#FF2F1F]">Sold</span>
{/if}

View File

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

View File

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

View File

@ -2538,8 +2538,8 @@ const handleKeyDown = (event) => {
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li><span class="text-gray-300">Stock Screener</span></li>
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
<li><span class="text-muted dark:text-gray-300">Stock Screener</span></li>
</ul>
</div>
@ -2683,7 +2683,7 @@ const handleKeyDown = (event) => {
<Button
on:click={handleCreateStrategy}
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
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">
<label
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
class="h-5 w-5"
@ -2774,7 +2774,7 @@ const handleKeyDown = (event) => {
<label
for={!data?.user ? "userLogin" : ""}
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
class="h-5 w-5"
@ -2790,7 +2790,7 @@ const handleKeyDown = (event) => {
<label
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
class="h-5 w-5"
@ -2808,7 +2808,7 @@ const handleKeyDown = (event) => {
{#if ruleOfList?.length !== 0}
<label
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
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">
<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>
<button
@ -3371,7 +3371,7 @@ const handleKeyDown = (event) => {
<td class="text-white text-end text-sm sm:text-[1rem]">
{#if item?.changesPercentage >= 0}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>+{item?.changesPercentage >= 1000
? abbreviateNumber(item?.changesPercentage)
: item?.changesPercentage?.toFixed(2)}%</span
@ -3478,7 +3478,7 @@ const handleKeyDown = (event) => {
{#if row?.rule === "marketCap"}
{abbreviateNumber(item[row?.rule])}
{:else if item[row?.rule] > 0}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>+{abbreviateNumber(
item[row?.rule]?.toFixed(2),
)}%</span
@ -3537,7 +3537,7 @@ const handleKeyDown = (event) => {
>
{:else if row?.rule === "upside"}
{#if item[row?.rule] > 0}
<span class="text-[#00FC50]"
<span class="text-green-600 dark:text-[#00FC50]"
>+{item[row?.rule]?.toFixed(2)}%</span
>
{:else if item[row?.rule] < 0}
@ -3549,7 +3549,9 @@ const handleKeyDown = (event) => {
{/if}
{:else if ["analystRating", "topAnalystRating"]?.includes(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])}
<span class="text-[#FF2F1F]">{item[row?.rule]}</span>
{:else if item[row?.rule] === "Hold"}

View File

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

View File

@ -31,7 +31,7 @@
<li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} &#183;
<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}
target="_blank"
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"
>
<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
><tr
@ -842,22 +842,22 @@
><td class="py-[3px] text-left lg:py-0.5">Change</td>
<td
class={lowChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{lowChange}%</td
>
<td
class={avgChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{avgChange}%</td
>
<td
class={medianChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{medianChange}%</td
>
<td
class={highChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{highChange}%</td
></tr
></tbody
@ -1008,9 +1008,7 @@
<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"
>
<div class="text-base font-normal text-white">
Revenue This Year
</div>
<div class=" font-normal text-white">Revenue This Year</div>
<div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
>
@ -1080,9 +1078,7 @@
<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"
>
<div class="text-base font-normal text-white">
Revenue Next Year
</div>
<div class=" font-normal text-white">Revenue Next Year</div>
<div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
>
@ -1148,9 +1144,7 @@
<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"
>
<div class="text-base font-normal text-white">
EPS This Year
</div>
<div class=" font-normal text-white">EPS This Year</div>
<div
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
>
@ -1201,9 +1195,7 @@
<div
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">
EPS Next Year
</div>
<div class=" font-normal text-white">EPS Next Year</div>
<div
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(
consensusRating,
)
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: ['Strong Sell', 'Sell']?.includes(consensusRating)
? 'text-[#FF2F1F]'
: '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"
>
<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
><tr
@ -405,22 +405,22 @@
><td class="py-[3px] text-left lg:py-0.5">Change</td>
<td
class={lowChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{lowChange}%</td
>
<td
class={avgChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{avgChange}%</td
>
<td
class={medianChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{medianChange}%</td
>
<td
class={highChange > 0
? "before:content-['+'] text-[#00FC50]"
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
: "text-[#FF2F1F]"}>{highChange}%</td
></tr
></tbody

View File

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

View File

@ -143,7 +143,7 @@
<li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} ago -
<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}
target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a

View File

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

View File

@ -12,7 +12,6 @@
import { onMount } from "svelte";
import SEO from "$lib/components/SEO.svelte";
let chats = [];
let date;
@ -78,15 +77,13 @@
});
</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.`}
/>
<section
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="relative flex justify-center items-center overflow-hidden">
@ -217,7 +214,7 @@
<div
class="flex items-center space-x-2 rtl:space-x-reverse"
>
<span class="text-sm text-base">
<span class="text-sm">
{item?.name}
</span>
</div>
@ -247,7 +244,7 @@
<div class="flex flex-col items-start gap-2.5 mt-8">
<div class="flex flex-row items-center">
<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
class="absolute inset-0 flex items-center justify-center"
@ -258,7 +255,7 @@
<div
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}
</span>
</div>

View File

@ -139,7 +139,7 @@
{#each growthValues[index] as growthValue}
<td
class="text-sm sm:text-[1rem] text-end {growthValue > 0
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: growthValue < 0
? 'text-[#FF2F1F]'
: 'text-white'} border-b border-gray-800"
@ -214,7 +214,7 @@
<td
class="text-sm sm:text-[1rem] text-center {growthValue >
0
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: growthValue < 0
? 'text-[#FF2F1F]'
: 'text-white'} border-b border-gray-800"
@ -291,7 +291,7 @@
<td
class="text-sm sm:text-[1rem] text-center {growthValue >
0
? 'text-[#00FC50]'
? 'text-green-600 dark:text-[#00FC50]'
: growthValue < 0
? 'text-[#FF2F1F]'
: '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"
>
{#if item?.valueGrowth > 0}
<span class="text-[#00FC50]">
<span class="text-green-600 dark:text-[#00FC50]">
+{item?.valueGrowth?.toFixed(2)}%
</span>
{:else if item?.valueGrowth < 0}

View File

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

View File

@ -294,7 +294,7 @@ ${paragraphs.join("\n")}
Key Executives
</h2>
{#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"
><tr class="border-y border-gray-300 dark:border-gray-600"
><th

View File

@ -128,7 +128,7 @@
<li class="mb-3 last:mb-1">
{formatDate(item?.publishedDate)} ago -
<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}
target="_blank"
rel="noopener noreferrer nofollow">{item?.title}</a

View File

@ -517,7 +517,7 @@
<div class="mt-5 w-full overflow-x-auto">
<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">
<tr>
@ -581,7 +581,7 @@
{#if index === historyList?.length - 1}
n/a
{:else if item?.employeeCount > historyList[index + 1]?.employeeCount}
<span class="text-[#00FC50]">
<span class="text-green-600 dark:text-[#00FC50]">
+{(
((item?.employeeCount -
historyList[index + 1]?.employeeCount) /

View File

@ -921,7 +921,7 @@
Dividends &amp; Yields
</h2>
<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}
{$stockTicker} pays an annual dividend of ${rawData?.annualDividend},
@ -1011,7 +1011,7 @@
<div>
<h2 class="mb-2 px-0.5 text-xl font-bold">Analyst Forecast</h2>
<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"
>
{#if rawData?.priceTarget && rawData?.upside && rawData?.analystRating}
@ -1083,7 +1083,7 @@
<div>
<h2 class="mb-2 px-0.5 text-xl font-bold">Stock Splits</h2>
<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"
>
The last stock split was on {new Date(

View File

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

View File

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