@meetelise/studio-components 0.0.22 → 0.0.23
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/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/Gallery.d.ts +1 -1
- package/dist/components/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery.js +32 -9
- package/dist/components/Gallery.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/PropertyCard.d.ts +1 -1
- package/dist/components/PropertyCard.d.ts.map +1 -1
- package/dist/components/PropertyCard.js +7 -0
- 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/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/package.json +1 -1
|
@@ -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":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAiBhE,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,GAAG,EAAE,EACV,aAAa,GAAG,KAAK,EACrB,WAAW,GAAG,EAAE,EAChB,WAAW,GAAG,OAAO,EACrB,SAAS,EACT,cAAc,EAAE,UAAU,GACX;IACf,MAAM,MAAM,GAAG,WAAW,KAAK,MAAM,CAAC;IACtC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,IAAI,GAAG,CAAC,WAAW,CAAC,CACrB,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,KAAa,EAAE,EAAE;QAChB,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAC,4BAA4B,EACjC,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACgB,UAAU,EACxB,SAAS,EAAE,OAAO,CAChB,mBAAmB,EACnB,MAAM;YACJ,CAAC,CAAC,iCAAiC;YACnC,CAAC,CAAC,+DAA+D,EACnE,SAAS,CACV,YAEA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,CACL,0BACE,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,OAAO,CAChB,8GAA8G,EAC9G,MAAM;4BACJ,CAAC,CAAC,gDAAgD;4BAClD,CAAC,CAAC,kEAAkE,CACvE,mBACc,MAAM,aAErB,yBAAO,IAAI,CAAC,KAAK,GAAQ,EACzB,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,SAAS,EAAE,OAAO,CAChB,iDAAiD,EACjD,MAAM,IAAI,YAAY,CACvB,YAED,eAAM,CAAC,EAAC,cAAc,GAAG,GACrB,IACC,EACT,cACE,SAAS,EAAE,OAAO,CAChB,6CAA6C,EAC7C,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAC3C,YAEA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,YAAG,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,+BAA+B,CAAC,YACzF,IAAI,CAAC,OAAO,GACX,CACL,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,QAAQ,CACd,GACG,KAxCE,CAAC,CAyCL,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -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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"}
|
|
@@ -14,6 +14,6 @@ interface GalleryProps extends EditableNodeAttributes {
|
|
|
14
14
|
columns?: 2 | 3 | 4;
|
|
15
15
|
className?: string;
|
|
16
16
|
}
|
|
17
|
-
export declare function Gallery({ propertyId: propertyIdProp, images: staticImages, categories, layout, columns, className, "data-node-id": dataNodeId, }: GalleryProps): import("react/jsx-runtime").JSX.Element
|
|
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
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=Gallery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../src/components/Gallery.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Gallery.d.ts","sourceRoot":"","sources":["../../src/components/Gallery.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,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;AAeD,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,2CA+Od"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useMemo, useEffect, useCallback } from "react";
|
|
2
|
+
import { useState, useMemo, 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 { imageUrl } from "../utils/imageUrl";
|
|
7
7
|
import { Lightbox } from "./Lightbox";
|
|
8
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
8
9
|
const gridColClasses = {
|
|
9
10
|
2: "grid-cols-1 sm:grid-cols-2",
|
|
10
11
|
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
@@ -22,11 +23,15 @@ export function Gallery({ propertyId: propertyIdProp, images: staticImages = [],
|
|
|
22
23
|
const propertyId = propertyIdProp ?? config.property?.propertyId;
|
|
23
24
|
const apiBaseUrl = config.property?.apiBaseUrl ?? "";
|
|
24
25
|
const [apiImages, setApiImages] = useState(null);
|
|
25
|
-
const [loading, setLoading] = useState(
|
|
26
|
+
const [loading, setLoading] = useState(Boolean(propertyId));
|
|
27
|
+
const [loadedPropertyId, setLoadedPropertyId] = useState(null);
|
|
28
|
+
const requestSeqRef = useRef(0);
|
|
26
29
|
// Fetch from media API when propertyId is available
|
|
27
30
|
const fetchMedia = useCallback(async () => {
|
|
28
31
|
if (!propertyId)
|
|
29
32
|
return;
|
|
33
|
+
const requestSeq = requestSeqRef.current + 1;
|
|
34
|
+
requestSeqRef.current = requestSeq;
|
|
30
35
|
setLoading(true);
|
|
31
36
|
try {
|
|
32
37
|
const res = await authenticatedFetch(`${apiBaseUrl}/v1/properties/${propertyId}?include_media=true`);
|
|
@@ -37,21 +42,38 @@ export function Gallery({ propertyId: propertyIdProp, images: staticImages = [],
|
|
|
37
42
|
alt: m.name || m.description || "",
|
|
38
43
|
category: TYPE_TO_CATEGORY[m.type ?? ""] ?? m.type ?? undefined,
|
|
39
44
|
}));
|
|
45
|
+
if (requestSeq !== requestSeqRef.current)
|
|
46
|
+
return;
|
|
40
47
|
setApiImages(items);
|
|
41
48
|
}
|
|
42
49
|
catch {
|
|
50
|
+
if (requestSeq !== requestSeqRef.current)
|
|
51
|
+
return;
|
|
43
52
|
setApiImages(null);
|
|
44
53
|
}
|
|
45
54
|
finally {
|
|
46
|
-
|
|
55
|
+
if (requestSeq === requestSeqRef.current) {
|
|
56
|
+
setLoadedPropertyId(propertyId);
|
|
57
|
+
setLoading(false);
|
|
58
|
+
}
|
|
47
59
|
}
|
|
48
60
|
}, [propertyId, apiBaseUrl, authenticatedFetch]);
|
|
49
61
|
useEffect(() => {
|
|
50
|
-
if (propertyId)
|
|
51
|
-
|
|
62
|
+
if (!propertyId) {
|
|
63
|
+
requestSeqRef.current += 1;
|
|
64
|
+
setApiImages(null);
|
|
65
|
+
setLoadedPropertyId(null);
|
|
66
|
+
setLoading(false);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
fetchMedia();
|
|
52
70
|
}, [propertyId, fetchMedia]);
|
|
53
71
|
// Use API images if available, else static content-blob images
|
|
54
|
-
const
|
|
72
|
+
const hasFreshApiImages = Boolean(propertyId) && loadedPropertyId === propertyId && apiImages !== null;
|
|
73
|
+
const images = hasFreshApiImages ? apiImages : staticImages;
|
|
74
|
+
const isWaitingForApiImages = Boolean(propertyId) &&
|
|
75
|
+
staticImages.length === 0 &&
|
|
76
|
+
(loading || loadedPropertyId !== propertyId);
|
|
55
77
|
const [activeCategory, setActiveCategory] = useState(null);
|
|
56
78
|
const [lightboxIndex, setLightboxIndex] = useState(null);
|
|
57
79
|
const [carouselIndex, setCarouselIndex] = useState(0);
|
|
@@ -66,11 +88,12 @@ export function Gallery({ propertyId: propertyIdProp, images: staticImages = [],
|
|
|
66
88
|
return images;
|
|
67
89
|
return images.filter((img) => img.category === activeCategory);
|
|
68
90
|
}, [images, activeCategory]);
|
|
69
|
-
if (loading) {
|
|
91
|
+
if (loading || isWaitingForApiImages) {
|
|
70
92
|
return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("text-center py-8 text-[var(--color-muted)]", className), children: "Loading gallery..." }));
|
|
71
93
|
}
|
|
72
|
-
if (images.length === 0)
|
|
73
|
-
return
|
|
94
|
+
if (images.length === 0) {
|
|
95
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Add gallery images", hint: "Photos will appear here", className: className }));
|
|
96
|
+
}
|
|
74
97
|
return (_jsxs("div", { "data-node-id": dataNodeId, className: twMerge("w-full", className), children: [derivedCategories.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 mb-6", children: derivedCategories.map((cat) => {
|
|
75
98
|
const isActive = cat === "All" ? !activeCategory : activeCategory === cat;
|
|
76
99
|
return (_jsx("button", { onClick: () => setActiveCategory(cat === "All" ? null : cat), className: twMerge("rounded-full px-4 py-1.5 text-sm font-medium transition-colors cursor-pointer", isActive
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.js","sourceRoot":"","sources":["../../src/components/Gallery.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Gallery.js","sourceRoot":"","sources":["../../src/components/Gallery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/components/Link.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../src/components/Link.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,SAAU,SAAQ,sBAAsB;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,SAAS,2CA2BrF"}
|
package/dist/components/Link.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
3
|
import { useNavigate } from "../router";
|
|
4
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
4
5
|
const defaults = "text-[var(--color-primary)] underline-offset-2 hover:underline cursor-pointer";
|
|
5
6
|
export function Link({ to, content, className, "data-node-id": dataNodeId }) {
|
|
6
7
|
const navigate = useNavigate();
|
|
8
|
+
if (!content) {
|
|
9
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Empty Link", hint: "Add link text", className: className }));
|
|
10
|
+
}
|
|
7
11
|
return (_jsx("a", { "data-node-id": dataNodeId, href: to, className: twMerge(defaults, className), onClick: (e) => {
|
|
8
12
|
e.preventDefault();
|
|
9
13
|
navigate(to);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../../src/components/Link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../../src/components/Link.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,MAAM,QAAQ,GAAG,+EAA+E,CAAC;AAEjG,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAa;IACpF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,YAAY,EAClB,IAAI,EAAC,eAAe,EACpB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,4BACgB,UAAU,EACxB,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EACvC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC,YAEA,OAAO,GACN,CACL,CAAC;AACJ,CAAC"}
|
|
@@ -5,6 +5,6 @@ interface ModalProps extends EditableNodeAttributes {
|
|
|
5
5
|
children?: React.ReactNode;
|
|
6
6
|
className?: string;
|
|
7
7
|
}
|
|
8
|
-
export declare function Modal({ id, title, children, className, "data-node-id": dataNodeId }: ModalProps): import("react/jsx-runtime").JSX.Element
|
|
8
|
+
export declare function Modal({ id, title, children, className, "data-node-id": dataNodeId }: ModalProps): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,UAAW,SAAQ,sBAAsB;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,UAAU,2CAqE/F"}
|
package/dist/components/Modal.js
CHANGED
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useRef, useEffect } from "react";
|
|
3
3
|
import { twMerge } from "tailwind-merge";
|
|
4
4
|
import { useModal } from "../hooks/useModal";
|
|
5
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
5
6
|
export function Modal({ id, title, children, className, "data-node-id": dataNodeId }) {
|
|
6
7
|
const { activeModalId, closeModal } = useModal();
|
|
7
8
|
const panelRef = useRef(null);
|
|
@@ -12,8 +13,9 @@ export function Modal({ id, title, children, className, "data-node-id": dataNode
|
|
|
12
13
|
panelRef.current.focus();
|
|
13
14
|
}
|
|
14
15
|
}, [isOpen]);
|
|
15
|
-
if (!isOpen)
|
|
16
|
-
return
|
|
16
|
+
if (!isOpen) {
|
|
17
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Closed Modal", hint: "Open this modal from a button", className: className }));
|
|
18
|
+
}
|
|
17
19
|
return (_jsxs("div", { "data-node-id": dataNodeId, className: "fixed inset-0 z-50 flex items-center justify-center p-4", onClick: closeModal, role: "dialog", "aria-modal": "true", "aria-label": title, children: [_jsx("div", { className: "absolute inset-0 bg-black/60" }), _jsxs("div", { ref: panelRef, tabIndex: -1, onClick: (e) => e.stopPropagation(), className: twMerge("relative z-10 w-full max-w-lg max-h-[90vh] overflow-y-auto rounded-[var(--radius)] bg-white shadow-2xl", className), children: [_jsxs("div", { className: "flex items-center justify-between border-b border-gray-100 px-6 py-4", children: [title && (_jsx("h2", { className: "text-lg font-semibold text-[var(--color-foreground)]", children: title })), _jsx("button", { onClick: closeModal, className: "ml-auto rounded-md p-1 text-[var(--color-muted)] hover:text-[var(--color-foreground)] transition-colors cursor-pointer", "aria-label": "Close", children: _jsx("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M5 5l10 10M15 5L5 15" }) }) })] }), _jsx("div", { className: "px-6 py-5", children: children })] })] }));
|
|
18
20
|
}
|
|
19
21
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,UAAU,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAc;IAC9F,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,aAAa,KAAK,EAAE,CAAC;IAEpC,uCAAuC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,+BAA+B,EACpC,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,+BACgB,UAAU,EACxB,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,UAAU,EACnB,IAAI,EAAC,QAAQ,gBACF,MAAM,gBACL,KAAK,aAGjB,cAAK,SAAS,EAAC,8BAA8B,GAAG,EAGhD,eACE,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACnC,SAAS,EAAE,OAAO,CAChB,wGAAwG,EACxG,SAAS,CACV,aAGD,eAAK,SAAS,EAAC,sEAAsE,aAClF,KAAK,IAAI,CACR,aAAI,SAAS,EAAC,sDAAsD,YACjE,KAAK,GACH,CACN,EACD,iBACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,wHAAwH,gBACvH,OAAO,YAElB,cAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,YAC/F,eAAM,CAAC,EAAC,sBAAsB,GAAG,GAC7B,GACC,IACL,EAGN,cAAK,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAO,IACvC,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PublicProperty } from "../hooks/useProperties";
|
|
2
2
|
import type { EditableNodeAttributes } from "../types";
|
|
3
3
|
interface PropertyCardProps extends EditableNodeAttributes {
|
|
4
|
-
property
|
|
4
|
+
property?: PublicProperty | null;
|
|
5
5
|
/**
|
|
6
6
|
* Link target template. Placeholders: {id}, {name}, {city}, {state}.
|
|
7
7
|
* Use an absolute URL (https://…) to link to a property's own website.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../src/components/PropertyCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../src/components/PropertyCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,iBAAkB,SAAQ,sBAAsB;IACxD,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAMnF;AAYD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAgC,EAChC,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,iBAAiB,2CAyDnB"}
|
|
@@ -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 { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
4
5
|
export function buildPropertyHref(pattern, property) {
|
|
5
6
|
return pattern
|
|
6
7
|
.replace(/\{id\}/g, String(property.id))
|
|
@@ -14,8 +15,14 @@ function primaryImageUrl(property) {
|
|
|
14
15
|
const sorted = [...property.media].sort((a, b) => (a.rank ?? 999) - (b.rank ?? 999));
|
|
15
16
|
return sorted[0]?.url ?? null;
|
|
16
17
|
}
|
|
18
|
+
function isUsableProperty(value) {
|
|
19
|
+
return Boolean(value && typeof value === "object" && (value.id != null || value.name));
|
|
20
|
+
}
|
|
17
21
|
export function PropertyCard({ property, hrefPattern = "/properties/{id}", className, "data-node-id": dataNodeId, }) {
|
|
18
22
|
const navigate = useNavigate();
|
|
23
|
+
if (!isUsableProperty(property)) {
|
|
24
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Configure property card", hint: "Property cards are usually rendered by Property Grid", className: className }));
|
|
25
|
+
}
|
|
19
26
|
const href = buildPropertyHref(hrefPattern, property);
|
|
20
27
|
const isExternal = /^https?:\/\//i.test(href);
|
|
21
28
|
const image = primaryImageUrl(property);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyCard.js","sourceRoot":"","sources":["../../src/components/PropertyCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyCard.js","sourceRoot":"","sources":["../../src/components/PropertyCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EditableNodeAttributes } from "../types";
|
|
2
|
+
interface StudioEditPlaceholderProps extends EditableNodeAttributes {
|
|
3
|
+
label: string;
|
|
4
|
+
hint?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function StudioEditPlaceholder({ label, hint, className, "data-node-id": dataNodeId, }: StudioEditPlaceholderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=StudioEditPlaceholder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudioEditPlaceholder.d.ts","sourceRoot":"","sources":["../../src/components/StudioEditPlaceholder.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,UAAU,0BAA2B,SAAQ,sBAAsB;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,0BAA0B,kDAe5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
export function StudioEditPlaceholder({ label, hint, className, "data-node-id": dataNodeId, }) {
|
|
4
|
+
if (!dataNodeId)
|
|
5
|
+
return null;
|
|
6
|
+
return (_jsxs("div", { "data-node-id": dataNodeId, "data-studio-runtime-placeholder": "true", "data-studio-empty-kind": "component", "data-studio-empty-label": label, className: twMerge("studio-edit-placeholder", className), children: [_jsx("span", { children: label }), hint && _jsx("small", { children: hint })] }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=StudioEditPlaceholder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudioEditPlaceholder.js","sourceRoot":"","sources":["../../src/components/StudioEditPlaceholder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AASzC,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,cAAc,EAAE,UAAU,GACC;IAC3B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,OAAO,CACL,+BACgB,UAAU,qCACQ,MAAM,4BACf,WAAW,6BACT,KAAK,EAC9B,SAAS,EAAE,OAAO,CAAC,yBAAyB,EAAE,SAAS,CAAC,aAExD,yBAAO,KAAK,GAAQ,EACnB,IAAI,IAAI,0BAAQ,IAAI,GAAS,IAC1B,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -14,6 +14,6 @@ interface VideoPlayerProps extends EditableNodeAttributes {
|
|
|
14
14
|
aspect?: "16/9" | "4/3" | "1/1" | "auto";
|
|
15
15
|
className?: string;
|
|
16
16
|
}
|
|
17
|
-
export declare function VideoPlayer({ src, poster, controls, autoplay, loop, aspect, className, "data-node-id": dataNodeId, }: VideoPlayerProps): import("react/jsx-runtime").JSX.Element
|
|
17
|
+
export declare function VideoPlayer({ src, poster, controls, autoplay, loop, aspect, className, "data-node-id": dataNodeId, }: VideoPlayerProps): import("react/jsx-runtime").JSX.Element;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=VideoPlayer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../src/components/VideoPlayer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../src/components/VideoPlayer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,UAAU,gBAAiB,SAAQ,sBAAsB;IACvD,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,QAAe,EACf,QAAgB,EAChB,IAAY,EACZ,MAAe,EACf,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,gBAAgB,2CAiClB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
|
|
3
4
|
const aspectClasses = {
|
|
4
5
|
"16/9": "aspect-[16/9]",
|
|
5
6
|
"4/3": "aspect-[4/3]",
|
|
@@ -7,8 +8,9 @@ const aspectClasses = {
|
|
|
7
8
|
auto: "",
|
|
8
9
|
};
|
|
9
10
|
export function VideoPlayer({ src, poster, controls = true, autoplay = false, loop = false, aspect = "16/9", className, "data-node-id": dataNodeId, }) {
|
|
10
|
-
if (!src)
|
|
11
|
-
return
|
|
11
|
+
if (!src) {
|
|
12
|
+
return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Configure video", hint: "Add a video URL", className: className }));
|
|
13
|
+
}
|
|
12
14
|
return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("w-full overflow-hidden rounded-lg bg-black", aspectClasses[aspect] ?? aspectClasses["16/9"], className), children: _jsx("video", { src: src, poster: poster, controls: controls, autoPlay: autoplay, loop: loop, muted: autoplay, playsInline: true, className: "w-full h-full object-cover" }) }));
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=VideoPlayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../src/components/VideoPlayer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../src/components/VideoPlayer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAkBhE,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,MAAM,EACf,SAAS,EACT,cAAc,EAAE,UAAU,GACT;IACjB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,iBAAiB,EACtB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACgB,UAAU,EACxB,SAAS,EAAE,OAAO,CAChB,4CAA4C,EAC5C,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAC9C,SAAS,CACV,YAED,gBACE,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,QAAQ,EACf,WAAW,QACX,SAAS,EAAC,4BAA4B,GACtC,GACE,CACP,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED