@shipsite.dev/components 0.2.69 → 0.2.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.json +1384 -217
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/marketing/BannerCTA.js +1 -1
- package/dist/marketing/BannerCTA.js.map +1 -1
- package/dist/marketing/Location.d.ts +23 -0
- package/dist/marketing/Location.d.ts.map +1 -0
- package/dist/marketing/Location.js +22 -0
- package/dist/marketing/Location.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/marketing/BannerCTA.tsx +1 -1
- package/src/marketing/Location.tsx +112 -0
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export { Gallery, GalleryItem } from './marketing/Gallery';
|
|
|
24
24
|
export { SocialProof } from './marketing/SocialProof';
|
|
25
25
|
export { Carousel, CarouselItem } from './marketing/Carousel';
|
|
26
26
|
export { TabsSection, TabItem } from './marketing/TabsSection';
|
|
27
|
+
export { Location, LocationItem } from './marketing/Location';
|
|
27
28
|
export { ContactForm } from './marketing/ContactForm';
|
|
28
29
|
export { NewsletterForm } from './marketing/NewsletterForm';
|
|
29
30
|
export { WaitlistForm } from './marketing/WaitlistForm';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,7 @@ export { Gallery, GalleryItem } from './marketing/Gallery';
|
|
|
28
28
|
export { SocialProof } from './marketing/SocialProof';
|
|
29
29
|
export { Carousel, CarouselItem } from './marketing/Carousel';
|
|
30
30
|
export { TabsSection, TabItem } from './marketing/TabsSection';
|
|
31
|
+
export { Location, LocationItem } from './marketing/Location';
|
|
31
32
|
// Forms
|
|
32
33
|
export { ContactForm } from './marketing/ContactForm';
|
|
33
34
|
export { NewsletterForm } from './marketing/NewsletterForm';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAGpC,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,YAAY;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Section } from '../ui/section';
|
|
|
3
3
|
import { Button } from '../ui/button';
|
|
4
4
|
import Glow from '../ui/glow';
|
|
5
5
|
export function BannerCTA({ id, title, buttonText, buttonHref, subtext, children }) {
|
|
6
|
-
return (_jsx(Section, { id: id, children: _jsx("div", { className: "container-main", children: _jsxs("div", { className: "relative overflow-hidden glass-4 rounded-3xl p-12 md:p-16 text-center", children: [_jsx(Glow, { variant: "center" }), _jsxs("div", { className: "relative z-10", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold text-foreground mb-4", children: title }), subtext && _jsx("p", { className: "text-muted-foreground mb-8 max-w-xl mx-auto", children: subtext }), buttonHref && (_jsx(Button, { asChild: true, size: "lg", children: _jsx("a", { href: buttonHref, children: buttonText }) })), children] })] }) }) }));
|
|
6
|
+
return (_jsx(Section, { id: id, children: _jsx("div", { className: "container-main", children: _jsxs("div", { className: "relative overflow-hidden glass-4 rounded-3xl p-6 sm:p-12 md:p-16 text-center", children: [_jsx(Glow, { variant: "center" }), _jsxs("div", { className: "relative z-10", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold text-foreground mb-4", children: title }), subtext && _jsx("p", { className: "text-muted-foreground mb-8 max-w-xl mx-auto", children: subtext }), buttonHref && (_jsx(Button, { asChild: true, size: "lg", children: _jsx("a", { href: buttonHref, children: buttonText }) })), children] })] }) }) }));
|
|
7
7
|
}
|
|
8
8
|
export function BannerFeature({ title, icon }) {
|
|
9
9
|
return (_jsxs("div", { className: "flex items-center gap-2 text-muted-foreground text-sm", children: [icon && _jsx("span", { children: icon }), _jsx("span", { children: title })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerCTA.js","sourceRoot":"","sources":["../../src/marketing/BannerCTA.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,IAAI,MAAM,YAAY,CAAC;AAW9B,MAAM,UAAU,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAkB;IAChG,OAAO,CACL,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,YACb,cAAK,SAAS,EAAC,gBAAgB,YAC7B,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"BannerCTA.js","sourceRoot":"","sources":["../../src/marketing/BannerCTA.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,IAAI,MAAM,YAAY,CAAC;AAW9B,MAAM,UAAU,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAkB;IAChG,OAAO,CACL,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,YACb,cAAK,SAAS,EAAC,gBAAgB,YAC7B,eAAK,SAAS,EAAC,8EAA8E,aAC3F,KAAC,IAAI,IAAC,OAAO,EAAC,QAAQ,GAAG,EACzB,eAAK,SAAS,EAAC,eAAe,aAC5B,aAAI,SAAS,EAAC,qDAAqD,YAAE,KAAK,GAAM,EAC/E,OAAO,IAAI,YAAG,SAAS,EAAC,6CAA6C,YAAE,OAAO,GAAK,EACnF,UAAU,IAAI,CACb,KAAC,MAAM,IAAC,OAAO,QAAC,IAAI,EAAC,IAAI,YACvB,YAAG,IAAI,EAAE,UAAU,YAAG,UAAU,GAAK,GAC9B,CACV,EACA,QAAQ,IACL,IACF,GACF,GACE,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAoC;IAC7E,OAAO,CACL,eAAK,SAAS,EAAC,uDAAuD,aACnE,IAAI,IAAI,yBAAO,IAAI,GAAQ,EAC5B,yBAAO,KAAK,GAAQ,IAChB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface LocationItemProps {
|
|
3
|
+
name: string;
|
|
4
|
+
mapUrl: string;
|
|
5
|
+
address?: string;
|
|
6
|
+
phone?: string;
|
|
7
|
+
email?: string;
|
|
8
|
+
hours?: {
|
|
9
|
+
day: string;
|
|
10
|
+
hours: string;
|
|
11
|
+
}[];
|
|
12
|
+
mapHeight?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function LocationItem(_props: LocationItemProps): null;
|
|
15
|
+
interface LocationProps {
|
|
16
|
+
id?: string;
|
|
17
|
+
title?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export declare function Location({ id, title, description, children }: LocationProps): import("react/jsx-runtime").JSX.Element | null;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=Location.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Location.d.ts","sourceRoot":"","sources":["../../src/marketing/Location.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,QAErD;AAED,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,aAAa,kDAsF3E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { MapPin, Phone, Mail, Clock } from 'lucide-react';
|
|
4
|
+
import { Section } from '../ui/section';
|
|
5
|
+
export function LocationItem(_props) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
export function Location({ id, title, description, children }) {
|
|
9
|
+
const items = [];
|
|
10
|
+
React.Children.forEach(children, (child) => {
|
|
11
|
+
if (React.isValidElement(child) && child.type === LocationItem) {
|
|
12
|
+
items.push(child.props);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
if (items.length === 0)
|
|
16
|
+
return null;
|
|
17
|
+
return (_jsx(Section, { id: id, children: _jsxs("div", { className: "container-main max-w-5xl", children: [(title || description) && (_jsxs("div", { className: "text-center mb-12", children: [title && _jsx("h2", { className: "text-3xl md:text-4xl font-bold text-foreground mb-4", children: title }), description && _jsx("p", { className: "text-lg text-muted-foreground", children: description })] })), _jsx("div", { className: "space-y-12", children: items.map((item, i) => {
|
|
18
|
+
const hasInfo = item.address || item.phone || item.email || (item.hours && item.hours.length > 0);
|
|
19
|
+
return (_jsxs("div", { className: "glass-1 rounded-2xl overflow-hidden", children: [_jsx("div", { className: "p-6 pb-0", children: _jsx("h3", { className: "text-xl font-semibold text-foreground mb-4", children: item.name }) }), _jsx("div", { className: "px-6", children: _jsx("iframe", { src: item.mapUrl, width: "100%", height: item.mapHeight ?? 400, style: { border: 0 }, loading: "lazy", allowFullScreen: true, referrerPolicy: "no-referrer-when-downgrade", title: `Map: ${item.name}`, className: "rounded-xl" }) }), hasInfo && (_jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 p-6", children: [item.address && (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(MapPin, { className: "size-5 text-muted-foreground shrink-0 mt-0.5" }), _jsx("span", { className: "text-sm text-muted-foreground", children: item.address })] })), item.phone && (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Phone, { className: "size-5 text-muted-foreground shrink-0 mt-0.5" }), _jsx("a", { href: `tel:${item.phone}`, className: "text-sm text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring rounded-sm", children: item.phone })] })), item.email && (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Mail, { className: "size-5 text-muted-foreground shrink-0 mt-0.5" }), _jsx("a", { href: `mailto:${item.email}`, className: "text-sm text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring rounded-sm", children: item.email })] })), item.hours && item.hours.length > 0 && (_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Clock, { className: "size-5 text-muted-foreground shrink-0 mt-0.5" }), _jsx("dl", { className: "text-sm text-muted-foreground space-y-1", children: item.hours.map((h, j) => (_jsxs("div", { className: "flex gap-2", children: [_jsx("dt", { className: "font-medium text-foreground", children: h.day }), _jsx("dd", { children: h.hours })] }, j))) })] }))] }))] }, i));
|
|
20
|
+
}) })] }) }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Location.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Location.js","sourceRoot":"","sources":["../../src/marketing/Location.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -48,6 +48,7 @@ export { Gallery, GalleryItem } from './marketing/Gallery';
|
|
|
48
48
|
export { SocialProof } from './marketing/SocialProof';
|
|
49
49
|
export { Carousel, CarouselItem } from './marketing/Carousel';
|
|
50
50
|
export { TabsSection, TabItem } from './marketing/TabsSection';
|
|
51
|
+
export { Location, LocationItem } from './marketing/Location';
|
|
51
52
|
|
|
52
53
|
// Forms
|
|
53
54
|
export { ContactForm } from './marketing/ContactForm';
|
|
@@ -16,7 +16,7 @@ export function BannerCTA({ id, title, buttonText, buttonHref, subtext, children
|
|
|
16
16
|
return (
|
|
17
17
|
<Section id={id}>
|
|
18
18
|
<div className="container-main">
|
|
19
|
-
<div className="relative overflow-hidden glass-4 rounded-3xl p-12 md:p-16 text-center">
|
|
19
|
+
<div className="relative overflow-hidden glass-4 rounded-3xl p-6 sm:p-12 md:p-16 text-center">
|
|
20
20
|
<Glow variant="center" />
|
|
21
21
|
<div className="relative z-10">
|
|
22
22
|
<h2 className="text-3xl md:text-4xl font-bold text-foreground mb-4">{title}</h2>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MapPin, Phone, Mail, Clock } from 'lucide-react';
|
|
3
|
+
import { Section } from '../ui/section';
|
|
4
|
+
|
|
5
|
+
interface LocationItemProps {
|
|
6
|
+
name: string;
|
|
7
|
+
mapUrl: string;
|
|
8
|
+
address?: string;
|
|
9
|
+
phone?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
hours?: { day: string; hours: string }[];
|
|
12
|
+
mapHeight?: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function LocationItem(_props: LocationItemProps) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface LocationProps {
|
|
20
|
+
id?: string;
|
|
21
|
+
title?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function Location({ id, title, description, children }: LocationProps) {
|
|
27
|
+
const items: LocationItemProps[] = [];
|
|
28
|
+
React.Children.forEach(children, (child) => {
|
|
29
|
+
if (React.isValidElement(child) && child.type === LocationItem) {
|
|
30
|
+
items.push(child.props as LocationItemProps);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
if (items.length === 0) return null;
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<Section id={id}>
|
|
38
|
+
<div className="container-main max-w-5xl">
|
|
39
|
+
{(title || description) && (
|
|
40
|
+
<div className="text-center mb-12">
|
|
41
|
+
{title && <h2 className="text-3xl md:text-4xl font-bold text-foreground mb-4">{title}</h2>}
|
|
42
|
+
{description && <p className="text-lg text-muted-foreground">{description}</p>}
|
|
43
|
+
</div>
|
|
44
|
+
)}
|
|
45
|
+
<div className="space-y-12">
|
|
46
|
+
{items.map((item, i) => {
|
|
47
|
+
const hasInfo = item.address || item.phone || item.email || (item.hours && item.hours.length > 0);
|
|
48
|
+
return (
|
|
49
|
+
<div key={i} className="glass-1 rounded-2xl overflow-hidden">
|
|
50
|
+
<div className="p-6 pb-0">
|
|
51
|
+
<h3 className="text-xl font-semibold text-foreground mb-4">{item.name}</h3>
|
|
52
|
+
</div>
|
|
53
|
+
<div className="px-6">
|
|
54
|
+
<iframe
|
|
55
|
+
src={item.mapUrl}
|
|
56
|
+
width="100%"
|
|
57
|
+
height={item.mapHeight ?? 400}
|
|
58
|
+
style={{ border: 0 }}
|
|
59
|
+
loading="lazy"
|
|
60
|
+
allowFullScreen
|
|
61
|
+
referrerPolicy="no-referrer-when-downgrade"
|
|
62
|
+
title={`Map: ${item.name}`}
|
|
63
|
+
className="rounded-xl"
|
|
64
|
+
/>
|
|
65
|
+
</div>
|
|
66
|
+
{hasInfo && (
|
|
67
|
+
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 p-6">
|
|
68
|
+
{item.address && (
|
|
69
|
+
<div className="flex items-start gap-3">
|
|
70
|
+
<MapPin className="size-5 text-muted-foreground shrink-0 mt-0.5" />
|
|
71
|
+
<span className="text-sm text-muted-foreground">{item.address}</span>
|
|
72
|
+
</div>
|
|
73
|
+
)}
|
|
74
|
+
{item.phone && (
|
|
75
|
+
<div className="flex items-start gap-3">
|
|
76
|
+
<Phone className="size-5 text-muted-foreground shrink-0 mt-0.5" />
|
|
77
|
+
<a href={`tel:${item.phone}`} className="text-sm text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring rounded-sm">
|
|
78
|
+
{item.phone}
|
|
79
|
+
</a>
|
|
80
|
+
</div>
|
|
81
|
+
)}
|
|
82
|
+
{item.email && (
|
|
83
|
+
<div className="flex items-start gap-3">
|
|
84
|
+
<Mail className="size-5 text-muted-foreground shrink-0 mt-0.5" />
|
|
85
|
+
<a href={`mailto:${item.email}`} className="text-sm text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring rounded-sm">
|
|
86
|
+
{item.email}
|
|
87
|
+
</a>
|
|
88
|
+
</div>
|
|
89
|
+
)}
|
|
90
|
+
{item.hours && item.hours.length > 0 && (
|
|
91
|
+
<div className="flex items-start gap-3">
|
|
92
|
+
<Clock className="size-5 text-muted-foreground shrink-0 mt-0.5" />
|
|
93
|
+
<dl className="text-sm text-muted-foreground space-y-1">
|
|
94
|
+
{item.hours.map((h, j) => (
|
|
95
|
+
<div key={j} className="flex gap-2">
|
|
96
|
+
<dt className="font-medium text-foreground">{h.day}</dt>
|
|
97
|
+
<dd>{h.hours}</dd>
|
|
98
|
+
</div>
|
|
99
|
+
))}
|
|
100
|
+
</dl>
|
|
101
|
+
</div>
|
|
102
|
+
)}
|
|
103
|
+
</div>
|
|
104
|
+
)}
|
|
105
|
+
</div>
|
|
106
|
+
);
|
|
107
|
+
})}
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</Section>
|
|
111
|
+
);
|
|
112
|
+
}
|