Merge version_1 into main #2

Merged
bender merged 5 commits from version_1 into main 2026-03-11 13:36:18 +00:00
5 changed files with 82 additions and 246 deletions

View File

@@ -43,13 +43,9 @@ export default function ContactPage() {
description="Our dedicated support team is ready to help you navigate our services and answer your questions about Canton Schwyz administration and resources."
buttons={[
{
text: "Contact Hotline",
href: "tel:+41418191124",
},
text: "Contact Hotline", href: "tel:+41418191124"},
{
text: "Email Support",
href: "mailto:info@sz.ch",
},
text: "Email Support", href: "mailto:info@sz.ch"},
]}
background={{ variant: "plain" }}
useInvertedBackground={false}
@@ -63,81 +59,51 @@ export default function ContactPage() {
{
items: [
{
label: "Services",
href: "/services",
},
label: "Services", href: "/services"},
{
label: "Job Portal",
href: "/jobs",
},
label: "Job Portal", href: "/jobs"},
{
label: "Permits",
href: "/permits",
},
label: "Permits", href: "/permits"},
],
},
{
items: [
{
label: "Current Topics",
href: "/news",
},
label: "Current Topics", href: "/news"},
{
label: "Newsletter",
href: "/newsletter",
},
label: "Newsletter", href: "/newsletter"},
{
label: "Press",
href: "/press",
},
label: "Press", href: "/press"},
],
},
{
items: [
{
label: "Directory",
href: "/directory",
},
label: "Directory", href: "/directory"},
{
label: "Gazette",
href: "/gazette",
},
label: "Gazette", href: "/gazette"},
{
label: "Laws",
href: "/laws",
},
label: "Laws", href: "/laws"},
],
},
{
items: [
{
label: "Facebook",
href: "https://facebook.com",
},
label: "Facebook", href: "https://facebook.com"},
{
label: "Instagram",
href: "https://instagram.com",
},
label: "Instagram", href: "https://instagram.com"},
{
label: "LinkedIn",
href: "https://linkedin.com",
},
label: "LinkedIn", href: "https://linkedin.com"},
],
},
{
items: [
{
label: "Impressum",
href: "/impressum",
},
label: "Impressum", href: "/impressum"},
{
label: "Datenschutz",
href: "/privacy",
},
label: "Datenschutz", href: "/privacy"},
{
label: "Nutzungshinweise",
href: "/terms",
},
label: "Nutzungshinweise", href: "/terms"},
],
},
]}

View File

@@ -43,18 +43,11 @@ export default function NewsPage() {
tag="What's New"
negativeCard={{
items: [
"Outdated information systems",
"Limited public engagement",
"Scattered resources",
],
"Outdated information systems", "Limited public engagement", "Scattered resources"],
}}
positiveCard={{
items: [
"Centralized information hub",
"Enhanced transparency",
"Easy access to all services",
"Regular updates and announcements",
],
"Centralized information hub", "Enhanced transparency", "Easy access to all services", "Regular updates and announcements"],
}}
textboxLayout="default"
animationType="slide-up"
@@ -68,32 +61,16 @@ export default function NewsPage() {
description="Serving thousands of residents and businesses with efficient, accessible government services."
metrics={[
{
id: "1",
value: "46000",
title: "Citizens Served",
description: "Active residents using our services and portals",
icon: Users,
id: "1", value: "46000", title: "Citizens Served", description: "Active residents using our services and portals", icon: Users,
},
{
id: "2",
value: "98",
title: "% Uptime",
description: "Reliable access to government services",
icon: CheckCircle,
id: "2", value: "98", title: "% Uptime", description: "Reliable access to government services", icon: CheckCircle,
},
{
id: "3",
value: "50",
title: "Services Online",
description: "Digital access to government functions",
icon: Zap,
id: "3", value: "50", title: "Services Online", description: "Digital access to government functions", icon: Zap,
},
{
id: "4",
value: "24",
title: "Hours Support",
description: "Dedicated customer assistance",
icon: Clock,
id: "4", value: "24", title: "Hours Support", description: "Dedicated customer assistance", icon: Clock,
},
]}
gridVariant="uniform-all-items-equal"
@@ -109,12 +86,7 @@ export default function NewsPage() {
description="Thousands of citizens rely on our services for their daily administrative needs."
tag="Community Trust"
names={[
"Local Businesses",
"Families & Residents",
"Community Organizations",
"Educational Institutions",
"Healthcare Providers",
]}
"Local Businesses", "Families & Residents", "Community Organizations", "Educational Institutions", "Healthcare Providers"]}
textboxLayout="default"
useInvertedBackground={true}
speed={35}

View File

@@ -87,17 +87,11 @@ export default function HomePage() {
background={{ variant: "plain" }}
avatars={[
{
src: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280722.jpg",
alt: "professional government official portrait headshot",
},
src: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280722.jpg", alt: "professional government official portrait headshot"},
{
src: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg",
alt: "government worker service team member photo",
},
src: "http://img.b2bpic.net/free-photo/smiling-young-businessman-suit-looking-camera-meeting_1163-4654.jpg", alt: "government worker service team member photo"},
{
src: "http://img.b2bpic.net/free-photo/young-adult-having-great-time-with-friends_23-2149286491.jpg",
alt: "community member citizen representative photo",
},
src: "http://img.b2bpic.net/free-photo/young-adult-having-great-time-with-friends_23-2149286491.jpg", alt: "community member citizen representative photo"},
]}
avatarText="Serving the Canton with transparency and efficiency"
buttons={[
@@ -113,41 +107,17 @@ export default function HomePage() {
description="Quick access to the most frequently used government services and resources for residents and businesses."
products={[
{
id: "taxes",
name: "Tax Services",
price: "24/7 Available",
variant: "Filing, Credits, Information",
imageSrc:
"http://img.b2bpic.net/free-vector/business-landing-page-template-with-photo_23-2148247060.jpg?_wi=1",
imageAlt: "Tax services portal",
},
id: "taxes", name: "Tax Services", price: "24/7 Available", variant: "Filing, Credits, Information", imageSrc:
"http://img.b2bpic.net/free-vector/business-landing-page-template-with-photo_23-2148247060.jpg", imageAlt: "Tax services portal"},
{
id: "police",
name: "ePolizei Portal",
price: "Secure Access",
variant: "Reports, Information, Support",
imageSrc:
"http://img.b2bpic.net/free-photo/male-administrator-using-chroma-key-display-digital-analysis_482257-126246.jpg?_wi=1",
imageAlt: "Police services",
},
id: "police", name: "ePolizei Portal", price: "Secure Access", variant: "Reports, Information, Support", imageSrc:
"http://img.b2bpic.net/free-photo/male-administrator-using-chroma-key-display-digital-analysis_482257-126246.jpg", imageAlt: "Police services"},
{
id: "jobs",
name: "Job Opportunities",
price: "Open Positions",
variant: "Career Listings, Applications",
imageSrc:
"http://img.b2bpic.net/free-photo/business-people-video-call-meeting_53876-30777.jpg?_wi=1",
imageAlt: "Employment opportunities",
},
id: "jobs", name: "Job Opportunities", price: "Open Positions", variant: "Career Listings, Applications", imageSrc:
"http://img.b2bpic.net/free-photo/business-people-video-call-meeting_53876-30777.jpg", imageAlt: "Employment opportunities"},
{
id: "permits",
name: "Permits & Licenses",
price: "Online Requests",
variant: "Apply, Track, Download",
imageSrc:
"http://img.b2bpic.net/free-photo/visa-application-form-smartphone_23-2149117760.jpg?_wi=1",
imageAlt: "Permits and licenses",
},
id: "permits", name: "Permits & Licenses", price: "Online Requests", variant: "Apply, Track, Download", imageSrc:
"http://img.b2bpic.net/free-photo/visa-application-form-smartphone_23-2149117760.jpg", imageAlt: "Permits and licenses"},
]}
textboxLayout="default"
gridVariant="two-columns-alternating-heights"
@@ -163,18 +133,11 @@ export default function HomePage() {
tag="What's New"
negativeCard={{
items: [
"Outdated information systems",
"Limited public engagement",
"Scattered resources",
],
"Outdated information systems", "Limited public engagement", "Scattered resources"],
}}
positiveCard={{
items: [
"Centralized information hub",
"Enhanced transparency",
"Easy access to all services",
"Regular updates and announcements",
],
"Centralized information hub", "Enhanced transparency", "Easy access to all services", "Regular updates and announcements"],
}}
textboxLayout="default"
animationType="slide-up"
@@ -188,32 +151,16 @@ export default function HomePage() {
description="Serving thousands of residents and businesses with efficient, accessible government services."
metrics={[
{
id: "1",
value: "46000",
title: "Citizens Served",
description: "Active residents using our services and portals",
icon: Users,
id: "1", value: "46000", title: "Citizens Served", description: "Active residents using our services and portals", icon: Users,
},
{
id: "2",
value: "98",
title: "% Uptime",
description: "Reliable access to government services",
icon: CheckCircle,
id: "2", value: "98", title: "% Uptime", description: "Reliable access to government services", icon: CheckCircle,
},
{
id: "3",
value: "50",
title: "Services Online",
description: "Digital access to government functions",
icon: Zap,
id: "3", value: "50", title: "Services Online", description: "Digital access to government functions", icon: Zap,
},
{
id: "4",
value: "24",
title: "Hours Support",
description: "Dedicated customer assistance",
icon: Clock,
id: "4", value: "24", title: "Hours Support", description: "Dedicated customer assistance", icon: Clock,
},
]}
gridVariant="uniform-all-items-equal"
@@ -229,12 +176,7 @@ export default function HomePage() {
description="Thousands of citizens rely on our services for their daily administrative needs."
tag="Community Trust"
names={[
"Local Businesses",
"Families & Residents",
"Community Organizations",
"Educational Institutions",
"Healthcare Providers",
]}
"Local Businesses", "Families & Residents", "Community Organizations", "Educational Institutions", "Healthcare Providers"]}
textboxLayout="default"
useInvertedBackground={true}
speed={35}

View File

@@ -83,41 +83,17 @@ export default function ServicesPage() {
description="Explore our comprehensive range of government services available to residents and businesses. Each service is designed to provide efficient, transparent access to Canton Schwyz resources."
products={[
{
id: "taxes",
name: "Tax Services",
price: "24/7 Available",
variant: "Filing, Credits, Information",
imageSrc:
"http://img.b2bpic.net/free-vector/business-landing-page-template-with-photo_23-2148247060.jpg?_wi=2",
imageAlt: "Tax services portal",
},
id: "taxes", name: "Tax Services", price: "24/7 Available", variant: "Filing, Credits, Information", imageSrc:
"http://img.b2bpic.net/free-vector/business-landing-page-template-with-photo_23-2148247060.jpg", imageAlt: "Tax services portal"},
{
id: "police",
name: "ePolizei Portal",
price: "Secure Access",
variant: "Reports, Information, Support",
imageSrc:
"http://img.b2bpic.net/free-photo/male-administrator-using-chroma-key-display-digital-analysis_482257-126246.jpg?_wi=2",
imageAlt: "Police services",
},
id: "police", name: "ePolizei Portal", price: "Secure Access", variant: "Reports, Information, Support", imageSrc:
"http://img.b2bpic.net/free-photo/male-administrator-using-chroma-key-display-digital-analysis_482257-126246.jpg", imageAlt: "Police services"},
{
id: "jobs",
name: "Job Opportunities",
price: "Open Positions",
variant: "Career Listings, Applications",
imageSrc:
"http://img.b2bpic.net/free-photo/business-people-video-call-meeting_53876-30777.jpg?_wi=2",
imageAlt: "Employment opportunities",
},
id: "jobs", name: "Job Opportunities", price: "Open Positions", variant: "Career Listings, Applications", imageSrc:
"http://img.b2bpic.net/free-photo/business-people-video-call-meeting_53876-30777.jpg", imageAlt: "Employment opportunities"},
{
id: "permits",
name: "Permits & Licenses",
price: "Online Requests",
variant: "Apply, Track, Download",
imageSrc:
"http://img.b2bpic.net/free-photo/visa-application-form-smartphone_23-2149117760.jpg?_wi=2",
imageAlt: "Permits and licenses",
},
id: "permits", name: "Permits & Licenses", price: "Online Requests", variant: "Apply, Track, Download", imageSrc:
"http://img.b2bpic.net/free-photo/visa-application-form-smartphone_23-2149117760.jpg", imageAlt: "Permits and licenses"},
]}
textboxLayout="default"
gridVariant="two-columns-alternating-heights"
@@ -132,25 +108,13 @@ export default function ServicesPage() {
description="We maintain the highest standards of service quality and availability for all Canton Schwyz residents and businesses."
metrics={[
{
id: "1",
value: "98",
title: "% Uptime",
description: "Reliable access to government services",
icon: CheckCircle,
id: "1", value: "98", title: "% Uptime", description: "Reliable access to government services", icon: CheckCircle,
},
{
id: "2",
value: "50",
title: "Services Online",
description: "Digital access to government functions",
icon: Zap,
id: "2", value: "50", title: "Services Online", description: "Digital access to government functions", icon: Zap,
},
{
id: "3",
value: "24",
title: "Hours Support",
description: "Dedicated customer assistance",
icon: Clock,
id: "3", value: "24", title: "Hours Support", description: "Dedicated customer assistance", icon: Clock,
},
]}
gridVariant="uniform-all-items-equal"

View File

@@ -1,51 +1,43 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
fontSize?: number;
fontWeight?: number | string;
letterSpacing?: number;
dominantBaseline?: 'auto' | 'text-bottom' | 'alphabetic' | 'ideographic' | 'middle' | 'central' | 'mathematical' | 'hanging';
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
export const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
className = '',
fontSize = 32,
fontWeight = 700,
letterSpacing = 0,
dominantBaseline = 'middle',
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox="0 0 300 100"
xmlns="http://www.w3.org/2000/svg"
className={className}
aria-label={text}
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline={dominantBaseline}
fontSize={fontSize}
fontWeight={fontWeight}
letterSpacing={letterSpacing}
fill="currentColor"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;