@meetelise/studio-components 0.0.27 → 0.0.28

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 (58) hide show
  1. package/dist/componentSchema.json +251 -1
  2. package/dist/components/AmenityList.d.ts +19 -9
  3. package/dist/components/AmenityList.d.ts.map +1 -1
  4. package/dist/components/AmenityList.js +74 -39
  5. package/dist/components/AmenityList.js.map +1 -1
  6. package/dist/components/ScheduleTour.d.ts +3 -1
  7. package/dist/components/ScheduleTour.d.ts.map +1 -1
  8. package/dist/components/ScheduleTour.js +37 -21
  9. package/dist/components/ScheduleTour.js.map +1 -1
  10. package/dist/components/browser/ComponentBrowser.d.ts.map +1 -1
  11. package/dist/components/browser/ComponentBrowser.js +7 -2
  12. package/dist/components/browser/ComponentBrowser.js.map +1 -1
  13. package/dist/components/browser/ComponentShowcase.d.ts.map +1 -1
  14. package/dist/components/browser/ComponentShowcase.js +70 -13
  15. package/dist/components/browser/ComponentShowcase.js.map +1 -1
  16. package/dist/components/browser/componentFixtures.d.ts +8 -0
  17. package/dist/components/browser/componentFixtures.d.ts.map +1 -0
  18. package/dist/components/browser/componentFixtures.js +141 -0
  19. package/dist/components/browser/componentFixtures.js.map +1 -0
  20. package/dist/components/browser/componentMeta.d.ts.map +1 -1
  21. package/dist/components/browser/componentMeta.js +71 -2
  22. package/dist/components/browser/componentMeta.js.map +1 -1
  23. package/dist/components/registry.d.ts.map +1 -1
  24. package/dist/components/registry.js +2 -0
  25. package/dist/components/registry.js.map +1 -1
  26. package/dist/components/units/AvailableUnitsExplorer.d.ts +54 -0
  27. package/dist/components/units/AvailableUnitsExplorer.d.ts.map +1 -0
  28. package/dist/components/units/AvailableUnitsExplorer.js +322 -0
  29. package/dist/components/units/AvailableUnitsExplorer.js.map +1 -0
  30. package/dist/components/units/InteractiveUnitMap.d.ts +67 -0
  31. package/dist/components/units/InteractiveUnitMap.d.ts.map +1 -0
  32. package/dist/components/units/InteractiveUnitMap.js +331 -0
  33. package/dist/components/units/InteractiveUnitMap.js.map +1 -0
  34. package/dist/components/units/UnitCard.d.ts +3 -1
  35. package/dist/components/units/UnitCard.d.ts.map +1 -1
  36. package/dist/components/units/UnitCard.js +5 -2
  37. package/dist/components/units/UnitCard.js.map +1 -1
  38. package/dist/components/units/UnitExplorer.d.ts.map +1 -1
  39. package/dist/components/units/UnitExplorer.js +4 -0
  40. package/dist/components/units/UnitExplorer.js.map +1 -1
  41. package/dist/components/units/UnitPage.d.ts +6 -1
  42. package/dist/components/units/UnitPage.d.ts.map +1 -1
  43. package/dist/components/units/UnitPage.js +69 -10
  44. package/dist/components/units/UnitPage.js.map +1 -1
  45. package/dist/components/units/types.d.ts +51 -0
  46. package/dist/components/units/types.d.ts.map +1 -1
  47. package/dist/hooks/useAuth.d.ts +3 -3
  48. package/dist/hooks/useAuth.d.ts.map +1 -1
  49. package/dist/hooks/useAuth.js +4 -2
  50. package/dist/hooks/useAuth.js.map +1 -1
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +1 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/schema/componentSchema.d.ts.map +1 -1
  56. package/dist/schema/componentSchema.js +63 -2
  57. package/dist/schema/componentSchema.js.map +1 -1
  58. package/package.json +2 -1
@@ -1052,13 +1052,14 @@
1052
1052
  "AmenityList": {
1053
1053
  "kind": "elise-component",
1054
1054
  "category": "Data & Amenities",
1055
- "description": "Amenity display with icon grid, categorized accordion, or simple list",
1055
+ "description": "Compact, icon-grid, categorized, or simple-list amenity display",
1056
1056
  "needsApi": true,
1057
1057
  "acceptsChildren": false,
1058
1058
  "props": {
1059
1059
  "layout": {
1060
1060
  "kind": "enum",
1061
1061
  "options": [
1062
+ "compactGrid",
1062
1063
  "iconGrid",
1063
1064
  "categorized",
1064
1065
  "list"
@@ -1079,6 +1080,18 @@
1079
1080
  "kind": "boolean",
1080
1081
  "default": true
1081
1082
  },
1083
+ "showDescriptions": {
1084
+ "kind": "boolean",
1085
+ "default": false
1086
+ },
1087
+ "initialVisible": {
1088
+ "kind": "number",
1089
+ "default": 12
1090
+ },
1091
+ "collapsible": {
1092
+ "kind": "boolean",
1093
+ "default": true
1094
+ },
1082
1095
  "colorScheme": {
1083
1096
  "kind": "enum",
1084
1097
  "options": [
@@ -1246,6 +1259,221 @@
1246
1259
  }
1247
1260
  }
1248
1261
  },
1262
+ "AvailableUnitsExplorer": {
1263
+ "kind": "elise-component",
1264
+ "category": "Units & Floor Plans",
1265
+ "description": "Site-wide availability search with a filtered unit list and property marker map",
1266
+ "needsApi": true,
1267
+ "acceptsChildren": false,
1268
+ "props": {
1269
+ "layout": {
1270
+ "kind": "enum",
1271
+ "options": [
1272
+ "split",
1273
+ "stacked"
1274
+ ],
1275
+ "default": "split"
1276
+ },
1277
+ "listLayout": {
1278
+ "kind": "enum",
1279
+ "options": [
1280
+ "grid",
1281
+ "list"
1282
+ ],
1283
+ "default": "grid"
1284
+ },
1285
+ "columns": {
1286
+ "kind": "enum",
1287
+ "options": [
1288
+ 1,
1289
+ 2,
1290
+ 3
1291
+ ],
1292
+ "default": 2
1293
+ },
1294
+ "pageSize": {
1295
+ "kind": "number",
1296
+ "label": "Page size"
1297
+ },
1298
+ "propertyIds": {
1299
+ "kind": "string",
1300
+ "label": "Allowed property ids"
1301
+ },
1302
+ "defaultPropertyId": {
1303
+ "kind": "string",
1304
+ "label": "Default property id"
1305
+ },
1306
+ "showMap": {
1307
+ "kind": "boolean",
1308
+ "default": true
1309
+ },
1310
+ "mapHeight": {
1311
+ "kind": "string",
1312
+ "default": "520px",
1313
+ "label": "Map height"
1314
+ },
1315
+ "mapProvider": {
1316
+ "kind": "enum",
1317
+ "options": [
1318
+ "auto",
1319
+ "mapbox",
1320
+ "maplibre"
1321
+ ],
1322
+ "default": "maplibre",
1323
+ "label": "Map provider"
1324
+ },
1325
+ "mapboxAccessToken": {
1326
+ "kind": "string",
1327
+ "label": "Mapbox access token"
1328
+ },
1329
+ "mapboxStyleUrl": {
1330
+ "kind": "string",
1331
+ "label": "Mapbox style URL"
1332
+ },
1333
+ "maplibreTheme": {
1334
+ "kind": "enum",
1335
+ "options": [
1336
+ "light",
1337
+ "dark"
1338
+ ],
1339
+ "default": "light",
1340
+ "label": "Elise basemap style"
1341
+ },
1342
+ "maplibreStyleUrl": {
1343
+ "kind": "url",
1344
+ "label": "MapLibre style URL"
1345
+ },
1346
+ "mapFitMode": {
1347
+ "kind": "enum",
1348
+ "options": [
1349
+ "all",
1350
+ "dense"
1351
+ ],
1352
+ "default": "all",
1353
+ "label": "Initial map fit"
1354
+ },
1355
+ "mapMaxZoom": {
1356
+ "kind": "number",
1357
+ "label": "Maximum initial zoom"
1358
+ },
1359
+ "showFilters": {
1360
+ "kind": "boolean",
1361
+ "default": true
1362
+ },
1363
+ "showSearch": {
1364
+ "kind": "boolean",
1365
+ "default": true
1366
+ },
1367
+ "showPropertyFilter": {
1368
+ "kind": "boolean",
1369
+ "default": true
1370
+ },
1371
+ "showBedroomFilter": {
1372
+ "kind": "boolean",
1373
+ "default": true
1374
+ },
1375
+ "showBathroomFilter": {
1376
+ "kind": "boolean",
1377
+ "default": true
1378
+ },
1379
+ "showPriceFilter": {
1380
+ "kind": "boolean",
1381
+ "default": true
1382
+ },
1383
+ "showMoveInFilter": {
1384
+ "kind": "boolean",
1385
+ "default": true
1386
+ },
1387
+ "showSort": {
1388
+ "kind": "boolean",
1389
+ "default": true
1390
+ },
1391
+ "showPricing": {
1392
+ "kind": "boolean",
1393
+ "default": true
1394
+ },
1395
+ "showAvailability": {
1396
+ "kind": "boolean",
1397
+ "default": true
1398
+ },
1399
+ "showBedBath": {
1400
+ "kind": "boolean",
1401
+ "default": true
1402
+ },
1403
+ "showSquareFootage": {
1404
+ "kind": "boolean",
1405
+ "default": true
1406
+ },
1407
+ "showFloorplan": {
1408
+ "kind": "boolean",
1409
+ "default": true
1410
+ },
1411
+ "showUnitNumber": {
1412
+ "kind": "boolean",
1413
+ "default": true
1414
+ },
1415
+ "showSpecials": {
1416
+ "kind": "boolean",
1417
+ "default": false
1418
+ },
1419
+ "showImages": {
1420
+ "kind": "boolean",
1421
+ "default": false
1422
+ },
1423
+ "showApplyButton": {
1424
+ "kind": "boolean",
1425
+ "default": false
1426
+ },
1427
+ "showScheduleButton": {
1428
+ "kind": "boolean",
1429
+ "default": true,
1430
+ "label": "Schedule-a-tour button"
1431
+ },
1432
+ "showLoadMore": {
1433
+ "kind": "boolean",
1434
+ "default": false,
1435
+ "label": "Use a load-more button instead of infinite scroll"
1436
+ },
1437
+ "onlyAvailable": {
1438
+ "kind": "boolean",
1439
+ "default": true
1440
+ },
1441
+ "cardStyle": {
1442
+ "kind": "enum",
1443
+ "options": [
1444
+ "compact",
1445
+ "standard"
1446
+ ],
1447
+ "default": "standard"
1448
+ },
1449
+ "sortBy": {
1450
+ "kind": "enum",
1451
+ "options": [
1452
+ "rent_asc",
1453
+ "rent_desc",
1454
+ "date_available_asc",
1455
+ "sqft_asc",
1456
+ "sqft_desc",
1457
+ "bedrooms_asc",
1458
+ "unit_number_asc"
1459
+ ],
1460
+ "label": "Server sort"
1461
+ },
1462
+ "applyUrl": {
1463
+ "kind": "url",
1464
+ "label": "Apply URL"
1465
+ },
1466
+ "unitBasePath": {
1467
+ "kind": "string",
1468
+ "default": "/units",
1469
+ "label": "Unit detail base path"
1470
+ },
1471
+ "emptyMessage": {
1472
+ "kind": "string",
1473
+ "label": "Empty-state message"
1474
+ }
1475
+ }
1476
+ },
1249
1477
  "FloorplanExplorer": {
1250
1478
  "kind": "elise-component",
1251
1479
  "category": "Units & Floor Plans",
@@ -1313,9 +1541,31 @@
1313
1541
  "kind": "string",
1314
1542
  "label": "Property id (override)"
1315
1543
  },
1544
+ "unitId": {
1545
+ "kind": "string",
1546
+ "label": "Unit id (preview/override)"
1547
+ },
1316
1548
  "applyUrl": {
1317
1549
  "kind": "url",
1318
1550
  "label": "Apply URL"
1551
+ },
1552
+ "showPricingMatrix": {
1553
+ "kind": "boolean",
1554
+ "default": false,
1555
+ "label": "Dynamic pricing matrix"
1556
+ },
1557
+ "showScheduleTour": {
1558
+ "kind": "boolean",
1559
+ "default": true,
1560
+ "label": "Schedule-a-tour section"
1561
+ },
1562
+ "showAmenities": {
1563
+ "kind": "boolean",
1564
+ "default": true
1565
+ },
1566
+ "showDescription": {
1567
+ "kind": "boolean",
1568
+ "default": true
1319
1569
  }
1320
1570
  }
1321
1571
  },
@@ -1,21 +1,31 @@
1
1
  import type { EditableNodeAttributes } from "../types";
2
- interface AmenityItem {
2
+ export interface AmenityItem {
3
3
  name: string;
4
4
  category?: string;
5
+ description?: string;
5
6
  icon?: string;
6
7
  }
7
- interface AmenityListProps extends EditableNodeAttributes {
8
- /** When set, fetches amenities live from GET /v1/property/{propertyId}/amenities */
9
- propertyId?: string;
10
- /** Static amenities from content blob (fallback when propertyId is not set) */
11
- amenities?: AmenityItem[];
12
- layout?: "iconGrid" | "categorized" | "list";
8
+ export type AmenityLayout = "compactGrid" | "iconGrid" | "categorized" | "list";
9
+ interface AmenityDisplayProps extends EditableNodeAttributes {
10
+ amenities: AmenityItem[];
11
+ layout?: AmenityLayout;
13
12
  columns?: 2 | 3 | 4 | 6;
14
13
  showIcons?: boolean;
15
- /** Use "dark" when rendered on a dark background */
14
+ showDescriptions?: boolean;
15
+ initialVisible?: number;
16
+ collapsible?: boolean;
17
+ /** Use "dark" when rendered on a dark background. */
16
18
  colorScheme?: "light" | "dark";
17
19
  className?: string;
18
20
  }
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;
21
+ interface AmenityListProps extends Omit<AmenityDisplayProps, "amenities"> {
22
+ /** When set, fetches amenities live from the property API. */
23
+ propertyId?: string;
24
+ /** Static amenities from a content blob (fallback when propertyId is not set). */
25
+ amenities?: AmenityItem[];
26
+ }
27
+ /** Pure amenity presentation used by the component browser and UnitPage. */
28
+ export declare function AmenityListView({ amenities: rawAmenities, layout, columns, showIcons, showDescriptions, initialVisible, collapsible, colorScheme, className, "data-node-id": dataNodeId, }: AmenityDisplayProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare function AmenityList({ propertyId: propertyIdProp, amenities: staticAmenities, className, "data-node-id": dataNodeId, ...displayProps }: AmenityListProps): import("react/jsx-runtime").JSX.Element;
20
30
  export {};
21
31
  //# 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;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
+ {"version":3,"file":"AmenityList.d.ts","sourceRoot":"","sources":["../../src/components/AmenityList.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;AAEhF,UAAU,mBAAoB,SAAQ,sBAAsB;IAC1D,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAiB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC;IACvE,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B;AA6ED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EAAE,YAAY,EACvB,MAAmB,EACnB,OAAW,EACX,SAAgB,EAChB,gBAAwB,EACxB,cAAmB,EACnB,WAAkB,EAClB,WAAqB,EACrB,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,mBAAmB,2CA8FrB;AAED,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,eAAoB,EAC/B,SAAS,EACT,cAAc,EAAE,UAAU,EAC1B,GAAG,YAAY,EAChB,EAAE,gBAAgB,2CAmElB"}
@@ -7,16 +7,72 @@ import { Icon } from "./Icon";
7
7
  import { Accordion } from "./Accordion";
8
8
  import { StudioEditPlaceholder } from "./StudioEditPlaceholder";
9
9
  const gridColClasses = {
10
- 2: "grid-cols-2",
11
- 3: "grid-cols-2 sm:grid-cols-3",
10
+ 2: "grid-cols-1 sm:grid-cols-2",
11
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
12
12
  4: "grid-cols-2 sm:grid-cols-4",
13
13
  6: "grid-cols-3 sm:grid-cols-6",
14
14
  };
15
- function AmenityRow({ item, showIcons, isDark = false, }) {
16
- return (_jsxs("div", { className: "flex items-center gap-2", children: [showIcons && item.icon && (_jsx(Icon, { name: item.icon, size: "sm", className: isDark ? "text-[var(--color-accent)]" : "text-[var(--color-primary)]" })), _jsx("span", { className: twMerge("text-sm", isDark ? "text-white/80" : "text-[var(--color-secondary)]"), children: item.name })] }));
15
+ function normalizeAmenities(amenities) {
16
+ const byName = new Map();
17
+ for (const item of amenities) {
18
+ const name = item.name.trim();
19
+ if (!name)
20
+ continue;
21
+ const key = name.toLocaleLowerCase();
22
+ if (!byName.has(key))
23
+ byName.set(key, { ...item, name });
24
+ }
25
+ return [...byName.values()].sort((a, b) => {
26
+ const category = (a.category ?? "").localeCompare(b.category ?? "");
27
+ return category || a.name.localeCompare(b.name, undefined, { numeric: true });
28
+ });
29
+ }
30
+ function AmenityCheck({ isDark }) {
31
+ return (_jsx("span", { "aria-hidden": "true", className: twMerge("mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full", isDark
32
+ ? "bg-white/10 text-[var(--color-accent)]"
33
+ : "bg-[var(--color-primary)]/10 text-[var(--color-primary)]"), children: _jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: _jsx("path", { d: "M5 12l4 4L19 6" }) }) }));
34
+ }
35
+ function AmenityRow({ item, showIcons, showDescriptions, isDark, }) {
36
+ return (_jsxs("div", { className: "flex min-w-0 items-start gap-2.5", children: [showIcons && item.icon ? (_jsx(Icon, { name: item.icon, size: "sm", className: isDark ? "text-[var(--color-accent)]" : "text-[var(--color-primary)]" })) : showIcons ? (_jsx(AmenityCheck, { isDark: isDark })) : null, _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: twMerge("text-sm font-medium", isDark ? "text-white" : "text-[var(--color-foreground)]"), children: item.name }), showDescriptions && item.description ? (_jsx("p", { className: twMerge("mt-0.5 text-xs leading-relaxed", isDark ? "text-white/60" : "text-[var(--color-muted)]"), children: item.description })) : null] })] }));
17
37
  }
18
- export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmenities = [], layout = "iconGrid", columns = 3, showIcons = true, colorScheme = "light", className, "data-node-id": dataNodeId, }) {
38
+ /** Pure amenity presentation used by the component browser and UnitPage. */
39
+ export function AmenityListView({ amenities: rawAmenities, layout = "iconGrid", columns = 3, showIcons = true, showDescriptions = false, initialVisible = 12, collapsible = true, colorScheme = "light", className, "data-node-id": dataNodeId, }) {
40
+ const [expanded, setExpanded] = useState(false);
19
41
  const isDark = colorScheme === "dark";
42
+ const amenities = useMemo(() => normalizeAmenities(rawAmenities), [rawAmenities]);
43
+ const grouped = useMemo(() => {
44
+ const groups = new Map();
45
+ for (const item of amenities) {
46
+ const category = item.category?.trim() || "Amenities";
47
+ const items = groups.get(category) ?? [];
48
+ items.push(item);
49
+ groups.set(category, items);
50
+ }
51
+ // PMS category codes can create a category per amenity. Collapse that noise.
52
+ if (groups.size > 1 && [...groups.values()].every((items) => items.length === 1)) {
53
+ return new Map([["Amenities", amenities]]);
54
+ }
55
+ return groups;
56
+ }, [amenities]);
57
+ const visibleAmenities = layout === "compactGrid" && collapsible && !expanded
58
+ ? amenities.slice(0, initialVisible)
59
+ : amenities;
60
+ const hiddenCount = Math.max(0, amenities.length - visibleAmenities.length);
61
+ if (layout === "iconGrid") {
62
+ return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("grid gap-6", gridColClasses[columns], className), children: visibleAmenities.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)]" })) : showIcons ? (_jsx(AmenityCheck, { isDark: isDark })) : null, _jsx("span", { className: twMerge("text-sm font-medium", isDark ? "text-white" : "text-[var(--color-foreground)]"), children: item.name })] }, item.name))) }));
63
+ }
64
+ if (layout === "categorized") {
65
+ return (_jsx(Accordion, { items: [...grouped.entries()].map(([category, items]) => ({
66
+ title: category,
67
+ children: (_jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: items.map((item) => (_jsx(AmenityRow, { item: item, showIcons: showIcons, showDescriptions: showDescriptions, isDark: isDark }, item.name))) })),
68
+ })), allowMultiple: true, colorScheme: colorScheme, className: className, "data-node-id": dataNodeId }));
69
+ }
70
+ if (layout === "list") {
71
+ return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("flex flex-col gap-3", className), children: visibleAmenities.map((item) => (_jsx(AmenityRow, { item: item, showIcons: showIcons, showDescriptions: showDescriptions, isDark: isDark }, item.name))) }));
72
+ }
73
+ return (_jsxs("div", { "data-node-id": dataNodeId, className: twMerge("rounded-lg border border-[var(--color-muted)]/15 p-4 sm:p-5", className), children: [_jsx("div", { className: twMerge("grid gap-x-6 gap-y-3", gridColClasses[columns]), children: visibleAmenities.map((item) => (_jsx(AmenityRow, { item: item, showIcons: showIcons, showDescriptions: showDescriptions, isDark: isDark }, item.name))) }), collapsible && (hiddenCount > 0 || expanded) ? (_jsx("button", { type: "button", onClick: () => setExpanded((value) => !value), className: twMerge("mt-4 text-sm font-semibold hover:underline", isDark ? "text-[var(--color-accent)]" : "text-[var(--color-primary)]"), children: expanded ? "Show fewer" : `Show ${hiddenCount} more` })) : null] }));
74
+ }
75
+ export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmenities = [], className, "data-node-id": dataNodeId, ...displayProps }) {
20
76
  const config = useSiteConfig();
21
77
  const { authenticatedFetch } = useAuth();
22
78
  const propertyId = propertyIdProp ?? config.property?.propertyId;
@@ -32,16 +88,18 @@ export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmeni
32
88
  requestSeqRef.current = requestSeq;
33
89
  setLoading(true);
34
90
  try {
35
- const url = `${apiBaseUrl}/v1/properties/${propertyId}?include_amenities=true`;
36
- const res = await authenticatedFetch(url);
91
+ const res = await authenticatedFetch(`${apiBaseUrl}/v1/properties/${propertyId}?include_amenities=true`);
37
92
  if (!res.ok)
38
93
  throw new Error(`${res.status}`);
39
94
  const data = await res.json();
40
- const items = (data.amenities ?? []).map((a) => ({
41
- name: a.name,
42
- category: a.amenity_level === "Unit" ? "Apartment Features"
43
- : a.amenity_level === "Community" ? "Community Amenities"
44
- : a.amenity_level ?? a.category,
95
+ const items = (data.amenities ?? []).map((amenity) => ({
96
+ name: amenity.name,
97
+ description: amenity.description,
98
+ category: amenity.amenity_level === "Unit"
99
+ ? "Apartment Features"
100
+ : amenity.amenity_level === "Community"
101
+ ? "Community Amenities"
102
+ : amenity.amenity_level ?? amenity.category,
45
103
  }));
46
104
  if (requestSeq !== requestSeqRef.current)
47
105
  return;
@@ -71,36 +129,13 @@ export function AmenityList({ propertyId: propertyIdProp, amenities: staticAmeni
71
129
  }, [propertyId, fetchAmenities]);
72
130
  const hasFreshApiAmenities = Boolean(propertyId) && loadedPropertyId === propertyId && apiAmenities !== null;
73
131
  const amenities = hasFreshApiAmenities ? apiAmenities : staticAmenities;
74
- const isWaitingForApiAmenities = Boolean(propertyId) &&
75
- staticAmenities.length === 0 &&
76
- (loading || loadedPropertyId !== propertyId);
77
- const grouped = useMemo(() => {
78
- const map = new Map();
79
- for (const item of amenities) {
80
- const cat = item.category ?? "General";
81
- const arr = map.get(cat) ?? [];
82
- arr.push(item);
83
- map.set(cat, arr);
84
- }
85
- return map;
86
- }, [amenities]);
132
+ const isWaitingForApiAmenities = Boolean(propertyId) && staticAmenities.length === 0 && (loading || loadedPropertyId !== propertyId);
87
133
  if (isWaitingForApiAmenities) {
88
- return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Loading amenities", hint: "Fetching property amenities", className: className }));
134
+ return _jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Loading amenities", hint: "Fetching property amenities", className: className });
89
135
  }
90
136
  if (amenities.length === 0) {
91
- return (_jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Add amenities", hint: "Amenities will appear here", className: className }));
92
- }
93
- if (layout === "iconGrid") {
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))) }));
95
- }
96
- if (layout === "categorized") {
97
- const items = [...grouped.entries()].map(([category, categoryItems]) => ({
98
- title: category,
99
- children: (_jsx("div", { className: "flex flex-col gap-2", children: categoryItems.map((item) => (_jsx(AmenityRow, { item: item, showIcons: showIcons, isDark: isDark }, item.name))) })),
100
- }));
101
- return (_jsx(Accordion, { items: items, allowMultiple: true, colorScheme: colorScheme, className: className, "data-node-id": dataNodeId }));
137
+ return _jsx(StudioEditPlaceholder, { "data-node-id": dataNodeId, label: "Add amenities", hint: "Amenities will appear here", className: className });
102
138
  }
103
- // list layout
104
- return (_jsx("div", { "data-node-id": dataNodeId, className: twMerge("flex flex-col gap-2", className), children: amenities.map((item) => (_jsx(AmenityRow, { item: item, showIcons: showIcons }, item.name))) }));
139
+ return _jsx(AmenityListView, { ...displayProps, amenities: amenities, className: className, "data-node-id": dataNodeId });
105
140
  }
106
141
  //# sourceMappingURL=AmenityList.js.map
@@ -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,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAqBhE,MAAM,cAAc,GAA2B;IAC7C,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,4BAA4B;IAC/B,CAAC,EAAE,4BAA4B;IAC/B,CAAC,EAAE,4BAA4B;CAChC,CAAC;AAEF,SAAS,UAAU,CAAC,EAClB,IAAI,EACJ,SAAS,EACT,MAAM,GAAG,KAAK,GAKf;IACC,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACrC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,CACzB,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,6BAA6B,GAChF,CACH,EACD,eAAM,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,+BAA+B,CAAC,YAC5F,IAAI,CAAC,IAAI,GACL,IACH,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,eAAe,GAAG,EAAE,EAC/B,MAAM,GAAG,UAAU,EACnB,OAAO,GAAG,CAAC,EACX,SAAS,GAAG,IAAI,EAChB,WAAW,GAAG,OAAO,EACrB,SAAS,EACT,cAAc,EAAE,UAAU,GACT;IACjB,MAAM,MAAM,GAAG,WAAW,KAAK,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;IACjE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC;IAErD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IAC7E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;QAC7C,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,UAAU,kBAAkB,UAAU,yBAAyB,CAAC;YAC/E,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAkB,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CACrD,CAAC,CAA8D,EAAE,EAAE,CAAC,CAAC;gBACnE,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,oBAAoB;oBACnD,CAAC,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,qBAAqB;wBACzD,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,QAAQ;aACxC,CAAC,CACH,CAAC;YACF,IAAI,UAAU,KAAK,aAAa,CAAC,OAAO;gBAAE,OAAO;YACjD,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,UAAU,KAAK,aAAa,CAAC,OAAO;gBAAE,OAAO;YACjD,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,IAAI,UAAU,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;gBACzC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAChC,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,aAAa,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3B,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjC,MAAM,oBAAoB,GACxB,OAAO,CAAC,UAAU,CAAC,IAAI,gBAAgB,KAAK,UAAU,IAAI,YAAY,KAAK,IAAI,CAAC;IAClF,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;IACxE,MAAM,wBAAwB,GAC5B,OAAO,CAAC,UAAU,CAAC;QACnB,eAAe,CAAC,MAAM,KAAK,CAAC;QAC5B,CAAC,OAAO,IAAI,gBAAgB,KAAK,UAAU,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC;YACvC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,mBAAmB,EACzB,IAAI,EAAC,6BAA6B,EAClC,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CACL,KAAC,qBAAqB,oBACN,UAAU,EACxB,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,4BAA4B,EACjC,SAAS,EAAE,SAAS,GACpB,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO,CACL,8BACgB,UAAU,EACxB,SAAS,EAAE,OAAO,CAChB,YAAY,EACZ,cAAc,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAC5C,SAAS,CACV,YAEA,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,eAEE,SAAS,EAAC,8CAA8C,aAEvD,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,CACzB,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,6BAA6B,GAChF,CACH,EACD,eAAM,SAAS,EAAE,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gCAAgC,CAAC,YACtG,IAAI,CAAC,IAAI,GACL,KAZF,IAAI,CAAC,IAAI,CAaV,CACP,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACtC,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,CACR,cAAK,SAAS,EAAC,qBAAqB,YACjC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC3B,KAAC,UAAU,IAET,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,IAHT,IAAI,CAAC,IAAI,CAId,CACH,CAAC,GACE,CACP;SACF,CAAC,CACH,CAAC;QAEF,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,aAAa,QACb,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,kBACN,UAAU,GACxB,CACH,CAAC;IACJ,CAAC;IAED,cAAc;IACd,OAAO,CACL,8BAAmB,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,YAChF,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,KAAC,UAAU,IAAiB,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAA3C,IAAI,CAAC,IAAI,CAAsC,CACjE,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"AmenityList.js","sourceRoot":"","sources":["../../src/components/AmenityList.tsx"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import type { EditableNodeAttributes } from "../types";
2
2
  interface ScheduleTourProps extends EditableNodeAttributes {
3
3
  propertyId?: string;
4
4
  source?: string;
5
+ /** Optional lead note sent with the booking (e.g. which unit the prospect asked about). */
6
+ message?: string;
5
7
  className?: string;
6
8
  }
7
- export declare function ScheduleTour({ propertyId: propertyIdProp, source, className, "data-node-id": dataNodeId, }: ScheduleTourProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function ScheduleTour({ propertyId: propertyIdProp, source, message, className, "data-node-id": dataNodeId, }: ScheduleTourProps): import("react/jsx-runtime").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=ScheduleTour.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScheduleTour.d.ts","sourceRoot":"","sources":["../../src/components/ScheduleTour.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,UAAU,iBAAkB,SAAQ,sBAAsB;IACxD,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,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,iBAAiB,2CAyWnB"}
1
+ {"version":3,"file":"ScheduleTour.d.ts","sourceRoot":"","sources":["../../src/components/ScheduleTour.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,UAAU,iBAAkB,SAAQ,sBAAsB;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EAAE,cAAc,EAC1B,MAAkB,EAClB,OAAO,EACP,SAAS,EACT,cAAc,EAAE,UAAU,GAC3B,EAAE,iBAAiB,2CAwYnB"}