@meetelise/studio-components 0.0.22 → 0.0.24
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/dist/componentSchema.json +43 -1
- package/dist/components/Accordion.d.ts +1 -1
- package/dist/components/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion.js +5 -1
- package/dist/components/Accordion.js.map +1 -1
- package/dist/components/AddressBlock.d.ts.map +1 -1
- package/dist/components/AddressBlock.js +4 -0
- package/dist/components/AddressBlock.js.map +1 -1
- package/dist/components/AmenityList.d.ts +1 -1
- package/dist/components/AmenityList.d.ts.map +1 -1
- package/dist/components/AmenityList.js +37 -6
- package/dist/components/AmenityList.js.map +1 -1
- package/dist/components/Container.d.ts +2 -1
- package/dist/components/Container.d.ts.map +1 -1
- package/dist/components/Container.js +5 -3
- package/dist/components/Container.js.map +1 -1
- package/dist/components/FeatureCard.d.ts +2 -1
- package/dist/components/FeatureCard.d.ts.map +1 -1
- package/dist/components/FeatureCard.js +2 -1
- package/dist/components/FeatureCard.js.map +1 -1
- package/dist/components/Footer.d.ts +2 -1
- package/dist/components/Footer.d.ts.map +1 -1
- package/dist/components/Footer.js +2 -1
- package/dist/components/Footer.js.map +1 -1
- package/dist/components/Gallery.d.ts +3 -2
- package/dist/components/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery.js +45 -12
- package/dist/components/Gallery.js.map +1 -1
- package/dist/components/Image.d.ts +2 -1
- package/dist/components/Image.d.ts.map +1 -1
- package/dist/components/Image.js +2 -1
- package/dist/components/Image.js.map +1 -1
- package/dist/components/Lightbox.d.ts +2 -1
- package/dist/components/Lightbox.d.ts.map +1 -1
- package/dist/components/Lightbox.js +2 -1
- package/dist/components/Lightbox.js.map +1 -1
- package/dist/components/Link.d.ts.map +1 -1
- package/dist/components/Link.js +4 -0
- package/dist/components/Link.js.map +1 -1
- package/dist/components/Modal.d.ts +1 -1
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Modal.js +4 -2
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/Nav.d.ts +2 -1
- package/dist/components/Nav.d.ts.map +1 -1
- package/dist/components/Nav.js +3 -2
- package/dist/components/Nav.js.map +1 -1
- package/dist/components/PropertyCard.d.ts +1 -1
- package/dist/components/PropertyCard.d.ts.map +1 -1
- package/dist/components/PropertyCard.js +9 -1
- package/dist/components/PropertyCard.js.map +1 -1
- package/dist/components/StudioEditPlaceholder.d.ts +9 -0
- package/dist/components/StudioEditPlaceholder.d.ts.map +1 -0
- package/dist/components/StudioEditPlaceholder.js +8 -0
- package/dist/components/StudioEditPlaceholder.js.map +1 -0
- package/dist/components/StudioImage.d.ts +18 -0
- package/dist/components/StudioImage.d.ts.map +1 -0
- package/dist/components/StudioImage.js +76 -0
- package/dist/components/StudioImage.js.map +1 -0
- package/dist/components/VideoEmbed.d.ts +10 -0
- package/dist/components/VideoEmbed.d.ts.map +1 -0
- package/dist/components/VideoEmbed.js +47 -0
- package/dist/components/VideoEmbed.js.map +1 -0
- package/dist/components/VideoHero.d.ts +2 -1
- package/dist/components/VideoHero.d.ts.map +1 -1
- package/dist/components/VideoHero.js +3 -1
- package/dist/components/VideoHero.js.map +1 -1
- package/dist/components/VideoPlayer.d.ts +1 -1
- package/dist/components/VideoPlayer.d.ts.map +1 -1
- package/dist/components/VideoPlayer.js +4 -2
- package/dist/components/VideoPlayer.js.map +1 -1
- package/dist/components/browser/componentMeta.d.ts.map +1 -1
- package/dist/components/browser/componentMeta.js +31 -0
- package/dist/components/browser/componentMeta.js.map +1 -1
- package/dist/components/registry.d.ts.map +1 -1
- package/dist/components/registry.js +2 -0
- package/dist/components/registry.js.map +1 -1
- package/dist/components/units/FloorPlanCard.d.ts.map +1 -1
- package/dist/components/units/FloorPlanCard.js +2 -2
- package/dist/components/units/FloorPlanCard.js.map +1 -1
- package/dist/components/units/FloorplanExplorer.d.ts.map +1 -1
- package/dist/components/units/FloorplanExplorer.js +3 -3
- package/dist/components/units/FloorplanExplorer.js.map +1 -1
- package/dist/components/units/UnitCard.d.ts.map +1 -1
- package/dist/components/units/UnitCard.js +3 -3
- package/dist/components/units/UnitCard.js.map +1 -1
- package/dist/components/units/UnitPage.d.ts.map +1 -1
- package/dist/components/units/UnitPage.js +2 -2
- package/dist/components/units/UnitPage.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/componentSchema.d.ts +1 -1
- package/dist/schema/componentSchema.d.ts.map +1 -1
- package/dist/schema/componentSchema.js +16 -1
- package/dist/schema/componentSchema.js.map +1 -1
- package/dist/utils/imageUrl.d.ts +13 -3
- package/dist/utils/imageUrl.d.ts.map +1 -1
- package/dist/utils/imageUrl.js +58 -19
- package/dist/utils/imageUrl.js.map +1 -1
- package/dist/utils/resolveConfig.d.ts +48 -4
- package/dist/utils/resolveConfig.d.ts.map +1 -1
- package/dist/utils/resolveConfig.js +171 -14
- package/dist/utils/resolveConfig.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion":
|
|
2
|
+
"schemaVersion": 4,
|
|
3
3
|
"components": {
|
|
4
4
|
"Text": {
|
|
5
5
|
"kind": "element",
|
|
@@ -534,6 +534,10 @@
|
|
|
534
534
|
"description": "Full-width video/image background with overlay content",
|
|
535
535
|
"acceptsChildren": true,
|
|
536
536
|
"props": {
|
|
537
|
+
"src": {
|
|
538
|
+
"kind": "url",
|
|
539
|
+
"label": "Video URL"
|
|
540
|
+
},
|
|
537
541
|
"poster": {
|
|
538
542
|
"kind": "image",
|
|
539
543
|
"default": "https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=1920&q=80"
|
|
@@ -555,6 +559,32 @@
|
|
|
555
559
|
}
|
|
556
560
|
}
|
|
557
561
|
},
|
|
562
|
+
"VideoEmbed": {
|
|
563
|
+
"kind": "elise-component",
|
|
564
|
+
"category": "Heroes & Media",
|
|
565
|
+
"description": "Responsive YouTube or Vimeo embed with privacy-conscious YouTube URLs",
|
|
566
|
+
"acceptsChildren": false,
|
|
567
|
+
"props": {
|
|
568
|
+
"src": {
|
|
569
|
+
"kind": "url",
|
|
570
|
+
"required": true,
|
|
571
|
+
"label": "Video URL"
|
|
572
|
+
},
|
|
573
|
+
"title": {
|
|
574
|
+
"kind": "string",
|
|
575
|
+
"default": "Embedded video"
|
|
576
|
+
},
|
|
577
|
+
"aspectRatio": {
|
|
578
|
+
"kind": "enum",
|
|
579
|
+
"options": [
|
|
580
|
+
"16/9",
|
|
581
|
+
"4/3",
|
|
582
|
+
"1/1"
|
|
583
|
+
],
|
|
584
|
+
"default": "16/9"
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
},
|
|
558
588
|
"Gallery": {
|
|
559
589
|
"kind": "elise-component",
|
|
560
590
|
"category": "Heroes & Media",
|
|
@@ -711,6 +741,10 @@
|
|
|
711
741
|
"kind": "image",
|
|
712
742
|
"label": "Image"
|
|
713
743
|
},
|
|
744
|
+
"imageAlt": {
|
|
745
|
+
"kind": "string",
|
|
746
|
+
"label": "Image alt text"
|
|
747
|
+
},
|
|
714
748
|
"imagePosition": {
|
|
715
749
|
"kind": "enum",
|
|
716
750
|
"options": [
|
|
@@ -838,6 +872,10 @@
|
|
|
838
872
|
"description": "Sticky/static navbar with logo, links, and mobile menu",
|
|
839
873
|
"acceptsChildren": false,
|
|
840
874
|
"props": {
|
|
875
|
+
"logo": {
|
|
876
|
+
"kind": "image",
|
|
877
|
+
"label": "Logo"
|
|
878
|
+
},
|
|
841
879
|
"siteName": {
|
|
842
880
|
"kind": "string",
|
|
843
881
|
"bindable": true,
|
|
@@ -872,6 +910,10 @@
|
|
|
872
910
|
"description": "Footer with column links and copyright",
|
|
873
911
|
"acceptsChildren": false,
|
|
874
912
|
"props": {
|
|
913
|
+
"logo": {
|
|
914
|
+
"kind": "image",
|
|
915
|
+
"label": "Logo"
|
|
916
|
+
},
|
|
875
917
|
"copyright": {
|
|
876
918
|
"kind": "string",
|
|
877
919
|
"bindable": true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,UAAU,cAAe,SAAQ,sBAAsB;IACrD,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAU,EACV,aAAqB,EACrB,WAAgB,EAChB,WAAqB,EACrB,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,cAAc,2CA4FhB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useCallback } from "react";
|
|
3
3
|
import { twMerge } from "tailwind-merge";
|
|
4
|
-
|
|
4
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
5
|
+
export function Accordion({ items = [], allowMultiple = false, defaultOpen = [], colorScheme = "light", className, "data-node-id": dataNodeId, }) {
|
|
5
6
|
const isDark = colorScheme === "dark";
|
|
6
7
|
const [openIndices, setOpenIndices] = useState(new Set(defaultOpen));
|
|
7
8
|
const toggle = useCallback((index) => {
|
|
@@ -16,6 +17,9 @@ export function Accordion({ items, allowMultiple = false, defaultOpen = [], colo
|
|
|
16
17
|
return next;
|
|
17
18
|
});
|
|
18
19
|
}, [allowMultiple]);
|
|
20
|
+
if (items.length === 0) {
|
|
21
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Add accordion items", hint: "Questions will appear here", className: className }));
|
|
22
|
+
}
|
|
19
23
|
return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("divide-y border-y", isDark
|
|
20
24
|
? "divide-white/10 border-white/10"
|
|
21
25
|
: "divide-[var(--color-muted)]/15 border-[var(--color-muted)]/15", className), children: items.map((item, i) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddressBlock.d.ts","sourceRoot":"","sources":["../../src/components/AddressBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AddressBlock.d.ts","sourceRoot":"","sources":["../../src/components/AddressBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,iBAAkB,SAAQ,sBAAsB;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,aAAa,EACb,MAAkB,EAClB,WAAqB,EACrB,SAAc,EACd,cAAc,EAAE,UAAU,GAC3B,EAAE,iBAAiB,2CAmDnB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
2
3
|
export function AddressBlock({ address, city, state, postalCode, phone, googleMapsUrl, layout = "stacked", colorScheme = "light", className = "", "data-node-id": dataNodeId, }) {
|
|
3
4
|
const textColor = colorScheme === "dark" ? "text-white" : "text-[var(--color-foreground)]";
|
|
4
5
|
const mutedColor = colorScheme === "dark" ? "text-white/70" : "text-[var(--color-secondary)]";
|
|
@@ -8,6 +9,9 @@ export function AddressBlock({ address, city, state, postalCode, phone, googleMa
|
|
|
8
9
|
.join(", ");
|
|
9
10
|
const mapsUrl = googleMapsUrl ??
|
|
10
11
|
(fullAddress ? `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(fullAddress)}` : undefined);
|
|
12
|
+
if (!fullAddress && !phone && !mapsUrl) {
|
|
13
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Add address or phone", hint: "Address details will appear here", className: className }));
|
|
14
|
+
}
|
|
11
15
|
return (_jsxs("div", { "data-node-id": dataNodeId, className: `${isInline ? "flex flex-wrap items-center gap-4" : "flex flex-col gap-2"} ${className}`, children: [fullAddress && _jsx("p", { className: `${textColor} font-[family-name:var(--font-body)]`, children: fullAddress }), _jsxs("div", { className: `flex ${isInline ? "gap-4" : "flex-col gap-2"}`, children: [phone && (_jsx("a", { href: `tel:${phone.replace(/[^\d+]/g, "")}`, className: `${mutedColor} hover:text-[var(--color-primary)] transition-colors font-[family-name:var(--font-body)]`, children: phone })), mapsUrl && (_jsx("a", { href: mapsUrl, target: "_blank", rel: "noopener noreferrer", className: "text-[var(--color-primary)] hover:underline font-[family-name:var(--font-body)]", children: "Get Directions \u2192" }))] })] }));
|
|
12
16
|
}
|
|
13
17
|
//# sourceMappingURL=AddressBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddressBlock.js","sourceRoot":"","sources":["../../src/components/AddressBlock.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"AddressBlock.js","sourceRoot":"","sources":["../../src/components/AddressBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAchE,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACL,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,WAAW,GAAG,OAAO,EACrB,SAAS,GAAG,EAAE,EACd,cAAc,EAAE,UAAU,GACR;IAClB,MAAM,SAAS,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC;IAC3F,MAAM,UAAU,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,+BAA+B,CAAC;IAC9F,MAAM,QAAQ,GAAG,MAAM,KAAK,QAAQ,CAAC;IAErC,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;SAC5F,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GACX,aAAa;QACb,CAAC,WAAW,CAAC,CAAC,CAAC,mDAAmD,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEnH,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,sBAAsB,EAC5B,IAAI,EAAC,kCAAkC,EACvC,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,+BAAmB,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,qBAAqB,IAAI,SAAS,EAAE,aAC/H,WAAW,IAAI,YAAG,SAAS,EAAE,GAAG,SAAS,sCAAsC,YAAG,WAAW,GAAK,EAEnG,eAAK,SAAS,EAAE,QAAQ,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,aAC5D,KAAK,IAAI,CACR,YACE,IAAI,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAC3C,SAAS,EAAE,GAAG,UAAU,0FAA0F,YAEjH,KAAK,GACJ,CACL,EAEA,OAAO,IAAI,CACV,YACE,IAAI,EAAE,OAAO,EACb,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,iFAAiF,sCAGzF,CACL,IACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -16,6 +16,6 @@ interface AmenityListProps extends EditableNodeAttributes {
|
|
|
16
16
|
colorScheme?: "light" | "dark";
|
|
17
17
|
className?: string;
|
|
18
18
|
}
|
|
19
|
-
export declare function AmenityList({ propertyId: propertyIdProp, amenities: staticAmenities, layout, columns, showIcons, colorScheme, className, "data-node-id": dataNodeId, }: AmenityListProps): import("react/jsx-runtime").JSX.Element
|
|
19
|
+
export declare function AmenityList({ propertyId: propertyIdProp, amenities: staticAmenities, layout, columns, showIcons, colorScheme, className, "data-node-id": dataNodeId, }: AmenityListProps): import("react/jsx-runtime").JSX.Element;
|
|
20
20
|
export {};
|
|
21
21
|
//# sourceMappingURL=AmenityList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmenityList.d.ts","sourceRoot":"","sources":["../../src/components/AmenityList.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AmenityList.d.ts","sourceRoot":"","sources":["../../src/components/AmenityList.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAiB,SAAQ,sBAAsB;IACvD,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkCD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,eAAoB,EAC/B,MAAmB,EACnB,OAAW,EACX,SAAgB,EAChB,WAAqB,EACrB,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,gBAAgB,2CAoKlB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo, useState, useEffect, useCallback } from "react";
|
|
2
|
+
import { useMemo, useState, useEffect, useCallback, useRef } from "react";
|
|
3
3
|
import { twMerge } from "tailwind-merge";
|
|
4
4
|
import { useSiteConfig } from "../hooks/useSiteConfig";
|
|
5
5
|
import { useAuth } from "../hooks/useAuth";
|
|
6
6
|
import { Icon } from "./Icon";
|
|
7
7
|
import { Accordion } from "./Accordion";
|
|
8
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
8
9
|
const gridColClasses = {
|
|
9
10
|
2: "grid-cols-2",
|
|
10
11
|
3: "grid-cols-2 sm:grid-cols-3",
|
|
@@ -21,9 +22,15 @@ export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmeni
|
|
|
21
22
|
const propertyId = propertyIdProp ?? config.property?.propertyId;
|
|
22
23
|
const apiBaseUrl = config.property?.apiBaseUrl ?? "";
|
|
23
24
|
const [apiAmenities, setApiAmenities] = useState(null);
|
|
25
|
+
const [loading, setLoading] = useState(Boolean(propertyId));
|
|
26
|
+
const [loadedPropertyId, setLoadedPropertyId] = useState(null);
|
|
27
|
+
const requestSeqRef = useRef(0);
|
|
24
28
|
const fetchAmenities = useCallback(async () => {
|
|
25
29
|
if (!propertyId)
|
|
26
30
|
return;
|
|
31
|
+
const requestSeq = requestSeqRef.current + 1;
|
|
32
|
+
requestSeqRef.current = requestSeq;
|
|
33
|
+
setLoading(true);
|
|
27
34
|
try {
|
|
28
35
|
const url = `${apiBaseUrl}/v1/properties/${propertyId}?include_amenities=true`;
|
|
29
36
|
const res = await authenticatedFetch(url);
|
|
@@ -36,17 +43,37 @@ export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmeni
|
|
|
36
43
|
: a.amenity_level === "Community" ? "Community Amenities"
|
|
37
44
|
: a.amenity_level ?? a.category,
|
|
38
45
|
}));
|
|
46
|
+
if (requestSeq !== requestSeqRef.current)
|
|
47
|
+
return;
|
|
39
48
|
setApiAmenities(items);
|
|
40
49
|
}
|
|
41
50
|
catch {
|
|
51
|
+
if (requestSeq !== requestSeqRef.current)
|
|
52
|
+
return;
|
|
42
53
|
setApiAmenities(null);
|
|
43
54
|
}
|
|
55
|
+
finally {
|
|
56
|
+
if (requestSeq === requestSeqRef.current) {
|
|
57
|
+
setLoadedPropertyId(propertyId);
|
|
58
|
+
setLoading(false);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
44
61
|
}, [propertyId, apiBaseUrl, authenticatedFetch]);
|
|
45
62
|
useEffect(() => {
|
|
46
|
-
if (propertyId)
|
|
47
|
-
|
|
63
|
+
if (!propertyId) {
|
|
64
|
+
requestSeqRef.current += 1;
|
|
65
|
+
setApiAmenities(null);
|
|
66
|
+
setLoadedPropertyId(null);
|
|
67
|
+
setLoading(false);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
fetchAmenities();
|
|
48
71
|
}, [propertyId, fetchAmenities]);
|
|
49
|
-
const
|
|
72
|
+
const hasFreshApiAmenities = Boolean(propertyId) && loadedPropertyId === propertyId && apiAmenities !== null;
|
|
73
|
+
const amenities = hasFreshApiAmenities ? apiAmenities : staticAmenities;
|
|
74
|
+
const isWaitingForApiAmenities = Boolean(propertyId) &&
|
|
75
|
+
staticAmenities.length === 0 &&
|
|
76
|
+
(loading || loadedPropertyId !== propertyId);
|
|
50
77
|
const grouped = useMemo(() => {
|
|
51
78
|
const map = new Map();
|
|
52
79
|
for (const item of amenities) {
|
|
@@ -57,8 +84,12 @@ export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmeni
|
|
|
57
84
|
}
|
|
58
85
|
return map;
|
|
59
86
|
}, [amenities]);
|
|
60
|
-
if (
|
|
61
|
-
return
|
|
87
|
+
if (isWaitingForApiAmenities) {
|
|
88
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Loading amenities", hint: "Fetching property amenities", className: className }));
|
|
89
|
+
}
|
|
90
|
+
if (amenities.length === 0) {
|
|
91
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Add amenities", hint: "Amenities will appear here", className: className }));
|
|
92
|
+
}
|
|
62
93
|
if (layout === "iconGrid") {
|
|
63
94
|
return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("grid gap-6", gridColClasses[columns] ?? gridColClasses[3], className), children: amenities.map((item) => (_jsxs("div", { className: "flex flex-col items-center gap-2 text-center", children: [showIcons && item.icon && (_jsx(Icon, { name: item.icon, size: "lg", className: isDark ? "text-[var(--color-accent)]" : "text-[var(--color-primary)]" })), _jsx("span", { className: twMerge("text-sm font-medium", isDark ? "text-white" : "text-[var(--color-foreground)]"), children: item.name })] }, item.name))) }));
|
|
64
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmenityList.js","sourceRoot":"","sources":["../../src/components/AmenityList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AmenityList.js","sourceRoot":"","sources":["../../src/components/AmenityList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EditableNodeAttributes } from "../types";
|
|
2
|
+
import { type StudioImageSource } from "./StudioImage";
|
|
2
3
|
type ContainerTag = "div" | "section" | "main" | "header" | "footer" | "nav" | "aside";
|
|
3
4
|
interface ContainerProps extends EditableNodeAttributes {
|
|
4
5
|
as?: ContainerTag;
|
|
@@ -19,7 +20,7 @@ interface ContainerProps extends EditableNodeAttributes {
|
|
|
19
20
|
minHeight?: "none" | "xs" | "sm" | "md" | "lg" | "screen";
|
|
20
21
|
bg?: string;
|
|
21
22
|
/** Background image URL — rendered behind content with optional overlay */
|
|
22
|
-
bgImage?:
|
|
23
|
+
bgImage?: StudioImageSource;
|
|
23
24
|
/** Semi-transparent overlay on bgImage, e.g. "rgba(0,0,0,0.5)" */
|
|
24
25
|
bgOverlay?: string;
|
|
25
26
|
bgSize?: "auto" | "cover" | "contain";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/components/Container.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/components/Container.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvE,KAAK,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvF,UAAU,cAAe,SAAQ,sBAAsB;IACrD,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7D,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACjD,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACrD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,UAAU,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkID,wBAAgB,SAAS,CAAC,EACxB,EAAE,EACF,EAAE,EACF,OAAiB,EACjB,SAAsB,EACtB,GAAY,EACZ,KAAiB,EACjB,OAAiB,EACjB,IAAe,EACf,OAAO,EACP,QAAe,EACf,QAAe,EACf,KAAc,EACd,QAAoB,EACpB,SAAkB,EAClB,EAAE,EACF,OAAO,EACP,SAAS,EACT,MAAgB,EAChB,UAAqB,EACrB,WAAoB,EACpB,WAAW,EACX,MAAe,EACf,QAAoB,EACpB,QAAQ,EACR,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,cAAc,2CAoDhB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import { studioImageUrl } from "./StudioImage";
|
|
3
4
|
const displayClasses = {
|
|
4
5
|
block: "block",
|
|
5
6
|
flex: "flex",
|
|
@@ -136,16 +137,17 @@ export function Container({ as, id, display = "block", direction = "vertical", g
|
|
|
136
137
|
overflowClasses[overflow] ?? overflowClasses.visible,
|
|
137
138
|
paddingClass,
|
|
138
139
|
].join(" ");
|
|
140
|
+
const backgroundUrl = bgImage ? studioImageUrl(bgImage, { w: 1920, q: 85 }) : "";
|
|
139
141
|
const outerStyle = {};
|
|
140
142
|
if (bg)
|
|
141
143
|
outerStyle.backgroundColor = bg;
|
|
142
144
|
if (borderColor)
|
|
143
145
|
outerStyle.borderColor = borderColor;
|
|
144
|
-
if (
|
|
145
|
-
outerStyle.backgroundImage = `url(${
|
|
146
|
+
if (backgroundUrl) {
|
|
147
|
+
outerStyle.backgroundImage = `url(${backgroundUrl})`;
|
|
146
148
|
outerStyle.backgroundSize = bgSize;
|
|
147
149
|
outerStyle.backgroundPosition = bgPosition;
|
|
148
150
|
}
|
|
149
|
-
return (_jsxs(Tag, { id: id, "data-node-id": dataNodeId, className: twMerge(defaults,
|
|
151
|
+
return (_jsxs(Tag, { id: id, "data-node-id": dataNodeId, className: twMerge(defaults, backgroundUrl && bgOverlay ? "relative" : undefined, className), style: outerStyle, children: [backgroundUrl && bgOverlay && (_jsx("div", { className: "absolute inset-0", style: { backgroundColor: bgOverlay } })), backgroundUrl && bgOverlay ? _jsx("div", { className: "relative z-10", children: children }) : children] }));
|
|
150
152
|
}
|
|
151
153
|
//# sourceMappingURL=Container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/components/Container.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/components/Container.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EditableNodeAttributes } from "../types";
|
|
2
|
+
import { type StudioImageSource } from "./StudioImage";
|
|
2
3
|
interface FeatureCardProps extends EditableNodeAttributes {
|
|
3
|
-
image?:
|
|
4
|
+
image?: StudioImageSource;
|
|
4
5
|
imageAlt?: string;
|
|
5
6
|
/** Image position: top (default), left, right */
|
|
6
7
|
imagePosition?: "top" | "left" | "right";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureCard.d.ts","sourceRoot":"","sources":["../../src/components/FeatureCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FeatureCard.d.ts","sourceRoot":"","sources":["../../src/components/FeatureCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEpE,UAAU,gBAAiB,SAAQ,sBAAsB;IACvD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,aAAqB,EACrB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAA0B,EAC1B,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,gBAAgB,2CAoElB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
3
|
import { useNavigate } from "../router";
|
|
4
|
+
import { StudioImage } from "./StudioImage";
|
|
4
5
|
export function FeatureCard({ image, imageAlt, imagePosition = "top", title, subtitle, description, linkTo, linkLabel = "Learn More →", className, "data-node-id": dataNodeId, }) {
|
|
5
6
|
const navigate = useNavigate();
|
|
6
7
|
const isHorizontal = imagePosition === "left" || imagePosition === "right";
|
|
7
|
-
const imageEl = image ? (_jsx("div", { className: twMerge("overflow-hidden bg-gray-100", isHorizontal ? "w-2/5 shrink-0" : "aspect-[16/10] w-full"), children: _jsx(
|
|
8
|
+
const imageEl = image ? (_jsx("div", { className: twMerge("overflow-hidden bg-gray-100", isHorizontal ? "w-2/5 shrink-0" : "aspect-[16/10] w-full"), children: _jsx(StudioImage, { src: image, alt: imageAlt, fallbackAlt: title, sizes: isHorizontal ? "(min-width: 768px) 40vw, 100vw" : "(min-width: 1024px) 33vw, 100vw", allowCrop: false, className: "w-full h-full object-cover transition-transform duration-500 group-hover:scale-105" }) })) : null;
|
|
8
9
|
const contentEl = (_jsxs("div", { className: twMerge("flex flex-col gap-2", isHorizontal ? "flex-1 p-6" : "p-6"), children: [subtitle && (_jsx("span", { className: "text-xs font-semibold uppercase tracking-widest text-[var(--color-primary)]", children: subtitle })), title && (_jsx("h3", { className: "text-xl font-bold text-[var(--color-foreground)]", children: title })), description && (_jsx("p", { className: "text-sm leading-relaxed text-[var(--color-secondary)]", children: description })), linkTo && (_jsx("a", { href: linkTo, onClick: (e) => {
|
|
9
10
|
e.preventDefault();
|
|
10
11
|
navigate(linkTo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureCard.js","sourceRoot":"","sources":["../../src/components/FeatureCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"FeatureCard.js","sourceRoot":"","sources":["../../src/components/FeatureCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AAepE,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,SAAS,GAAG,cAAc,EAC1B,SAAS,EACT,cAAc,EAAE,UAAU,GACT;IACjB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,OAAO,CAAC;IAE3E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CACtB,cACE,SAAS,EAAE,OAAO,CAChB,6BAA6B,EAC7B,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAC1D,YAED,KAAC,WAAW,IACV,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,iCAAiC,EAC1F,SAAS,EAAE,KAAK,EAChB,SAAS,EAAC,oFAAoF,GAC9F,GACE,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,SAAS,GAAG,CAChB,eAAK,SAAS,EAAE,OAAO,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,aAChF,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,6EAA6E,YAC1F,QAAQ,GACJ,CACR,EACA,KAAK,IAAI,CACR,aAAI,SAAS,EAAC,kDAAkD,YAC7D,KAAK,GACH,CACN,EACA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,uDAAuD,YACjE,WAAW,GACV,CACL,EACA,MAAM,IAAI,CACT,YACE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,EACD,SAAS,EAAC,+FAA+F,YAExG,SAAS,GACR,CACL,IACG,CACP,CAAC;IAEF,OAAO,CACL,+BACgB,UAAU,EACxB,SAAS,EAAE,OAAO,CAChB,2GAA2G,EAC3G,YAAY,IAAI,MAAM,EACtB,aAAa,KAAK,OAAO,IAAI,kBAAkB,EAC/C,SAAS,CACV,aAEA,OAAO,EACP,SAAS,IACN,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { EditableNodeAttributes, FooterColumn } from "../types";
|
|
2
|
+
import { type StudioImageSource } from "./StudioImage";
|
|
2
3
|
interface FooterProps extends EditableNodeAttributes {
|
|
3
4
|
columns?: FooterColumn[];
|
|
4
|
-
logo?:
|
|
5
|
+
logo?: StudioImageSource;
|
|
5
6
|
copyright?: string;
|
|
6
7
|
className?: string;
|
|
7
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEpE,UAAU,WAAY,SAAQ,sBAAsB;IAClD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,MAAM,CAAC,EAAE,OAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,WAAW,2CA8D3G"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
3
|
import { useNavigate } from "../router";
|
|
4
|
+
import { StudioImage } from "./StudioImage";
|
|
4
5
|
export function Footer({ columns = [], logo, copyright, className, "data-node-id": dataNodeId }) {
|
|
5
6
|
const navigate = useNavigate();
|
|
6
7
|
const colCount = columns.length || 1;
|
|
@@ -15,6 +16,6 @@ export function Footer({ columns = [], logo, copyright, className, "data-node-id
|
|
|
15
16
|
e.preventDefault();
|
|
16
17
|
navigate(link.to);
|
|
17
18
|
}
|
|
18
|
-
}, className: "text-sm text-white/60 hover:text-white transition-colors", children: link.label }) }, link.to))) })] }, col.title))) })), _jsxs("div", { className: "border-t border-white/10 pt-6 flex flex-col sm:flex-row items-center justify-between gap-4", children: [logo && _jsx(
|
|
19
|
+
}, className: "text-sm text-white/60 hover:text-white transition-colors", children: link.label }) }, link.to))) })] }, col.title))) })), _jsxs("div", { className: "border-t border-white/10 pt-6 flex flex-col sm:flex-row items-center justify-between gap-4", children: [logo && _jsx(StudioImage, { src: logo, decorative: true, sizes: "160px", className: "h-6 w-auto opacity-60" }), copyright && (_jsx("p", { className: "text-xs text-white/40", children: copyright }))] })] }) }));
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=Footer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AASpE,MAAM,UAAU,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAe;IAC1G,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAErC,MAAM,SAAS,GACb,QAAQ,IAAI,CAAC;QACX,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,QAAQ,KAAK,CAAC;YACd,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,4BAA4B,CAAC;IAErC,OAAO,CACL,iCACgB,UAAU,EACxB,SAAS,EAAE,OAAO,CAChB,mDAAmD,EACnD,SAAS,CACV,YAED,eAAK,SAAS,EAAC,8BAA8B,aAE1C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,cAAK,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,YAClD,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,0BACE,aAAI,SAAS,EAAC,gEAAgE,YAC3E,GAAG,CAAC,KAAK,GACP,EACL,aAAI,SAAS,EAAC,qBAAqB,YAChC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,uBACE,YACE,IAAI,EAAE,IAAI,CAAC,EAAE,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4CACb,8CAA8C;4CAC9C,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gDAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;gDACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4CACpB,CAAC;wCACH,CAAC,EACD,SAAS,EAAC,0DAA0D,YAEnE,IAAI,CAAC,KAAK,GACT,IAbG,IAAI,CAAC,EAAE,CAcX,CACN,CAAC,GACC,KAtBG,GAAG,CAAC,KAAK,CAuBb,CACP,CAAC,GACE,CACP,EAGD,eAAK,SAAS,EAAC,4FAA4F,aACxG,IAAI,IAAI,KAAC,WAAW,IAAC,GAAG,EAAE,IAAI,EAAE,UAAU,QAAC,KAAK,EAAC,OAAO,EAAC,SAAS,EAAC,uBAAuB,GAAG,EAC7F,SAAS,IAAI,CACZ,YAAG,SAAS,EAAC,uBAAuB,YAAE,SAAS,GAAK,CACrD,IACG,IACF,GACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EditableNodeAttributes } from "../types";
|
|
2
|
+
import { type StudioImageSource } from "./StudioImage";
|
|
2
3
|
interface GalleryImage {
|
|
3
|
-
src:
|
|
4
|
+
src: StudioImageSource;
|
|
4
5
|
alt?: string;
|
|
5
6
|
category?: string;
|
|
6
7
|
}
|
|
@@ -14,6 +15,6 @@ interface GalleryProps extends EditableNodeAttributes {
|
|
|
14
15
|
columns?: 2 | 3 | 4;
|
|
15
16
|
className?: string;
|
|
16
17
|
}
|
|
17
|
-
export declare function Gallery({ propertyId: propertyIdProp, images: staticImages, categories, layout, columns, className, "data-node-id": dataNodeId, }: GalleryProps): import("react/jsx-runtime").JSX.Element
|
|
18
|
+
export declare function Gallery({ propertyId: propertyIdProp, images: staticImages, categories, layout, columns, className, "data-node-id": dataNodeId, }: GalleryProps): import("react/jsx-runtime").JSX.Element;
|
|
18
19
|
export {};
|
|
19
20
|
//# sourceMappingURL=Gallery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../src/components/Gallery.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../src/components/Gallery.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEpE,UAAU,YAAY;IACpB,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,YAAa,SAAQ,sBAAsB;IACnD,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0BD,wBAAgB,OAAO,CAAC,EACtB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,YAAiB,EACzB,UAAU,EACV,MAAe,EACf,OAAW,EACX,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,YAAY,2CAoPd"}
|