@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.
Files changed (207) hide show
  1. package/dist/components/Accordion.d.ts +16 -0
  2. package/dist/components/Accordion.d.ts.map +1 -0
  3. package/dist/components/Accordion.js +28 -0
  4. package/dist/components/Accordion.js.map +1 -0
  5. package/dist/components/AddressBlock.d.ts +14 -0
  6. package/dist/components/AddressBlock.d.ts.map +1 -0
  7. package/dist/components/AddressBlock.js +13 -0
  8. package/dist/components/AddressBlock.js.map +1 -0
  9. package/dist/components/AmenityList.d.ts +20 -0
  10. package/dist/components/AmenityList.d.ts.map +1 -0
  11. package/dist/components/AmenityList.js +75 -0
  12. package/dist/components/AmenityList.js.map +1 -0
  13. package/dist/components/Badge.d.ts +9 -0
  14. package/dist/components/Badge.d.ts.map +1 -0
  15. package/dist/components/Badge.js +16 -0
  16. package/dist/components/Badge.js.map +1 -0
  17. package/dist/components/Button.d.ts +12 -0
  18. package/dist/components/Button.d.ts.map +1 -0
  19. package/dist/components/Button.js +38 -0
  20. package/dist/components/Button.js.map +1 -0
  21. package/dist/components/CTABanner.d.ts +11 -0
  22. package/dist/components/CTABanner.d.ts.map +1 -0
  23. package/dist/components/CTABanner.js +17 -0
  24. package/dist/components/CTABanner.js.map +1 -0
  25. package/dist/components/ContactForm.d.ts +11 -0
  26. package/dist/components/ContactForm.d.ts.map +1 -0
  27. package/dist/components/ContactForm.js +91 -0
  28. package/dist/components/ContactForm.js.map +1 -0
  29. package/dist/components/Container.d.ts +9 -3
  30. package/dist/components/Container.d.ts.map +1 -1
  31. package/dist/components/Container.js +19 -8
  32. package/dist/components/Container.js.map +1 -1
  33. package/dist/components/Divider.d.ts +9 -0
  34. package/dist/components/Divider.d.ts.map +1 -0
  35. package/dist/components/Divider.js +15 -0
  36. package/dist/components/Divider.js.map +1 -0
  37. package/dist/components/EliseChat.d.ts +8 -0
  38. package/dist/components/EliseChat.d.ts.map +1 -0
  39. package/dist/components/EliseChat.js +22 -0
  40. package/dist/components/EliseChat.js.map +1 -0
  41. package/dist/components/FeatureCard.d.ts +15 -0
  42. package/dist/components/FeatureCard.d.ts.map +1 -0
  43. package/dist/components/FeatureCard.js +13 -0
  44. package/dist/components/FeatureCard.js.map +1 -0
  45. package/dist/components/Footer.d.ts +10 -0
  46. package/dist/components/Footer.d.ts.map +1 -0
  47. package/dist/components/Footer.js +19 -0
  48. package/dist/components/Footer.js.map +1 -0
  49. package/dist/components/Gallery.d.ts +18 -0
  50. package/dist/components/Gallery.d.ts.map +1 -0
  51. package/dist/components/Gallery.js +86 -0
  52. package/dist/components/Gallery.js.map +1 -0
  53. package/dist/components/Icon.d.ts +8 -0
  54. package/dist/components/Icon.d.ts.map +1 -0
  55. package/dist/components/Icon.js +26 -0
  56. package/dist/components/Icon.js.map +1 -0
  57. package/dist/components/Lightbox.d.ts +13 -0
  58. package/dist/components/Lightbox.d.ts.map +1 -0
  59. package/dist/components/Lightbox.js +23 -0
  60. package/dist/components/Lightbox.js.map +1 -0
  61. package/dist/components/MapEmbed.d.ts +16 -0
  62. package/dist/components/MapEmbed.d.ts.map +1 -0
  63. package/dist/components/MapEmbed.js +6 -0
  64. package/dist/components/MapEmbed.js.map +1 -0
  65. package/dist/components/Modal.d.ts +9 -0
  66. package/dist/components/Modal.d.ts.map +1 -0
  67. package/dist/components/Modal.js +19 -0
  68. package/dist/components/Modal.js.map +1 -0
  69. package/dist/components/Nav.d.ts +11 -0
  70. package/dist/components/Nav.d.ts.map +1 -0
  71. package/dist/components/Nav.js +53 -0
  72. package/dist/components/Nav.js.map +1 -0
  73. package/dist/components/ScheduleTour.d.ts +8 -0
  74. package/dist/components/ScheduleTour.d.ts.map +1 -0
  75. package/dist/components/ScheduleTour.js +158 -0
  76. package/dist/components/ScheduleTour.js.map +1 -0
  77. package/dist/components/ScrollReveal.d.ts +12 -0
  78. package/dist/components/ScrollReveal.d.ts.map +1 -0
  79. package/dist/components/ScrollReveal.js +37 -0
  80. package/dist/components/ScrollReveal.js.map +1 -0
  81. package/dist/components/Slot.d.ts +14 -0
  82. package/dist/components/Slot.d.ts.map +1 -0
  83. package/dist/components/Slot.js +5 -0
  84. package/dist/components/Slot.js.map +1 -0
  85. package/dist/components/Stat.d.ts +12 -0
  86. package/dist/components/Stat.d.ts.map +1 -0
  87. package/dist/components/Stat.js +12 -0
  88. package/dist/components/Stat.js.map +1 -0
  89. package/dist/components/Testimonial.d.ts +10 -0
  90. package/dist/components/Testimonial.d.ts.map +1 -0
  91. package/dist/components/Testimonial.js +9 -0
  92. package/dist/components/Testimonial.js.map +1 -0
  93. package/dist/components/Text.d.ts +3 -2
  94. package/dist/components/Text.d.ts.map +1 -1
  95. package/dist/components/Text.js +16 -7
  96. package/dist/components/Text.js.map +1 -1
  97. package/dist/components/ThemeProvider.d.ts.map +1 -1
  98. package/dist/components/ThemeProvider.js +85 -5
  99. package/dist/components/ThemeProvider.js.map +1 -1
  100. package/dist/components/VideoHero.d.ts +16 -0
  101. package/dist/components/VideoHero.d.ts.map +1 -0
  102. package/dist/components/VideoHero.js +19 -0
  103. package/dist/components/VideoHero.js.map +1 -0
  104. package/dist/components/VideoPlayer.d.ts +18 -0
  105. package/dist/components/VideoPlayer.d.ts.map +1 -0
  106. package/dist/components/VideoPlayer.js +14 -0
  107. package/dist/components/VideoPlayer.js.map +1 -0
  108. package/dist/components/VirtualTourEmbed.d.ts +9 -0
  109. package/dist/components/VirtualTourEmbed.d.ts.map +1 -0
  110. package/dist/components/VirtualTourEmbed.js +5 -0
  111. package/dist/components/VirtualTourEmbed.js.map +1 -0
  112. package/dist/components/browser/ComponentBrowser.d.ts +2 -0
  113. package/dist/components/browser/ComponentBrowser.d.ts.map +1 -0
  114. package/dist/components/browser/ComponentBrowser.js +73 -0
  115. package/dist/components/browser/ComponentBrowser.js.map +1 -0
  116. package/dist/components/browser/ComponentShowcase.d.ts +8 -0
  117. package/dist/components/browser/ComponentShowcase.d.ts.map +1 -0
  118. package/dist/components/browser/ComponentShowcase.js +104 -0
  119. package/dist/components/browser/ComponentShowcase.js.map +1 -0
  120. package/dist/components/browser/componentMeta.d.ts +40 -0
  121. package/dist/components/browser/componentMeta.d.ts.map +1 -0
  122. package/dist/components/browser/componentMeta.js +726 -0
  123. package/dist/components/browser/componentMeta.js.map +1 -0
  124. package/dist/components/registry.d.ts.map +1 -1
  125. package/dist/components/registry.js +56 -0
  126. package/dist/components/registry.js.map +1 -1
  127. package/dist/components/units/FloorPlanCard.d.ts +16 -0
  128. package/dist/components/units/FloorPlanCard.d.ts.map +1 -0
  129. package/dist/components/units/FloorPlanCard.js +28 -0
  130. package/dist/components/units/FloorPlanCard.js.map +1 -0
  131. package/dist/components/units/FloorplanExplorer.d.ts +21 -0
  132. package/dist/components/units/FloorplanExplorer.d.ts.map +1 -0
  133. package/dist/components/units/FloorplanExplorer.js +39 -0
  134. package/dist/components/units/FloorplanExplorer.js.map +1 -0
  135. package/dist/components/units/PricingMatrixModal.d.ts +12 -0
  136. package/dist/components/units/PricingMatrixModal.d.ts.map +1 -0
  137. package/dist/components/units/PricingMatrixModal.js +78 -0
  138. package/dist/components/units/PricingMatrixModal.js.map +1 -0
  139. package/dist/components/units/UnitCard.d.ts +12 -3
  140. package/dist/components/units/UnitCard.d.ts.map +1 -1
  141. package/dist/components/units/UnitCard.js +33 -5
  142. package/dist/components/units/UnitCard.js.map +1 -1
  143. package/dist/components/units/UnitDetail.d.ts +11 -0
  144. package/dist/components/units/UnitDetail.d.ts.map +1 -0
  145. package/dist/components/units/UnitDetail.js +16 -0
  146. package/dist/components/units/UnitDetail.js.map +1 -0
  147. package/dist/components/units/UnitExplorer.d.ts +17 -1
  148. package/dist/components/units/UnitExplorer.d.ts.map +1 -1
  149. package/dist/components/units/UnitExplorer.js +129 -25
  150. package/dist/components/units/UnitExplorer.js.map +1 -1
  151. package/dist/components/units/UnitFilters.d.ts +2 -2
  152. package/dist/components/units/UnitFilters.d.ts.map +1 -1
  153. package/dist/components/units/UnitFilters.js +2 -2
  154. package/dist/components/units/UnitFilters.js.map +1 -1
  155. package/dist/components/units/UnitPage.d.ts +8 -0
  156. package/dist/components/units/UnitPage.d.ts.map +1 -0
  157. package/dist/components/units/UnitPage.js +130 -0
  158. package/dist/components/units/UnitPage.js.map +1 -0
  159. package/dist/components/units/types.d.ts +109 -24
  160. package/dist/components/units/types.d.ts.map +1 -1
  161. package/dist/components/units/types.js +1 -0
  162. package/dist/components/units/types.js.map +1 -1
  163. package/dist/hooks/useAnalytics.d.ts +16 -0
  164. package/dist/hooks/useAnalytics.d.ts.map +1 -0
  165. package/dist/hooks/useAnalytics.js +65 -0
  166. package/dist/hooks/useAnalytics.js.map +1 -0
  167. package/dist/hooks/useAuth.d.ts.map +1 -1
  168. package/dist/hooks/useAuth.js +8 -2
  169. package/dist/hooks/useAuth.js.map +1 -1
  170. package/dist/hooks/useFees.d.ts +8 -0
  171. package/dist/hooks/useFees.d.ts.map +1 -0
  172. package/dist/hooks/useFees.js +37 -0
  173. package/dist/hooks/useFees.js.map +1 -0
  174. package/dist/hooks/useFloorplans.d.ts +19 -0
  175. package/dist/hooks/useFloorplans.d.ts.map +1 -0
  176. package/dist/hooks/useFloorplans.js +52 -0
  177. package/dist/hooks/useFloorplans.js.map +1 -0
  178. package/dist/hooks/useModal.d.ts +11 -0
  179. package/dist/hooks/useModal.d.ts.map +1 -0
  180. package/dist/hooks/useModal.js +35 -0
  181. package/dist/hooks/useModal.js.map +1 -0
  182. package/dist/hooks/useProperty.d.ts +66 -0
  183. package/dist/hooks/useProperty.d.ts.map +1 -0
  184. package/dist/hooks/useProperty.js +49 -0
  185. package/dist/hooks/useProperty.js.map +1 -0
  186. package/dist/hooks/useSpecials.d.ts +8 -0
  187. package/dist/hooks/useSpecials.d.ts.map +1 -0
  188. package/dist/hooks/useSpecials.js +37 -0
  189. package/dist/hooks/useSpecials.js.map +1 -0
  190. package/dist/index.d.ts +10 -3
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +8 -1
  193. package/dist/index.js.map +1 -1
  194. package/dist/renderer.d.ts.map +1 -1
  195. package/dist/renderer.js +46 -3
  196. package/dist/renderer.js.map +1 -1
  197. package/dist/router.d.ts +9 -0
  198. package/dist/router.d.ts.map +1 -1
  199. package/dist/router.js +34 -1
  200. package/dist/router.js.map +1 -1
  201. package/dist/types.d.ts +47 -1
  202. package/dist/types.d.ts.map +1 -1
  203. package/dist/utils/imageUrl.d.ts +21 -0
  204. package/dist/utils/imageUrl.d.ts.map +1 -0
  205. package/dist/utils/imageUrl.js +46 -0
  206. package/dist/utils/imageUrl.js.map +1 -0
  207. 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":"AAUA,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAStE,CAAC"}
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;AAEpD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAA6C;IACzE,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,SAAS;IACT,KAAK;IACL,YAAY;CACb,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 { UnitV2 } from "./types";
1
+ import type { PublicUnit } from "./types";
2
2
  interface UnitCardProps {
3
- unit: UnitV2;
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":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,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,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,SAAS,GACV,EAAE,aAAa,2CAiFf"}
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 { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
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
- return (_jsxs("div", { className: twMerge("rounded-lg border border-[var(--color-muted)]/20 bg-white overflow-hidden", compact ? "p-3" : "p-5", className), children: [showUnitNumber && (_jsxs("div", { className: twMerge("font-semibold text-[var(--color-foreground)]", compact ? "text-sm" : "text-base"), children: ["Unit ", unit.unit_number] })), showFloorplan && unit.floor_plan && (_jsx("div", { className: "text-sm text-[var(--color-muted)]", children: unit.floor_plan })), _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: [_jsxs("span", { children: [unit.bedrooms, " bed"] }), _jsxs("span", { children: [Number(unit.bathrooms), " bath"] })] })), showSquareFootage && unit.square_feet != null && (_jsxs("span", { children: [unit.square_feet.toLocaleString(), " sqft"] }))] }), showPricing && unit.asking_rent != null && (_jsxs("div", { className: twMerge("font-semibold text-[var(--color-primary)]", compact ? "mt-1 text-sm" : "mt-3 text-lg"), children: ["$", Number(unit.asking_rent).toLocaleString(), "/mo"] })), showAvailability && unit.available_date && (_jsxs("div", { className: twMerge("text-[var(--color-muted)]", compact ? "mt-1 text-xs" : "mt-2 text-sm"), children: ["Available ", new Date(unit.available_date).toLocaleDateString()] })), unit.unit_leasing_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.unit_leasing_status === "available"
9
- ? "bg-green-100 text-green-800"
10
- : "bg-[var(--color-muted)]/10 text-[var(--color-muted)]"), children: formatStatus(unit.unit_leasing_status) }) }))] }));
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;AAezC,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,SAAS,GACK;IACd,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC;IAEpC,OAAO,CACL,eACE,SAAS,EAAE,OAAO,CAChB,2EAA2E,EAC3E,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EACvB,SAAS,CACV,aAEA,cAAc,IAAI,CACjB,eACE,SAAS,EAAE,OAAO,CAChB,8CAA8C,EAC9C,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAClC,sBAEK,IAAI,CAAC,WAAW,IAClB,CACP,EAEA,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,CACnC,cAAK,SAAS,EAAC,mCAAmC,YAAE,IAAI,CAAC,UAAU,GAAO,CAC3E,EAED,eACE,SAAS,EAAE,OAAO,CAChB,8DAA8D,EAC9D,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAC1C,aAEA,WAAW,IAAI,CACd,8BACE,2BAAO,IAAI,CAAC,QAAQ,YAAY,EAChC,2BAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IACzC,CACJ,EACA,iBAAiB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,CAChD,2BAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,CACtD,IACG,EAEL,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,CAC1C,eACE,SAAS,EAAE,OAAO,CAChB,2CAA2C,EAC3C,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAC1C,kBAEC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,WACvC,CACP,EAEA,gBAAgB,IAAI,IAAI,CAAC,cAAc,IAAI,CAC1C,eACE,SAAS,EAAE,OAAO,CAChB,2BAA2B,EAC3B,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAC1C,2BAEU,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,kBAAkB,EAAE,IACzD,CACP,EAEA,IAAI,CAAC,mBAAmB,IAAI,CAC3B,cAAK,SAAS,EAAC,MAAM,YACnB,eACE,SAAS,EAAE,OAAO,CAChB,2DAA2D,EAC3D,IAAI,CAAC,mBAAmB,KAAK,WAAW;wBACtC,CAAC,CAAC,6BAA6B;wBAC/B,CAAC,CAAC,sDAAsD,CAC3D,YAEA,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAClC,GACH,CACP,IACG,CACP,CAAC;AACJ,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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"}