@meetelise/studio-components 0.0.3 → 0.0.5
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 +16 -0
- package/dist/components/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion.js +28 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/AddressBlock.d.ts +14 -0
- package/dist/components/AddressBlock.d.ts.map +1 -0
- package/dist/components/AddressBlock.js +13 -0
- package/dist/components/AddressBlock.js.map +1 -0
- package/dist/components/AmenityList.d.ts +20 -0
- package/dist/components/AmenityList.d.ts.map +1 -0
- package/dist/components/AmenityList.js +75 -0
- package/dist/components/AmenityList.js.map +1 -0
- package/dist/components/Badge.d.ts +9 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +16 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Button.d.ts +12 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +38 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/CTABanner.d.ts +11 -0
- package/dist/components/CTABanner.d.ts.map +1 -0
- package/dist/components/CTABanner.js +17 -0
- package/dist/components/CTABanner.js.map +1 -0
- package/dist/components/ContactForm.d.ts +11 -0
- package/dist/components/ContactForm.d.ts.map +1 -0
- package/dist/components/ContactForm.js +91 -0
- package/dist/components/ContactForm.js.map +1 -0
- package/dist/components/Container.d.ts +9 -3
- package/dist/components/Container.d.ts.map +1 -1
- package/dist/components/Container.js +19 -8
- package/dist/components/Container.js.map +1 -1
- package/dist/components/Divider.d.ts +9 -0
- package/dist/components/Divider.d.ts.map +1 -0
- package/dist/components/Divider.js +15 -0
- package/dist/components/Divider.js.map +1 -0
- package/dist/components/EliseChat.d.ts +8 -0
- package/dist/components/EliseChat.d.ts.map +1 -0
- package/dist/components/EliseChat.js +22 -0
- package/dist/components/EliseChat.js.map +1 -0
- package/dist/components/FeatureCard.d.ts +15 -0
- package/dist/components/FeatureCard.d.ts.map +1 -0
- package/dist/components/FeatureCard.js +13 -0
- package/dist/components/FeatureCard.js.map +1 -0
- package/dist/components/Footer.d.ts +10 -0
- package/dist/components/Footer.d.ts.map +1 -0
- package/dist/components/Footer.js +19 -0
- package/dist/components/Footer.js.map +1 -0
- package/dist/components/Gallery.d.ts +18 -0
- package/dist/components/Gallery.d.ts.map +1 -0
- package/dist/components/Gallery.js +86 -0
- package/dist/components/Gallery.js.map +1 -0
- package/dist/components/Icon.d.ts +8 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/Icon.js +26 -0
- package/dist/components/Icon.js.map +1 -0
- package/dist/components/Lightbox.d.ts +13 -0
- package/dist/components/Lightbox.d.ts.map +1 -0
- package/dist/components/Lightbox.js +23 -0
- package/dist/components/Lightbox.js.map +1 -0
- package/dist/components/MapEmbed.d.ts +16 -0
- package/dist/components/MapEmbed.d.ts.map +1 -0
- package/dist/components/MapEmbed.js +6 -0
- package/dist/components/MapEmbed.js.map +1 -0
- package/dist/components/Modal.d.ts +9 -0
- package/dist/components/Modal.d.ts.map +1 -0
- package/dist/components/Modal.js +19 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/Nav.d.ts +11 -0
- package/dist/components/Nav.d.ts.map +1 -0
- package/dist/components/Nav.js +53 -0
- package/dist/components/Nav.js.map +1 -0
- package/dist/components/ScheduleTour.d.ts +8 -0
- package/dist/components/ScheduleTour.d.ts.map +1 -0
- package/dist/components/ScheduleTour.js +158 -0
- package/dist/components/ScheduleTour.js.map +1 -0
- package/dist/components/ScrollReveal.d.ts +12 -0
- package/dist/components/ScrollReveal.d.ts.map +1 -0
- package/dist/components/ScrollReveal.js +37 -0
- package/dist/components/ScrollReveal.js.map +1 -0
- package/dist/components/Slot.d.ts +14 -0
- package/dist/components/Slot.d.ts.map +1 -0
- package/dist/components/Slot.js +5 -0
- package/dist/components/Slot.js.map +1 -0
- package/dist/components/Stat.d.ts +12 -0
- package/dist/components/Stat.d.ts.map +1 -0
- package/dist/components/Stat.js +12 -0
- package/dist/components/Stat.js.map +1 -0
- package/dist/components/Testimonial.d.ts +10 -0
- package/dist/components/Testimonial.d.ts.map +1 -0
- package/dist/components/Testimonial.js +9 -0
- package/dist/components/Testimonial.js.map +1 -0
- package/dist/components/Text.d.ts +3 -2
- package/dist/components/Text.d.ts.map +1 -1
- package/dist/components/Text.js +16 -7
- package/dist/components/Text.js.map +1 -1
- package/dist/components/ThemeProvider.d.ts.map +1 -1
- package/dist/components/ThemeProvider.js +85 -5
- package/dist/components/ThemeProvider.js.map +1 -1
- package/dist/components/VideoHero.d.ts +16 -0
- package/dist/components/VideoHero.d.ts.map +1 -0
- package/dist/components/VideoHero.js +19 -0
- package/dist/components/VideoHero.js.map +1 -0
- package/dist/components/VideoPlayer.d.ts +18 -0
- package/dist/components/VideoPlayer.d.ts.map +1 -0
- package/dist/components/VideoPlayer.js +14 -0
- package/dist/components/VideoPlayer.js.map +1 -0
- package/dist/components/VirtualTourEmbed.d.ts +9 -0
- package/dist/components/VirtualTourEmbed.d.ts.map +1 -0
- package/dist/components/VirtualTourEmbed.js +5 -0
- package/dist/components/VirtualTourEmbed.js.map +1 -0
- package/dist/components/browser/ComponentBrowser.d.ts +2 -0
- package/dist/components/browser/ComponentBrowser.d.ts.map +1 -0
- package/dist/components/browser/ComponentBrowser.js +73 -0
- package/dist/components/browser/ComponentBrowser.js.map +1 -0
- package/dist/components/browser/ComponentShowcase.d.ts +8 -0
- package/dist/components/browser/ComponentShowcase.d.ts.map +1 -0
- package/dist/components/browser/ComponentShowcase.js +104 -0
- package/dist/components/browser/ComponentShowcase.js.map +1 -0
- package/dist/components/browser/componentMeta.d.ts +40 -0
- package/dist/components/browser/componentMeta.d.ts.map +1 -0
- package/dist/components/browser/componentMeta.js +726 -0
- package/dist/components/browser/componentMeta.js.map +1 -0
- package/dist/components/registry.d.ts.map +1 -1
- package/dist/components/registry.js +56 -0
- package/dist/components/registry.js.map +1 -1
- package/dist/components/units/FloorPlanCard.d.ts +16 -0
- package/dist/components/units/FloorPlanCard.d.ts.map +1 -0
- package/dist/components/units/FloorPlanCard.js +28 -0
- package/dist/components/units/FloorPlanCard.js.map +1 -0
- package/dist/components/units/FloorplanExplorer.d.ts +21 -0
- package/dist/components/units/FloorplanExplorer.d.ts.map +1 -0
- package/dist/components/units/FloorplanExplorer.js +39 -0
- package/dist/components/units/FloorplanExplorer.js.map +1 -0
- package/dist/components/units/PricingMatrixModal.d.ts +12 -0
- package/dist/components/units/PricingMatrixModal.d.ts.map +1 -0
- package/dist/components/units/PricingMatrixModal.js +78 -0
- package/dist/components/units/PricingMatrixModal.js.map +1 -0
- package/dist/components/units/UnitCard.d.ts +12 -3
- package/dist/components/units/UnitCard.d.ts.map +1 -1
- package/dist/components/units/UnitCard.js +33 -5
- package/dist/components/units/UnitCard.js.map +1 -1
- package/dist/components/units/UnitDetail.d.ts +11 -0
- package/dist/components/units/UnitDetail.d.ts.map +1 -0
- package/dist/components/units/UnitDetail.js +16 -0
- package/dist/components/units/UnitDetail.js.map +1 -0
- package/dist/components/units/UnitExplorer.d.ts +17 -1
- package/dist/components/units/UnitExplorer.d.ts.map +1 -1
- package/dist/components/units/UnitExplorer.js +129 -25
- package/dist/components/units/UnitExplorer.js.map +1 -1
- package/dist/components/units/UnitFilters.d.ts +2 -2
- package/dist/components/units/UnitFilters.d.ts.map +1 -1
- package/dist/components/units/UnitFilters.js +2 -2
- package/dist/components/units/UnitFilters.js.map +1 -1
- package/dist/components/units/UnitPage.d.ts +8 -0
- package/dist/components/units/UnitPage.d.ts.map +1 -0
- package/dist/components/units/UnitPage.js +130 -0
- package/dist/components/units/UnitPage.js.map +1 -0
- package/dist/components/units/types.d.ts +109 -24
- package/dist/components/units/types.d.ts.map +1 -1
- package/dist/components/units/types.js +1 -0
- package/dist/components/units/types.js.map +1 -1
- package/dist/hooks/useAnalytics.d.ts +16 -0
- package/dist/hooks/useAnalytics.d.ts.map +1 -0
- package/dist/hooks/useAnalytics.js +65 -0
- package/dist/hooks/useAnalytics.js.map +1 -0
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +8 -2
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useFees.d.ts +8 -0
- package/dist/hooks/useFees.d.ts.map +1 -0
- package/dist/hooks/useFees.js +37 -0
- package/dist/hooks/useFees.js.map +1 -0
- package/dist/hooks/useFloorplans.d.ts +19 -0
- package/dist/hooks/useFloorplans.d.ts.map +1 -0
- package/dist/hooks/useFloorplans.js +52 -0
- package/dist/hooks/useFloorplans.js.map +1 -0
- package/dist/hooks/useModal.d.ts +11 -0
- package/dist/hooks/useModal.d.ts.map +1 -0
- package/dist/hooks/useModal.js +35 -0
- package/dist/hooks/useModal.js.map +1 -0
- package/dist/hooks/useProperty.d.ts +66 -0
- package/dist/hooks/useProperty.d.ts.map +1 -0
- package/dist/hooks/useProperty.js +49 -0
- package/dist/hooks/useProperty.js.map +1 -0
- package/dist/hooks/useSpecials.d.ts +8 -0
- package/dist/hooks/useSpecials.d.ts.map +1 -0
- package/dist/hooks/useSpecials.js +37 -0
- package/dist/hooks/useSpecials.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +46 -3
- package/dist/renderer.js.map +1 -1
- package/dist/router.d.ts +9 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +34 -1
- package/dist/router.js.map +1 -1
- package/dist/types.d.ts +47 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/imageUrl.d.ts +21 -0
- package/dist/utils/imageUrl.d.ts.map +1 -0
- package/dist/utils/imageUrl.js +46 -0
- package/dist/utils/imageUrl.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentMeta.js","sourceRoot":"","sources":["../../../src/components/browser/componentMeta.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAqCtE,CAAC"}
|
|
@@ -6,6 +6,34 @@ import { Grid } from "./Grid";
|
|
|
6
6
|
import { Container } from "./Container";
|
|
7
7
|
import { Image } from "./Image";
|
|
8
8
|
import { UnitExplorer } from "./units/UnitExplorer";
|
|
9
|
+
import { FloorplanExplorer } from "./units/FloorplanExplorer";
|
|
10
|
+
import { Button } from "./Button";
|
|
11
|
+
import { Modal } from "./Modal";
|
|
12
|
+
import { Nav } from "./Nav";
|
|
13
|
+
import { Footer } from "./Footer";
|
|
14
|
+
import { Icon } from "./Icon";
|
|
15
|
+
import { Accordion } from "./Accordion";
|
|
16
|
+
import { AmenityList } from "./AmenityList";
|
|
17
|
+
import { Gallery } from "./Gallery";
|
|
18
|
+
import { ContactForm } from "./ContactForm";
|
|
19
|
+
import { ScheduleTour } from "./ScheduleTour";
|
|
20
|
+
import { EliseChat } from "./EliseChat";
|
|
21
|
+
import { UnitPage } from "./units/UnitPage";
|
|
22
|
+
import { VideoHero } from "./VideoHero";
|
|
23
|
+
import { VideoPlayer } from "./VideoPlayer";
|
|
24
|
+
import { FeatureCard } from "./FeatureCard";
|
|
25
|
+
import { CTABanner } from "./CTABanner";
|
|
26
|
+
import { Testimonial } from "./Testimonial";
|
|
27
|
+
import { Divider } from "./Divider";
|
|
28
|
+
import { Slot } from "./Slot";
|
|
29
|
+
import { MapEmbed } from "./MapEmbed";
|
|
30
|
+
import { AddressBlock } from "./AddressBlock";
|
|
31
|
+
import { Badge } from "./Badge";
|
|
32
|
+
import { Stat } from "./Stat";
|
|
33
|
+
import { ScrollReveal } from "./ScrollReveal";
|
|
34
|
+
import { VirtualTourEmbed } from "./VirtualTourEmbed";
|
|
35
|
+
import { ComponentBrowser } from "./browser/ComponentBrowser";
|
|
36
|
+
import { ComponentShowcase } from "./browser/ComponentShowcase";
|
|
9
37
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
38
|
export const componentRegistry = {
|
|
11
39
|
Text,
|
|
@@ -16,5 +44,33 @@ export const componentRegistry = {
|
|
|
16
44
|
Container,
|
|
17
45
|
Image,
|
|
18
46
|
UnitExplorer,
|
|
47
|
+
FloorplanExplorer,
|
|
48
|
+
Button,
|
|
49
|
+
Modal,
|
|
50
|
+
Nav,
|
|
51
|
+
Footer,
|
|
52
|
+
Icon,
|
|
53
|
+
Accordion,
|
|
54
|
+
AmenityList,
|
|
55
|
+
Gallery,
|
|
56
|
+
ContactForm,
|
|
57
|
+
ScheduleTour,
|
|
58
|
+
EliseChat,
|
|
59
|
+
UnitPage,
|
|
60
|
+
VideoHero,
|
|
61
|
+
VideoPlayer,
|
|
62
|
+
FeatureCard,
|
|
63
|
+
CTABanner,
|
|
64
|
+
Testimonial,
|
|
65
|
+
Divider,
|
|
66
|
+
Slot,
|
|
67
|
+
MapEmbed,
|
|
68
|
+
AddressBlock,
|
|
69
|
+
Badge,
|
|
70
|
+
Stat,
|
|
71
|
+
ScrollReveal,
|
|
72
|
+
VirtualTourEmbed,
|
|
73
|
+
ComponentBrowser,
|
|
74
|
+
ComponentShowcase,
|
|
19
75
|
};
|
|
20
76
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAA6C;IACzE,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,SAAS;IACT,KAAK;IACL,YAAY;IACZ,iBAAiB;IACjB,MAAM;IACN,KAAK;IACL,GAAG;IACH,MAAM;IACN,IAAI;IACJ,SAAS;IACT,WAAW;IACX,OAAO;IACP,WAAW;IACX,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,WAAW;IACX,SAAS;IACT,WAAW;IACX,OAAO;IACP,IAAI;IACJ,QAAQ;IACR,YAAY;IACZ,KAAK;IACL,IAAI;IACJ,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;CAClB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PublicUnit, PublicFloorplan } from "./types";
|
|
2
|
+
interface FloorPlanGroup {
|
|
3
|
+
name: string;
|
|
4
|
+
units: PublicUnit[];
|
|
5
|
+
imageUrl?: string;
|
|
6
|
+
/** Server-computed data from floorplans API */
|
|
7
|
+
serverData?: PublicFloorplan;
|
|
8
|
+
}
|
|
9
|
+
interface FloorPlanCardProps {
|
|
10
|
+
group: FloorPlanGroup;
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export type { FloorPlanGroup };
|
|
15
|
+
export declare function FloorPlanCard({ group, onClick, className }: FloorPlanCardProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=FloorPlanCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloorPlanCard.d.ts","sourceRoot":"","sources":["../../../src/components/units/FloorPlanCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE3D,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,kBAAkB,2CAqF9E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import { imageUrl as resizeUrl } from "../../utils/imageUrl";
|
|
4
|
+
export function FloorPlanCard({ group, onClick, className }) {
|
|
5
|
+
const { name, units, imageUrl, serverData } = group;
|
|
6
|
+
// Prefer server-computed values when available, fall back to client computation
|
|
7
|
+
const availableCount = serverData?.available_unit_count
|
|
8
|
+
?? units.filter((u) => u.availability_status === "available" || u.availability_status === "available_soon").length;
|
|
9
|
+
const minRent = serverData?.rent_range?.min
|
|
10
|
+
?? Math.min(...units.map((u) => u.rent ?? Infinity));
|
|
11
|
+
const minSqft = serverData?.sqft_range?.min
|
|
12
|
+
?? (() => {
|
|
13
|
+
const vals = units.map((u) => u.square_footage).filter((v) => v != null);
|
|
14
|
+
return vals.length ? Math.min(...vals) : null;
|
|
15
|
+
})();
|
|
16
|
+
const maxSqft = serverData?.sqft_range?.max
|
|
17
|
+
?? (() => {
|
|
18
|
+
const vals = units.map((u) => u.square_footage).filter((v) => v != null);
|
|
19
|
+
return vals.length ? Math.max(...vals) : null;
|
|
20
|
+
})();
|
|
21
|
+
const beds = serverData?.bedrooms != null
|
|
22
|
+
? [serverData.bedrooms]
|
|
23
|
+
: [...new Set(units.map((u) => u.bedrooms).filter((b) => b != null))].sort((a, b) => a - b);
|
|
24
|
+
return (_jsxs("button", { onClick: onClick, className: twMerge("rounded-lg border border-[var(--color-muted)]/20 bg-white overflow-hidden text-left hover:shadow-md transition-shadow cursor-pointer", className), children: [imageUrl ? (_jsx("div", { className: "aspect-[4/3] bg-gray-50 overflow-hidden", children: _jsx("img", { src: resizeUrl(imageUrl, { w: 600, q: 80 }), alt: `${name} floor plan`, className: "w-full h-full object-contain p-4" }) })) : (_jsx("div", { className: "aspect-[4/3] bg-gray-50 flex items-center justify-center", children: _jsx("span", { className: "text-3xl font-bold text-[var(--color-muted)]/30", children: name }) })), _jsxs("div", { className: "p-4", children: [_jsxs("div", { className: "flex items-center justify-between mb-1", children: [_jsx("span", { className: "text-base font-semibold text-[var(--color-foreground)]", children: serverData?.marketing_title ?? name }), _jsxs("span", { className: "text-xs text-[var(--color-muted)] bg-[var(--color-muted)]/10 rounded-full px-2 py-0.5", children: [availableCount, " ", availableCount === 1 ? "unit" : "units"] })] }), _jsxs("div", { className: "flex flex-wrap gap-x-3 gap-y-0.5 text-sm text-[var(--color-secondary)] mb-2", children: [beds.length > 0 && (_jsx("span", { children: beds.map((b) => (b === 0 ? "Studio" : `${b} Bed`)).join(", ") })), minSqft != null && (_jsx("span", { children: minSqft === maxSqft
|
|
25
|
+
? `${minSqft.toLocaleString()} sqft`
|
|
26
|
+
: `${minSqft.toLocaleString()}-${maxSqft.toLocaleString()} sqft` }))] }), minRent < Infinity && (_jsxs("div", { className: "text-[var(--color-primary)] font-semibold", children: ["Starting at $", minRent.toLocaleString(), "/mo"] }))] })] }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=FloorPlanCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloorPlanCard.js","sourceRoot":"","sources":["../../../src/components/units/FloorPlanCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PublicFloorplan } from "./types";
|
|
2
|
+
interface FloorplanExplorerProps {
|
|
3
|
+
propertyId?: string;
|
|
4
|
+
layout?: "grid" | "list";
|
|
5
|
+
columns?: 1 | 2 | 3 | 4;
|
|
6
|
+
showMedia?: boolean;
|
|
7
|
+
showUnitCount?: boolean;
|
|
8
|
+
showRentRange?: boolean;
|
|
9
|
+
showSqftRange?: boolean;
|
|
10
|
+
showBedBath?: boolean;
|
|
11
|
+
showMarketingDescription?: boolean;
|
|
12
|
+
unitPreview?: "none" | "count" | "inline";
|
|
13
|
+
unitPreviewLimit?: number;
|
|
14
|
+
onFloorplanClick?: (floorplan: PublicFloorplan) => void;
|
|
15
|
+
unitBasePath?: string;
|
|
16
|
+
applyUrl?: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function FloorplanExplorer({ propertyId, layout, columns, showMedia, showUnitCount, showRentRange, showSqftRange, showBedBath, showMarketingDescription, unitPreview, unitPreviewLimit, onFloorplanClick, unitBasePath, applyUrl, className, }: FloorplanExplorerProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=FloorplanExplorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloorplanExplorer.d.ts","sourceRoot":"","sources":["../../../src/components/units/FloorplanExplorer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAElE,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyJD,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,MAAe,EACf,OAAW,EACX,SAAgB,EAChB,aAAoB,EACpB,aAAoB,EACpB,aAAoB,EACpB,WAAkB,EAClB,wBAAgC,EAChC,WAAqB,EACrB,gBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,EAAE,sBAAsB,2CAsFxB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import { useFloorplans } from "../../hooks/useFloorplans";
|
|
4
|
+
import { imageUrl } from "../../utils/imageUrl";
|
|
5
|
+
const columnClasses = {
|
|
6
|
+
1: "grid-cols-1",
|
|
7
|
+
2: "grid-cols-1 md:grid-cols-2",
|
|
8
|
+
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
|
|
9
|
+
4: "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
10
|
+
};
|
|
11
|
+
function FloorplanCard({ floorplan, showMedia, showUnitCount, showRentRange, showSqftRange, showBedBath, showMarketingDescription, unitPreview, unitPreviewLimit, onClick, unitBasePath, applyUrl, }) {
|
|
12
|
+
const cardImageUrl = showMedia && imageUrl(floorplan.media?.[0]?.url, { w: 600, q: 80 });
|
|
13
|
+
const units = floorplan.units ?? [];
|
|
14
|
+
const availableCount = floorplan.available_unit_count ?? units.length;
|
|
15
|
+
const previewUnits = units.slice(0, unitPreviewLimit);
|
|
16
|
+
const remainingCount = availableCount - previewUnits.length;
|
|
17
|
+
return (_jsxs("div", { onClick: onClick, className: twMerge("rounded-[var(--radius)] border border-[var(--color-muted)]/20 bg-white overflow-hidden transition-all duration-200", onClick && "cursor-pointer hover:shadow-md"), style: { boxShadow: "var(--shadow)" }, children: [cardImageUrl ? (_jsx("div", { className: "aspect-[4/3] bg-gray-50 overflow-hidden", children: _jsx("img", { src: cardImageUrl, alt: `${floorplan.marketing_title ?? floorplan.name} floor plan`, className: "w-full h-full object-contain p-4", loading: "lazy" }) })) : (_jsx("div", { className: "aspect-[4/3] bg-gray-50 flex items-center justify-center", children: _jsx("span", { className: "text-3xl font-bold text-[var(--color-muted)]/30", children: floorplan.name }) })), _jsxs("div", { className: "p-4", children: [_jsx("div", { className: "font-semibold text-[var(--color-foreground)] text-base mb-1", children: floorplan.marketing_title ?? floorplan.name }), showBedBath && (_jsxs("div", { className: "flex flex-wrap gap-x-2 text-sm text-[var(--color-secondary)] mb-1", children: [floorplan.bedrooms != null && (_jsx("span", { children: floorplan.bedrooms === 0 ? "Studio" : `${floorplan.bedrooms} Bed` })), floorplan.bathrooms != null && _jsxs("span", { children: [floorplan.bathrooms, " Bath"] }), showSqftRange && floorplan.sqft_range && (_jsx("span", { children: floorplan.sqft_range.min === floorplan.sqft_range.max
|
|
18
|
+
? `${floorplan.sqft_range.min?.toLocaleString()} sqft`
|
|
19
|
+
: `${floorplan.sqft_range.min?.toLocaleString()}-${floorplan.sqft_range.max?.toLocaleString()} sqft` }))] })), showRentRange && floorplan.rent_range && floorplan.rent_range.min != null && (_jsx("div", { className: "text-[var(--color-primary)] font-semibold mb-2", children: floorplan.rent_range.min === floorplan.rent_range.max
|
|
20
|
+
? `$${floorplan.rent_range.min.toLocaleString()}/mo`
|
|
21
|
+
: `$${floorplan.rent_range.min.toLocaleString()} - $${floorplan.rent_range.max?.toLocaleString()}/mo` })), showMarketingDescription && floorplan.marketing_description && (_jsx("p", { className: "text-sm text-[var(--color-muted)] mb-2 line-clamp-2", children: floorplan.marketing_description })), unitPreview === "count" && showUnitCount && (_jsx("div", { className: "mt-2", children: _jsxs("span", { className: "inline-block text-xs bg-[var(--color-muted)]/10 text-[var(--color-muted)] rounded-full px-2.5 py-1", children: [availableCount, " ", availableCount === 1 ? "unit" : "units", " available"] }) })), unitPreview === "inline" && previewUnits.length > 0 && (_jsxs("div", { className: "mt-3 border-t border-[var(--color-muted)]/10 pt-3 space-y-2", children: [previewUnits.map((unit) => (_jsxs("div", { className: "flex items-center justify-between text-sm", children: [_jsxs("div", { className: "flex gap-2 text-[var(--color-foreground)]", children: [_jsxs("span", { className: "font-medium", children: ["Unit ", unit.unit_number] }), unit.rent != null && _jsxs("span", { children: ["$", unit.rent.toLocaleString(), "/mo"] }), unit.date_available && (_jsx("span", { className: "text-[var(--color-muted)]", children: new Date(unit.date_available).toLocaleDateString() }))] }), applyUrl && (_jsx("a", { href: `${applyUrl}?unit=${unit.unit_number}`, target: "_blank", rel: "noopener noreferrer", onClick: (e) => e.stopPropagation(), className: "text-xs font-medium text-[var(--color-primary)] hover:underline", children: "Apply" }))] }, unit.id))), remainingCount > 0 && unitBasePath && (_jsxs("div", { className: "text-xs text-[var(--color-primary)] font-medium", children: ["+ ", remainingCount, " more ", remainingCount === 1 ? "unit" : "units"] }))] }))] })] }));
|
|
22
|
+
}
|
|
23
|
+
export function FloorplanExplorer({ propertyId, layout = "grid", columns = 3, showMedia = true, showUnitCount = true, showRentRange = true, showSqftRange = true, showBedBath = true, showMarketingDescription = false, unitPreview = "count", unitPreviewLimit = 3, onFloorplanClick, unitBasePath, applyUrl, className, }) {
|
|
24
|
+
const { floorplans, isLoading, error, hasMore, loadMore } = useFloorplans(propertyId, {
|
|
25
|
+
includeUnits: unitPreview === "inline",
|
|
26
|
+
includeMedia: showMedia,
|
|
27
|
+
});
|
|
28
|
+
if (isLoading && floorplans.length === 0) {
|
|
29
|
+
return (_jsx("div", { className: twMerge("text-center py-12 text-[var(--color-muted)]", className), children: "Loading floor plans..." }));
|
|
30
|
+
}
|
|
31
|
+
if (error) {
|
|
32
|
+
return (_jsx("div", { className: twMerge("text-red-600 text-sm", className), children: "Failed to load floor plans." }));
|
|
33
|
+
}
|
|
34
|
+
if (floorplans.length === 0) {
|
|
35
|
+
return (_jsx("div", { className: twMerge("text-[var(--color-muted)] text-center py-12", className), children: "No floor plans available" }));
|
|
36
|
+
}
|
|
37
|
+
return (_jsxs("div", { className: twMerge("w-full", className), children: [layout === "grid" ? (_jsx("div", { className: twMerge("grid gap-4", columnClasses[columns] ?? columnClasses[3]), children: floorplans.map((fp) => (_jsx(FloorplanCard, { floorplan: fp, showMedia: showMedia, showUnitCount: showUnitCount, showRentRange: showRentRange, showSqftRange: showSqftRange, showBedBath: showBedBath, showMarketingDescription: showMarketingDescription, unitPreview: unitPreview, unitPreviewLimit: unitPreviewLimit, onClick: onFloorplanClick ? () => onFloorplanClick(fp) : undefined, unitBasePath: unitBasePath, applyUrl: applyUrl }, fp.id ?? fp.name))) })) : (_jsx("div", { className: "flex flex-col gap-4", children: floorplans.map((fp) => (_jsx(FloorplanCard, { floorplan: fp, showMedia: showMedia, showUnitCount: showUnitCount, showRentRange: showRentRange, showSqftRange: showSqftRange, showBedBath: showBedBath, showMarketingDescription: showMarketingDescription, unitPreview: unitPreview, unitPreviewLimit: unitPreviewLimit, onClick: onFloorplanClick ? () => onFloorplanClick(fp) : undefined, unitBasePath: unitBasePath, applyUrl: applyUrl }, fp.id ?? fp.name))) })), hasMore && (_jsx("div", { className: "text-center mt-6", children: _jsx("button", { onClick: loadMore, className: "px-6 py-2 text-sm font-medium text-[var(--color-primary)] border border-[var(--color-primary)]/30 rounded-md hover:bg-[var(--color-primary)]/5 transition-colors cursor-pointer", children: "Load More" }) }))] }));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=FloorplanExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloorplanExplorer.js","sourceRoot":"","sources":["../../../src/components/units/FloorplanExplorer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface PricingMatrixModalProps {
|
|
2
|
+
propertyId: string;
|
|
3
|
+
unitId: number;
|
|
4
|
+
unitNumber: string;
|
|
5
|
+
applyUrl?: string;
|
|
6
|
+
applicationUrl?: string;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function PricingMatrixModal({ propertyId, unitId, unitNumber, applyUrl, applicationUrl, onClose, className, }: PricingMatrixModalProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=PricingMatrixModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PricingMatrixModal.d.ts","sourceRoot":"","sources":["../../../src/components/units/PricingMatrixModal.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,UAAU,EACV,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,2CAqLzB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useCallback, useMemo } from "react";
|
|
3
|
+
import { twMerge } from "tailwind-merge";
|
|
4
|
+
import { useSiteConfig } from "../../hooks/useSiteConfig";
|
|
5
|
+
import { useAuth } from "../../hooks/useAuth";
|
|
6
|
+
export function PricingMatrixModal({ propertyId, unitId, unitNumber, applyUrl, applicationUrl, onClose, className, }) {
|
|
7
|
+
const config = useSiteConfig();
|
|
8
|
+
const { authenticatedFetch } = useAuth();
|
|
9
|
+
const apiBaseUrl = config.property?.apiBaseUrl ?? "";
|
|
10
|
+
const [entries, setEntries] = useState(null);
|
|
11
|
+
const [loading, setLoading] = useState(true);
|
|
12
|
+
const [error, setError] = useState(false);
|
|
13
|
+
const fetchMatrix = useCallback(async () => {
|
|
14
|
+
setLoading(true);
|
|
15
|
+
setError(false);
|
|
16
|
+
try {
|
|
17
|
+
const url = `${apiBaseUrl}/v1/properties/${propertyId}/units/${unitId}?include_price_matrix=true`;
|
|
18
|
+
const res = await authenticatedFetch(url);
|
|
19
|
+
if (!res.ok)
|
|
20
|
+
throw new Error(`${res.status}`);
|
|
21
|
+
const data = await res.json();
|
|
22
|
+
setEntries(data.price_matrix ?? null);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
setError(true);
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
setLoading(false);
|
|
29
|
+
}
|
|
30
|
+
}, [apiBaseUrl, propertyId, unitId, authenticatedFetch]);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
fetchMatrix();
|
|
33
|
+
}, [fetchMatrix]);
|
|
34
|
+
// Pivot the flat list into a table: rows = move-in dates, columns = lease terms
|
|
35
|
+
// Sample dates to weekly intervals for readability when there are many
|
|
36
|
+
const { moveInDates, leaseTerms, matrix } = useMemo(() => {
|
|
37
|
+
if (!entries || entries.length === 0)
|
|
38
|
+
return { moveInDates: [], leaseTerms: [], matrix: new Map() };
|
|
39
|
+
const termsSet = new Set();
|
|
40
|
+
const datesSet = new Set();
|
|
41
|
+
const map = new Map(); // "date|term" -> rent
|
|
42
|
+
for (const e of entries) {
|
|
43
|
+
termsSet.add(e.lease_term_months);
|
|
44
|
+
datesSet.add(e.move_in_date);
|
|
45
|
+
map.set(`${e.move_in_date}|${e.lease_term_months}`, e.rent);
|
|
46
|
+
}
|
|
47
|
+
const allDates = [...datesSet].sort();
|
|
48
|
+
const maxRows = 12;
|
|
49
|
+
let sampledDates = allDates;
|
|
50
|
+
if (allDates.length > maxRows) {
|
|
51
|
+
const step = Math.ceil(allDates.length / maxRows);
|
|
52
|
+
sampledDates = allDates.filter((_, i) => i % step === 0);
|
|
53
|
+
if (sampledDates[sampledDates.length - 1] !== allDates[allDates.length - 1]) {
|
|
54
|
+
sampledDates.push(allDates[allDates.length - 1]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const allTerms = [...termsSet].sort((a, b) => a - b);
|
|
58
|
+
const maxCols = 7;
|
|
59
|
+
let sampledTerms = allTerms;
|
|
60
|
+
if (allTerms.length > maxCols) {
|
|
61
|
+
const preferred = new Set([allTerms[0], 6, 9, 12, 15, allTerms[allTerms.length - 1]]);
|
|
62
|
+
sampledTerms = allTerms.filter((t) => preferred.has(t)).slice(0, maxCols);
|
|
63
|
+
if (sampledTerms.length < 3)
|
|
64
|
+
sampledTerms = allTerms.slice(0, maxCols);
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
moveInDates: sampledDates,
|
|
68
|
+
leaseTerms: sampledTerms,
|
|
69
|
+
matrix: map,
|
|
70
|
+
};
|
|
71
|
+
}, [entries]);
|
|
72
|
+
const finalApplyUrl = applyUrl || applicationUrl;
|
|
73
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", onClick: onClose, role: "dialog", "aria-modal": "true", "aria-label": `Pricing for Unit ${unitNumber}`, children: [_jsx("div", { className: "absolute inset-0 bg-black/60" }), _jsxs("div", { onClick: (e) => e.stopPropagation(), className: twMerge("relative z-10 w-full max-w-2xl 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: [_jsxs("h2", { className: "text-lg font-semibold text-[var(--color-foreground)]", children: ["Pricing for Unit ", unitNumber] }), _jsx("button", { onClick: onClose, className: "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" }) }) })] }), _jsxs("div", { className: "px-6 py-5", children: [loading && (_jsx("div", { className: "text-center py-8 text-[var(--color-muted)]", children: "Loading pricing..." })), error && (_jsx("div", { className: "text-center py-8 text-red-600 text-sm", children: "Failed to load pricing data." })), !loading && !error && moveInDates.length === 0 && (_jsx("div", { className: "text-center py-8 text-[var(--color-muted)]", children: "No pricing data available for this unit." })), !loading && !error && moveInDates.length > 0 && (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-[var(--color-muted)]/20", children: [_jsx("th", { className: "text-left py-2 pr-4 font-medium text-[var(--color-muted)]", children: "Move-in Date" }), leaseTerms.map((term) => (_jsxs("th", { className: "text-right py-2 px-3 font-medium text-[var(--color-muted)]", children: [term, " mo"] }, term)))] }) }), _jsx("tbody", { children: moveInDates.map((dateStr) => (_jsxs("tr", { className: "border-b border-[var(--color-muted)]/10", children: [_jsx("td", { className: "py-2 pr-4 text-[var(--color-foreground)]", children: new Date(dateStr + "T00:00:00").toLocaleDateString() }), leaseTerms.map((term) => {
|
|
74
|
+
const rent = matrix.get(`${dateStr}|${term}`);
|
|
75
|
+
return (_jsx("td", { className: "text-right py-2 px-3 text-[var(--color-foreground)]", children: rent != null ? `$${rent.toLocaleString()}` : "-" }, term));
|
|
76
|
+
})] }, dateStr))) })] }) }))] }), finalApplyUrl && (_jsx("div", { className: "border-t border-gray-100 px-6 py-4 flex justify-end", children: _jsx("a", { href: `${finalApplyUrl}?unit=${unitNumber}`, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center justify-center rounded-md bg-[var(--color-primary)] px-6 py-2.5 text-sm font-semibold text-white hover:opacity-90 transition-opacity", children: "Apply Now" }) }))] })] }));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=PricingMatrixModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PricingMatrixModal.js","sourceRoot":"","sources":["../../../src/components/units/PricingMatrixModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PublicUnit } from "./types";
|
|
2
2
|
interface UnitCardProps {
|
|
3
|
-
unit:
|
|
3
|
+
unit: PublicUnit;
|
|
4
4
|
style: "compact" | "standard";
|
|
5
5
|
showPricing: boolean;
|
|
6
6
|
showAvailability: boolean;
|
|
@@ -8,8 +8,17 @@ interface UnitCardProps {
|
|
|
8
8
|
showSquareFootage: boolean;
|
|
9
9
|
showUnitNumber: boolean;
|
|
10
10
|
showBedBath: boolean;
|
|
11
|
+
showApplyButton?: boolean;
|
|
12
|
+
showSpecials?: boolean;
|
|
13
|
+
showImage?: boolean;
|
|
14
|
+
showPricingLink?: boolean;
|
|
15
|
+
selected?: boolean;
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
onApply?: (unit: PublicUnit) => void;
|
|
18
|
+
onViewPricing?: (unit: PublicUnit) => void;
|
|
19
|
+
applyUrl?: string;
|
|
11
20
|
className?: string;
|
|
12
21
|
}
|
|
13
|
-
export declare function UnitCard({ unit, style, showPricing, showAvailability, showFloorplan, showSquareFootage, showUnitNumber, showBedBath, className, }: UnitCardProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function UnitCard({ unit, style, showPricing, showAvailability, showFloorplan, showSquareFootage, showUnitNumber, showBedBath, showApplyButton, showSpecials, showImage, showPricingLink, selected, onClick, onApply, onViewPricing, applyUrl, className, }: UnitCardProps): import("react/jsx-runtime").JSX.Element;
|
|
14
23
|
export {};
|
|
15
24
|
//# sourceMappingURL=UnitCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitCard.d.ts","sourceRoot":"","sources":["../../../src/components/units/UnitCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UnitCard.d.ts","sourceRoot":"","sources":["../../../src/components/units/UnitCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,UAAU,aAAa;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,SAAS,GAAG,UAAU,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,eAAuB,EACvB,YAAoB,EACpB,SAAiB,EACjB,eAAuB,EACvB,QAAgB,EAChB,OAAO,EACP,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,GACV,EAAE,aAAa,2CAyKf"}
|
|
@@ -1,12 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import { imageUrl } from "../../utils/imageUrl";
|
|
3
4
|
function formatStatus(status) {
|
|
4
5
|
return status.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
5
6
|
}
|
|
6
|
-
export function UnitCard({ unit, style, showPricing, showAvailability, showFloorplan, showSquareFootage, showUnitNumber, showBedBath, className, }) {
|
|
7
|
+
export function UnitCard({ unit, style, showPricing, showAvailability, showFloorplan, showSquareFootage, showUnitNumber, showBedBath, showApplyButton = false, showSpecials = false, showImage = false, showPricingLink = false, selected = false, onClick, onApply, onViewPricing, applyUrl, className, }) {
|
|
7
8
|
const compact = style === "compact";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const isClickable = !!onClick;
|
|
10
|
+
const heroImage = showImage && imageUrl(unit.media?.[0]?.url, { w: 800, q: 80 });
|
|
11
|
+
const specials = showSpecials && unit.specials?.length ? unit.specials : null;
|
|
12
|
+
const finalApplyUrl = unit.application_url
|
|
13
|
+
? `${unit.application_url}${unit.application_url.includes("?") ? "&" : "?"}unit_number=${unit.unit_number}`
|
|
14
|
+
: applyUrl
|
|
15
|
+
? `${applyUrl}?unit_number=${unit.unit_number}`
|
|
16
|
+
: null;
|
|
17
|
+
return (_jsxs("div", { onClick: onClick, className: twMerge("rounded-[var(--radius)] border overflow-hidden transition-all duration-200", selected
|
|
18
|
+
? "border-[var(--color-primary)] ring-2 ring-[var(--color-primary)]/20 bg-white"
|
|
19
|
+
: "border-[var(--color-muted)]/20 bg-white", isClickable && "cursor-pointer", !heroImage && (compact ? "p-3" : "p-5"), className), style: {
|
|
20
|
+
boxShadow: selected ? "var(--shadow-hover)" : "var(--shadow)",
|
|
21
|
+
}, onMouseEnter: (e) => {
|
|
22
|
+
if (isClickable)
|
|
23
|
+
e.currentTarget.style.boxShadow = "var(--shadow-hover)";
|
|
24
|
+
}, onMouseLeave: (e) => {
|
|
25
|
+
if (isClickable)
|
|
26
|
+
e.currentTarget.style.boxShadow = selected ? "var(--shadow-hover)" : "var(--shadow)";
|
|
27
|
+
}, children: [heroImage && (_jsx("div", { className: "aspect-[16/9] bg-gray-50 overflow-hidden", children: _jsx("img", { src: heroImage, alt: `Unit ${unit.unit_number}`, className: "w-full h-full object-cover", loading: "lazy" }) })), _jsxs("div", { className: heroImage ? (compact ? "p-3" : "p-5") : undefined, children: [specials && (_jsx("div", { className: "mb-2 flex flex-wrap gap-1", children: specials.map((s, i) => (_jsx("span", { className: "inline-block rounded-full px-2.5 py-0.5 text-xs font-semibold bg-orange-100 text-orange-800", children: s.description }, s.id ?? i))) })), _jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex-1", children: [showUnitNumber && (_jsxs("div", { className: twMerge("font-semibold text-[var(--color-foreground)]", compact ? "text-sm" : "text-base"), children: ["Unit ", unit.unit_number] })), showFloorplan && unit.floorplan?.name && (_jsx("div", { className: "text-sm text-[var(--color-muted)]", children: unit.floorplan.name }))] }), showPricing && unit.rent != null && (_jsxs("div", { className: twMerge("font-semibold text-[var(--color-primary)]", compact ? "text-sm" : "text-lg"), children: ["$", Number(unit.rent).toLocaleString(), "/mo"] }))] }), _jsxs("div", { className: twMerge("flex flex-wrap gap-x-3 gap-y-1 text-[var(--color-secondary)]", compact ? "mt-1 text-xs" : "mt-2 text-sm"), children: [showBedBath && (_jsxs(_Fragment, { children: [_jsx("span", { children: unit.bedrooms === 0 ? "Studio" : `${unit.bedrooms} bed` }), _jsxs("span", { children: [Number(unit.bathrooms), " bath"] })] })), showSquareFootage && unit.square_footage != null && (_jsxs("span", { children: [unit.square_footage.toLocaleString(), " sqft"] }))] }), showAvailability && unit.date_available && (_jsxs("div", { className: twMerge("text-[var(--color-muted)]", compact ? "mt-1 text-xs" : "mt-2 text-sm"), children: ["Available ", new Date(unit.date_available).toLocaleDateString()] })), unit.availability_status && (_jsx("div", { className: "mt-2", children: _jsx("span", { className: twMerge("inline-block rounded-full px-2 py-0.5 text-xs font-medium", unit.availability_status === "available"
|
|
28
|
+
? "bg-green-100 text-green-800"
|
|
29
|
+
: "bg-[var(--color-muted)]/10 text-[var(--color-muted)]"), children: formatStatus(unit.availability_status) }) })), (showApplyButton || showPricingLink) && (_jsxs("div", { className: "flex items-center gap-3 mt-3", children: [showApplyButton && finalApplyUrl && (_jsx("a", { href: onApply ? undefined : finalApplyUrl, onClick: (e) => {
|
|
30
|
+
e.stopPropagation();
|
|
31
|
+
if (onApply) {
|
|
32
|
+
e.preventDefault();
|
|
33
|
+
onApply(unit);
|
|
34
|
+
}
|
|
35
|
+
}, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center justify-center rounded-md bg-[var(--color-primary)] px-4 py-1.5 text-xs font-semibold text-white hover:opacity-90 transition-opacity", children: "Apply" })), showPricingLink && onViewPricing && (_jsx("button", { onClick: (e) => {
|
|
36
|
+
e.stopPropagation();
|
|
37
|
+
onViewPricing(unit);
|
|
38
|
+
}, className: "text-xs font-medium text-[var(--color-primary)] hover:underline cursor-pointer", children: "View Pricing" }))] }))] })] }));
|
|
11
39
|
}
|
|
12
40
|
//# sourceMappingURL=UnitCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnitCard.js","sourceRoot":"","sources":["../../../src/components/units/UnitCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"UnitCard.js","sourceRoot":"","sources":["../../../src/components/units/UnitCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PublicUnit } from "./types";
|
|
2
|
+
interface UnitDetailProps {
|
|
3
|
+
unit: PublicUnit;
|
|
4
|
+
applyUrl?: string;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onViewPricing?: (unit: PublicUnit) => void;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function UnitDetail({ unit, applyUrl, onClose, onViewPricing, className }: UnitDetailProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=UnitDetail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnitDetail.d.ts","sourceRoot":"","sources":["../../../src/components/units/UnitDetail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,UAAU,eAAe;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,eAAe,2CAmGhG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
function DetailRow({ label, value }) {
|
|
4
|
+
if (value == null || value === "")
|
|
5
|
+
return null;
|
|
6
|
+
return (_jsxs("div", { className: "flex justify-between py-2 border-b border-[var(--color-muted)]/10 last:border-0", children: [_jsx("span", { className: "text-sm text-[var(--color-muted)]", children: label }), _jsx("span", { className: "text-sm font-medium text-[var(--color-foreground)]", children: value })] }));
|
|
7
|
+
}
|
|
8
|
+
export function UnitDetail({ unit, applyUrl, onClose, onViewPricing, className }) {
|
|
9
|
+
const finalApplyUrl = unit.application_url
|
|
10
|
+
? `${unit.application_url}${unit.application_url.includes("?") ? "&" : "?"}unit=${unit.unit_number}`
|
|
11
|
+
: applyUrl
|
|
12
|
+
? `${applyUrl}?unit=${unit.unit_number}`
|
|
13
|
+
: null;
|
|
14
|
+
return (_jsxs("div", { className: twMerge("rounded-lg border border-[var(--color-primary)]/20 bg-white p-5", className), children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { children: [_jsxs("h3", { className: "text-lg font-semibold text-[var(--color-foreground)]", children: ["Unit ", unit.unit_number] }), unit.floorplan?.name && (_jsxs("span", { className: "text-sm text-[var(--color-muted)]", children: ["Floor plan: ", unit.floorplan.name] }))] }), _jsx("button", { onClick: onClose, className: "text-[var(--color-muted)] hover:text-[var(--color-foreground)] cursor-pointer", "aria-label": "Close details", 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" }) }) })] }), unit.specials && unit.specials.length > 0 && (_jsx("div", { className: "mb-4 flex flex-wrap gap-1", children: unit.specials.map((s, i) => (_jsx("span", { className: "inline-block rounded-full px-2.5 py-0.5 text-xs font-semibold bg-orange-100 text-orange-800", children: s.description }, s.id ?? i))) })), _jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-x-8", children: [_jsxs("div", { children: [_jsx(DetailRow, { label: "Bedrooms", value: unit.bedrooms === 0 ? "Studio" : unit.bedrooms }), _jsx(DetailRow, { label: "Bathrooms", value: unit.bathrooms }), _jsx(DetailRow, { label: "Square Feet", value: unit.square_footage != null ? unit.square_footage.toLocaleString() : null }), _jsx(DetailRow, { label: "Floor", value: unit.floor })] }), _jsxs("div", { children: [_jsx(DetailRow, { label: "Rent", value: unit.rent != null ? `$${unit.rent.toLocaleString()}/mo` : null }), _jsx(DetailRow, { label: "Available", value: unit.date_available ? new Date(unit.date_available).toLocaleDateString() : null }), _jsx(DetailRow, { label: "Status", value: unit.availability_status })] })] }), _jsxs("div", { className: "flex gap-3 mt-5", children: [finalApplyUrl && (_jsx("a", { href: finalApplyUrl, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center justify-center rounded-md bg-[var(--color-primary)] px-5 py-2.5 text-sm font-semibold text-white hover:opacity-90 transition-opacity", children: "Apply Now" })), onViewPricing && (_jsx("button", { onClick: () => onViewPricing(unit), className: "inline-flex items-center justify-center rounded-md border border-[var(--color-primary)]/30 px-5 py-2.5 text-sm font-medium text-[var(--color-primary)] hover:bg-[var(--color-primary)]/5 cursor-pointer", children: "View Pricing" })), _jsx("button", { onClick: onClose, className: "inline-flex items-center justify-center rounded-md border border-[var(--color-muted)]/30 px-5 py-2.5 text-sm font-medium text-[var(--color-secondary)] hover:bg-gray-50 cursor-pointer", children: "Close" })] })] }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=UnitDetail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnitDetail.js","sourceRoot":"","sources":["../../../src/components/units/UnitDetail.tsx"],"names":[],"mappings":"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"}
|