diff --git a/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx b/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx index 25ff92a191..8c09fb5bb5 100644 --- a/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx +++ b/apps/web/app/(use-page-wrapper)/(main-nav)/ShellMainAppDir.tsx @@ -27,7 +27,7 @@ export function ShellMainAppDir(props: LayoutProps) { {props.heading && (

{props.heading} diff --git a/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/RoutingLink.tsx b/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/RoutingLink.tsx index 3296ffb101..66dd20ea4b 100644 --- a/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/RoutingLink.tsx +++ b/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/RoutingLink.tsx @@ -183,7 +183,7 @@ function RoutingForm({ form, profile, ...restProps }: Props) {
-

+

{form.name}

{form.description ? ( diff --git a/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx b/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx index 5fd5aec102..126be37323 100644 --- a/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx +++ b/apps/web/app/(use-page-wrapper)/availability/[schedule]/skeleton.tsx @@ -19,7 +19,7 @@ export function AvailabilityScheduleSkeleton() { {/* Title section */}
- + {/* Title */} {/* Subtitle */}
diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/roles/_components/PbacOptInModal.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/roles/_components/PbacOptInModal.tsx index 42bad0b630..373a9de136 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/roles/_components/PbacOptInModal.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/organizations/roles/_components/PbacOptInModal.tsx @@ -51,7 +51,7 @@ export function PbacOptInModal({ open, onOpenChange, revalidateRolesPath }: Pbac
-

{t("pbac_opt_in_title")}

+

{t("pbac_opt_in_title")}

{t("pbac_opt_in_description")}

diff --git a/apps/web/app/icons/IconGrid.tsx b/apps/web/app/icons/IconGrid.tsx index 690ead0165..7a3f8d896c 100644 --- a/apps/web/app/icons/IconGrid.tsx +++ b/apps/web/app/icons/IconGrid.tsx @@ -10,7 +10,7 @@ export const IconGrid = (props: { iconClassName?: string; }) => (
-

{props.title}

+

{props.title}

{props.icons.map((icon) => { return ( diff --git a/apps/web/app/icons/page.tsx b/apps/web/app/icons/page.tsx index 43a9efe812..b15b850488 100644 --- a/apps/web/app/icons/page.tsx +++ b/apps/web/app/icons/page.tsx @@ -15,21 +15,32 @@ export async function generateMetadata(): Promise { return await _generateMetadataForStaticPage("Icons Showcase", "", undefined, undefined, "/icons"); } +const interFont = Inter({ subsets: ["latin"], variable: "--font-sans", preload: true, display: "swap" }); +const calFont = localFont({ + src: "../../fonts/CalSans-SemiBold.woff2", + variable: "--font-cal", + preload: true, + display: "swap", + weight: "600", +}); + export default function IconsPage() { const icons = Array.from(lucideIconList).sort() as IconName[]; return ( -
- -
-

Icons Showcase

- - +
+
+ +
+

Icons Showcase

+ + +
); diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index f3d1730209..70491f4800 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -1,4 +1,6 @@ import { dir } from "i18next"; +import { Inter } from "next/font/google"; +import localFont from "next/font/local"; import { headers, cookies } from "next/headers"; import React from "react"; @@ -13,7 +15,14 @@ import { AppRouterI18nProvider } from "./AppRouterI18nProvider"; import { SpeculationRules } from "./SpeculationRules"; import { Providers } from "./providers"; -import { fontHeading, fontSans } from "@coss/ui/fonts"; +const interFont = Inter({ subsets: ["latin"], variable: "--font-sans", preload: true, display: "swap" }); +const calFont = localFont({ + src: "../fonts/CalSans-SemiBold.woff2", + variable: "--font-cal", + preload: true, + display: "block", + weight: "600", +}); export const viewport = { width: "device-width", @@ -105,8 +114,16 @@ export default async function RootLayout({ children }: { children: React.ReactNo style={embedColorScheme ? { colorScheme: embedColorScheme as string } : undefined} suppressHydrationWarning data-nextjs-router="app"> + + +

{t("error_404")}

-

+

{t("feature_currently_disabled") ?? "Feature is currently disabled"}

@@ -114,7 +114,7 @@ export function NotFound({ host }: { host: string }) {

{t("error_404")}

-

+

{isBookingSuccessPage ? "Booking not found" : t("page_doesnt_exist")}

{isSubpage && pageType !== PageType.TEAM ? ( diff --git a/apps/web/components/PageWrapper.tsx b/apps/web/components/PageWrapper.tsx index a024215090..9a689a1dac 100644 --- a/apps/web/components/PageWrapper.tsx +++ b/apps/web/components/PageWrapper.tsx @@ -10,6 +10,8 @@ "use client"; import { DefaultSeo } from "next-seo"; +import { Inter } from "next/font/google"; +import localFont from "next/font/local"; import Head from "next/head"; import Script from "next/script"; @@ -31,6 +33,15 @@ export interface CalPageWrapper { PageWrapper?: AppProps["Component"]["PageWrapper"]; } +const interFont = Inter({ subsets: ["latin"], variable: "--font-sans", preload: true, display: "swap" }); +const calFont = localFont({ + src: "../fonts/CalSans-SemiBold.woff2", + variable: "--font-cal", + preload: true, + display: "swap", + weight: "600", +}); + function PageWrapper(props: AppProps) { const { Component, pageProps, err, router } = props; let pageStatus = "200"; @@ -76,6 +87,12 @@ function PageWrapper(props: AppProps) { dangerouslySetInnerHTML={{ __html: `window.CalComPageStatus = '${pageStatus}'` }} /> + {getLayout( diff --git a/apps/web/components/apps/AppPage.tsx b/apps/web/components/apps/AppPage.tsx index 6d0891efcc..61d9428a6b 100644 --- a/apps/web/components/apps/AppPage.tsx +++ b/apps/web/components/apps/AppPage.tsx @@ -343,7 +343,7 @@ export const AppPage = ({ src={logo} alt={name} /> -

{name}

+

{name}

= ({ children, title, subtitle }) = return (
-

{title}

+

{title}

{subtitle}

diff --git a/apps/web/components/apps/routing-forms/FormActions.tsx b/apps/web/components/apps/routing-forms/FormActions.tsx index 19a816164a..cb78efa728 100644 --- a/apps/web/components/apps/routing-forms/FormActions.tsx +++ b/apps/web/components/apps/routing-forms/FormActions.tsx @@ -95,7 +95,7 @@ function NewFormDialog({ !open && setNewFormDialogState(null)}>
-
diff --git a/apps/web/components/dialog/RerouteDialog.tsx b/apps/web/components/dialog/RerouteDialog.tsx index 5953ed557d..837db6f9a3 100644 --- a/apps/web/components/dialog/RerouteDialog.tsx +++ b/apps/web/components/dialog/RerouteDialog.tsx @@ -804,7 +804,7 @@ const RerouteDialogContentAndFooterWithFormResponse = ({
{form.name} diff --git a/apps/web/components/error/error-page.tsx b/apps/web/components/error/error-page.tsx index 8afd26bb5a..7111803332 100644 --- a/apps/web/components/error/error-page.tsx +++ b/apps/web/components/error/error-page.tsx @@ -71,7 +71,7 @@ export const ErrorPage: React.FC = (props) => { <>
-

{statusCode}

+

{statusCode}

It's not you, it's us.

diff --git a/apps/web/components/security/DisableUserImpersonation.tsx b/apps/web/components/security/DisableUserImpersonation.tsx index c0e2c02a83..b20c0573d8 100644 --- a/apps/web/components/security/DisableUserImpersonation.tsx +++ b/apps/web/components/security/DisableUserImpersonation.tsx @@ -21,7 +21,7 @@ const DisableUserImpersonation = ({ disableImpersonation }: { disableImpersonati
-

+

{t("user_impersonation_heading")}

diff --git a/apps/web/components/security/TwoFactorAuthSection.tsx b/apps/web/components/security/TwoFactorAuthSection.tsx index d61a341342..59928e33be 100644 --- a/apps/web/components/security/TwoFactorAuthSection.tsx +++ b/apps/web/components/security/TwoFactorAuthSection.tsx @@ -18,7 +18,7 @@ const TwoFactorAuthSection = ({ twoFactorEnabled }: { twoFactorEnabled: boolean
-

{t("2fa")}

+

{t("2fa")}

{enabled ? t("enabled") : t("disabled")} diff --git a/apps/web/components/security/TwoFactorModalHeader.tsx b/apps/web/components/security/TwoFactorModalHeader.tsx index 5b48c1b49f..0fbad2a581 100644 --- a/apps/web/components/security/TwoFactorModalHeader.tsx +++ b/apps/web/components/security/TwoFactorModalHeader.tsx @@ -7,7 +7,7 @@ const TwoFactorModalHeader = ({ title, description }: { title: string; descripti
-

{description}

diff --git a/apps/web/components/settings/platform/dashboard/oauth-clients-list/index.tsx b/apps/web/components/settings/platform/dashboard/oauth-clients-list/index.tsx index 39c03c26f0..bfbf086ae4 100644 --- a/apps/web/components/settings/platform/dashboard/oauth-clients-list/index.tsx +++ b/apps/web/components/settings/platform/dashboard/oauth-clients-list/index.tsx @@ -17,7 +17,7 @@ export const OAuthClientsList = ({ oauthClients, isDeleting, handleDelete }: OAu
-

+

OAuth Clients

diff --git a/apps/web/components/setup/ChooseLicense.tsx b/apps/web/components/setup/ChooseLicense.tsx index a95dc24f0c..e7168fb46e 100644 --- a/apps/web/components/setup/ChooseLicense.tsx +++ b/apps/web/components/setup/ChooseLicense.tsx @@ -39,7 +39,7 @@ const ChooseLicense = ( "bg-default cursor-pointer stack-y-2 rounded-md border p-4 hover:border-black", value === "FREE" && "ring-2 ring-black" )}> -

{t("agplv3_license")}

+

{t("agplv3_license")}

{t("free_license_fee")}

{t("forever_open_and_free")}

    @@ -52,7 +52,7 @@ const ChooseLicense = (
    -

    {t("custom_plan")}

    +

    {t("custom_plan")}

    {t("contact_sales")}

    Build on top of Cal.com

      diff --git a/apps/web/components/setup/LicenseSelection.tsx b/apps/web/components/setup/LicenseSelection.tsx index 17109e940e..5250018464 100644 --- a/apps/web/components/setup/LicenseSelection.tsx +++ b/apps/web/components/setup/LicenseSelection.tsx @@ -122,7 +122,7 @@ const LicenseSelection = ( "bg-default h-full cursor-pointer stack-y-2 rounded-md border p-4 hover:border-black", value === "FREE" && "ring-2 ring-black" )}> -

      {t("agplv3_license")}

      +

      {t("agplv3_license")}

      {t("free_license_fee")}

      {t("forever_open_and_free")}

        @@ -139,7 +139,7 @@ const LicenseSelection = ( "bg-default h-full cursor-pointer stack-y-2 rounded-md border p-4 hover:border-black", value === "EXISTING" && "ring-2 ring-black" )}> -

        {t("enter_license_key")}

        +

        {t("enter_license_key")}

        {t("enter_existing_license")}

        {t("enter_your_license_key")}

        diff --git a/apps/web/components/ui/AuthContainer.tsx b/apps/web/components/ui/AuthContainer.tsx index feebaad064..3846d94447 100644 --- a/apps/web/components/ui/AuthContainer.tsx +++ b/apps/web/components/ui/AuthContainer.tsx @@ -17,7 +17,7 @@ export default function AuthContainer(props: React.PropsWithChildren) { {props.showLogo && }

        - {props.heading &&

        {props.heading}

        } + {props.heading &&

        {props.heading}

        }
        {props.loading && (
        diff --git a/packages/coss-ui/src/fonts/CalSans-SemiBold.woff2 b/apps/web/fonts/CalSans-SemiBold.woff2 similarity index 100% rename from packages/coss-ui/src/fonts/CalSans-SemiBold.woff2 rename to apps/web/fonts/CalSans-SemiBold.woff2 diff --git a/apps/web/modules/auth/forgot-password/[id]/forgot-password-single-view.tsx b/apps/web/modules/auth/forgot-password/[id]/forgot-password-single-view.tsx index 5d096d9a07..66056bf1f4 100644 --- a/apps/web/modules/auth/forgot-password/[id]/forgot-password-single-view.tsx +++ b/apps/web/modules/auth/forgot-password/[id]/forgot-password-single-view.tsx @@ -23,7 +23,7 @@ function Success() { <>
        -

        +

        {t("password_updated")}

        @@ -41,7 +41,7 @@ function Expired() { <>
        -

        {t("whoops")}

        +

        {t("whoops")}

        {t("request_is_expired")}

        {t("request_is_expired_instructions")}

        diff --git a/apps/web/modules/auth/verify-view.tsx b/apps/web/modules/auth/verify-view.tsx index c025cb4386..36ab3dca21 100644 --- a/apps/web/modules/auth/verify-view.tsx +++ b/apps/web/modules/auth/verify-view.tsx @@ -172,7 +172,7 @@ export default function Verify({ EMAIL_FROM }: { EMAIL_FROM?: string }) { ) : ( )} -

        +

        {hasPaymentFailed ? t("your_payment_failed") : isPremiumUsername diff --git a/apps/web/modules/bookings/components/BookEventForm/BookFormAsModal.tsx b/apps/web/modules/bookings/components/BookEventForm/BookFormAsModal.tsx index 77a5af5db0..4c1c565de0 100644 --- a/apps/web/modules/bookings/components/BookEventForm/BookFormAsModal.tsx +++ b/apps/web/modules/bookings/components/BookEventForm/BookFormAsModal.tsx @@ -53,7 +53,7 @@ export const BookEventFormWrapperComponent = ({ } return ( <> -

        {t("confirm_your_details")}

        +

        {t("confirm_your_details")}

        (
        -

        {title}

        +

        {title}

        {children}
        diff --git a/apps/web/modules/bookings/views/bookings-single-view.tsx b/apps/web/modules/bookings/views/bookings-single-view.tsx index 6a8b95325f..c7d50efd98 100644 --- a/apps/web/modules/bookings/views/bookings-single-view.tsx +++ b/apps/web/modules/bookings/views/bookings-single-view.tsx @@ -1061,7 +1061,7 @@ export default function Success(props: PageProps) { ))}
        -

        {t("submitted_feedback")}

        +

        {t("submitted_feedback")}

        {rateValue < 4 ? t("how_can_we_improve") : t("most_liked")}