Merge version_1 into main #2
@@ -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"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user