@meetelise/studio-components 0.0.17 → 0.0.19

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.
Files changed (55) hide show
  1. package/dist/componentSchema.json +116 -17
  2. package/dist/components/ContactForm.d.ts.map +1 -1
  3. package/dist/components/ContactForm.js +4 -1
  4. package/dist/components/ContactForm.js.map +1 -1
  5. package/dist/components/LocationsDirectory.d.ts +17 -0
  6. package/dist/components/LocationsDirectory.d.ts.map +1 -0
  7. package/dist/components/LocationsDirectory.js +72 -0
  8. package/dist/components/LocationsDirectory.js.map +1 -0
  9. package/dist/components/PropertyCard.d.ts +14 -0
  10. package/dist/components/PropertyCard.d.ts.map +1 -0
  11. package/dist/components/PropertyCard.js +31 -0
  12. package/dist/components/PropertyCard.js.map +1 -0
  13. package/dist/components/PropertyGrid.d.ts +12 -0
  14. package/dist/components/PropertyGrid.d.ts.map +1 -0
  15. package/dist/components/PropertyGrid.js +55 -0
  16. package/dist/components/PropertyGrid.js.map +1 -0
  17. package/dist/components/ScheduleTour.d.ts.map +1 -1
  18. package/dist/components/ScheduleTour.js +2 -0
  19. package/dist/components/ScheduleTour.js.map +1 -1
  20. package/dist/components/browser/componentMeta.d.ts +1 -1
  21. package/dist/components/browser/componentMeta.d.ts.map +1 -1
  22. package/dist/components/browser/componentMeta.js +43 -0
  23. package/dist/components/browser/componentMeta.js.map +1 -1
  24. package/dist/components/registry.d.ts.map +1 -1
  25. package/dist/components/registry.js +6 -2
  26. package/dist/components/registry.js.map +1 -1
  27. package/dist/hooks/useProperties.d.ts +58 -0
  28. package/dist/hooks/useProperties.d.ts.map +1 -0
  29. package/dist/hooks/useProperties.js +56 -0
  30. package/dist/hooks/useProperties.js.map +1 -0
  31. package/dist/index.d.ts +5 -3
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +3 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/router.d.ts +2 -0
  36. package/dist/router.d.ts.map +1 -1
  37. package/dist/router.js +31 -1
  38. package/dist/router.js.map +1 -1
  39. package/dist/schema/componentSchema.d.ts +23 -3
  40. package/dist/schema/componentSchema.d.ts.map +1 -1
  41. package/dist/schema/componentSchema.js +80 -11
  42. package/dist/schema/componentSchema.js.map +1 -1
  43. package/dist/schema/releasePolicy.d.ts +41 -0
  44. package/dist/schema/releasePolicy.d.ts.map +1 -0
  45. package/dist/schema/releasePolicy.js +529 -0
  46. package/dist/schema/releasePolicy.js.map +1 -0
  47. package/dist/utils/utm.d.ts +17 -0
  48. package/dist/utils/utm.d.ts.map +1 -0
  49. package/dist/utils/utm.js +20 -0
  50. package/dist/utils/utm.js.map +1 -0
  51. package/package.json +4 -2
  52. package/dist/components/EliseChat.d.ts +0 -8
  53. package/dist/components/EliseChat.d.ts.map +0 -1
  54. package/dist/components/EliseChat.js +0 -22
  55. package/dist/components/EliseChat.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": 2,
2
+ "schemaVersion": 3,
3
3
  "components": {
4
4
  "Text": {
5
5
  "kind": "element",
@@ -1082,6 +1082,121 @@
1082
1082
  }
1083
1083
  }
1084
1084
  },
1085
+ "PropertyGrid": {
1086
+ "kind": "elise-component",
1087
+ "category": "Multi-Property",
1088
+ "description": "Searchable grid of a portfolio's communities (central/multi-property sites)",
1089
+ "needsApi": true,
1090
+ "acceptsChildren": false,
1091
+ "props": {
1092
+ "columns": {
1093
+ "kind": "enum",
1094
+ "options": [
1095
+ 2,
1096
+ 3,
1097
+ 4
1098
+ ],
1099
+ "default": 3
1100
+ },
1101
+ "showSearch": {
1102
+ "kind": "boolean",
1103
+ "default": true
1104
+ },
1105
+ "showStateFilter": {
1106
+ "kind": "boolean",
1107
+ "default": true
1108
+ },
1109
+ "hrefPattern": {
1110
+ "kind": "string",
1111
+ "default": "/properties/{id}",
1112
+ "label": "Card link pattern"
1113
+ },
1114
+ "emptyMessage": {
1115
+ "kind": "string",
1116
+ "default": "No communities found.",
1117
+ "label": "Empty message"
1118
+ }
1119
+ }
1120
+ },
1121
+ "PropertyCard": {
1122
+ "kind": "elise-component",
1123
+ "category": "Multi-Property",
1124
+ "description": "A single community card (image, name, location) — usually rendered by PropertyGrid",
1125
+ "acceptsChildren": false,
1126
+ "props": {
1127
+ "property": {
1128
+ "kind": "object",
1129
+ "required": true,
1130
+ "bindable": true,
1131
+ "label": "Property record",
1132
+ "subFields": {
1133
+ "id": {
1134
+ "kind": "string",
1135
+ "label": "Property id"
1136
+ },
1137
+ "name": {
1138
+ "kind": "string",
1139
+ "label": "Property name"
1140
+ },
1141
+ "city": {
1142
+ "kind": "string",
1143
+ "label": "City"
1144
+ },
1145
+ "state": {
1146
+ "kind": "string",
1147
+ "label": "State"
1148
+ }
1149
+ }
1150
+ },
1151
+ "hrefPattern": {
1152
+ "kind": "string",
1153
+ "default": "/properties/{id}",
1154
+ "label": "Link pattern"
1155
+ }
1156
+ }
1157
+ },
1158
+ "LocationsDirectory": {
1159
+ "kind": "elise-component",
1160
+ "category": "Multi-Property",
1161
+ "description": "Communities grouped by state and city with counts and links",
1162
+ "needsApi": true,
1163
+ "acceptsChildren": false,
1164
+ "props": {
1165
+ "columns": {
1166
+ "kind": "enum",
1167
+ "options": [
1168
+ 2,
1169
+ 3,
1170
+ 4
1171
+ ],
1172
+ "default": 4
1173
+ },
1174
+ "showCities": {
1175
+ "kind": "boolean",
1176
+ "default": true
1177
+ },
1178
+ "hrefPattern": {
1179
+ "kind": "string",
1180
+ "default": "/properties?state={state}",
1181
+ "label": "Location link pattern"
1182
+ },
1183
+ "loadingMessage": {
1184
+ "kind": "string",
1185
+ "default": "Loading locations...",
1186
+ "label": "Loading message"
1187
+ },
1188
+ "emptyMessage": {
1189
+ "kind": "string",
1190
+ "default": "No locations available yet.",
1191
+ "label": "Empty message"
1192
+ },
1193
+ "errorMessage": {
1194
+ "kind": "string",
1195
+ "default": "Locations are unavailable right now.",
1196
+ "label": "Error message"
1197
+ }
1198
+ }
1199
+ },
1085
1200
  "ContactForm": {
1086
1201
  "kind": "elise-component",
1087
1202
  "category": "Forms",
@@ -1098,22 +1213,6 @@
1098
1213
  "acceptsChildren": false,
1099
1214
  "props": {}
1100
1215
  },
1101
- "EliseChat": {
1102
- "kind": "elise-component",
1103
- "category": "Forms",
1104
- "description": "Embeds the Elise chat widget for a building",
1105
- "acceptsChildren": false,
1106
- "props": {
1107
- "buildingId": {
1108
- "kind": "string",
1109
- "label": "Building id"
1110
- },
1111
- "scriptUrl": {
1112
- "kind": "url",
1113
- "label": "Widget script URL"
1114
- }
1115
- }
1116
- },
1117
1216
  "ComponentBrowser": {
1118
1217
  "kind": "system",
1119
1218
  "category": "Developer",
@@ -1 +1 @@
1
- {"version":3,"file":"ContactForm.d.ts","sourceRoot":"","sources":["../../src/components/ContactForm.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,MAAuB,EACvB,WAAoB,EACpB,cAA6C,EAC7C,SAAS,GACV,EAAE,gBAAgB,2CAoIlB"}
1
+ {"version":3,"file":"ContactForm.d.ts","sourceRoot":"","sources":["../../src/components/ContactForm.tsx"],"names":[],"mappings":"AAMA,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,MAAuB,EACvB,WAAoB,EACpB,cAA6C,EAC7C,SAAS,GACV,EAAE,gBAAgB,2CAqIlB"}
@@ -3,6 +3,7 @@ import { useState } from "react";
3
3
  import { twMerge } from "tailwind-merge";
4
4
  import { useSiteConfig } from "../hooks/useSiteConfig";
5
5
  import { useAuth } from "../hooks/useAuth";
6
+ import { collectUtmParams } from "../utils/utm";
6
7
  const DEFAULT_FIELDS = [
7
8
  "firstName",
8
9
  "lastName",
@@ -54,7 +55,9 @@ export function ContactForm({ propertyId: propertyIdProp, source = "website", fi
54
55
  body.move_in_date = values.moveInDate;
55
56
  if (values.bedrooms)
56
57
  body.bedrooms = Number(values.bedrooms);
57
- // message is not a field on the prospect API -- could be added as a note
58
+ if (values.message)
59
+ body.message = values.message;
60
+ Object.assign(body, collectUtmParams());
58
61
  const res = await authenticatedFetch(`${apiBaseUrl}/v1/prospect`, {
59
62
  method: "POST",
60
63
  headers: { "Content-Type": "application/json" },
@@ -1 +1 @@
1
- {"version":3,"file":"ContactForm.js","sourceRoot":"","sources":["../../src/components/ContactForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContactForm.js","sourceRoot":"","sources":["../../src/components/ContactForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ interface LocationsDirectoryProps {
2
+ /**
3
+ * Link template for each location. Placeholders: {state}, {city}.
4
+ * Defaults to a state-filtered listing route.
5
+ */
6
+ hrefPattern?: string;
7
+ /** Show cities (with counts) nested under each state. */
8
+ showCities?: boolean;
9
+ columns?: 2 | 3 | 4;
10
+ loadingMessage?: string;
11
+ emptyMessage?: string;
12
+ errorMessage?: string;
13
+ className?: string;
14
+ }
15
+ export declare function LocationsDirectory({ hrefPattern, showCities, columns, loadingMessage, emptyMessage, errorMessage, className, }: LocationsDirectoryProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=LocationsDirectory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationsDirectory.d.ts","sourceRoot":"","sources":["../../src/components/LocationsDirectory.tsx"],"names":[],"mappings":"AAKA,UAAU,uBAAuB;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmCD,wBAAgB,kBAAkB,CAAC,EACjC,WAAyC,EACzC,UAAiB,EACjB,OAAW,EACX,cAAuC,EACvC,YAA4C,EAC5C,YAAqD,EACrD,SAAS,GACV,EAAE,uBAAuB,2CAkFzB"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { twMerge } from "tailwind-merge";
4
+ import { useNavigate } from "../router";
5
+ import { useProperties } from "../hooks/useProperties";
6
+ const gridColClasses = {
7
+ 2: "grid-cols-1 sm:grid-cols-2",
8
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
9
+ 4: "grid-cols-2 lg:grid-cols-4",
10
+ };
11
+ function buildLocationHref(pattern, state, city) {
12
+ const href = pattern
13
+ .replace(/\{state\}/g, encodeURIComponent(state))
14
+ .replace(/\{city\}/g, encodeURIComponent(city ?? ""));
15
+ if (city)
16
+ return href;
17
+ const [pathAndQuery, hash] = href.split("#");
18
+ const [path, query] = pathAndQuery.split("?");
19
+ if (!query)
20
+ return href;
21
+ const params = new URLSearchParams(query);
22
+ params.delete("city");
23
+ const nextQuery = params.toString();
24
+ return `${path}${nextQuery ? `?${nextQuery}` : ""}${hash ? `#${hash}` : ""}`;
25
+ }
26
+ export function LocationsDirectory({ hrefPattern = "/properties?state={state}", showCities = true, columns = 4, loadingMessage = "Loading locations...", emptyMessage = "No locations available yet.", errorMessage = "Locations are unavailable right now.", className, }) {
27
+ const { properties, loading, error } = useProperties({ includeMedia: false, includeAttributes: false });
28
+ const navigate = useNavigate();
29
+ const states = useMemo(() => {
30
+ const stateMap = new Map();
31
+ for (const p of properties) {
32
+ if (!p.state)
33
+ continue;
34
+ const cityMap = stateMap.get(p.state) ?? new Map();
35
+ if (p.city)
36
+ cityMap.set(p.city, (cityMap.get(p.city) ?? 0) + 1);
37
+ stateMap.set(p.state, cityMap);
38
+ }
39
+ return [...stateMap.entries()]
40
+ .map(([state, cityMap]) => {
41
+ const cities = [...cityMap.entries()]
42
+ .map(([city, count]) => ({ city, count }))
43
+ .sort((a, b) => a.city.localeCompare(b.city));
44
+ const count = cities.reduce((sum, c) => sum + c.count, 0);
45
+ return { state, count, cities };
46
+ })
47
+ .sort((a, b) => a.state.localeCompare(b.state));
48
+ }, [properties]);
49
+ if (loading && properties.length === 0) {
50
+ return _jsx("p", { className: twMerge("text-sm text-[var(--color-muted)]", className), children: loadingMessage });
51
+ }
52
+ if (error) {
53
+ return _jsx("p", { className: twMerge("text-sm text-[var(--color-muted)]", className), children: errorMessage });
54
+ }
55
+ if (states.length === 0) {
56
+ return _jsx("p", { className: twMerge("text-sm text-[var(--color-muted)]", className), children: emptyMessage });
57
+ }
58
+ const go = (e, href) => {
59
+ if (/^https?:\/\//i.test(href))
60
+ return;
61
+ e.preventDefault();
62
+ navigate(href);
63
+ };
64
+ return (_jsx("div", { className: twMerge("grid gap-4", gridColClasses[columns] ?? gridColClasses[4], className), children: states.map((group) => {
65
+ const stateHref = buildLocationHref(hrefPattern, group.state);
66
+ return (_jsxs("div", { className: "rounded-[var(--radius)] border border-[var(--color-muted)]/20 bg-white/80 p-4 shadow-sm", children: [_jsxs("a", { href: stateHref, onClick: (e) => go(e, stateHref), className: "flex items-center justify-between gap-3 text-[var(--color-foreground)] hover:text-[var(--color-primary)] cursor-pointer", children: [_jsx("span", { className: "text-lg font-semibold", children: group.state }), _jsxs("span", { className: "rounded-full bg-[var(--color-muted)]/10 px-2.5 py-1 text-xs font-medium text-[var(--color-secondary)]", children: [group.count, " ", group.count === 1 ? "community" : "communities"] })] }), showCities && group.cities.length > 0 && (_jsx("div", { className: "mt-3 flex flex-wrap gap-2", children: group.cities.map((c) => {
67
+ const cityHref = buildLocationHref(hrefPattern, group.state, c.city);
68
+ return (_jsxs("a", { href: cityHref, onClick: (e) => go(e, cityHref), className: "rounded-full border border-[var(--color-muted)]/20 px-3 py-1.5 text-sm text-[var(--color-secondary)] hover:border-[var(--color-primary)] hover:text-[var(--color-primary)] cursor-pointer", children: [c.city, " (", c.count, ")"] }, c.city));
69
+ }) }))] }, group.state));
70
+ }) }));
71
+ }
72
+ //# sourceMappingURL=LocationsDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationsDirectory.js","sourceRoot":"","sources":["../../src/components/LocationsDirectory.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { PublicProperty } from "../hooks/useProperties";
2
+ interface PropertyCardProps {
3
+ property: PublicProperty;
4
+ /**
5
+ * Link target template. Placeholders: {id}, {name}, {city}, {state}.
6
+ * Use an absolute URL (https://…) to link to a property's own website.
7
+ */
8
+ hrefPattern?: string;
9
+ className?: string;
10
+ }
11
+ export declare function buildPropertyHref(pattern: string, property: PublicProperty): string;
12
+ export declare function PropertyCard({ property, hrefPattern, className, }: PropertyCardProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=PropertyCard.d.ts.map
@@ -0,0 +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;AAE7D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB;;;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;AAQD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAgC,EAChC,SAAS,GACV,EAAE,iBAAiB,2CA4CnB"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { twMerge } from "tailwind-merge";
3
+ import { useNavigate } from "../router";
4
+ export function buildPropertyHref(pattern, property) {
5
+ return pattern
6
+ .replace(/\{id\}/g, String(property.id))
7
+ .replace(/\{name\}/g, encodeURIComponent(property.name ?? ""))
8
+ .replace(/\{city\}/g, encodeURIComponent(property.city ?? ""))
9
+ .replace(/\{state\}/g, encodeURIComponent(property.state ?? ""));
10
+ }
11
+ function primaryImageUrl(property) {
12
+ if (!property.media || property.media.length === 0)
13
+ return null;
14
+ const sorted = [...property.media].sort((a, b) => (a.rank ?? 999) - (b.rank ?? 999));
15
+ return sorted[0]?.url ?? null;
16
+ }
17
+ export function PropertyCard({ property, hrefPattern = "/properties/{id}", className, }) {
18
+ const navigate = useNavigate();
19
+ const href = buildPropertyHref(hrefPattern, property);
20
+ const isExternal = /^https?:\/\//i.test(href);
21
+ const image = primaryImageUrl(property);
22
+ const location = [property.city, property.state].filter(Boolean).join(", ");
23
+ const handleClick = (e) => {
24
+ if (isExternal)
25
+ return; // allow the browser to follow external links
26
+ e.preventDefault();
27
+ navigate(href);
28
+ };
29
+ return (_jsxs("a", { href: href, onClick: handleClick, target: isExternal ? "_blank" : undefined, rel: isExternal ? "noopener noreferrer" : undefined, className: twMerge("group flex flex-col overflow-hidden rounded-[var(--radius)] bg-white shadow-[var(--shadow)] transition-shadow hover:shadow-[var(--shadow-hover)] cursor-pointer", className), children: [_jsx("div", { className: "aspect-[4/3] w-full overflow-hidden bg-[var(--color-muted)]/10", children: image && (_jsx("img", { src: image, alt: property.name ?? "Property", loading: "lazy", className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105" })) }), _jsxs("div", { className: "flex flex-col gap-1 p-4", children: [_jsx("span", { className: "text-base font-semibold text-[var(--color-foreground)]", children: property.name ?? "Community" }), location && (_jsx("span", { className: "text-sm text-[var(--color-secondary)]", children: location }))] })] }));
30
+ }
31
+ //# sourceMappingURL=PropertyCard.js.map
@@ -0,0 +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;AAaxC,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAwB;IACzE,OAAO,OAAO;SACX,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACvC,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SAC7D,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SAC7D,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,QAAwB;IAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,GAAG,kBAAkB,EAChC,SAAS,GACS;IAClB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC7D,IAAI,UAAU;YAAE,OAAO,CAAC,6CAA6C;QACrE,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,aACE,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EACnD,SAAS,EAAE,OAAO,CAChB,iKAAiK,EACjK,SAAS,CACV,aAED,cAAK,SAAS,EAAC,gEAAgE,YAC5E,KAAK,IAAI,CACR,cACE,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU,EAChC,OAAO,EAAC,MAAM,EACd,SAAS,EAAC,oFAAoF,GAC9F,CACH,GACG,EACN,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,wDAAwD,YACrE,QAAQ,CAAC,IAAI,IAAI,WAAW,GACxB,EACN,QAAQ,IAAI,CACX,eAAM,SAAS,EAAC,uCAAuC,YAAE,QAAQ,GAAQ,CAC1E,IACG,IACJ,CACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ interface PropertyGridProps {
2
+ /** Link template for each card. Placeholders: {id}, {name}, {city}, {state}. */
3
+ hrefPattern?: string;
4
+ columns?: 2 | 3 | 4;
5
+ showSearch?: boolean;
6
+ showStateFilter?: boolean;
7
+ emptyMessage?: string;
8
+ className?: string;
9
+ }
10
+ export declare function PropertyGrid({ hrefPattern, columns, showSearch, showStateFilter, emptyMessage, className, }: PropertyGridProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=PropertyGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyGrid.d.ts","sourceRoot":"","sources":["../../src/components/PropertyGrid.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAgB,YAAY,CAAC,EAC3B,WAAgC,EAChC,OAAW,EACX,UAAiB,EACjB,eAAsB,EACtB,YAAsC,EACtC,SAAS,GACV,EAAE,iBAAiB,2CAmFnB"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useState } from "react";
3
+ import { twMerge } from "tailwind-merge";
4
+ import { useProperties } from "../hooks/useProperties";
5
+ import { usePathWithSearch } from "../router";
6
+ import { PropertyCard } from "./PropertyCard";
7
+ const gridColClasses = {
8
+ 2: "grid-cols-1 sm:grid-cols-2",
9
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
10
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",
11
+ };
12
+ function getLocationFilters(location) {
13
+ const search = location.includes("?")
14
+ ? location.slice(location.indexOf("?"))
15
+ : typeof window !== "undefined"
16
+ ? window.location.search
17
+ : "";
18
+ const params = new URLSearchParams(search);
19
+ return {
20
+ city: params.get("city") ?? "",
21
+ state: params.get("state") ?? "",
22
+ };
23
+ }
24
+ export function PropertyGrid({ hrefPattern = "/properties/{id}", columns = 3, showSearch = true, showStateFilter = true, emptyMessage = "No communities found.", className, }) {
25
+ const { properties, loading, error } = useProperties();
26
+ const location = usePathWithSearch();
27
+ const locationFilters = useMemo(() => getLocationFilters(location), [location]);
28
+ const [search, setSearch] = useState("");
29
+ const [stateFilter, setStateFilter] = useState(locationFilters.state);
30
+ const [cityFilter, setCityFilter] = useState(locationFilters.city);
31
+ useEffect(() => {
32
+ setStateFilter(locationFilters.state);
33
+ setCityFilter(locationFilters.city);
34
+ }, [locationFilters.city, locationFilters.state]);
35
+ const states = useMemo(() => [...new Set(properties.map((p) => p.state).filter((s) => Boolean(s)))].sort(), [properties]);
36
+ const filtered = useMemo(() => {
37
+ const q = search.trim().toLowerCase();
38
+ return properties.filter((p) => {
39
+ if (stateFilter && p.state !== stateFilter)
40
+ return false;
41
+ if (cityFilter && p.city !== cityFilter)
42
+ return false;
43
+ if (!q)
44
+ return true;
45
+ return ((p.name ?? "").toLowerCase().includes(q) ||
46
+ (p.city ?? "").toLowerCase().includes(q));
47
+ });
48
+ }, [cityFilter, properties, search, stateFilter]);
49
+ const inputClasses = "rounded-[var(--radius)] border border-[var(--color-muted)]/30 bg-white px-3 py-2 text-sm";
50
+ return (_jsxs("div", { className: twMerge("flex flex-col gap-6", className), children: [(showSearch || (showStateFilter && states.length > 1)) && (_jsxs("div", { className: "flex flex-col gap-3 sm:flex-row", children: [showSearch && (_jsx("input", { type: "search", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search by community or city", className: twMerge(inputClasses, "flex-1") })), showStateFilter && states.length > 1 && (_jsxs("select", { value: stateFilter, onChange: (e) => {
51
+ setStateFilter(e.target.value);
52
+ setCityFilter("");
53
+ }, className: inputClasses, children: [_jsx("option", { value: "", children: "All states" }), states.map((s) => (_jsx("option", { value: s, children: s }, s)))] }))] })), loading && properties.length === 0 ? (_jsx("p", { className: "text-sm text-[var(--color-muted)]", children: "Loading communities\u2026" })) : error ? (_jsx("p", { className: "text-sm text-[var(--color-muted)]", children: emptyMessage })) : filtered.length === 0 ? (_jsx("p", { className: "text-sm text-[var(--color-muted)]", children: emptyMessage })) : (_jsx("div", { className: twMerge("grid gap-6", gridColClasses[columns] ?? gridColClasses[3]), children: filtered.map((property) => (_jsx(PropertyCard, { property: property, hrefPattern: hrefPattern }, property.id))) }))] }));
54
+ }
55
+ //# sourceMappingURL=PropertyGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyGrid.js","sourceRoot":"","sources":["../../src/components/PropertyGrid.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleTour.d.ts","sourceRoot":"","sources":["../../src/components/ScheduleTour.tsx"],"names":[],"mappings":"AAKA,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,SAAS,GACV,EAAE,iBAAiB,2CAwWnB"}
1
+ {"version":3,"file":"ScheduleTour.d.ts","sourceRoot":"","sources":["../../src/components/ScheduleTour.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,SAAS,GACV,EAAE,iBAAiB,2CAyWnB"}
@@ -3,6 +3,7 @@ import { useState, useEffect, useMemo, useCallback } from "react";
3
3
  import { twMerge } from "tailwind-merge";
4
4
  import { useSiteConfig } from "../hooks/useSiteConfig";
5
5
  import { useAuth } from "../hooks/useAuth";
6
+ import { collectUtmParams } from "../utils/utm";
6
7
  const TOUR_TYPE_LABELS = {
7
8
  guided: "In-Person Tour",
8
9
  sgt: "Self-Guided Tour",
@@ -122,6 +123,7 @@ export function ScheduleTour({ propertyId: propertyIdProp, source = "website", c
122
123
  body.move_in_date = moveInDate;
123
124
  if (bedrooms)
124
125
  body.bedrooms = Number(bedrooms);
126
+ Object.assign(body, collectUtmParams());
125
127
  const res = await authenticatedFetch(`${apiBaseUrl}/v1/prospect/appointment`, {
126
128
  method: "POST",
127
129
  headers: { "Content-Type": "application/json" },
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleTour.js","sourceRoot":"","sources":["../../src/components/ScheduleTour.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScheduleTour.js","sourceRoot":"","sources":["../../src/components/ScheduleTour.tsx"],"names":[],"mappings":"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"}
@@ -35,6 +35,6 @@ export interface ComponentMeta {
35
35
  needsApi?: boolean;
36
36
  }
37
37
  export declare const componentMeta: Record<string, ComponentMeta>;
38
- export declare const CATEGORIES: readonly ["Heroes & Media", "Content Cards", "Text & Typography", "Layout", "Navigation", "Data & Amenities", "Units & Floor Plans", "Forms"];
38
+ export declare const CATEGORIES: readonly ["Heroes & Media", "Content Cards", "Text & Typography", "Layout", "Navigation", "Data & Amenities", "Units & Floor Plans", "Forms", "Multi-Property"];
39
39
  export declare function getComponentsByCategory(): Record<string, string[]>;
40
40
  //# sourceMappingURL=componentMeta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentMeta.d.ts","sourceRoot":"","sources":["../../../src/components/browser/componentMeta.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0tBvD,CAAC;AAMF,eAAO,MAAM,UAAU,+IASb,CAAC;AAEX,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAWlE"}
1
+ {"version":3,"file":"componentMeta.d.ts","sourceRoot":"","sources":["../../../src/components/browser/componentMeta.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAwwBvD,CAAC;AAMF,eAAO,MAAM,UAAU,iKAUb,CAAC;AAEX,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAWlE"}
@@ -696,6 +696,48 @@ export const componentMeta = {
696
696
  { label: "Default", props: { propertyId: "demo" } },
697
697
  ],
698
698
  },
699
+ // ── Multi-Property ────────────────────────────────────────────────────
700
+ PropertyGrid: {
701
+ category: "Multi-Property",
702
+ description: "Searchable grid of a portfolio's communities (central/multi-property sites)",
703
+ needsApi: true,
704
+ props: {
705
+ columns: { type: { kind: "enum", options: [2, 3, 4], default: 3 } },
706
+ showSearch: { type: { kind: "boolean", default: true } },
707
+ showStateFilter: { type: { kind: "boolean", default: true } },
708
+ hrefPattern: { type: { kind: "string", default: "/properties/{id}" }, label: "Card link pattern" },
709
+ },
710
+ presets: [
711
+ { label: "Default", props: {} },
712
+ { label: "4 columns, no filters", props: { columns: 4, showSearch: false, showStateFilter: false } },
713
+ ],
714
+ },
715
+ PropertyCard: {
716
+ category: "Multi-Property",
717
+ description: "A single community card (image, name, location) — usually rendered by PropertyGrid",
718
+ needsApi: false,
719
+ props: {
720
+ hrefPattern: { type: { kind: "string", default: "/properties/{id}" }, label: "Link pattern" },
721
+ },
722
+ presets: [{ label: "Default", props: {} }],
723
+ },
724
+ LocationsDirectory: {
725
+ category: "Multi-Property",
726
+ description: "Communities grouped by state and city with counts and links",
727
+ needsApi: true,
728
+ props: {
729
+ columns: { type: { kind: "enum", options: [2, 3, 4], default: 4 } },
730
+ showCities: { type: { kind: "boolean", default: true } },
731
+ hrefPattern: { type: { kind: "string", default: "/properties?state={state}" }, label: "Location link pattern" },
732
+ loadingMessage: { type: { kind: "string", default: "Loading locations..." }, label: "Loading message" },
733
+ emptyMessage: { type: { kind: "string", default: "No locations available yet." }, label: "Empty message" },
734
+ errorMessage: { type: { kind: "string", default: "Locations are unavailable right now." }, label: "Error message" },
735
+ },
736
+ presets: [
737
+ { label: "Default", props: {} },
738
+ { label: "States only", props: { showCities: false } },
739
+ ],
740
+ },
699
741
  };
700
742
  // ---------------------------------------------------------------------------
701
743
  // Helpers
@@ -709,6 +751,7 @@ export const CATEGORIES = [
709
751
  "Data & Amenities",
710
752
  "Units & Floor Plans",
711
753
  "Forms",
754
+ "Multi-Property",
712
755
  ];
713
756
  export function getComponentsByCategory() {
714
757
  const result = {};