This commit is contained in:
MuslemRahimi 2025-03-03 15:37:57 +01:00
parent a4a11b2638
commit 52285fb69a
125 changed files with 807 additions and 1196 deletions

View File

@ -32,14 +32,6 @@
-ms-overflow-style: -ms-autohiding-scrollbar;
}
@utility shake-ticker {
&:hover img {
animation-name: shake;
animation-duration: 0.5s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
}
}
@layer utilities {
@ -51,25 +43,3 @@
}
}
@layer utilities {
@keyframes shake {
0% {
transform: rotate(0deg);
}
25% {
transform: rotate(10deg);
}
50% {
transform: rotate(0deg);
}
75% {
transform: rotate(-10deg);
}
100% {
transform: rotate(0deg);
}
}
}

View File

@ -1,4 +1,25 @@
<p class="text-md font-medium">Add to Watchlist</p>
<svg class="w-10 h-10 mt-1.5 ml-auto" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg" fill="#D6D6DC" stroke="#1A1A27"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <title>star-solid</title> <g id="Layer_2" data-name="Layer 2"> <g id="invisible_box" data-name="invisible box"> <rect width="48" height="48" fill="none"></rect> </g> <g id="icons_Q2" data-name="icons Q2"> <path d="M24,3a2.1,2.1,0,0,0-1.8,1.1L16.5,15.7,3.7,17.5A2.1,2.1,0,0,0,2.6,21l9.2,8.9L9.7,42.7A2,2,0,0,0,11.6,45l1-.2,11.4-6,11.4,6,1,.2a2,2,0,0,0,1.9-2.3L36.2,29.9,45.4,21a2.1,2.1,0,0,0-1.1-3.5L31.5,15.7,25.8,4.1A2.1,2.1,0,0,0,24,3Z"></path> </g> </g> </g></svg>
<p class="text-md">Add to Watchlist</p>
<svg
class="w-10 h-10 mt-1.5 ml-auto"
viewBox="0 0 48 48"
xmlns="http://www.w3.org/2000/svg"
fill="#D6D6DC"
stroke="#1A1A27"
><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g
id="SVGRepo_tracerCarrier"
stroke-linecap="round"
stroke-linejoin="round"
></g><g id="SVGRepo_iconCarrier">
<title>star-solid</title>
<g id="Layer_2" data-name="Layer 2">
<g id="invisible_box" data-name="invisible box">
<rect width="48" height="48" fill="none"></rect>
</g>
<g id="icons_Q2" data-name="icons Q2">
<path
d="M24,3a2.1,2.1,0,0,0-1.8,1.1L16.5,15.7,3.7,17.5A2.1,2.1,0,0,0,2.6,21l9.2,8.9L9.7,42.7A2,2,0,0,0,11.6,45l1-.2,11.4-6,11.4,6,1,.2a2,2,0,0,0,1.9-2.3L36.2,29.9,45.4,21a2.1,2.1,0,0,0-1.1-3.5L31.5,15.7,25.8,4.1A2.1,2.1,0,0,0,24,3Z"
></path>
</g>
</g>
</g></svg
>

View File

@ -64,12 +64,10 @@
<div class="flex flex-col mt-5 w-full">
<div class="flex flex-row m-auto w-full">
<span class="text-start mr-auto ml-5 text-white font-medium text-xl">
<span class="text-start mr-auto ml-5 text-white text-xl">
Signal
</span>
<span class="mr-5 text-white font-medium text-xl">
Price Target
</span>
<span class="mr-5 text-white text-xl"> Price Target </span>
</div>
<div class="flex flex-row m-auto w-full">
{#if consensusRating === "Buy" || consensusRating === "Strong Buy"}
@ -122,10 +120,8 @@
<div class="flex flex-col items-center w-full">
<div class="flex flex-row items-center w-11/12 mt-5 mb-2">
<span class="text-white font-medium text-start mr-auto">
Buy
</span>
<span class="text-white text-md font-medium ml-auto">
<span class="text-white text-start mr-auto"> Buy </span>
<span class="text-white text-md ml-auto">
{buyCount}%
</span>
</div>
@ -138,10 +134,8 @@
<div class="flex flex-col items-center w-full">
<div class="flex flex-row items-center w-11/12 mt-5 mb-2">
<span class="text-white font-medium text-start mr-auto">
Hold
</span>
<span class="text-white text-md font-medium ml-auto">
<span class="text-white text-start mr-auto"> Hold </span>
<span class="text-white text-md ml-auto">
{holdCount}%
</span>
</div>
@ -154,10 +148,8 @@
<div class="flex flex-col items-center w-full">
<div class="flex flex-row items-center w-11/12 mt-5 mb-2">
<span class="text-white font-medium text-start mr-auto">
Sell
</span>
<span class="text-white text-md font-medium ml-auto">
<span class="text-white text-start mr-auto"> Sell </span>
<span class="text-white text-md ml-auto">
{sellCount}%
</span>
</div>

View File

@ -789,13 +789,13 @@
<tbody>
<tr class="bg-primary border-b border-gray-600">
<th
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start font-medium bg-primary border-b border-gray-800"
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start bg-primary border-b border-gray-800"
>
Revenue
</th>
{#each tableCombinedRevenue as item}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium border-b border-gray-800 bg-default"
class="text-white text-sm sm:text-[1rem] text-end border-b border-gray-800 bg-default"
>
{item?.val === "0.00" ||
item?.val === null ||
@ -808,13 +808,13 @@
<tr class="bg-primary">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-gray-800"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-gray-800"
>
Revenue Growth
</th>
{#each computeGrowthList(tableActualRevenue, tableCombinedRevenue) as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default border-b border-gray-800"
class="text-white text-sm sm:text-[1rem] text-end bg-default border-b border-gray-800"
>
{#if index === 0 || item?.growth === null}
n/a
@ -843,13 +843,13 @@
<tr class="bg-primary border-b-[#09090B]">
<th
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start font-medium bg-primary border-b border-gray-800"
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start bg-primary border-b border-gray-800"
>
EPS
</th>
{#each tableCombinedEPS as item}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium border-b border-gray-800 bg-default"
class="text-white text-sm sm:text-[1rem] text-end border-b border-gray-800 bg-default"
>
{item?.val === "0.00" ||
item?.val === null ||
@ -862,13 +862,13 @@
<tr class="bg-primary">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-gray-800"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-gray-800"
>
EPS Growth
</th>
{#each computeGrowthList(tableActualEPS, tableCombinedEPS) as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default border-b border-gray-800"
class="text-white text-sm sm:text-[1rem] text-end bg-default border-b border-gray-800"
>
{#if index === 0 || item?.growth === null}
n/a
@ -896,13 +896,13 @@
</tr>
<tr class="bg-primary border-b border-gray-600">
<th
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start font-medium bg-primary border-b border-gray-800"
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start bg-primary border-b border-gray-800"
>
Net Income
</th>
{#each tableCombinedNetIncome as item}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium border-b border-gray-800 bg-default"
class="text-white text-sm sm:text-[1rem] text-end border-b border-gray-800 bg-default"
>
{item?.val === "0.00" ||
item?.val === null ||
@ -915,13 +915,13 @@
<tr class="bg-primary">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-gray-800"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-gray-800"
>
Net Income Growth
</th>
{#each computeGrowthList(tableActualNetIncome, tableCombinedNetIncome) as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default border-b border-gray-800"
class="text-white text-sm sm:text-[1rem] text-end bg-default border-b border-gray-800"
>
{#if index === 0 || item?.growth === null}
n/a
@ -950,13 +950,13 @@
<tr class="bg-primary border-b border-gray-600">
<th
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start font-medium bg-primary border-b border-gray-800"
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start bg-primary border-b border-gray-800"
>
EBITDA
</th>
{#each tableCombinedEbitda as item}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium border-b border-gray-800 bg-default"
class="text-white text-sm sm:text-[1rem] text-end border-b border-gray-800 bg-default"
>
{item?.val === "0.00" ||
item?.val === null ||
@ -969,13 +969,13 @@
<tr class="bg-primary">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-gray-800"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-gray-800"
>
EBITDA Growth
</th>
{#each computeGrowthList(tableActualEbitda, tableCombinedEbitda) as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default border-b border-gray-800"
class="text-white text-sm sm:text-[1rem] text-end bg-default border-b border-gray-800"
>
{#if index === 0 || item?.growth === null}
n/a
@ -1004,12 +1004,12 @@
<tr class="bg-primary border-b border-gray-600">
<th
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start font-medium bg-primary border-b border-gray-800"
class="text-white whitespace-nowrap text-sm sm:text-[1rem] text-start bg-primary border-b border-gray-800"
>No. Analysts</th
>
{#each tableCombinedRevenue as item}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium border-b border-gray-800 bg-default"
class="text-white text-sm sm:text-[1rem] text-end border-b border-gray-800 bg-default"
>
{#if item?.FY > 24}
{item?.numOfAnalysts === (null || 0)

View File

@ -85,7 +85,7 @@
>
{#if latestInfoDate(data?.getAnalystInsight?.date)}
<label
class="bg-[#2D4F8A] text-white font-medium text-xs rounded-md px-2 py-0.5 ml-3"
class="bg-[#2D4F8A] text-white text-xs rounded-md px-2 py-0.5 ml-3"
>New</label
>
{/if}

View File

@ -61,7 +61,7 @@
<label
for="cookieConsent"
on:click={() => cookieConsent("true")}
class="text-xs cursor-pointer w-auto md:w-auto font-medium bg-gray-800 rounded-md hover:bg-gray-700 text-white px-4 py-2.5 duration-300 transition-colors focus:outline-hidden"
class="text-xs cursor-pointer w-auto md:w-auto bg-gray-800 rounded-md hover:bg-gray-700 text-white px-4 py-2.5 duration-300 transition-colors focus:outline-hidden"
>
Accept All Cookies
</label>

View File

@ -357,11 +357,9 @@
{#each tableList as item, index}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap"
>
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap">
{new Date(item?.date)?.toLocaleDateString("en-US", {
day: "2-digit", // Include day number
month: "short", // Display short month name
@ -382,7 +380,7 @@
</td>
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap font-medium text-end"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{#if index === tableList?.length - 1}
n/a

View File

@ -64,7 +64,7 @@
<tr
class="text-white bg-[#000] lg:bg-default border-b border-[#000] lg:border-[#27272A]"
>
<td class="text-start text-sm text-white font-medium">
<td class="text-start text-sm text-white">
{new Date(item?.date)?.toLocaleString("en-US", {
month: "short",
day: "numeric",
@ -73,7 +73,7 @@
})}
</td>
<td class="text-end text-sm text-white font-medium">
<td class="text-end text-sm text-white">
{item?.paymentDate?.length !== 0
? new Date(item?.paymentDate)?.toLocaleString("en-US", {
month: "short",
@ -84,7 +84,7 @@
: "n/a"}
</td>
<td class="text-end text-sm text-white font-medium">
<td class="text-end text-sm text-white">
${item?.adjDividend?.toFixed(2)}
</td>
</tr>
@ -102,7 +102,7 @@
</label>
{:else}
<h2
class="mt-20 justify-center items-center text-3xl font-medium text-slate-700 mb-20 m-auto"
class="mt-20 justify-center items-center text-3xl text-slate-700 mb-20 m-auto"
>
No data available
<svg

View File

@ -85,9 +85,7 @@
style="background-image: url('{defaultImage}');"
>
<div class="flex flex-row pt-1 pb-2">
<div
class="badge badge-error gap-2 mt-2 font-medium text-sm text-white"
>
<div class="badge badge-error gap-2 mt-2 text-sm text-white">
Asset Class - {assetClass}
</div>
</div>
@ -275,7 +273,7 @@
<div class="flex flex-row w-full items-center mt-4 pb-2 mb-2">
<label
on:click={() => (showFullText = !showFullText)}
class="hidden lg:block ml-3 w-full text-md mt-1 cursor-pointer font-medium text-white sm:hover:text-blue-400 sm:hover:underline"
class="hidden lg:block ml-3 w-full text-md mt-1 cursor-pointer text-white sm:hover:text-blue-400 sm:hover:underline"
>
{#if showFullText}
Show less
@ -288,7 +286,7 @@
<a
target="_blank"
href={website}
class="inline-flex text-sm font-medium text-white sm:hover:text-blue-400 sm:hover:underline"
class="inline-flex text-sm text-white sm:hover:text-blue-400 sm:hover:underline"
>
Go to website
<svg

View File

@ -58,7 +58,7 @@
<div class="bg-[#000] h-auto w-screen">
<!--Start Header-->
<div class="w-full p-1 flex flex-col items-center pb-5 h-auto">
<h2 class="text-center m-auto text-[1.1rem] font-medium text-white mt-5">
<h2 class="text-center m-auto text-[1.1rem] text-white mt-5">
Executives
</h2>
@ -79,14 +79,12 @@
class="w-3 h-3 bg-[#0FC008] border-4 box-content border-gray-900 rounded-full transform -translate-x-1/2"
aria-hidden="true"
></div>
<span class="text-white text-sm font-medium inline-block">
Female <span class="font-medium text-[0.95rem]"
>({numberOfFemales})</span
>
<span class="text-white text-sm inline-block">
Female <span class=" text-[0.95rem]">({numberOfFemales})</span>
</span>
</div>
<span class="text-white font-medium text-3xl m-auto">
<span class="text-white text-3xl m-auto">
{numberOfFemales === 0
? 0
: (
@ -104,10 +102,8 @@
class="w-3 h-3 bg-[#FF2F1F] border-4 box-content border-gray-900 rounded-full transform -translate-x-1/2"
aria-hidden="true"
></div>
<span class="text-white text-sm font-medium inline-block">
Male <span class="font-medium text-[0.95rem]"
>({numberOfMales})</span
>
<span class="text-white text-sm inline-block">
Male <span class=" text-[0.95rem]">({numberOfMales})</span>
</span>
</div>
</div>
@ -124,7 +120,7 @@
<div class="flex flex-row items-center relative">
<div class="flex flex-col">
<div
class="flex flex-row items-center mr-auto mb-2 text-white font-medium text-sm w-56"
class="flex flex-row items-center mr-auto mb-2 text-white text-sm w-56"
>
<span>
{item?.name}

View File

@ -337,10 +337,12 @@
{#each tableList as item, index}
<!-- row -->
<tr class="odd:bg-odd">
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.date}
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap">
{new Date(item?.date)?.toLocaleDateString("en-US", {
day: "2-digit", // Include day number
month: "short", // Display short month name
year: "numeric", // Include year
})}
</td>
<td
@ -356,7 +358,7 @@
</td>
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap font-medium text-end"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{#if index === tableList?.length - 1}
n/a

View File

@ -35,7 +35,7 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm"
<span class=" text-gray-200 text-sm"
>Quarter Sentiment</span
>
{#if !deactivateContent}
@ -48,7 +48,7 @@
{:else}
<a
href="/pricing"
class="text-blue-400 mt-1 hover:text-white font-medium text-sm flex justify-center items-center"
class="text-blue-400 mt-1 hover:text-white text-sm flex justify-center items-center"
>
Unlock with Pro
<svg
@ -71,9 +71,9 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm">Accuracy</span>
<span class=" text-gray-200 text-sm">Accuracy</span>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
class="text-start text-sm sm:text-[1rem] text-white"
>
{accuracy >= 65
? "Good"
@ -133,9 +133,9 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm">Precision</span>
<span class=" text-gray-200 text-sm">Precision</span>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
class="text-start text-sm sm:text-[1rem] text-white"
>
{precision >= 65
? "Good"
@ -204,7 +204,7 @@
{:else}
<a
href="/pricing"
class="text-blue-400 mt-1 hover:text-white font-medium text-sm"
class="text-blue-400 mt-1 hover:text-white text-sm"
>
Unlock Prediction with Pro
<svg

View File

@ -29,14 +29,12 @@
/></svg
>
</div>
<span
class="text-slate-300 font-medium text-md sm:text-lg mt-3 w-3/4 text-center"
>
<span class="text-slate-300 text-md sm:text-lg mt-3 w-3/4 text-center">
Get full access for a more in-depth Stock Analysis
</span>
<label
class="mt-4 w-5/6 sm:w-56 bg-[#fff] cursor-pointer py-2.5 px-4 normal-case font-medium text-center text-black rounded-full"
class="mt-4 w-5/6 sm:w-56 bg-[#fff] cursor-pointer py-2.5 px-4 normal-case text-center text-black rounded-full"
>
<div class="flex flex-row items-center justify-center">
<svg

View File

@ -78,7 +78,7 @@
aria-hidden="true"
></div>
<span
class="mt-2 sm:mt-0 text-white text-xs sm:text-md sm:font-medium inline-block"
class="mt-2 sm:mt-0 text-white text-xs sm:text-md sm: inline-block"
>
Implied Volatility
</span>
@ -96,7 +96,7 @@
aria-hidden="true"
></div>
<span
class="mt-2 sm:mt-0 text-white text-xs sm:text-md sm:font-medium inline-block"
class="mt-2 sm:mt-0 text-white text-xs sm:text-md sm: inline-block"
>
Realized Volatility
</span>
@ -117,7 +117,7 @@
<span>Date</span>
</td>
<td
class="px-[5px] py-1.5 text-right text-sm sm:text-[1rem] font-medium xs:px-2.5 xs:py-2"
class="px-[5px] py-1.5 text-right text-sm sm:text-[1rem] xs:px-2.5 xs:py-2"
>
{formatDateRange(rawData?.slice(-1)?.at(0)?.date)}
</td>
@ -127,7 +127,7 @@
<span>IV Range</span>
</td>
<td
class="px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{lowestIV + "%" + "-" + highestIV + "%"}
</td>
@ -137,7 +137,7 @@
<span>RV Range</span>
</td>
<td
class="px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{lowestRV + "%" + "-" + highestRV + "%"}
</td>

View File

@ -99,9 +99,9 @@
{#each displayList as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
>
<td class="font-medium text-sm sm:text-[1rem] whitespace-nowrap">
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a
href={`/list/industry/${item?.industry?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`}
class="sm:hover:underline sm:hover:underline-offset-4 text-white"
@ -119,19 +119,19 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{abbreviateNumber(item?.totalMarketCap) ?? "n/a"}
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgDividendYield?.toFixed(2) ?? "n/a"}%
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.pe?.toFixed(2) ?? "n/a"}
</td>
@ -139,7 +139,7 @@
<td
class="{item?.profitMargin >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{abbreviateNumber(item?.profitMargin)}%
</td>
@ -147,7 +147,7 @@
<td
class="{item?.avgChange1D >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgChange1D?.toFixed(2) ?? "n/a"}%
</td>
@ -155,7 +155,7 @@
<td
class="{item?.avgChange1Y >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgChange1Y?.toFixed(2) ?? "n/a"}%
</td>

View File

@ -1,5 +1,4 @@
<script lang="ts">
import { onMount } from "svelte";
//import { linkTitle } from '$lib/store';
export let value = "";
@ -15,37 +14,14 @@
export let errors;
export let useTitle = false; // new prop
let videoInput;
let showVideo = false;
onMount(() => {
window.addEventListener("dragover", (event) => event.preventDefault());
window.addEventListener("drop", (event) => event.preventDefault());
});
const showPreview = (event) => {
const target = event.target;
const files = target.files;
if (files.length > 0) {
if (files[0]?.name?.toLowerCase()?.includes(".mp4")) {
videoInput = URL.createObjectURL(files[0]);
} else {
const src = URL.createObjectURL(files[0]);
const preview = document.getElementById("image-preview");
preview.src = src;
}
}
};
let inputValue = value;
//$: value = useTitle === false ? $linkTitle : '';
let counterColor;
$: counter = `${inputValue.length}/${maxLength}`;
$: {
if (inputValue.length > maxLength) {
counterColor = "text-error";
@ -101,19 +77,6 @@
}
*/
function handleDrop(e) {
e.preventDefault();
let element_id = e.detail;
}
const handleCancel = () => {
inputValue = "";
showVideo = false;
};
let isHovering = false;
$: {
if (inputValue) {
errors = null;
@ -122,130 +85,22 @@
</script>
<div class="form-control w-full max-w-2xl mb-2 {hidden ? 'hidden' : ''}">
<label for={id} class="label font-medium pb-1">
<label for={id} class="label pb-1">
<span class="text-white label-text">{label}</span>
</label>
<div class="relative">
{#if type === "file"}
<label
for={id}
class="flex flex-col items-center bg-secondary rounded-md cursor-pointer {inputValue.length ===
0
? 'p-10'
: ''} {isHovering ? 'ring-2' : ''}"
on:dragenter={() => (isHovering = true)}
on:dragleave={() => (isHovering = false)}
on:drop={handleDrop}
>
{#if inputValue.length !== 0}
<label
on:click={handleCancel}
class="btn btn-sm btn-circle bg-red-600 absolute right-0 -top-3 z-20"
>✕</label
>
<div
class="absolute inset-0 bg-cover object-fill bg-center bg-[#000]"
></div>
<img
class="w-auto max-h-[400px] object-fill bg-center bg-contain z-10 {showVideo
? 'hidden'
: ''} "
alt="Image preview"
id="image-preview"
loading="lazy"
/>
{:else}
{#if !isHovering}
<svg
class="w-10 h-10"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g
id="SVGRepo_tracerCarrier"
stroke-linecap="round"
stroke-linejoin="round"
></g><g id="SVGRepo_iconCarrier">
<path
opacity="0.4"
d="M22.0206 16.8198L18.8906 9.49978C18.3206 8.15978 17.4706 7.39978 16.5006 7.34978C15.5406 7.29978 14.6106 7.96978 13.9006 9.24978L12.0006 12.6598C11.6006 13.3798 11.0306 13.8098 10.4106 13.8598C9.78063 13.9198 9.15063 13.5898 8.64063 12.9398L8.42063 12.6598C7.71063 11.7698 6.83063 11.3398 5.93063 11.4298C5.03063 11.5198 4.26063 12.1398 3.75063 13.1498L2.02063 16.5998C1.40063 17.8498 1.46063 19.2998 2.19063 20.4798C2.92063 21.6598 4.19063 22.3698 5.58063 22.3698H18.3406C19.6806 22.3698 20.9306 21.6998 21.6706 20.5798C22.4306 19.4598 22.5506 18.0498 22.0206 16.8198Z"
fill="white"
></path>
<path
d="M6.96984 8.38012C8.83657 8.38012 10.3498 6.86684 10.3498 5.00012C10.3498 3.13339 8.83657 1.62012 6.96984 1.62012C5.10312 1.62012 3.58984 3.13339 3.58984 5.00012C3.58984 6.86684 5.10312 8.38012 6.96984 8.38012Z"
fill="white"
></path>
</g></svg
>
<span class="mt-2 mb-4 text-gray-200">Choose a file to upload</span>
{:else}
<svg
class="w-10 h-10"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
><path
fill="#9D64D9"
d="M6 20q-.825 0-1.413-.588T4 18v-3h2v3h12v-3h2v3q0 .825-.588 1.413T18 20H6Zm5-4V7.85l-2.6 2.6L7 9l5-5l5 5l-1.4 1.45l-2.6-2.6V16h-2Z"
/></svg
>
<span class="mt-2 mb-4 text-gray-200">Drop here to upload</span>
{/if}
<span class="text-xs sm:text-sm text-gray-400 m-auto mb-5">
We support jpg/jpeg, png, webp and mp4.
</span>
<span class="text-xs sm:text-sm text-gray-400 m-auto mb-5">
File must be smaller than 5MB.
</span>
<label
for={id}
class="cursor-pointer rounded-md sm:hover:bg-gray-300 bg-[#fff] text-sm text-black font-semibold w-auto p-3"
>
Choose File
</label>
{/if}
<input
class="hidden rounded text-gray-300"
{type}
{placeholder}
{required}
{disabled}
{id}
name={id}
value={inputValue}
accept="image"
on:change={showPreview}
on:input={handleInput}
autocomplete="off"
/>
{#if showVideo}
<div
class="absolute inset-0 bg-cover object-fill bg-center bg-[#000]"
></div>
<video controls class="w-auto max-h-[500px] z-10" src={videoInput}>
</video>
{/if}
</label>
{:else}
<input
class="input input-bordered w-full bg-secondary placeholder-gray-300 text-white whitespace-normal ring-2"
{type}
{placeholder}
{required}
{disabled}
{id}
name={id}
value={inputValue}
on:input={handleInput}
autocomplete="off"
/>
{/if}
{#if showCounter}
<div class="flex justify-end mt-1 -mb-1">
<span class={`label-text text-xs ${counterColor}`}>{counter}</span>
</div>
{/if}
<input
class="input input-bordered border border-gray-600 focus:outline-none w-full bg-secondary placeholder-gray-300 text-white whitespace-normal"
{type}
{placeholder}
{required}
{disabled}
{id}
name={id}
value={inputValue}
on:input={handleInput}
autocomplete="off"
/>
</div>
{#if errors}

View File

@ -154,7 +154,7 @@ const output = await response.json();
on:click={() => (form = [])}
id="userLogin"
for="userLogin"
class="cursor-pointer modal-backdrop bg-[#000] bg-opacity-[0.08]"
class="cursor-pointer modal-backdrop bg-[#000]/40"
></label>
<div
@ -1583,30 +1583,3 @@ const output = await response.json();
{/if}
</div>
</dialog>
<style>
.shake-logo {
animation-name: shake;
animation-duration: 0.5s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
}
@keyframes shake {
0% {
transform: rotate(0deg);
}
25% {
transform: rotate(10deg);
}
50% {
transform: rotate(0deg);
}
75% {
transform: rotate(-10deg);
}
100% {
transform: rotate(0deg);
}
}
</style>

View File

@ -151,7 +151,7 @@
></g
></svg
>
<span class="text-[#00FC50] text-xs font-medium"
<span class="text-[#00FC50] text-xs"
>+{changesPercentage?.toFixed(2)}%</span
>
{:else}
@ -169,7 +169,7 @@
></g
></svg
>
<span class="text-[#FF2F1F] text-xs font-medium"
<span class="text-[#FF2F1F] text-xs"
>{changesPercentage?.toFixed(2)}%
</span>
{/if}

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] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
displayList?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

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] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
displayList?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

View File

@ -427,7 +427,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
displayList?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

View File

@ -593,7 +593,7 @@
<tbody>
{#each volumeList as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
volumeList?.slice(0, 3)?.length &&
data?.user?.tier !== 'Pro'
@ -713,7 +713,7 @@
<tbody>
{#each openInterestList as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
openInterestList?.slice(0, 3)?.length &&
data?.user?.tier !== 'Pro'

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] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
displayList?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

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] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
displayList?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

View File

@ -754,7 +754,7 @@
<tbody>
{#each data?.user?.tier !== "Pro" ? displayList?.slice(0, 3) : displayList as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
rawData?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

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] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
displayList?.slice(0, 3)?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'

View File

@ -122,13 +122,13 @@
<tbody class="shadow-md">
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
Reported Revenue
</th>
{#each tableRevenue as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default"
class="text-white text-sm sm:text-[1rem] text-end bg-default"
>
{#if index !== 0}
{#if userTier !== "Pro"}
@ -162,13 +162,13 @@
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
Est. Revenue
</th>
{#each tableRevenueEst as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default"
class="text-white text-sm sm:text-[1rem] text-end bg-default"
>
{#if index !== 0}
{#if userTier !== "Pro"}
@ -202,7 +202,7 @@
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
Revenue Surprise
</th>
@ -258,13 +258,13 @@
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
Reported EPS
</th>
{#each tableEPS as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default"
class="text-white text-sm sm:text-[1rem] text-end bg-default"
>
{#if index !== 0}
{#if userTier !== "Pro"}
@ -298,13 +298,13 @@
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
Est. EPS
</th>
{#each tableEPSEst as item, index}
<td
class="text-white text-sm sm:text-[1rem] text-end font-medium bg-default"
class="text-white text-sm sm:text-[1rem] text-end bg-default"
>
{#if index !== 0}
{#if userTier !== "Pro"}
@ -338,7 +338,7 @@
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
EPS Surprise
</th>
@ -394,7 +394,7 @@
<tr class="bg-primary border-b-[#27272A]">
<th
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start font-medium border-b border-[#27272A]"
class="bg-primary whitespace-nowrap text-sm sm:text-[1rem] text-white text-start border-b border-[#27272A]"
>
Volatility
</th>

View File

@ -165,9 +165,7 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm"
>Price Sentiment</span
>
<span class=" text-gray-200 text-sm">Price Sentiment</span>
<span
class="text-start text-[1rem] sm:text-lg font-semibold {priceSentiment ===
'Bullish'
@ -183,12 +181,10 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm"
<span class=" text-gray-200 text-sm"
><span class="italic">R</span><sup>2</sup> Score</span
>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
>
<span class="text-start text-sm sm:text-[1rem] text-white">
{r2Score >= 65 ? "Good" : r2Score >= 50 ? "Moderate" : "Bad"}
</span>
</div>
@ -242,10 +238,8 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm">MAPE</span>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
>
<span class=" text-gray-200 text-sm">MAPE</span>
<span class="text-start text-sm sm:text-[1rem] text-white">
{mape <= 15 ? "Good" : mape <= 35 ? "Moderate" : "Bad"}
</span>
</div>

View File

@ -318,7 +318,7 @@
<div class="flex flex-col -mt-3 sm:-mt-5 w-full">
<div class="flex flex-row items-center w-full">
<span
class="text-white text-sm sm:text-md font-medium text-start mb-2 mr-auto mt-2"
class="text-white text-sm sm:text-md text-start mb-2 mr-auto mt-2"
>
{item?.name?.length > charNumber
? formatString(item?.name)?.slice(0, charNumber) +
@ -327,9 +327,7 @@
item?.value,
)}
</span>
<span
class="text-white text-sm sm:text-md font-medium ml-auto"
>
<span class="text-white text-sm sm:text-md ml-auto">
{(
(item?.value / totalGeographicRevenue) *
100

View File

@ -1,27 +1,26 @@
<script lang="ts">
import { cn } from "$lib/utils";
export let img: string;
export let name: string;
export let body: string;
import { cn } from "$lib/utils";
export let img: string;
export let name: string;
export let body: string;
</script>
<figure
class={cn(
"relative w-64 cursor-pointer overflow-hidden rounded-xl border p-4 border-gray-50/[.1] bg-gray-50/[.10] hover:bg-gray-50/[.15]",
// dark styles
"border-gray-50/[.1] bg-gray-50/[.10] hover:bg-gray-50/[.15]"
)}
>
<div class="flex flex-row items-center gap-2">
<img class="rounded-full w-8 h-8" alt="" src={img} />
<div class="flex flex-col">
<!-- svelte-ignore a11y-structure -->
<figcaption class="text-sm font-medium text-white">
{name}
</figcaption>
</div>
<figure
class={cn(
"relative w-64 cursor-pointer overflow-hidden rounded-xl border p-4 border-gray-50/[.1] bg-gray-50/[.10] hover:bg-gray-50/[.15]",
// dark styles
"border-gray-50/[.1] bg-gray-50/[.10] hover:bg-gray-50/[.15]",
)}
>
<div class="flex flex-row items-center gap-2">
<img class="rounded-full w-8 h-8" alt="" src={img} />
<div class="flex flex-col">
<!-- svelte-ignore a11y-structure -->
<figcaption class="text-sm text-white">
{name}
</figcaption>
</div>
<blockquote class="mt-2 text-sm text-left text-white">{body}</blockquote>
</figure>
</div>
<blockquote class="mt-2 text-sm text-left text-white">{body}</blockquote>
</figure>

View File

@ -23,7 +23,7 @@
</script>
<!--
<div class="w-full max-w-xl text-white font-medium text-sm sm:text-[1rem] flex flex-row justify-center items-center">
<div class="w-full max-w-xl text-white text-sm sm:text-[1rem] flex flex-row justify-center items-center">
{title?.replace('[%]','')} {condition} {value} {unit}
<label on:click={() => changeRuleCondition('under')} class="ml-5 cursor-pointer flex flex-row mr-2 justify-center items-center">

View File

@ -29,7 +29,7 @@
>
<label
on:click={handleScrollUp}
class="inline-flex items-center justify-center w-12 h-12 sm:w-full sm:h-10 font-medium bg-gray-700 sm:bg-[#FFEDE5] ml-1 mr-0 sm:mr-2 rounded-full cursor-pointer"
class="inline-flex items-center justify-center w-12 h-12 sm:w-full sm:h-10 bg-gray-700 sm:bg-[#FFEDE5] ml-1 mr-0 sm:mr-2 rounded-full cursor-pointer"
>
<svg
class="sm:hidden sm:ml-4 w-6 h-6 text-white inline-block"

View File

@ -532,7 +532,7 @@
>
</div>
<div class="text-white font-medium ml-auto">
<div class="text-white ml-auto">
{item?.type}
</div>
</div>
@ -564,7 +564,7 @@
>
</div>
<div class="text-white font-medium ml-auto">
<div class="text-white ml-auto">
{item?.type}
</div>
</div>

View File

@ -76,13 +76,11 @@
<div class="flex flex-col -mt-2 w-full">
<div class="flex flex-row items-center w-full">
<span
class="text-white text-sm sm:text-md font-medium text-start mb-2 mr-auto mt-2"
class="text-white text-sm sm:text-md text-start mb-2 mr-auto mt-2"
>
{formatString(item?.industry)}
</span>
<span
class="text-white text-sm sm:text-md font-medium ml-auto"
>
<span class="text-white text-sm sm:text-md ml-auto">
{item?.exposure <= 0.01
? "< 0.01%"
: item?.exposure?.toFixed(2) + "%"}

View File

@ -51,9 +51,7 @@
<div
class="w-auto p-4 sm:p-6 bg-default sm:bg-default rounded-md relative"
>
<h3 class="text-gray-300 font-medium text-sm uppercase mb-3">
Average Score
</h3>
<h3 class="text-gray-300 text-sm uppercase mb-3">Average Score</h3>
<div class="flex flex-row items-center justify-between">
<!--Start Big Circle-->
<div class="relative size-24 sm:size-28">
@ -180,13 +178,13 @@
<div
class="w-auto p-4 sm:p-6 bg-default sm:bg-default rounded-md relative"
>
<h3 class="text-gray-300 font-medium text-sm uppercase mb-3">
<h3 class="text-gray-300 text-sm uppercase mb-3">
Average Score Trend
</h3>
<div class="grid grid-cols-8 sm:grid-cols-9 -ml-2 sm:-ml-5 mt-7">
{#each sentimentList as item}
<div class="flex flex-col items-center">
<span class="text-white font-medium text-[1rem] mb-4">
<span class="text-white text-[1rem] mb-4">
{#if data?.user?.tier === "Pro"}
{item?.value !== 0 ? item?.value : "-"}
{:else if ["1M", "1Y"]?.includes(item?.label)}
@ -228,7 +226,7 @@
></div>
{/if}
</div>
<span class="text-white font-medium text-sm mt-4">
<span class="text-white text-sm mt-4">
{item?.label}
</span>
</div>

View File

@ -31,7 +31,7 @@
/></svg
>
<!--
<span class="font-medium text-[#D6D6DC] text-sm">
<span class=" text-[#D6D6DC] text-sm">
Share
</span>
-->

View File

@ -276,9 +276,7 @@
class="w-4 h-4 bg-[#fff] border-4 box-content border-[#27272A] rounded-full transform -translate-x-1/2"
aria-hidden="true"
></div>
<span
class="text-white text-sm sm:text-[1rem] font-medium inline-block"
>
<span class="text-white text-sm sm:text-[1rem] inline-block">
Others: {otherOwner >= 99.99
? 99.99
: otherOwner?.toFixed(2)}%
@ -294,9 +292,7 @@
class="w-4 h-4 bg-blue-500 border-4 box-content border-[#27272A] rounded-full transform -translate-x-1/2"
aria-hidden="true"
></div>
<span
class="text-white text-sm sm:text-[1rem] font-medium inline-block"
>
<span class="text-white text-sm sm:text-[1rem] inline-block">
Institutions: {institutionalOwner <= 0.01
? "< 0.01%"
: institutionalOwner?.toFixed(2) + "%"}
@ -331,12 +327,8 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 border border-gray-600 bg-primary rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-white text-sm sm:text-[1rem]"
>Put/Call</span
>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
>
<span class=" text-white text-sm sm:text-[1rem]">Put/Call</span>
<span class="text-start text-sm sm:text-[1rem] text-white">
{putCallRatio?.toFixed(3)}
</span>
</div>
@ -389,12 +381,9 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 border border-gray-600 bg-primary rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-white text-sm sm:text-[1rem]"
>Call Flow</span
>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
<span class=" text-white text-sm sm:text-[1rem]">Call Flow</span
>
<span class="text-start text-sm sm:text-[1rem] text-white">
{new Intl.NumberFormat("en", {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
@ -449,12 +438,8 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 border border-gray-600 bg-primary rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-white text-sm sm:text-[1rem]"
>Put Flow</span
>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
>
<span class=" text-white text-sm sm:text-[1rem]">Put Flow</span>
<span class="text-start text-sm sm:text-[1rem] text-white">
{new Intl.NumberFormat("en", {
minimumFractionDigits: 0,
maximumFractionDigits: 0,
@ -542,15 +527,13 @@
{#each displayList as item, index}
{#if item?.investorName?.length > 0}
<tr
class="border-b border-gray-800 odd:bg-odd sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] {index +
class="border-b border-gray-800 odd:bg-odd sm:hover:bg-[#245073]/10 {index +
1 ===
shareholderList?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'
: ''}"
>
<td
class="font-medium text-sm sm:text-[1rem] whitespace-nowrap"
>
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a
href={"/hedge-funds/" + item?.cik}
class="sm:hover:underline sm:hover:underline-offset-4 text-white"
@ -564,7 +547,7 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.ownership <= 0.01
? "< 0.01%"
@ -572,7 +555,7 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{@html item?.sharesNumber !== null
? abbreviateNumber(item?.sharesNumber, false, true)
@ -580,7 +563,7 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{#if item?.changeInSharesNumberPercentage >= 0}
<span class="text-[#00FC50]"
@ -600,7 +583,7 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.marketValue !== null
? abbreviateNumber(item?.marketValue)
@ -608,7 +591,7 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.weight <= 0.01
? "< 0.01%"

View File

@ -116,7 +116,7 @@
<span>Short Interest</span>
</td>
<td
class="whitespace-nowrap px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="whitespace-nowrap px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{abbreviateNumber(rawData?.sharesShort)}
</td>
@ -126,7 +126,7 @@
<span>Short Previous Month</span>
</td>
<td
class="whitespace-nowrap px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="whitespace-nowrap px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{abbreviateNumber(rawData?.sharesShortPriorMonth)}
</td>
@ -136,7 +136,7 @@
<span>Short % of Shares Out</span>
</td>
<td
class="whitespace-nowrap px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="whitespace-nowrap px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{rawData?.shortOutStandingPercent}%
</td>
@ -146,7 +146,7 @@
<span>Short % of Float</span>
</td>
<td
class="whitespace-nowrap px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="whitespace-nowrap px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{rawData?.shortFloatPercent}%
</td>
@ -156,7 +156,7 @@
<span>Short Ratio (days to cover)</span>
</td>
<td
class="whitespace-nowrap px-[5px] py-1.5 text-right font-medium xs:px-2.5 xs:py-2"
class="whitespace-nowrap px-[5px] py-1.5 text-right xs:px-2.5 xs:py-2"
>
{rawData?.shortRatio}
</td>

View File

@ -100,7 +100,7 @@
<div class="inline-block">
<a
href={`/stocks/${$stockTicker}/profile`}
class="w-full text-md mt-1 cursor-pointer font-medium sm:hover:text-white text-blue-400 sm:hover:underline"
class="w-full text-md mt-1 cursor-pointer sm:hover:text-white text-blue-400 sm:hover:underline"
>
[Show more]
</a>
@ -189,10 +189,8 @@
<div class="flex flex-col items-center w-full">
<div class="flex flex-row items-center w-full mt-5 mb-2">
<span class="text-white font-medium text-start mr-auto">
Buy
</span>
<span class="text-white text-md font-medium ml-auto">
<span class="text-white text-start mr-auto"> Buy </span>
<span class="text-white text-md ml-auto">
{buyCount}%
</span>
</div>
@ -205,10 +203,8 @@
<div class="flex flex-col items-center w-full">
<div class="flex flex-row items-center w-full mt-5 mb-2">
<span class="text-white font-medium text-start mr-auto">
Hold
</span>
<span class="text-white text-md font-medium ml-auto">
<span class="text-white text-start mr-auto"> Hold </span>
<span class="text-white text-md ml-auto">
{holdCount}%
</span>
</div>
@ -221,10 +217,8 @@
<div class="flex flex-col items-center w-full">
<div class="flex flex-row items-center w-full mt-5 mb-2">
<span class="text-white font-medium text-start mr-auto">
Sell
</span>
<span class="text-white text-md font-medium ml-auto">
<span class="text-white text-start mr-auto"> Sell </span>
<span class="text-white text-md ml-auto">
{sellCount}%
</span>
</div>

View File

@ -55,7 +55,7 @@
{#each similarTicker as item, index}
<tr
on:click={() => etfSelector(item?.symbol)}
class="shake-ticker sm:hover:text-white text-blue-400 cursor-pointer sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] bg-[#000] sm:bg-default border-b border-[#000] sm:border-[#27272A]"
class="shake-ticker sm:hover:text-white text-blue-400 cursor-pointer sm:hover:bg-[#245073]/10 bg-[#000] sm:bg-default border-b border-[#000] sm:border-[#27272A]"
>
{#if index <= 6}
<td class="">
@ -71,8 +71,7 @@
/>
</div>
<div class="flex flex-col ml-3 w-full">
<span class="text-sm font-medium">{item?.symbol}</span
>
<span class="text-sm">{item?.symbol}</span>
<span class="text-white text-sm">
{#if typeof item?.name !== "undefined"}
{item?.name?.length > 20
@ -129,7 +128,7 @@
<div
class="bg-default w-full p-1 flex flex-col items-center pb-5 h-auto rounded-b-[30px]"
>
<h2 class="text-center m-auto text-[1.1rem] font-medium text-white mt-5">
<h2 class="text-center m-auto text-[1.1rem] text-white mt-5">
Similar Ticker
</h2>
<div class="flex flex-col items-center mt-10 w-full">
@ -190,8 +189,7 @@
/>
</div>
<div class="flex flex-col ml-3 w-full">
<span class="text-blue-400 text-sm font-medium"
>{item?.symbol}</span
<span class="text-blue-400 text-sm">{item?.symbol}</span
>
<span class="text-white text-sm">
{#if typeof item?.name !== "undefined"}

View File

@ -57,7 +57,7 @@
{#each similarstock as item, index}
<tr
on:click={() => stockSelector(item?.symbol)}
class="shake-ticker sm:hover:text-white text-blue-400 cursor-pointer sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] bg-[#000] sm:bg-default border-b border-[#000] sm:border-[#27272A]"
class="shake-ticker sm:hover:text-white text-blue-400 cursor-pointer sm:hover:bg-[#245073]/10 bg-[#000] sm:bg-default border-b border-[#000] sm:border-[#27272A]"
>
{#if index <= 6}
<td class="whitespace-nowrap">
@ -73,7 +73,7 @@
/>
</div>
<div class="flex flex-col ml-3 w-full">
<span class="text-sm sm:text-[1rem] font-medium"
<span class="text-sm sm:text-[1rem]"
>{item?.symbol}</span
>
<span class="text-white text-sm">
@ -165,8 +165,7 @@
<td class="text-white whitespace-nowrap">
<div class="flex flex-row items-center">
<div class="flex flex-col w-full">
<span class="text-blue-400 text-sm font-medium"
>{item?.symbol}</span
<span class="text-blue-400 text-sm">{item?.symbol}</span
>
<span class="text-white text-sm">
{#if typeof item?.name !== "undefined"}

View File

@ -31,7 +31,7 @@
<div class="grid grid-cols-3 gap-x-4 gap-y-2 overflow-hidden">
<label
for="tickerModal"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs font-medium rounded-xl text-gray-200"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs rounded-xl text-gray-200"
>
Details
</label>
@ -39,7 +39,7 @@
<label
on:click={() => ($executiveClicked = true)}
for="executiveModal"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs font-medium rounded-xl text-gray-200"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs rounded-xl text-gray-200"
>
Executives
</label>
@ -47,24 +47,24 @@
<label
on:click={() => ($secFilingsClicked = true)}
for="secFilingModal"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs font-medium rounded-xl text-gray-200"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs rounded-xl text-gray-200"
>
SEC Filings
</label>
<!--
<label for="esgModal" class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs font-medium rounded-xl text-gray-200">
<label for="esgModal" class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs rounded-xl text-gray-200">
ESG Score
</label>
-->
<label
for="similarTickerModal"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs font-medium rounded-xl text-gray-200"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs rounded-xl text-gray-200"
>
Similar
</label>
<label
for="topETFTickerHolderModal"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs font-medium rounded-xl text-gray-200"
class="w-auto border border-gray-300 flex px-4 py-2 mb-2 justify-center items-center text-xs rounded-xl text-gray-200"
>
ETFs Holder
</label>

View File

@ -25,7 +25,7 @@
></g
></svg
>
<span class="text-[#00FC50] text-sm font-medium"
<span class="text-[#00FC50] text-sm"
>+{item?.changesPercentage?.toFixed(2)}%</span
>
{:else if item?.changesPercentage < 0}
@ -43,7 +43,7 @@
></g
></svg
>
<span class="text-[#FF2F1F] text-sm font-medium"
<span class="text-[#FF2F1F] text-sm"
>{item?.changesPercentage?.toFixed(2)}%</span
>
{/if}

View File

@ -64,13 +64,11 @@
<div class="flex flex-row items-center">
<div class="flex flex-col">
<span
class="text-slate-400 font-medium text-sm sm:text-md mb-2 mr-auto"
class="text-slate-400 text-sm sm:text-md mb-2 mr-auto"
>
Date
</span>
<span
class="text-white text-sm sm:text-md font-medium"
>
<span class="text-white text-sm sm:text-md">
{new Date(item?.date)?.toLocaleString("en-US", {
month: "short",
day: "numeric",
@ -82,13 +80,13 @@
<div class="flex flex-col ml-auto pr-3">
<div
class="text-slate-400 font-medium text-sm sm:text-md mb-2 ml-auto"
class="text-slate-400 text-sm sm:text-md mb-2 ml-auto"
>
From
<span class="text-white">{item?.denominator}</span>
</div>
<div
class="text-slate-400 font-medium text-sm sm:text-md ml-auto"
class="text-slate-400 text-sm sm:text-md ml-auto"
>
To
<span class="text-white">{item?.numerator}</span>

View File

@ -233,9 +233,7 @@
{#if activeIdx === i}
<div class="absolute inset-0 rounded-md bg-[#fff]"></div>
{/if}
<span
class="relative text-sm block font-medium duration-200 text-white"
>
<span class="relative text-sm block duration-200 text-white">
{item.title}
</span>
</button>
@ -280,7 +278,7 @@
aria-hidden="true"
></div>
<span
class="mt-2 sm:mt-0 text-white text-xs sm:text-md sm:font-medium inline-block"
class="mt-2 sm:mt-0 text-white text-xs sm:text-md sm: inline-block"
>
Notional Quantity
</span>

View File

@ -263,7 +263,7 @@
<label
on:click={loadSearchData}
for="tagSearchBarModal"
class="border border-slate-500 mb-2 flex flex-wrap pl-4 pr-4 py-2 m-1 mr-3 justify-between items-center text-sm font-medium rounded-xl cursor-pointer text-gray-200 hover:text-gray-100"
class="border border-slate-500 mb-2 flex flex-wrap pl-4 pr-4 py-2 m-1 mr-3 justify-between items-center text-sm rounded-xl cursor-pointer text-gray-200 hover:text-gray-100"
>
<svg
class="w-4 h-4 mr-2"
@ -381,7 +381,7 @@
>
</div>
<div class="text-white font-medium ml-auto">
<div class="text-white ml-auto">
{item?.type}
</div>
</div>
@ -413,7 +413,7 @@
>
</div>
<div class="text-white font-medium ml-auto">
<div class="text-white ml-auto">
{item?.type}
</div>
</div>
@ -459,7 +459,7 @@
d="M9.125 21.1L.7 12.7q-.15-.15-.213-.325T.425 12q0-.2.063-.375T.7 11.3l8.425-8.425q.35-.35.875-.35t.9.375q.375.375.375.875t-.375.875L3.55 12l7.35 7.35q.35.35.35.863t-.375.887q-.375.375-.875.375t-.875-.375Z"
/></svg
>
<span class="text-white text-md font-medium"> Return </span>
<span class="text-white text-md"> Return </span>
</label>
</div>
</dialog>
@ -563,7 +563,7 @@
>
</div>
<div class="text-white font-medium ml-auto mr-2">
<div class="text-white ml-auto mr-2">
{item?.type}
</div>
</div>
@ -598,7 +598,7 @@
>
</div>
<div class="text-white font-medium ml-auto mr-2">
<div class="text-white ml-auto mr-2">
{item?.type}
</div>
</div>

View File

@ -39,7 +39,7 @@
</svelte:head>
<div class="form-control w-full h-auto max-w-2xl {hidden ? 'hidden' : ''}">
<label for={id} class="label font-medium pb-1">
<label for={id} class="label pb-1">
<span class="label-text">{label}</span>
</label>

View File

@ -58,7 +58,7 @@
<tbody>
{#each topETFHolder as item, index}
<tr
class="sm:hover:text-white text-blue-400 sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] bg-[#000] sm:bg-default border-b border-[#000] sm:border-[#27272A]"
class="sm:hover:text-white text-blue-400 sm:hover:bg-[#245073]/10 bg-[#000] sm:bg-default border-b border-[#000] sm:border-[#27272A]"
>
{#if index <= 6}
<td>
@ -158,8 +158,7 @@
<td class="text-white whitespace-nowrap">
<div class="flex flex-row items-center">
<div class="flex flex-col w-full">
<span class="text-blue-400 text-sm font-medium"
>{item?.symbol}</span
<span class="text-blue-400 text-sm">{item?.symbol}</span
>
<span class="text-white text-sm">
{#if typeof item?.name !== "undefined"}

View File

@ -100,9 +100,7 @@
/>
</div>
<div class="flex flex-col ml-3 w-full">
<span class="text-sm font-medium"
>{item?.asset ?? "-"}</span
>
<span class="text-sm">{item?.asset ?? "-"}</span>
<span class="text-white text-sm">
{#if typeof item?.name !== "undefined"}
{item?.name?.length > 20

View File

@ -35,7 +35,7 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm"
<span class=" text-gray-200 text-sm"
>Trend Sentiment</span
>
<span
@ -53,9 +53,9 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm">Accuracy</span>
<span class=" text-gray-200 text-sm">Accuracy</span>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
class="text-start text-sm sm:text-[1rem] text-white"
>
{accuracy >= 65
? "Good"
@ -115,9 +115,9 @@
class="flex flex-row items-center flex-wrap w-full px-3 sm:px-5 bg-primary shadow-lg rounded-md h-20"
>
<div class="flex flex-col items-start">
<span class="font-medium text-gray-200 text-sm">Precision</span>
<span class=" text-gray-200 text-sm">Precision</span>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
class="text-start text-sm sm:text-[1rem] text-white"
>
{precision >= 65
? "Good"
@ -204,7 +204,7 @@
"Bullish"
? "exceed"
: "to be less than"} the previous price of
<span class="font-medium">${lastPrice ?? "n/a"}</span>.
<span class="">${lastPrice ?? "n/a"}</span>.
</div>
{:else}
<div class="flex justify-center items-center h-80">

View File

@ -45,13 +45,11 @@
class="h-18 w-[90px] sm:w-28 mt-5 rounded-xl flex flex-col justify-center items-center"
>
<img class="relative mb-2 rounded w-5 h-5" src={item?.image} />
<p
class="text-center text-white font-medium text-sm whitespace-normal mb-0.5"
>
<p class="text-center text-white text-sm whitespace-normal mb-0.5">
{item?.symbol}
</p>
<div
class="flex justify-center items-center m-auto font-medium text-xs sm:text-sm relative bottom-0"
class="flex justify-center items-center m-auto text-xs sm:text-sm relative bottom-0"
>
{#if item?.changesPercentage >= 0}
<svg

View File

@ -146,7 +146,7 @@
<div class="mt-10 text-center">
<a
href="/pricing"
class="mt-10 flex justify-center text-[1rem] items-center px-5 w-fit m-auto rounded-md btn font-semibold text-black bg-[#fff] sm:hover:bg-gray-300 transition duration-150 ease-in-out group"
class="mt-10 flex justify-center text-[1rem] items-center px-5 w-fit m-auto border-none rounded-md btn btn-lg font-semibold text-black bg-[#fff] sm:hover:bg-gray-300 transition duration-150 ease-in-out group"
>
Get Pro Membership
<span

View File

@ -1,19 +1,53 @@
<script lang='ts'>
export let state;
export let votes;
let color = state === 'active' ? '#0076FE' : '#D6D6DC'
<script lang="ts">
export let state;
export let votes;
let color = state === "active" ? "#0076FE" : "#D6D6DC";
</script>
<div class="{state === 'active' ? 'sm:hover:bg-[#102f52]' : 'sm:hover:bg-gray-700'} h-10 px-2 -ml-2 flex justify-center items-center rounded-md">
<svg class="inline-block w-4 h-4 mr-2 sm:mr-3 {state === 'active' ? '' : ''}" fill={color} version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 13.82 13.47" xml:space="preserve"><g class="dont-open-thread"><path d="M6.49,0.01C5.44,0.44-0.26,11.22,0.01,11.73c0.11,0.11,0.26,0.16,0.39,0.22c0.14,0.05,5.29,1.53,6.1,1.53
c0.67,0,6.83-1.99,6.96-2.06c0.13-0.07,0.27-0.15,0.35-0.28C14.02,10.39,7.55-0.42,6.49,0.01z"></path></g></svg>
<span class="text-sm font-medium text-[#D6D6DC] {state === 'active' ? 'text-[#0076FE]' : ''}">
{votes}
</span>
<svg class="rotate-180 inline-block w-4 h-4 mr-2 sm:mr-3 {state === 'active' ? '' : ''}" fill={color} version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 13.82 13.47" xml:space="preserve"><g class="dont-open-thread"><path d="M6.49,0.01C5.44,0.44-0.26,11.22,0.01,11.73c0.11,0.11,0.26,0.16,0.39,0.22c0.14,0.05,5.29,1.53,6.1,1.53
c0.67,0,6.83-1.99,6.96-2.06c0.13-0.07,0.27-0.15,0.35-0.28C14.02,10.39,7.55-0.42,6.49,0.01z"></path></g></svg>
<div
class="{state === 'active'
? 'sm:hover:bg-[#102f52]'
: 'sm:hover:bg-gray-700'} h-10 px-2 -ml-2 flex justify-center items-center rounded-md"
>
<svg
class="inline-block w-4 h-4 mr-2 sm:mr-3 {state === 'active' ? '' : ''}"
fill={color}
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
viewBox="0 0 13.82 13.47"
xml:space="preserve"
><g class="dont-open-thread"
><path
d="M6.49,0.01C5.44,0.44-0.26,11.22,0.01,11.73c0.11,0.11,0.26,0.16,0.39,0.22c0.14,0.05,5.29,1.53,6.1,1.53
c0.67,0,6.83-1.99,6.96-2.06c0.13-0.07,0.27-0.15,0.35-0.28C14.02,10.39,7.55-0.42,6.49,0.01z"
></path></g
></svg
>
<span
class="text-sm text-[#D6D6DC] {state === 'active' ? 'text-[#0076FE]' : ''}"
>
{votes}
</span>
<svg
class="rotate-180 inline-block w-4 h-4 mr-2 sm:mr-3 {state === 'active'
? ''
: ''}"
fill={color}
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
viewBox="0 0 13.82 13.47"
xml:space="preserve"
><g class="dont-open-thread"
><path
d="M6.49,0.01C5.44,0.44-0.26,11.22,0.01,11.73c0.11,0.11,0.26,0.16,0.39,0.22c0.14,0.05,5.29,1.53,6.1,1.53
c0.67,0,6.83-1.99,6.96-2.06c0.13-0.07,0.27-0.15,0.35-0.28C14.02,10.39,7.55-0.42,6.49,0.01z"
></path></g
></svg
>
</div>

View File

@ -104,7 +104,7 @@
>
{/if}
<div
class="text-white text-sm sm:text-[1rem] ml-auto font-medium"
class="text-white text-sm sm:text-[1rem] ml-auto"
>
{#if item?.changesPercentage >= 0}
<span class="text-[#00FC50] inline-block"

View File

@ -73,7 +73,7 @@
{#each watchList as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b-[#09090B]"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
>
<td
class="text-sm sm:text-[1rem] text-start border-b-[#09090B]"
@ -188,7 +188,7 @@
ago
</div>
<h2
class="text-start text-sm sm:text-md font-medium mb-2 shrink text-white"
class="text-start text-sm sm:text-md mb-2 shrink text-white"
>
{item.title}
</h2>

View File

@ -14,7 +14,7 @@
<AccordionPrimitive.Header {level} class="flex">
<AccordionPrimitive.Trigger
class={cn(
"cursor-pointer flex flex-1 items-center justify-between font-medium transition-all [&[data-state=open]>svg1]:rotate-180",
"cursor-pointer flex flex-1 items-center justify-between transition-all [&[data-state=open]>svg1]:rotate-180",
className,
)}
{...$$restProps}

View File

@ -1,21 +1,21 @@
<script lang="ts">
import type { HTMLAttributes } from "svelte/elements";
import type { HeadingLevel } from "./index.ts";
import { cn } from "$lib/utils.js";
import type { HTMLAttributes } from "svelte/elements";
import type { HeadingLevel } from "./index.ts";
import { cn } from "$lib/utils.js";
type $$Props = HTMLAttributes<HTMLHeadingElement> & {
level?: HeadingLevel;
};
type $$Props = HTMLAttributes<HTMLHeadingElement> & {
level?: HeadingLevel;
};
let className: $$Props["class"] = undefined;
export let level: $$Props["level"] = "h5";
export { className as class };
let className: $$Props["class"] = undefined;
export let level: $$Props["level"] = "h5";
export { className as class };
</script>
<svelte:element
this={level}
class={cn("mb-1 font-medium leading-none tracking-tight", className)}
{...$$restProps}
this={level}
class={cn("mb-1 leading-none tracking-tight", className)}
{...$$restProps}
>
<slot />
</svelte:element>
<slot />
</svelte:element>

View File

@ -3,7 +3,7 @@ import type { Button as ButtonPrimitive } from "bits-ui";
import Root from "./button.svelte";
const buttonVariants = tv({
base: "cursor-pointer inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
base: "cursor-pointer inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
variants: {
variant: {
default: "bg-primary text-primary-foreground",

View File

@ -1,19 +1,19 @@
<script lang="ts">
import { Calendar as CalendarPrimitive } from "bits-ui";
import { cn } from "$lib/utils.js";
import { Calendar as CalendarPrimitive } from "bits-ui";
import { cn } from "$lib/utils.js";
type $$Props = CalendarPrimitive.HeadingProps;
type $$Props = CalendarPrimitive.HeadingProps;
let className: $$Props["class"] = undefined;
export { className as class };
let className: $$Props["class"] = undefined;
export { className as class };
</script>
<CalendarPrimitive.Heading
let:headingValue
class={cn("text-sm font-medium", className)}
{...$$restProps}
let:headingValue
class={cn("text-sm ", className)}
{...$$restProps}
>
<slot {headingValue}>
{headingValue}
</slot>
<slot {headingValue}>
{headingValue}
</slot>
</CalendarPrimitive.Heading>

View File

@ -1,23 +1,23 @@
<script lang="ts">
import type { Dialog as DialogPrimitive } from "bits-ui";
import type { Command as CommandPrimitive } from "cmdk-sv";
import Command from "./command.svelte";
import * as Dialog from "$lib/components/shadcn/dialog/index.js";
import type { Dialog as DialogPrimitive } from "bits-ui";
import type { Command as CommandPrimitive } from "cmdk-sv";
import Command from "./command.svelte";
import * as Dialog from "$lib/components/shadcn/dialog/index.js";
type $$Props = DialogPrimitive.Props & CommandPrimitive.CommandProps;
type $$Props = DialogPrimitive.Props & CommandPrimitive.CommandProps;
export let open: $$Props["open"] = false;
export let value: $$Props["value"] = undefined;
export let open: $$Props["open"] = false;
export let value: $$Props["value"] = undefined;
</script>
<Dialog.Root bind:open {...$$restProps}>
<Dialog.Content class="overflow-hidden p-0 shadow-lg">
<Command
class="**:data-cmdk-group-heading:text-muted-foreground **:data-cmdk-group-heading:px-2 **:data-cmdk-group-heading:font-medium [&_[data-cmdk-group]:not([hidden])_~[data-cmdk-group]]:pt-0 **:data-cmdk-group:px-2 [&_[data-cmdk-input-wrapper]_svg]:h-5 [&_[data-cmdk-input-wrapper]_svg]:w-5 **:data-cmdk-input:h-12 **:data-cmdk-item:px-2 **:data-cmdk-item:py-3 [&_[data-cmdk-item]_svg]:h-5 [&_[data-cmdk-item]_svg]:w-5"
{...$$restProps}
bind:value
>
<slot />
</Command>
</Dialog.Content>
</Dialog.Root>
<Dialog.Content class="overflow-hidden p-0 shadow-lg">
<Command
class="**:data-cmdk-group-heading:text-muted-foreground **:data-cmdk-group-heading:px-2 **:data-cmdk-group-heading: [&_[data-cmdk-group]:not([hidden])_~[data-cmdk-group]]:pt-0 **:data-cmdk-group:px-2 [&_[data-cmdk-input-wrapper]_svg]:h-5 [&_[data-cmdk-input-wrapper]_svg]:w-5 **:data-cmdk-input:h-12 **:data-cmdk-item:px-2 **:data-cmdk-item:py-3 [&_[data-cmdk-item]_svg]:h-5 [&_[data-cmdk-item]_svg]:w-5"
{...$$restProps}
bind:value
>
<slot />
</Command>
</Dialog.Content>
</Dialog.Root>

View File

@ -1,18 +1,18 @@
<script lang="ts">
import { Command as CommandPrimitive } from "cmdk-sv";
import { cn } from "$lib/utils";
type $$Props = CommandPrimitive.GroupProps;
import { Command as CommandPrimitive } from "cmdk-sv";
import { cn } from "$lib/utils";
type $$Props = CommandPrimitive.GroupProps;
let className: string | undefined | null = undefined;
export { className as class };
let className: string | undefined | null = undefined;
export { className as class };
</script>
<CommandPrimitive.Group
class={cn(
"text-foreground **:data-cmdk-group-heading:text-muted-foreground overflow-hidden p-1 **:data-cmdk-group-heading:px-2 **:data-cmdk-group-heading:py-1.5 **:data-cmdk-group-heading:text-xs **:data-cmdk-group-heading:font-medium",
className
)}
{...$$restProps}
class={cn(
"text-foreground **:data-cmdk-group-heading:text-muted-foreground overflow-hidden p-1 **:data-cmdk-group-heading:px-2 **:data-cmdk-group-heading:py-1.5 **:data-cmdk-group-heading:text-xs **:data-cmdk-group-heading:",
className,
)}
{...$$restProps}
>
<slot />
</CommandPrimitive.Group>
<slot />
</CommandPrimitive.Group>

View File

@ -1,42 +1,42 @@
<script lang="ts">
import type { HTMLInputAttributes } from "svelte/elements";
import type { InputEvents } from "./index.ts";
import { cn } from "$lib/utils";
import type { HTMLInputAttributes } from "svelte/elements";
import type { InputEvents } from "./index.ts";
import { cn } from "$lib/utils";
type $$Props = HTMLInputAttributes;
type $$Events = InputEvents;
type $$Props = HTMLInputAttributes;
type $$Events = InputEvents;
let className: $$Props["class"] = undefined;
export let value: $$Props["value"] = undefined;
export { className as class };
let className: $$Props["class"] = undefined;
export let value: $$Props["value"] = undefined;
export { className as class };
// Workaround for https://github.com/sveltejs/svelte/issues/9305
// Fixed in Svelte 5, but not backported to 4.x.
export let readonly: $$Props["readonly"] = undefined;
// Workaround for https://github.com/sveltejs/svelte/issues/9305
// Fixed in Svelte 5, but not backported to 4.x.
export let readonly: $$Props["readonly"] = undefined;
</script>
<input
class={cn(
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus:border-transparent focus:ring-0 disabled:opacity-50",
className
)}
bind:value
{readonly}
on:blur
on:change
on:click
on:focus
on:focusin
on:focusout
on:keydown
on:keypress
on:keyup
on:mouseover
on:mouseenter
on:mouseleave
on:mousemove
on:paste
on:input
on:wheel|passive
{...$$restProps}
/>
class={cn(
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file: placeholder:text-muted-foreground focus:border-transparent focus:ring-0 disabled:opacity-50",
className,
)}
bind:value
{readonly}
on:blur
on:change
on:click
on:focus
on:focusin
on:focusout
on:keydown
on:keypress
on:keyup
on:mouseover
on:mouseenter
on:mouseleave
on:mousemove
on:paste
on:input
on:wheel|passive
{...$$restProps}
/>

View File

@ -1,21 +1,21 @@
<script lang="ts">
import { Label as LabelPrimitive } from "bits-ui";
import { cn } from "$lib/utils.js";
import { Label as LabelPrimitive } from "bits-ui";
import { cn } from "$lib/utils.js";
type $$Props = LabelPrimitive.Props;
type $$Events = LabelPrimitive.Events;
type $$Props = LabelPrimitive.Props;
type $$Events = LabelPrimitive.Events;
let className: $$Props["class"] = undefined;
export { className as class };
let className: $$Props["class"] = undefined;
export { className as class };
</script>
<LabelPrimitive.Root
class={cn(
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
className
)}
{...$$restProps}
on:mousedown
class={cn(
"text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
className,
)}
{...$$restProps}
on:mousedown
>
<slot />
</LabelPrimitive.Root>
<slot />
</LabelPrimitive.Root>

View File

@ -8,9 +8,6 @@
export { className as class };
</script>
<tfoot
class={cn("font-medium text-primary-foreground", className)}
{...$$restProps}
>
<tfoot class={cn(" text-primary-foreground", className)} {...$$restProps}>
<slot />
</tfoot>

View File

@ -1,19 +1,19 @@
<script lang="ts">
import type { HTMLThAttributes } from "svelte/elements";
import { cn } from "$lib/utils";
import type { HTMLThAttributes } from "svelte/elements";
import { cn } from "$lib/utils";
type $$Props = HTMLThAttributes;
type $$Props = HTMLThAttributes;
let className: $$Props["class"] = undefined;
export { className as class };
let className: $$Props["class"] = undefined;
export { className as class };
</script>
<th
class={cn(
"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
className
)}
{...$$restProps}
class={cn(
"h-12 px-4 text-left align-middle text-muted-foreground [&:has([role=checkbox])]:pr-0",
className,
)}
{...$$restProps}
>
<slot />
</th>
<slot />
</th>

View File

@ -24,7 +24,7 @@
-->
<div
class="mt-4 text-white font-medium text-md w-11/12 sm:w-full m-auto text-center"
class="mt-4 text-white text-md w-11/12 sm:w-full m-auto text-center"
>
The page was not found. If this error occurs persistenly please report
it to us via

View File

@ -265,7 +265,7 @@
side="left"
class="max-w-screen w-full sm:max-w-xs bg-[#141417] overflow-y-auto text-white"
>
<nav class=" grid gap-6 text-lg font-medium bg-[#141417]">
<nav class=" grid gap-6 text-lg bg-[#141417]">
<Sheet.Close asChild let:builder>
<Button
builders={[builder]}
@ -801,7 +801,7 @@
<div
class="relative w-full flex flex-row justify-end sm:justify-between items-center"
>
<div class="sm:w-full sm:ml-2 3xl:ml-[75px]">
<div class="sm:w-full sm:ml-2 2xl:ml-[75px]">
<Searchbar />
</div>
<NotificationBell {data} {hasUnreadElement} />

View File

@ -175,7 +175,7 @@
<tbody>
{#each analystList as item, index}
<tr
class="border-b border-[#27272A] sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd {index +
1 ===
rawData?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'
@ -193,7 +193,7 @@
<div class="flex flex-col items-start">
<a
href={"/analysts/" + item?.analystId}
class="sm:hover:text-white text-blue-400 font-medium"
class="sm:hover:text-white text-blue-400"
>{item?.analystName}
</a>
<!--<span class="text-white">{item?.companyName} </span>-->

View File

@ -337,7 +337,7 @@
href={sectorNavigation?.find(
(listItem) => listItem?.title === item,
)?.link}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-0"
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
>
{item}
</a>
@ -352,7 +352,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 bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-0"
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
>
{item}
</a>
@ -381,12 +381,12 @@
<tbody>
{#each stockList as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b-[#09090B]"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
>
<td class="hidden lg:table-cell"
><button
on:click={() => openGraph(item?.ticker)}
class="h-full pl-2 pr-2 align-middle lg:pl-3"
class="cursor-pointer h-full pl-2 pr-2 align-middle lg:pl-3"
><svg
class="w-5 h-5 text-icon {checkedSymbol ===
item?.ticker
@ -460,11 +460,11 @@
class="text-sm sm:text-[1rem] text-start whitespace-nowrap"
>
<div class="flex flex-col sm:flex-row items-start">
<span class="font-medium text-white mr-1"
<span class=" text-white mr-1"
>{item?.action_company}:</span
>
<span
class="font-medium {[
class=" {[
'Strong Buy',
'Buy',
'Outperform',
@ -520,7 +520,7 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.price !== null ? item?.price : "n/a"}
</td>
@ -530,19 +530,19 @@
? "before:content-['+'] text-[#00FC50]"
: item?.upside < 0 && item?.upside !== null
? 'text-[#FF2F1F]'
: 'text-white'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-white'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.upside !== null ? item?.upside + "%" : "n/a"}
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.ratings !== null ? item?.ratings : "n/a"}
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{new Date(item?.date).toLocaleString("en-US", {
month: "short",

View File

@ -393,7 +393,7 @@
</div>
</div>
<h2
class="text-center m-auto text-[1rem] sm:text-lg text-white font-medium pb-4"
class="text-center m-auto text-[1rem] sm:text-lg text-white pb-4"
>
Try Stocknear Platform for 30 days. No credit card required.
</h2>

View File

@ -43,7 +43,7 @@
</div>
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
class="text-white text-md text-center flex justify-center items-center"
>
unless it's family
</span>

View File

@ -220,13 +220,13 @@
</td>
<td
class="text-end text-sm sm:text-[1rem] font-medium text-white whitespace-nowrap"
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap"
>
{item?.price}
</td>
<td
class="text-white text-end text-sm sm:text-[1rem] font-medium border-b-[#09090B]"
class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]"
>
{#if item?.changesPercentage >= 0}
<span class="text-[#00FC50]"

View File

@ -1379,7 +1379,7 @@
class="w-full h-8"
on:keydown={(e) => (e?.key === "Enter" ? e.preventDefault() : "")}
>
<label for="search" class="text-sm font-medium text-gray-200 sr-only"
<label for="search" class="text-sm text-gray-200 sr-only"
>Search</label
>
<div class="relative w-full max-w-sm">

View File

@ -453,7 +453,7 @@
{#each day as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
>
<td class=" text-sm sm:text-[1rem]">
<HoverStockChart symbol={item?.symbol} />

View File

@ -454,7 +454,7 @@
{#each data?.user?.tier === "Pro" ? day : day?.slice(0, 6) as item, index}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
day?.slice(0, 6)?.length &&
data?.user?.tier !== 'Pro'

View File

@ -619,7 +619,7 @@
<tbody>
{#each day as item}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border border-gray-800"
>
<td class="text-white text-sm sm:text-[1rem]">
<label class="p-1.5 rounded-md"

View File

@ -869,70 +869,70 @@
{#each tableList as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border border-gray-800"
>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.date}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.month1}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.month2 !== null ? item?.month2 : "-"}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.month3}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.month6}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year1}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year2}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year3}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year5}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year7}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year10}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year20}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] text-end whitespace-nowrap"
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
>
{item?.year30}
</td>

View File

@ -405,7 +405,7 @@
<span class="text-white text-xs font-semibold">
{$etfTicker}
</span>
<span class="text-white font-medium text-sm">
<span class="text-white text-sm">
{#if $currentPortfolioPrice !== null && $currentPortfolioPrice !== 0}
{$currentPortfolioPrice}
{:else}
@ -997,10 +997,10 @@
: 'border-gray-600'}"
>
<div class="flex flex-col items-center w-full">
<span class="ml-1 text-white font-medium mr-auto">
<span class="ml-1 text-white mr-auto">
{item?.title}
</span>
<span class="ml-1 text-white text-sm font-medium mr-auto">
<span class="ml-1 text-white text-sm mr-auto">
{item?.ticker?.length}
{item?.ticker?.length !== 1 ? "Companies" : "Company"}
</span>

View File

@ -98,7 +98,7 @@
{dividendYield !== "0.00" ? dividendYield : "0"}%
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-l border-b border-contrast">
<div class="p-4 bp:p-5 sm:p-6 border-b border-gray-600">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
@ -111,9 +111,7 @@
{annualDividend !== "0.00" ? annualDividend : "0"}
</div>
</div>
<div
class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast border-contrast"
>
<div class="p-4 bp:p-5 sm:p-6 border-none">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
@ -132,7 +130,7 @@
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast">
<div class="p-4 bp:p-5 sm:p-6 border-t">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
@ -145,7 +143,7 @@
{payoutFrequency ? payoutFrequency : "n/a"}
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast">
<div class="p-4 bp:p-5 sm:p-6">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
@ -160,7 +158,7 @@
: "n/a"}
</div>
</div>
<div class="p-4 bp:p-5 sm:p-6 border-t border-r border-contrast">
<div class="p-4 bp:p-5 sm:p-6 border-t border-gray-600">
<label
class="mr-1 cursor-pointer flex flex-row items-center text-white text-[1rem]"
>
@ -211,9 +209,9 @@
</thead>
<tbody class="">
{#each rawData?.history as item}
<tr class="text-white odd:bg-odd border-b border-gray-800">
<tr class="text-white odd:bg-odd">
<td
class="text-start text-sm sm:text-[1rem] whitespace-nowrap text-white font-medium"
class="text-start text-sm sm:text-[1rem] whitespace-nowrap text-white"
>
{new Date(item?.date)?.toLocaleString("en-US", {
month: "short",
@ -281,32 +279,10 @@
* Dividend amounts are adjusted for stock splits when applicable.
</span>
{:else}
<h1
class="text-xl m-auto flex justify-center text-gray-200 mb-4 mt-10"
>
No history found
</h1>
<Infobox text="No dividend data found" />
{/if}
{/if}
</div>
</div>
</div>
</section>
<style>
.app {
height: 400px;
width: 100%;
}
@media (max-width: 560px) {
.app {
width: 100%;
height: 300px;
}
}
.chart {
width: 100%;
}
</style>

View File

@ -219,7 +219,7 @@
>Buy/Sell</span
>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
class="text-start text-sm sm:text-[1rem] text-white"
>
{buySellRatio?.toFixed(3)}
</span>
@ -281,7 +281,7 @@
>Dem/Rep</span
>
<span
class="text-start text-sm sm:text-[1rem] font-medium text-white"
class="text-start text-sm sm:text-[1rem] text-white"
>
{partyRatio?.toFixed(3)}
</span>
@ -347,7 +347,7 @@
<tbody>
{#each senateTradingList as item}
<tr
class="odd:bg-odd sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] border-b border-gray-800"
class="odd:bg-odd sm:hover:bg-[#245073]/10 border-b border-gray-800"
>
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap pb-3"

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] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
optionList?.slice(0, 3)?.length &&
data?.user?.tier !== 'Pro'

View File

@ -110,15 +110,13 @@
{#each etfProviderList as item, index}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
etfProviderList?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'
: ''}"
>
<td
class="text-sm sm:text-[1rem] whitespace-nowrap font-medium"
>
<td class="text-sm sm:text-[1rem] whitespace-nowrap">
<a
href={"/etf/etf-providers/" + item?.etfProvider}
class="sm:hover:underline sm:hover:underline-offset-4 text-white"
@ -128,25 +126,25 @@
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{abbreviateNumber(item?.totalAssets)}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{item?.funds}
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{item?.avgExpenseRatio}%
</td>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{item?.avgHoldings}
</td>

View File

@ -197,15 +197,13 @@
{#each etfProviderData as item, index}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
etfProviderData?.length && data?.user?.tier !== 'Pro'
? 'opacity-[0.1]'
: ''}"
>
<td
class="font-medium text-sm sm:text-[1rem] whitespace-nowrap"
>
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<HoverStockChart symbol={item?.symbol} assetType={"etf"} />
</td>
@ -244,19 +242,19 @@
</td>
<td
class="text-white font-medium text-end text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{abbreviateNumber(item?.totalAssets)}
</td>
<td
class="text-white font-medium text-end text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.numberOfHoldings}
</td>
<td
class="text-white font-medium text-end text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.expenseRatio}%
</td>

View File

@ -132,7 +132,7 @@
<tbody>
{#each etfData as item}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b-[#09090B]"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
>
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]"

View File

@ -184,8 +184,7 @@
maximumFractionDigits: 0,
}).format(item?.numberOfStocks)}
</span>
<span class="text-white font-medium text-sm"
># of Holdings</span
<span class="text-white text-sm"># of Holdings</span
>
</label>
@ -193,9 +192,7 @@
<span class="text-white text-[1rem] font-semibold">
{item?.turnover?.toFixed(2)}
</span>
<span class="text-white font-medium text-sm"
>Turnover</span
>
<span class="text-white text-sm">Turnover</span>
</div>
</div>
@ -226,7 +223,7 @@
</span>
{/if}
</div>
<span class="text-white font-medium text-sm"
<span class="text-white text-sm"
>3-Year Performance</span
>
</label>
@ -249,9 +246,7 @@
</span>
{/if}
</div>
<span class="text-white font-medium text-sm"
>Win Rate</span
>
<span class="text-white text-sm">Win Rate</span>
</div>
</div>
</div>

View File

@ -175,7 +175,7 @@
href={sectorNavigation?.find(
(listItem) => listItem?.title === item,
)?.link}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-0"
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
>
{item}
</a>
@ -190,7 +190,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 bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-0"
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
>
{item}
</a>

View File

@ -406,7 +406,7 @@
<span class="text-white text-xs font-semibold">
{$indexTicker}
</span>
<span class="text-white font-medium text-sm">
<span class="text-white text-sm">
{#if $currentPortfolioPrice !== null && $currentPortfolioPrice !== 0}
{$currentPortfolioPrice}
{:else}
@ -969,10 +969,10 @@
: 'border-gray-600'}"
>
<div class="flex flex-col items-center w-full">
<span class="ml-1 text-white font-medium mr-auto">
<span class="ml-1 text-white mr-auto">
{item?.title}
</span>
<span class="ml-1 text-white text-sm font-medium mr-auto">
<span class="ml-1 text-white text-sm mr-auto">
{item?.ticker?.length}
{item?.ticker?.length !== 1 ? "Companies" : "Company"}
</span>

View File

@ -419,7 +419,7 @@
<tbody>
{#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
optionList?.slice(0, 3)?.length &&
data?.user?.tier !== 'Pro'

View File

@ -575,7 +575,7 @@
<tbody>
{#each volumeList as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
volumeList?.slice(0, 3)?.length &&
data?.user?.tier !== 'Pro'
@ -689,7 +689,7 @@
<tbody>
{#each openInterestList as item, index}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800 {index +
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
1 ===
openInterestList?.slice(0, 3)?.length &&
data?.user?.tier !== 'Pro'

View File

@ -112,9 +112,9 @@
{#each displayList as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
>
<td class="font-medium text-sm sm:text-[1rem] whitespace-nowrap">
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a
href={`/list/industry/${item?.industry?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`}
class="sm:hover:underline sm:hover:underline-offset-4 text-white"
@ -132,19 +132,19 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{abbreviateNumber(item?.totalMarketCap) ?? "n/a"}
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgDividendYield?.toFixed(2) ?? "n/a"}%
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.pe?.toFixed(2) ?? "n/a"}
</td>
@ -152,7 +152,7 @@
<td
class=" {item?.profitMargin >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{abbreviateNumber(item?.profitMargin)}%
</td>
@ -160,7 +160,7 @@
<td
class="{item?.avgChange1D >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgChange1D?.toFixed(2) ?? "n/a"}%
</td>
@ -168,7 +168,7 @@
<td
class="{item?.avgChange1Y >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgChange1Y?.toFixed(2) ?? "n/a"}%
</td>

View File

@ -111,9 +111,9 @@
{#each displayList as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
>
<td class="font-medium text-sm sm:text-[1rem] whitespace-nowrap">
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
<a
href={sectorNavigation?.find(
(listItem) => listItem?.title === item?.sector,
@ -133,19 +133,19 @@
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{abbreviateNumber(item?.totalMarketCap) ?? "n/a"}
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgDividendYield?.toFixed(2) ?? "n/a"}%
</td>
<td
class="text-white text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.pe?.toFixed(2) ?? "n/a"}
</td>
@ -153,7 +153,7 @@
<td
class=" {item?.profitMargin >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end"
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
>
{abbreviateNumber(item?.profitMargin)}%
</td>
@ -161,7 +161,7 @@
<td
class="{item?.avgChange1M >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgChange1D?.toFixed(2) ?? "n/a"}%
</td>
@ -169,7 +169,7 @@
<td
class="{item?.avgChange1Y >= 0
? "before:content-['+'] text-[#00FC50]"
: 'text-[#FF2F1F]'} text-end font-medium text-sm sm:text-[1rem] whitespace-nowrap"
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{item?.avgChange1Y?.toFixed(2) ?? "n/a"}%
</td>

View File

@ -237,7 +237,7 @@
<td class="hidden lg:table-cell"
><button
on:click={() => openGraph(item?.symbol)}
class="h-full pl-2 pr-2 align-middle lg:pl-3"
class="cursor-pointer h-full pl-2 pr-2 align-middle lg:pl-3"
><svg
class="w-5 h-5 text-icon {checkedSymbol ===
item?.symbol
@ -275,13 +275,13 @@
</td>
<td
class="text-end text-sm sm:text-[1rem] font-medium text-white whitespace-nowrap"
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap"
>
{abbreviateNumber(item?.marketCap)}
</td>
<td
class="text-end text-sm sm:text-[1rem] whitespace-nowrap font-medium text-white"
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
>
{item?.price}
</td>
@ -298,13 +298,13 @@
</td>
<td
class="text-end text-sm sm:text-[1rem] font-medium text-white whitespace-nowrap"
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap"
>
{abbreviateNumber(item?.totalShares)}
</td>
<td
class="text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap {item?.transactionType ===
class="text-end text-sm sm:text-[1rem] whitespace-nowrap {item?.transactionType ===
'Buy'
? 'text-[#00FC50]'
: item?.transactionType === 'Sell'

View File

@ -91,7 +91,7 @@
<tbody>
{#each ipoList as item}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b-[#09090B]"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
>
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-start border-b-[#09090B] whitespace-nowrap"

View File

@ -169,7 +169,7 @@
{#each displayList as item}
<!-- row -->
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b border-gray-800"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
>
<td
class="text-white font-semibold sm:font-normal text-center text-sm sm:text-[1rem]"
@ -208,7 +208,7 @@
</td>
<td
class="text-white font-medium text-end text-sm sm:text-[1rem] whitespace-nowrap"
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
>
{abbreviateNumber(item?.totalAssets)}
</td>

View File

@ -120,7 +120,7 @@
<div class="w-full max-w-lg">
<a
href="/reset-password"
class="text-sm font-medium text-blue-400 sm:hover:text-white sm:hover:underline"
class="text-sm text-blue-400 sm:hover:text-white sm:hover:underline"
>Forgot Password?</a
>
</div>
@ -763,9 +763,8 @@
class="pb-1 text-sm w-full max-w-lg text-white flex justify-center items-center"
>
You don't have an account?
<a
href="/register"
class="text-blue-400 font-medium hover:underline ml-1">Sign up</a
<a href="/register" class="text-blue-400 hover:underline ml-1"
>Sign up</a
>
</p>
</form>

View File

@ -141,7 +141,7 @@
<a
href={"/stocks/" + item?.symbol}
class="px-2.5 text-sm py-0.5 rounded-md bg-white bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-1"
class="px-2.5 text-sm py-0.5 rounded-md bg-white/10 sm:hover:bg-white/20 ml-1"
>
{item?.symbol}
</a>

View File

@ -1723,7 +1723,7 @@
class="w-full h-8"
on:keydown={(e) => (e?.key === "Enter" ? e.preventDefault() : "")}
>
<label for="search" class="text-sm font-medium text-gray-200 sr-only"
<label for="search" class="text-sm text-gray-200 sr-only"
>Search</label
>
<div class="relative w-full max-w-sm">

View File

@ -295,9 +295,7 @@
loading="lazy"
/>
</div>
<span
class="text-white text-lg font-medium mt-2 mb-2"
>
<span class="text-white text-lg mt-2 mb-2">
{item?.representative}
</span>
<span class="text-white text-md mb-8">
@ -319,7 +317,7 @@
"en-US",
)}</span
>
<span class="text-slate-300 font-medium text-sm"
<span class="text-slate-300 text-sm"
>Total Trades</span
>
</label>
@ -338,7 +336,7 @@
)
: "n/a"}
</span>
<span class="text-slate-300 font-medium text-sm"
<span class="text-slate-300 text-sm"
>Last Traded</span
>
</div>

View File

@ -239,7 +239,7 @@
href={sectorNavigation?.find(
(listItem) => listItem?.title === item,
)?.link}
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-0"
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
>
{item}
</a>
@ -254,7 +254,7 @@
{#each 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 bg-opacity-[0.1] sm:hover:bg-opacity-[0.2] ml-0"
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
>
{item}
</a>
@ -318,12 +318,12 @@
<tbody class="p-0">
{#each tableData as item}
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-odd border-b-[#27272A] text-white"
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#27272A] text-white"
>
<td class="hidden lg:table-cell"
><button
on:click={() => openGraph(item?.ticker)}
class="h-full pl-2 pr-2 align-middle lg:pl-3"
class="cursor-pointer h-full pl-2 pr-2 align-middle lg:pl-3"
><svg
class="w-5 h-5 text-icon {(checkedSymbol ===
item?.ticker ?? item?.symbol)

View File

@ -109,28 +109,28 @@
<thead class="bg-default">
<tr class="">
<th
class=" text-start bg-default text-white text-sm font-medium sm:font-semibold"
class=" text-start bg-default text-white text-sm sm:font-semibold"
>
Person
</th>
<td
class="text-start bg-default text-white text-sm font-medium sm:font-semibold"
class="text-start bg-default text-white text-sm sm:font-semibold"
>
Company
</td>
<td
class="text-end bg-default text-white text-sm font-medium sm:font-semibold"
class="text-end bg-default text-white text-sm sm:font-semibold"
>
Date
</td>
<td
class="text-center bg-default text-white text-sm font-medium sm:font-semibold"
class="text-center bg-default text-white text-sm sm:font-semibold"
>
Amount
</td>
<td
class="text-white text-end text-sm font-medium sm:font-semibold"
class="text-white text-end text-sm sm:font-semibold"
>Type</td
>
</tr>

Some files were not shown because too many files have changed in this diff Show More