Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 49 additions & 20 deletions apps/web/src/components/footer.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Link, useRouterState } from "@tanstack/react-router";
import { ExternalLinkIcon, MailIcon } from "lucide-react";

function getMaxWidthClass(pathname: string): string {
const isBlogOrDocs =
Expand Down Expand Up @@ -58,7 +59,7 @@ export function Footer() {

<div className="grid grid-cols-2 sm:grid-cols-4 gap-8">
<div>
<h3 className="text-sm font-semibold text-neutral-900 mb-4">
<h3 className="text-sm font-semibold text-neutral-900 mb-4 font-serif">
Product
</h3>
<ul className="space-y-3">
Expand Down Expand Up @@ -99,16 +100,17 @@ export function Footer() {
href="https://github.com/fastrepl/hyprnote"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
GitHub
<ExternalLinkIcon className="size-3" />
</a>
</li>
</ul>
</div>

<div>
<h3 className="text-sm font-semibold text-neutral-900 mb-4">
<h3 className="text-sm font-semibold text-neutral-900 mb-4 font-serif">
Resources
</h3>
<ul className="space-y-3">
Expand All @@ -123,19 +125,21 @@ export function Footer() {
<li>
<a
href="mailto:support@hyprnote.com"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
Support
<MailIcon className="size-3" />
</a>
</li>
<li>
<a
href="https://github.com/fastrepl/hyprnote/discussions"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
Discussions
<ExternalLinkIcon className="size-3" />
</a>
</li>
<li>
Expand All @@ -146,14 +150,6 @@ export function Footer() {
Pricing
</Link>
</li>
<li>
<Link
to="/press-kit"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
>
Press Kit
</Link>
</li>
<li>
<Link
to="/gallery"
Expand All @@ -166,7 +162,7 @@ export function Footer() {
</div>

<div>
<h3 className="text-sm font-semibold text-neutral-900 mb-4">
<h3 className="text-sm font-semibold text-neutral-900 mb-4 font-serif">
Company
</h3>
<ul className="space-y-3">
Expand Down Expand Up @@ -196,17 +192,25 @@ export function Footer() {
</li>
<li>
<Link
to="/enterprise"
to="/press-kit"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
>
Press Kit
</Link>
</li>
<li>
<Link
to="/opensource"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
>
Enterprise
Open Source
</Link>
</li>
</ul>
</div>

<div>
<h3 className="text-sm font-semibold text-neutral-900 mb-4">
<h3 className="text-sm font-semibold text-neutral-900 mb-4 font-serif">
Social
</h3>
<ul className="space-y-3">
Expand All @@ -215,29 +219,54 @@ export function Footer() {
href="/x"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
Twitter
<ExternalLinkIcon className="size-3" />
</a>
</li>
<li>
<a
href="https://bsky.app/profile/hyprnote.bsky.social"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
Bluesky
<ExternalLinkIcon className="size-3" />
</a>
</li>
<li>
<a
href="https://www.reddit.com/r/Hyprnote/"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
Reddit
<ExternalLinkIcon className="size-3" />
</a>
</li>
<li>
<a
href="/discord"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
Discord
<ExternalLinkIcon className="size-3" />
</a>
</li>
<li>
<a
href="/youtube"
target="_blank"
rel="noopener noreferrer"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors"
className="text-sm text-neutral-600 hover:text-stone-600 transition-colors inline-flex items-center gap-1"
>
YouTube
<ExternalLinkIcon className="size-3" />
</a>
</li>
</ul>
Expand Down
42 changes: 21 additions & 21 deletions apps/web/src/routeTree.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import { Route as ApiTemplatesRouteImport } from './routes/api/templates'
import { Route as ViewSecurityRouteImport } from './routes/_view/security'
import { Route as ViewPricingRouteImport } from './routes/_view/pricing'
import { Route as ViewPressKitRouteImport } from './routes/_view/press-kit'
import { Route as ViewOpensourceRouteImport } from './routes/_view/opensource'
import { Route as ViewFreeRouteImport } from './routes/_view/free'
import { Route as ViewFileTranscriptionRouteImport } from './routes/_view/file-transcription'
import { Route as ViewFaqRouteImport } from './routes/_view/faq'
Expand Down Expand Up @@ -63,7 +64,6 @@ import { Route as ViewShortcutsSlugRouteImport } from './routes/_view/shortcuts/
import { Route as ViewRoadmapSlugRouteImport } from './routes/_view/roadmap/$slug'
import { Route as ViewProductWorkflowsRouteImport } from './routes/_view/product/workflows'
import { Route as ViewProductSelfHostingRouteImport } from './routes/_view/product/self-hosting'
import { Route as ViewProductOpensourceRouteImport } from './routes/_view/product/opensource'
import { Route as ViewProductNotepadRouteImport } from './routes/_view/product/notepad'
import { Route as ViewProductMiniAppsRouteImport } from './routes/_view/product/mini-apps'
import { Route as ViewProductMemoryRouteImport } from './routes/_view/product/memory'
Expand Down Expand Up @@ -172,6 +172,11 @@ const ViewPressKitRoute = ViewPressKitRouteImport.update({
path: '/press-kit',
getParentRoute: () => ViewRouteRoute,
} as any)
const ViewOpensourceRoute = ViewOpensourceRouteImport.update({
id: '/opensource',
path: '/opensource',
getParentRoute: () => ViewRouteRoute,
} as any)
const ViewFreeRoute = ViewFreeRouteImport.update({
id: '/free',
path: '/free',
Expand Down Expand Up @@ -362,11 +367,6 @@ const ViewProductSelfHostingRoute = ViewProductSelfHostingRouteImport.update({
path: '/product/self-hosting',
getParentRoute: () => ViewRouteRoute,
} as any)
const ViewProductOpensourceRoute = ViewProductOpensourceRouteImport.update({
id: '/product/opensource',
path: '/product/opensource',
getParentRoute: () => ViewRouteRoute,
} as any)
const ViewProductNotepadRoute = ViewProductNotepadRouteImport.update({
id: '/product/notepad',
path: '/product/notepad',
Expand Down Expand Up @@ -505,6 +505,7 @@ export interface FileRoutesByFullPath {
'/faq': typeof ViewFaqRoute
'/file-transcription': typeof ViewFileTranscriptionRoute
'/free': typeof ViewFreeRoute
'/opensource': typeof ViewOpensourceRoute
'/press-kit': typeof ViewPressKitRouteWithChildren
'/pricing': typeof ViewPricingRoute
'/security': typeof ViewSecurityRoute
Expand Down Expand Up @@ -534,7 +535,6 @@ export interface FileRoutesByFullPath {
'/product/memory': typeof ViewProductMemoryRoute
'/product/mini-apps': typeof ViewProductMiniAppsRoute
'/product/notepad': typeof ViewProductNotepadRoute
'/product/opensource': typeof ViewProductOpensourceRoute
'/product/self-hosting': typeof ViewProductSelfHostingRoute
'/product/workflows': typeof ViewProductWorkflowsRoute
'/roadmap/$slug': typeof ViewRoadmapSlugRoute
Expand Down Expand Up @@ -581,6 +581,7 @@ export interface FileRoutesByTo {
'/faq': typeof ViewFaqRoute
'/file-transcription': typeof ViewFileTranscriptionRoute
'/free': typeof ViewFreeRoute
'/opensource': typeof ViewOpensourceRoute
'/press-kit': typeof ViewPressKitRouteWithChildren
'/pricing': typeof ViewPricingRoute
'/security': typeof ViewSecurityRoute
Expand Down Expand Up @@ -610,7 +611,6 @@ export interface FileRoutesByTo {
'/product/memory': typeof ViewProductMemoryRoute
'/product/mini-apps': typeof ViewProductMiniAppsRoute
'/product/notepad': typeof ViewProductNotepadRoute
'/product/opensource': typeof ViewProductOpensourceRoute
'/product/self-hosting': typeof ViewProductSelfHostingRoute
'/product/workflows': typeof ViewProductWorkflowsRoute
'/roadmap/$slug': typeof ViewRoadmapSlugRoute
Expand Down Expand Up @@ -662,6 +662,7 @@ export interface FileRoutesById {
'/_view/faq': typeof ViewFaqRoute
'/_view/file-transcription': typeof ViewFileTranscriptionRoute
'/_view/free': typeof ViewFreeRoute
'/_view/opensource': typeof ViewOpensourceRoute
'/_view/press-kit': typeof ViewPressKitRouteWithChildren
'/_view/pricing': typeof ViewPricingRoute
'/_view/security': typeof ViewSecurityRoute
Expand Down Expand Up @@ -691,7 +692,6 @@ export interface FileRoutesById {
'/_view/product/memory': typeof ViewProductMemoryRoute
'/_view/product/mini-apps': typeof ViewProductMiniAppsRoute
'/_view/product/notepad': typeof ViewProductNotepadRoute
'/_view/product/opensource': typeof ViewProductOpensourceRoute
'/_view/product/self-hosting': typeof ViewProductSelfHostingRoute
'/_view/product/workflows': typeof ViewProductWorkflowsRoute
'/_view/roadmap/$slug': typeof ViewRoadmapSlugRoute
Expand Down Expand Up @@ -743,6 +743,7 @@ export interface FileRouteTypes {
| '/faq'
| '/file-transcription'
| '/free'
| '/opensource'
| '/press-kit'
| '/pricing'
| '/security'
Expand Down Expand Up @@ -772,7 +773,6 @@ export interface FileRouteTypes {
| '/product/memory'
| '/product/mini-apps'
| '/product/notepad'
| '/product/opensource'
| '/product/self-hosting'
| '/product/workflows'
| '/roadmap/$slug'
Expand Down Expand Up @@ -819,6 +819,7 @@ export interface FileRouteTypes {
| '/faq'
| '/file-transcription'
| '/free'
| '/opensource'
| '/press-kit'
| '/pricing'
| '/security'
Expand Down Expand Up @@ -848,7 +849,6 @@ export interface FileRouteTypes {
| '/product/memory'
| '/product/mini-apps'
| '/product/notepad'
| '/product/opensource'
| '/product/self-hosting'
| '/product/workflows'
| '/roadmap/$slug'
Expand Down Expand Up @@ -899,6 +899,7 @@ export interface FileRouteTypes {
| '/_view/faq'
| '/_view/file-transcription'
| '/_view/free'
| '/_view/opensource'
| '/_view/press-kit'
| '/_view/pricing'
| '/_view/security'
Expand Down Expand Up @@ -928,7 +929,6 @@ export interface FileRouteTypes {
| '/_view/product/memory'
| '/_view/product/mini-apps'
| '/_view/product/notepad'
| '/_view/product/opensource'
| '/_view/product/self-hosting'
| '/_view/product/workflows'
| '/_view/roadmap/$slug'
Expand Down Expand Up @@ -1099,6 +1099,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ViewPressKitRouteImport
parentRoute: typeof ViewRouteRoute
}
'/_view/opensource': {
id: '/_view/opensource'
path: '/opensource'
fullPath: '/opensource'
preLoaderRoute: typeof ViewOpensourceRouteImport
parentRoute: typeof ViewRouteRoute
}
'/_view/free': {
id: '/_view/free'
path: '/free'
Expand Down Expand Up @@ -1358,13 +1365,6 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof ViewProductSelfHostingRouteImport
parentRoute: typeof ViewRouteRoute
}
'/_view/product/opensource': {
id: '/_view/product/opensource'
path: '/product/opensource'
fullPath: '/product/opensource'
preLoaderRoute: typeof ViewProductOpensourceRouteImport
parentRoute: typeof ViewRouteRoute
}
'/_view/product/notepad': {
id: '/_view/product/notepad'
path: '/product/notepad'
Expand Down Expand Up @@ -1601,6 +1601,7 @@ interface ViewRouteRouteChildren {
ViewFaqRoute: typeof ViewFaqRoute
ViewFileTranscriptionRoute: typeof ViewFileTranscriptionRoute
ViewFreeRoute: typeof ViewFreeRoute
ViewOpensourceRoute: typeof ViewOpensourceRoute
ViewPressKitRoute: typeof ViewPressKitRouteWithChildren
ViewPricingRoute: typeof ViewPricingRoute
ViewSecurityRoute: typeof ViewSecurityRoute
Expand All @@ -1620,7 +1621,6 @@ interface ViewRouteRouteChildren {
ViewProductMemoryRoute: typeof ViewProductMemoryRoute
ViewProductMiniAppsRoute: typeof ViewProductMiniAppsRoute
ViewProductNotepadRoute: typeof ViewProductNotepadRoute
ViewProductOpensourceRoute: typeof ViewProductOpensourceRoute
ViewProductSelfHostingRoute: typeof ViewProductSelfHostingRoute
ViewProductWorkflowsRoute: typeof ViewProductWorkflowsRoute
ViewRoadmapSlugRoute: typeof ViewRoadmapSlugRoute
Expand Down Expand Up @@ -1657,6 +1657,7 @@ const ViewRouteRouteChildren: ViewRouteRouteChildren = {
ViewFaqRoute: ViewFaqRoute,
ViewFileTranscriptionRoute: ViewFileTranscriptionRoute,
ViewFreeRoute: ViewFreeRoute,
ViewOpensourceRoute: ViewOpensourceRoute,
ViewPressKitRoute: ViewPressKitRouteWithChildren,
ViewPricingRoute: ViewPricingRoute,
ViewSecurityRoute: ViewSecurityRoute,
Expand All @@ -1676,7 +1677,6 @@ const ViewRouteRouteChildren: ViewRouteRouteChildren = {
ViewProductMemoryRoute: ViewProductMemoryRoute,
ViewProductMiniAppsRoute: ViewProductMiniAppsRoute,
ViewProductNotepadRoute: ViewProductNotepadRoute,
ViewProductOpensourceRoute: ViewProductOpensourceRoute,
ViewProductSelfHostingRoute: ViewProductSelfHostingRoute,
ViewProductWorkflowsRoute: ViewProductWorkflowsRoute,
ViewRoadmapSlugRoute: ViewRoadmapSlugRoute,
Expand Down
Loading
Loading