Merge branch 'main' of https://github.com/zen-browser/www
This commit is contained in:
1
public/uma.js
Normal file
1
public/uma.js
Normal file
@@ -0,0 +1 @@
|
||||
!function(){"use strict";(t=>{const{screen:{width:e,height:a},navigator:{language:r},location:n,localStorage:i,document:c,history:o}=t,{hostname:s,href:u}=n,{currentScript:l,referrer:d}=c;if(!l)return;const f="data-",m=l.getAttribute.bind(l),h=m(f+"website-id"),p=m(f+"host-url"),g=m(f+"tag"),y="false"!==m(f+"auto-track"),b="true"===m(f+"exclude-search"),v=m(f+"domains")||"",S=v.split(",").map((t=>t.trim())),w=`${(p||""||l.src.split("/").slice(0,-1).join("/")).replace(/\/$/,"")}/api/send`,N=`${e}x${a}`,T=/data-umami-event-([\w-_]+)/,A=f+"umami-event",x=300,O=t=>{if(t){try{const e=decodeURI(t);if(e!==t)return e}catch(e){return t}return encodeURI(t)}},U=t=>{try{const{pathname:e,search:a}=new URL(t);t=e+a}catch(t){}return b?t.split("?")[0]:t},j=()=>({website:h,hostname:s,screen:N,language:r,title:O(q),url:O(D),referrer:O(_),tag:g||void 0}),k=(t,e,a)=>{a&&(_=D,D=U(a.toString()),D!==_&&setTimeout(I,x))},E=()=>!h||i&&i.getItem("umami.disabled")||v&&!S.includes(s),L=async(t,e="event")=>{if(E())return;const a={"Content-Type":"application/json"};void 0!==R&&(a["x-umami-cache"]=R);try{const r=await fetch(w,{method:"POST",body:JSON.stringify({type:e,payload:t}),headers:a}),n=await r.text();return R=n}catch(t){}},$=()=>{B||(I(),(()=>{const t=(t,e,a)=>{const r=t[e];return(...e)=>(a.apply(null,e),r.apply(t,e))};o.pushState=t(o,"pushState",k),o.replaceState=t(o,"replaceState",k)})(),(()=>{const t=new MutationObserver((([t])=>{q=t&&t.target?t.target.text:void 0})),e=c.querySelector("head > title");e&&t.observe(e,{subtree:!0,characterData:!0,childList:!0})})(),c.addEventListener("click",(async t=>{const e=t=>["BUTTON","A"].includes(t),a=async t=>{const e=t.getAttribute.bind(t),a=e(A);if(a){const r={};return t.getAttributeNames().forEach((t=>{const a=t.match(T);a&&(r[a[1]]=e(t))})),I(a,r)}},r=t.target,i=e(r.tagName)?r:((t,a)=>{let r=t;for(let t=0;t<a;t++){if(e(r.tagName))return r;if(r=r.parentElement,!r)return null}})(r,10);if(!i)return a(r);{const{href:e,target:r}=i,c=i.getAttribute(A);if(c)if("A"===i.tagName){const o="_blank"===r||t.ctrlKey||t.shiftKey||t.metaKey||t.button&&1===t.button;if(c&&e)return o||t.preventDefault(),a(i).then((()=>{o||(n.href=e)}))}else if("BUTTON"===i.tagName)return a(i)}}),!0),B=!0)},I=(t,e)=>L("string"==typeof t?{...j(),name:t,data:"object"==typeof e?e:void 0}:"object"==typeof t?t:"function"==typeof t?t(j()):j()),K=t=>L({...j(),data:t},"identify");t.umami||(t.umami={track:I,identify:K});let R,B,D=U(u),_=d!==s?d:"",q=c.title;y&&!E()&&("complete"===c.readyState?$():c.addEventListener("readystatechange",$,!0))})(window)}();
|
||||
@@ -24,17 +24,11 @@ export default async function RootLayout({
|
||||
<html suppressHydrationWarning>
|
||||
<head>
|
||||
<link rel="me" href="https://fosstodon.org/@zenbrowser"></link>
|
||||
<script
|
||||
defer
|
||||
data-domain="zen-browser.app"
|
||||
src="https://plausible.io/js/script.js"
|
||||
></script>
|
||||
<link
|
||||
rel="alternate"
|
||||
type="application/rss+xml"
|
||||
title="Zen Browser Release Notes"
|
||||
href="https://www.zen-browser.app/feed.xml"
|
||||
/>
|
||||
{/* Analitics */}
|
||||
<script defer data-domain="zen-browser.app" src="https://plausible.io/js/script.js"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/gh/zen-browser/www/public/uma.js" data-host-url="https://uma.zen-browser.app" data-website-id="7148ef7c-5299-4ca1-9a18-9d6964e93b53" data-domains="zen-browser.app"></script>
|
||||
{/* End */}
|
||||
<link rel="alternate" type="application/rss+xml" title="Zen Browser Release Notes" href="https://www.zen-browser.app/feed.xml" />
|
||||
</head>
|
||||
<body className={inter.className}>
|
||||
<ThemeProvider attribute="class" defaultTheme="dark">
|
||||
|
||||
@@ -291,7 +291,7 @@ export default function CreateThemePage() {
|
||||
<div className="ml-4 h-11 w-11 rounded-lg border bg-[var(--zen-dialog-background)]"></div>
|
||||
</div>
|
||||
<div className="text-md mt-8 font-bold text-muted-foreground">
|
||||
Right now, we aren't taking more color themes for the browser,
|
||||
Right now, we aren't taking more color Mods for the browser,
|
||||
until we find a way to make it more accessible for everyone.
|
||||
However, you can still create your own theme and share it with the
|
||||
community.
|
||||
|
||||
@@ -85,7 +85,7 @@ function Question() {
|
||||
}
|
||||
|
||||
export default function Features() {
|
||||
const [feature, setFeature] = useState("item-1");
|
||||
const [feature, setFeature] = useState("");
|
||||
return (
|
||||
<section className="w-full flex-col" id="features">
|
||||
<div className="mx-auto mt-16 flex w-full flex-col bg-surface shadow md:w-5/6 md:rounded-md lg:w-3/4 lg:flex-row">
|
||||
@@ -98,16 +98,13 @@ export default function Features() {
|
||||
<p className="mt-4 text-lg text-gray-600 dark:text-gray-300">
|
||||
With Zen's Theme Store, you can customize your browsing experience
|
||||
to reflect your unique style and preferences. Choose from a wide
|
||||
array of themes, colors, and layouts to make Zen truly your own,
|
||||
array of Mods, colors, and layouts to make Zen truly your own,
|
||||
transforming your browser into a personalized digital space.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
onClick={() => window.open("/themes", "_self")}
|
||||
>
|
||||
View Theme Store
|
||||
</Button>
|
||||
<Link href="/themes" prefetch={false}>
|
||||
<Button className="mt-8">Browse Themes</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
@@ -122,12 +119,9 @@ export default function Features() {
|
||||
performance improvements.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
onClick={() => window.open("/download", "_self")}
|
||||
>
|
||||
Download Now
|
||||
</Button>
|
||||
<Link href="/download" prefetch={false}>
|
||||
<Button className="mt-8">Download Now</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -146,14 +140,9 @@ export default function Features() {
|
||||
browser.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
onClick={() =>
|
||||
window.open("https://github.com/zen-browser", "_blank")
|
||||
}
|
||||
>
|
||||
GitHub Page
|
||||
</Button>
|
||||
<a href="https://github.com/zen-browser" target="_blank">
|
||||
<Button className="mt-8">GitHub</Button>
|
||||
</a>
|
||||
</div>
|
||||
<div className="mt-14 w-full">
|
||||
<div className="flex items-center">
|
||||
@@ -247,12 +236,9 @@ export default function Features() {
|
||||
multitasking.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
onClick={() => window.open("/download", "_self")}
|
||||
>
|
||||
Download Now
|
||||
</Button>
|
||||
<Link href="/download" prefetch={false}>
|
||||
<Button className="mt-8">Download Now</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -307,24 +293,18 @@ export default function Features() {
|
||||
secure, giving you peace of mind as you explore the web.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
variant="ghost"
|
||||
onClick={() =>
|
||||
window.open("https://docs.zen-browser.app/security", "_blank")
|
||||
}
|
||||
>
|
||||
Security in Zen{" "}
|
||||
<ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
<Button
|
||||
className="mt-8"
|
||||
variant="ghost"
|
||||
onClick={() => window.open("/privacy-policy", "_blank")}
|
||||
>
|
||||
Your Privacy{" "}
|
||||
<ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
<a href="https://docs.zen-browser.app/security" target="_blank">
|
||||
<Button className="mt-8" variant="ghost">
|
||||
Security in Zen{" "}
|
||||
<ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
</a>
|
||||
<Link href="/privacy-policy" prefetch={false} target="_blank">
|
||||
<Button className="mt-8" variant="ghost">
|
||||
Your Privacy{" "}
|
||||
<ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -386,15 +366,13 @@ export default function Features() {
|
||||
focus on your work.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
onClick={() => window.open("/download", "_self")}
|
||||
>
|
||||
What are you waiting for?
|
||||
</Button>
|
||||
<Link href="/download" prefetch={false}>
|
||||
<Button className="mt-8">What are you waiting for?</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mx-auto mt-36 flex w-full flex-col bg-surface shadow md:w-5/6 md:rounded-md lg:w-3/4 lg:flex-row">
|
||||
<div className="relative flex w-full flex-col justify-center p-5 lg:w-1/2 lg:p-12">
|
||||
<h1 className="text-4xl font-medium text-gray-800 dark:text-gray-100">
|
||||
@@ -404,8 +382,9 @@ export default function Features() {
|
||||
<Accordion
|
||||
type="single"
|
||||
value={feature}
|
||||
onValueChange={setFeature}
|
||||
defaultValue="item-1"
|
||||
onValueChange={(value) =>
|
||||
setFeature(value === feature ? "" : value)
|
||||
}
|
||||
className="mt-8"
|
||||
>
|
||||
<AccordionItem value="item-1">
|
||||
@@ -429,13 +408,45 @@ export default function Features() {
|
||||
<AccordionContent>
|
||||
Zen Browser is built on top of Firefox, which is known for its
|
||||
security features. We also have additional security features
|
||||
like https only built into Zen Browser to help keep you safe
|
||||
like HTTPS only built into Zen Browser to help keep you safe
|
||||
online.
|
||||
</AccordionContent>
|
||||
</AccordionItem>
|
||||
</Accordion>
|
||||
</div>
|
||||
|
||||
<div className="relative h-auto overflow-hidden rounded-md lg:w-1/2">
|
||||
{feature === "" && (
|
||||
<div className="absolute flex h-full w-full items-center justify-center">
|
||||
<div className="flex w-full flex-col items-center justify-center space-y-6">
|
||||
<div className="flex h-fit w-full max-w-sm animate-fade-in items-center justify-center rounded-full border-2 border-white bg-surface p-4 shadow">
|
||||
<Logo className="h-10 w-10" />
|
||||
<span className="mx-4 text-4xl">+</span>
|
||||
<svg
|
||||
className="relative h-10 w-10 dark:fill-white"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fillOpacity="context-fill-opacity"
|
||||
>
|
||||
<path
|
||||
style={{ transform: "scale(2) translate(5%, 5%)" }}
|
||||
d="M10.39 0C8.948.788 7.987 2.025 7.767 3.66c-1.017.162-1.768.781-1.768.781s.72-.44 1.736-.511a4.04 4.04 0 0 1 3.789 2.034s-.758-.62-1.928-.468c1.315.68 1.872 2.002 1.701 3.369-.17 1.367-1.183 2.435-2.354 2.723-1.171.287-2.333.099-3.229-.61-.896-.708-1.251-1.533-1.305-2.254.213-.533.541-.812 1.1-1.092.558-.279 1.422-.283 1.572-.283s.8-.507.95-.894c-.726-.363-1.292-.65-1.696-.934-.404-.283-.492-.534-1.012-.898-.307-1.006-.021-1.955-.021-1.955s-1.043.437-1.93 1.49c0 0-.342-.338-.28-2.006-.427.155-1.366 1.004-1.947 1.92a7.277 7.277 0 0 0-.798 1.723A8.296 8.296 0 0 0-.003 8a8 8 0 0 0 16 0c0-2.256-.93-4.252-2.188-5.002 0 0 .542.932.813 2.43-.4-1.04-1.235-2.166-1.877-2.844-.643-.678-2.068-1.88-2.357-2.584z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex h-fit w-full max-w-sm animate-fade-in items-center justify-center rounded-full border-2 border-white bg-surface p-4 shadow">
|
||||
<LockClosedIcon className="h-10 w-10" />
|
||||
<span className="mx-4 text-4xl">+</span>
|
||||
<EyeClosedIcon className="h-10 w-10" />
|
||||
</div>
|
||||
<div className="flex h-fit w-full max-w-sm animate-fade-in items-center justify-center rounded-full border-2 border-white bg-surface p-4 shadow">
|
||||
<ShieldCheck className="h-10 w-10" />
|
||||
<span className="mx-4 text-4xl">+</span>
|
||||
<ShieldAlertIcon className="h-10 w-10" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<CachedImage
|
||||
width={1350}
|
||||
height={900}
|
||||
@@ -443,7 +454,7 @@ export default function Features() {
|
||||
alt="Zen Browser"
|
||||
className="robject-right ounded-md h-full w-full object-cover"
|
||||
/>
|
||||
{feature == "item-1" && (
|
||||
{feature === "item-1" && (
|
||||
<div className="absolute left-0 top-0 grid h-full w-full grid-rows-3">
|
||||
<div></div>
|
||||
<div className="tems-center m-auto flex h-fit w-fit animate-fade-in rounded-full border-2 border-white bg-surface p-4 shadow">
|
||||
@@ -470,7 +481,8 @@ export default function Features() {
|
||||
</a>
|
||||
</div>
|
||||
)}
|
||||
{feature == "item-2" && (
|
||||
|
||||
{feature === "item-2" && (
|
||||
<div className="absolute left-0 top-0 grid h-full w-full grid-rows-3">
|
||||
<div></div>
|
||||
<div className="tems-center m-auto flex h-fit w-fit animate-fade-in rounded-full border-2 border-white bg-surface p-4 shadow">
|
||||
@@ -488,7 +500,8 @@ export default function Features() {
|
||||
</a>
|
||||
</div>
|
||||
)}
|
||||
{feature == "item-3" && (
|
||||
|
||||
{feature === "item-3" && (
|
||||
<div className="absolute left-0 top-0 grid h-full w-full grid-rows-3">
|
||||
<div></div>
|
||||
<div className="tems-center m-auto flex h-fit w-fit animate-fade-in rounded-full border-2 border-white bg-surface p-4 shadow">
|
||||
@@ -508,6 +521,7 @@ export default function Features() {
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mx-auto mt-36 flex w-full flex-col bg-surface p-5 shadow md:w-5/6 md:rounded-md lg:w-3/4 lg:flex-row lg:p-12">
|
||||
<div className="flex flex-col justify-center p-16 lg:w-1/2">
|
||||
<h3 className="text-4xl font-medium text-gray-800 dark:text-gray-100">
|
||||
@@ -517,12 +531,9 @@ export default function Features() {
|
||||
Download Zen Browser now and experience the future of browsing.
|
||||
</p>
|
||||
<div className="relative">
|
||||
<Button
|
||||
className="mt-8"
|
||||
onClick={() => window.open("/download", "_self")}
|
||||
>
|
||||
Download Now
|
||||
</Button>
|
||||
<Link href="/download" prefetch={false}>
|
||||
<Button className="mt-8">Download Now</Button>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mx-2 h-[1px] border-t lg:h-[unset] lg:w-[1px] lg:border-l lg:border-t-0"></div>
|
||||
@@ -536,23 +547,20 @@ export default function Features() {
|
||||
cause.
|
||||
</p>
|
||||
<div className="relative mt-8 flex">
|
||||
<Button
|
||||
variant="ghost"
|
||||
onClick={() =>
|
||||
window.open("https://patreon.com/zen_browser", "_blank")
|
||||
}
|
||||
>
|
||||
Patreon <ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
<Button
|
||||
className="ml-8"
|
||||
variant="ghost"
|
||||
onClick={() =>
|
||||
window.open("https://ko-fi.com/zen_browser", "_blank")
|
||||
}
|
||||
>
|
||||
Ko-fi <ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
<a href="https://patreon.com/zen_browser" target="_blank">
|
||||
<Button data-umami-event="patreon-feature" variant="ghost">
|
||||
Patreon <ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
</a>
|
||||
<a href="https://ko-fi.com/zen_browser" target="_blank">
|
||||
<Button
|
||||
data-umami-event="ko-fi-feature"
|
||||
className="ml-8"
|
||||
variant="ghost"
|
||||
>
|
||||
Ko-fi <ExternalLinkIcon className="ml-4 h-4 w-4 opacity-50" />
|
||||
</Button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,7 +13,7 @@ export default function Footer() {
|
||||
<Logo />
|
||||
<div className="mt-auto">
|
||||
<h1 className="text-2xl font-bold opacity-80">Zen Browser</h1>
|
||||
<a href="https://uptime.zen-browser.app/" className="py-2 px-3 w-fit mt-2 cursor-pointer rounded-md shadow bg-surface flex items-center">
|
||||
<a data-umami-event="footer-status" href="https://uptime.zen-browser.app/" className="py-2 px-3 w-fit mt-2 cursor-pointer rounded-md shadow bg-surface flex items-center">
|
||||
<div className="rounded-full size-3 bg-green-500 relative shadow">
|
||||
<div className="rounded-full size-3 bg-green-500 animate-ping absolute top-[-0.2%] z-0" style={{ animationDuration: "1.7s" }}></div>
|
||||
</div>
|
||||
@@ -40,7 +40,7 @@ export default function Footer() {
|
||||
<h2 className="text-md font-bold opacity-80">Get Started</h2>
|
||||
<ul className="mt-4 font-normal opacity-70">
|
||||
<li>
|
||||
<a href="/themes">Themes</a>
|
||||
<a href="/themes">Mods</a>
|
||||
</li>
|
||||
<li className="mt-2">
|
||||
<a href="/download">Download</a>
|
||||
@@ -54,7 +54,7 @@ export default function Footer() {
|
||||
<h2 className="text-md font-bold opacity-80">Get Help</h2>
|
||||
<ul className="mt-4 font-normal opacity-70">
|
||||
<li>
|
||||
<a href="https://discord.com/servers/mauro-s-little-sweatshop-1088172780480114748">
|
||||
<a data-umami-event="footer-discord" href="https://discord.com/servers/mauro-s-little-sweatshop-1088172780480114748">
|
||||
Discord
|
||||
</a>
|
||||
</li>
|
||||
@@ -70,7 +70,7 @@ export default function Footer() {
|
||||
<a href="/about">About Us</a>
|
||||
</li>
|
||||
<li className="mt-2">
|
||||
<a href="/privacy-policy">Privacy Policy</a>
|
||||
<a data-umami-event="footer-privacy-policy" href="/privacy-policy">Privacy Policy</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -93,10 +93,10 @@ export default function Footer() {
|
||||
<h2 className="text-md mt-8 font-bold opacity-80">Support Us</h2>
|
||||
<ul className="mt-4 font-normal opacity-70">
|
||||
<li>
|
||||
<a href="https://patreon.com/zen_browser">Patreon</a>
|
||||
<a data-umami-event="patreon-fotter" href="https://patreon.com/zen_browser">Patreon</a>
|
||||
</li>
|
||||
<li className="mt-2">
|
||||
<a href="https://ko-fi.com/zen_browser">Ko-fi</a>
|
||||
<a data-umami-event="ko-fi-fotter" href="https://ko-fi.com/zen_browser">Ko-fi</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -17,9 +17,9 @@ export default function MarketplacePage({ themes }: { themes: ZenTheme[] }) {
|
||||
className="h-fit min-w-52 text-xs text-muted-foreground lg:mb-0"
|
||||
offsetTop={120}
|
||||
>
|
||||
<h1 className="text-4xl font-bold lg:text-7xl">Themes Store</h1>
|
||||
<h1 className="text-4xl font-bold lg:text-7xl">Mods Store</h1>
|
||||
<p className="mt-4 text-lg text-muted-foreground">
|
||||
Discover and install themes for Zen Browser.
|
||||
Discover and install Mods for Zen Browser.
|
||||
</p>
|
||||
<ThemesSearch
|
||||
input={searchInput}
|
||||
|
||||
@@ -93,8 +93,8 @@ export function Navigation() {
|
||||
<ListItem href="/download" title="Download">
|
||||
Start using Zen Browser today with just a few clicks.
|
||||
</ListItem>
|
||||
<ListItem href="/themes" title="Themes Store">
|
||||
Customize your browser with a variety of themes!
|
||||
<ListItem href="/themes" title="Mods Store">
|
||||
Customize your browser with a variety of Mods!
|
||||
</ListItem>
|
||||
<ListItem href="/release-notes" title="Release Notes">
|
||||
Stay up to date with the latest changes.
|
||||
@@ -109,20 +109,20 @@ export function Navigation() {
|
||||
</NavigationMenuTrigger>
|
||||
<NavigationMenuContent>
|
||||
<ul className="grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2 lg:w-[600px]">
|
||||
<ListItem
|
||||
<ListItem2
|
||||
title="Patreon"
|
||||
href="https://patreon.com/zen_browser?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink"
|
||||
>
|
||||
Support us on Patreon and get exclusive rewards and keep the
|
||||
project alive.
|
||||
</ListItem>
|
||||
<ListItem
|
||||
</ListItem2>
|
||||
<ListItem2
|
||||
title="Ko-Fi"
|
||||
href="https://ko-fi.com/zen_browser?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink"
|
||||
>
|
||||
Ko-fi is a way to support us with a one-time donation and help
|
||||
us keep the project alive.
|
||||
</ListItem>
|
||||
</ListItem2>
|
||||
</ul>
|
||||
</NavigationMenuContent>
|
||||
</NavigationMenuItem>
|
||||
@@ -173,4 +173,30 @@ const ListItem = React.forwardRef<
|
||||
</li>
|
||||
);
|
||||
});
|
||||
const ListItem2 = React.forwardRef<
|
||||
React.ElementRef<"a">,
|
||||
React.ComponentPropsWithoutRef<"a">
|
||||
>(({ className, title, children, ...props }, ref) => {
|
||||
return (
|
||||
<li>
|
||||
<NavigationMenuLink asChild>
|
||||
<a
|
||||
data-umami-event={title}
|
||||
ref={ref}
|
||||
className={ny(
|
||||
"block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
||||
className,
|
||||
)}
|
||||
{...props}
|
||||
>
|
||||
<div className="text-sm font-medium leading-none">{title}</div>
|
||||
<p className="line-clamp-2 text-sm leading-snug text-muted-foreground">
|
||||
{children}
|
||||
</p>
|
||||
</a>
|
||||
</NavigationMenuLink>
|
||||
</li>
|
||||
);
|
||||
});
|
||||
ListItem.displayName = "ListItem";
|
||||
ListItem.displayName = "ListItem2";
|
||||
|
||||
@@ -50,6 +50,7 @@ export default async function ThemePage({ themeID }: { themeID: string }) {
|
||||
<Button
|
||||
className="mt-4 hidden !rounded-lg"
|
||||
id="install-theme"
|
||||
data-umami-event={`theme-${theme.id}-install`}
|
||||
zen-theme-id={theme.id}
|
||||
>
|
||||
Install Theme 🎉
|
||||
@@ -57,6 +58,7 @@ export default async function ThemePage({ themeID }: { themeID: string }) {
|
||||
<Button
|
||||
className="mt-4 hidden !rounded-lg"
|
||||
id="install-theme-uninstall"
|
||||
data-umami-event={`theme-${theme.id}-uninstall`}
|
||||
zen-theme-id={theme.id}
|
||||
>
|
||||
Uninstall Theme
|
||||
|
||||
@@ -23,7 +23,7 @@ export default function ThemesSearch({
|
||||
type="text"
|
||||
value={input}
|
||||
onChange={(e) => setInput(e.target.value)}
|
||||
placeholder="Search themes"
|
||||
placeholder="Search Mods"
|
||||
className="w-full border-none bg-transparent text-black focus:border-none focus:outline-none focus:ring-0 dark:text-white"
|
||||
/>
|
||||
{/*
|
||||
|
||||
@@ -994,7 +994,7 @@ export const releaseNotes: ReleaseNote[] = [
|
||||
fixes: [
|
||||
{
|
||||
description: "The New Tab button is not visible",
|
||||
isse: 1640,
|
||||
issue: 1640,
|
||||
},
|
||||
{
|
||||
description: "The Unified Extensions button is not visible",
|
||||
@@ -1009,15 +1009,34 @@ export const releaseNotes: ReleaseNote[] = [
|
||||
},
|
||||
{
|
||||
description: "Fixed an issue with reordering tabs",
|
||||
},
|
||||
{
|
||||
description: "Fixed an issue with ⌘ keyboard shortcuts on macOS",
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "1.0.1-a.5",
|
||||
date: "24/09/2024",
|
||||
image: false,
|
||||
workflowId: 11020784612,
|
||||
extra: "This update is a small patch to fix some issues that weren't addressed in the previous release!",
|
||||
features: [
|
||||
"Moved application menu button to the right",
|
||||
"Added new shortcuts",
|
||||
"Collapsed tab sidebar is now smaller"
|
||||
],
|
||||
fixes: [
|
||||
{
|
||||
description: "Fixed issue with hovering over window control buttons (macOS)",
|
||||
},
|
||||
{
|
||||
description: "(Hopefully) resolved all issues with keyboard shortcuts",
|
||||
issue: 1629
|
||||
},
|
||||
|
||||
],
|
||||
}
|
||||
].reverse();
|
||||
|
||||
export function releaseNoteIsAlpha(note: ReleaseNote) {
|
||||
"use client";
|
||||
return note.version.includes("-a.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user