diff --git a/src/components/resume/templates/azurill.tsx b/src/components/resume/templates/azurill.tsx index 534146b0e..67083653d 100644 --- a/src/components/resume/templates/azurill.tsx +++ b/src/components/resume/templates/azurill.tsx @@ -1,5 +1,4 @@ import { EnvelopeIcon, GlobeIcon, MapPinIcon, PhoneIcon } from "@phosphor-icons/react"; -import { isRTL } from "@/utils/locale"; import { cn } from "@/utils/style"; import { getSectionComponent } from "../shared/get-section-component"; import { PageIcon } from "../shared/page-icon"; @@ -8,68 +7,61 @@ import { PagePicture } from "../shared/page-picture"; import { useResumeStore } from "../store/resume"; import type { TemplateProps } from "./types"; +const sectionClassName = cn( + // Heading Decoration in Sidebar Layout + "group-data-[layout=sidebar]:[&>h6]:px-4", + "group-data-[layout=sidebar]:[&>h6]:relative", + "group-data-[layout=sidebar]:[&>h6]:inline-flex", + "group-data-[layout=sidebar]:[&>h6]:items-center", + "group-data-[layout=sidebar]:[&>h6]:before:content-['']", + "group-data-[layout=sidebar]:[&>h6]:before:absolute", + "group-data-[layout=sidebar]:[&>h6]:before:left-0", + "group-data-[layout=sidebar]:[&>h6]:before:rounded-full", + "group-data-[layout=sidebar]:[&>h6]:before:size-2", + "group-data-[layout=sidebar]:[&>h6]:before:border", + "group-data-[layout=sidebar]:[&>h6]:before:border-(--page-primary-color)", + "group-data-[layout=sidebar]:[&>h6]:after:content-['']", + "group-data-[layout=sidebar]:[&>h6]:after:absolute", + "group-data-[layout=sidebar]:[&>h6]:after:right-0", + "group-data-[layout=sidebar]:[&>h6]:after:rounded-full", + "group-data-[layout=sidebar]:[&>h6]:after:size-2", + "group-data-[layout=sidebar]:[&>h6]:after:border", + "group-data-[layout=sidebar]:[&>h6]:after:border-(--page-primary-color)", + + // Section in Sidebar Layout + "group-data-[layout=sidebar]:[&_.section-item-header>div]:flex-col", + "group-data-[layout=sidebar]:[&_.section-item-header>div]:items-start", + + // Section in Main Layout + "group-data-[layout=main]:[&>.section-content]:relative", + "group-data-[layout=main]:[&>.section-content]:ml-4", + "group-data-[layout=main]:[&>.section-content]:pl-4", + "group-data-[layout=main]:[&>.section-content]:border-l", + "group-data-[layout=main]:[&>.section-content]:border-(--page-primary-color)", + + // Timeline Marker in Main Layout + "group-data-[layout=main]:[&>.section-content]:after:content-['']", + "group-data-[layout=main]:[&>.section-content]:after:absolute", + "group-data-[layout=main]:[&>.section-content]:after:top-5", + "group-data-[layout=main]:[&>.section-content]:after:left-0", + "group-data-[layout=main]:[&>.section-content]:after:size-2.5", + "group-data-[layout=main]:[&>.section-content]:after:translate-x-[-50%]", + "group-data-[layout=main]:[&>.section-content]:after:translate-y-[-50%]", + "group-data-[layout=main]:[&>.section-content]:after:rounded-full", + "group-data-[layout=main]:[&>.section-content]:after:border", + "group-data-[layout=main]:[&>.section-content]:after:border-(--page-primary-color)", + "group-data-[layout=main]:[&>.section-content]:after:bg-(--page-background-color)", +); + /** * Template: Azurill */ export function AzurillTemplate({ pageIndex, pageLayout }: TemplateProps) { const isFirstPage = pageIndex === 0; const { main, sidebar, fullWidth } = pageLayout; - const locale = useResumeStore((state) => state.resume.data.metadata.page.locale); - const rtlDirection = isRTL(locale); - - const sectionClassName = cn( - // Heading Decoration in Sidebar Layout - "group-data-[layout=sidebar]:[&>h6]:px-4", - "group-data-[layout=sidebar]:[&>h6]:relative", - "group-data-[layout=sidebar]:[&>h6]:inline-flex", - "group-data-[layout=sidebar]:[&>h6]:items-center", - "group-data-[layout=sidebar]:[&>h6]:before:content-['']", - "group-data-[layout=sidebar]:[&>h6]:before:absolute", - "group-data-[layout=sidebar]:[&>h6]:before:start-0", - "group-data-[layout=sidebar]:[&>h6]:before:rounded-full", - "group-data-[layout=sidebar]:[&>h6]:before:size-2", - "group-data-[layout=sidebar]:[&>h6]:before:border", - "group-data-[layout=sidebar]:[&>h6]:before:border-(--page-primary-color)", - "group-data-[layout=sidebar]:[&>h6]:after:content-['']", - "group-data-[layout=sidebar]:[&>h6]:after:absolute", - "group-data-[layout=sidebar]:[&>h6]:after:end-0", - "group-data-[layout=sidebar]:[&>h6]:after:rounded-full", - "group-data-[layout=sidebar]:[&>h6]:after:size-2", - "group-data-[layout=sidebar]:[&>h6]:after:border", - "group-data-[layout=sidebar]:[&>h6]:after:border-(--page-primary-color)", - - // Section in Sidebar Layout - "group-data-[layout=sidebar]:[&_.section-item-header>div]:flex-col", - "group-data-[layout=sidebar]:[&_.section-item-header>div]:items-start", - - // Section in Main Layout - "group-data-[layout=main]:[&>.section-content]:relative", - "group-data-[layout=main]:[&>.section-content]:ms-4", - "group-data-[layout=main]:[&>.section-content]:ps-4", - "group-data-[layout=main]:[&>.section-content]:border-s", - "group-data-[layout=main]:[&>.section-content]:border-(--page-primary-color)", - - // Timeline Marker in Main Layout - "group-data-[layout=main]:[&>.section-content]:after:content-['']", - "group-data-[layout=main]:[&>.section-content]:after:absolute", - "group-data-[layout=main]:[&>.section-content]:after:top-5", - "group-data-[layout=main]:[&>.section-content]:after:start-0", - "group-data-[layout=main]:[&>.section-content]:after:size-2.5", - rtlDirection - ? "group-data-[layout=main]:[&>.section-content]:after:[transform:translate(50%,-50%)]" - : "group-data-[layout=main]:[&>.section-content]:after:translate-x-[-50%]", - "group-data-[layout=main]:[&>.section-content]:after:translate-y-[-50%]", - "group-data-[layout=main]:[&>.section-content]:after:rounded-full", - "group-data-[layout=main]:[&>.section-content]:after:border", - "group-data-[layout=main]:[&>.section-content]:after:border-(--page-primary-color)", - "group-data-[layout=main]:[&>.section-content]:after:bg-(--page-background-color)", - ); return ( -
+
{isFirstPage &&
}
@@ -100,10 +92,10 @@ function Header() { const basics = useResumeStore((state) => state.resume.data.basics); return ( -
+
-
+

{basics.name}

{basics.headline}

diff --git a/src/components/resume/templates/bronzor.tsx b/src/components/resume/templates/bronzor.tsx index 535f2f455..96dea74a1 100644 --- a/src/components/resume/templates/bronzor.tsx +++ b/src/components/resume/templates/bronzor.tsx @@ -1,5 +1,4 @@ import { EnvelopeIcon, GlobeIcon, MapPinIcon, PhoneIcon } from "@phosphor-icons/react"; -import { isRTL } from "@/utils/locale"; import { cn } from "@/utils/style"; import { getSectionComponent } from "../shared/get-section-component"; import { PageIcon } from "../shared/page-icon"; @@ -22,14 +21,9 @@ const sectionClassName = cn( export function BronzorTemplate({ pageIndex, pageLayout }: TemplateProps) { const isFirstPage = pageIndex === 0; const { main, sidebar, fullWidth } = pageLayout; - const locale = useResumeStore((state) => state.resume.data.metadata.page.locale); - const rtlDirection = isRTL(locale); return ( -
+
{isFirstPage &&
}
diff --git a/src/components/resume/templates/chikorita.tsx b/src/components/resume/templates/chikorita.tsx index 5e738beac..0913a5a73 100644 --- a/src/components/resume/templates/chikorita.tsx +++ b/src/components/resume/templates/chikorita.tsx @@ -1,5 +1,4 @@ import { EnvelopeIcon, GlobeIcon, MapPinIcon, PhoneIcon } from "@phosphor-icons/react"; -import { isRTL } from "@/utils/locale"; import { cn } from "@/utils/style"; import { getSectionComponent } from "../shared/get-section-component"; import { PageIcon } from "../shared/page-icon"; @@ -34,16 +33,12 @@ const sectionClassName = cn( export function ChikoritaTemplate({ pageIndex, pageLayout }: TemplateProps) { const isFirstPage = pageIndex === 0; const { main, sidebar, fullWidth } = pageLayout; - const locale = useResumeStore((state) => state.resume.data.metadata.page.locale); - const rtlDirection = isRTL(locale); return ( -
+
{/* Sidebar Background */} {!fullWidth && ( -
+
)} {isFirstPage &&
} diff --git a/src/components/resume/templates/ditgar.tsx b/src/components/resume/templates/ditgar.tsx index f66413699..6fb8f48c7 100644 --- a/src/components/resume/templates/ditgar.tsx +++ b/src/components/resume/templates/ditgar.tsx @@ -1,4 +1,3 @@ -import { isRTL } from "@/utils/locale"; import { cn } from "@/utils/style"; import { getSectionComponent } from "../shared/get-section-component"; import { PageIcon } from "../shared/page-icon"; @@ -29,32 +28,18 @@ const sectionClassName = cn( export function DitgarTemplate({ pageIndex, pageLayout }: TemplateProps) { const isFirstPage = pageIndex === 0; const { main, sidebar, fullWidth } = pageLayout; - const locale = useResumeStore((state) => state.resume.data.metadata.page.locale); - const rtlDirection = isRTL(locale); const SummaryComponent = getSectionComponent("summary", { sectionClassName: cn(sectionClassName, "px-(--page-margin-x) pt-(--page-margin-y)"), }); return ( -
+
{/* Sidebar Background */} {(!fullWidth || isFirstPage) && ( -
+
)} -
- {isFirstPage &&
} -
-
{(!fullWidth || isFirstPage) && (