@jxsuite/starters 3.3.2 → 3.5.0

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 (513) hide show
  1. package/package.json +5 -5
  2. package/sites/blog/components/bl-author-bio.jxn +64 -0
  3. package/sites/blog/components/bl-contact-form.jxn +77 -0
  4. package/sites/blog/components/bl-contact-info.jxn +32 -0
  5. package/sites/blog/components/bl-cta.jxn +52 -0
  6. package/sites/blog/components/bl-footer.jxn +85 -0
  7. package/sites/blog/components/bl-masthead.jxn +111 -0
  8. package/sites/blog/components/bl-nav.jxn +62 -0
  9. package/sites/blog/components/bl-newsletter-cta.jxn +104 -0
  10. package/sites/blog/components/bl-post-card.jxn +106 -0
  11. package/sites/blog/components/bl-post-list.jxn +11 -0
  12. package/sites/blog/components/bl-prose.jxn +67 -0
  13. package/sites/blog/components/bl-section-header.jxn +52 -0
  14. package/sites/blog/components/bl-tag-pill.jxn +19 -0
  15. package/sites/blog/document.schema.json +11 -2
  16. package/sites/blog/layouts/base.jxn +17 -0
  17. package/sites/blog/layouts/post.jxn +13 -0
  18. package/sites/blog/package.json +3 -3
  19. package/sites/blog/pages/[slug].jxn +107 -0
  20. package/sites/blog/project.jxn +86 -0
  21. package/sites/course/components/co-application.jxn +106 -0
  22. package/sites/course/components/co-cohort.jxn +132 -0
  23. package/sites/course/components/co-cta.jxn +95 -0
  24. package/sites/course/components/co-curriculum-accordion.jxn +917 -0
  25. package/sites/course/components/co-faq.jxn +348 -0
  26. package/sites/course/components/co-footer.jxn +138 -0
  27. package/sites/course/components/co-hero.jxn +354 -0
  28. package/sites/course/components/co-instructor-card.jxn +128 -0
  29. package/sites/course/components/co-mentor.jxn +51 -0
  30. package/sites/course/components/co-module-card.jxn +101 -0
  31. package/sites/course/components/co-nav.jxn +172 -0
  32. package/sites/course/components/co-outcome-card.jxn +57 -0
  33. package/sites/course/components/co-outcomes.jxn +179 -0
  34. package/sites/course/components/co-pricing.jxn +145 -0
  35. package/sites/course/components/co-section-header.jxn +55 -0
  36. package/sites/course/components/co-testimonial-card.jxn +69 -0
  37. package/sites/course/document.schema.json +11 -2
  38. package/sites/course/layouts/base.jxn +17 -0
  39. package/sites/course/package.json +3 -3
  40. package/sites/course/project.jxn +94 -0
  41. package/sites/event/components/ev-agenda-tabs.jxn +663 -0
  42. package/sites/event/components/ev-cta.jxn +93 -0
  43. package/sites/event/components/ev-feature.jxn +46 -0
  44. package/sites/event/components/ev-footer.jxn +135 -0
  45. package/sites/event/components/ev-hero.jxn +323 -0
  46. package/sites/event/components/ev-nav.jxn +142 -0
  47. package/sites/event/components/ev-reason.jxn +50 -0
  48. package/sites/event/components/ev-savedate.jxn +268 -0
  49. package/sites/event/components/ev-section-header.jxn +51 -0
  50. package/sites/event/components/ev-session-row.jxn +103 -0
  51. package/sites/event/components/ev-speaker-card.jxn +104 -0
  52. package/sites/event/components/ev-sponsors.jxn +110 -0
  53. package/sites/event/components/ev-stat.jxn +39 -0
  54. package/sites/event/components/ev-ticket-card.jxn +169 -0
  55. package/sites/event/components/ev-venue.jxn +61 -0
  56. package/sites/event/document.schema.json +11 -2
  57. package/sites/event/layouts/base.jxn +12 -0
  58. package/sites/event/package.json +3 -3
  59. package/sites/event/project.jxn +114 -0
  60. package/sites/fitness-studio/components/fs-band.jxn +119 -0
  61. package/sites/fitness-studio/components/fs-booking.jxn +92 -0
  62. package/sites/fitness-studio/components/fs-class-card.jxn +103 -0
  63. package/sites/fitness-studio/components/fs-class-grid.jxn +23 -0
  64. package/sites/fitness-studio/components/fs-cta.jxn +81 -0
  65. package/sites/fitness-studio/components/fs-feature.jxn +40 -0
  66. package/sites/fitness-studio/components/fs-footer.jxn +116 -0
  67. package/sites/fitness-studio/components/fs-hero.jxn +290 -0
  68. package/sites/fitness-studio/components/fs-hours.jxn +78 -0
  69. package/sites/fitness-studio/components/fs-instructor-card.jxn +104 -0
  70. package/sites/fitness-studio/components/fs-intro.jxn +231 -0
  71. package/sites/fitness-studio/components/fs-modality.jxn +133 -0
  72. package/sites/fitness-studio/components/fs-nav.jxn +95 -0
  73. package/sites/fitness-studio/components/fs-pricing-card.jxn +190 -0
  74. package/sites/fitness-studio/components/fs-pricing-table.jxn +322 -0
  75. package/sites/fitness-studio/components/fs-review.jxn +59 -0
  76. package/sites/fitness-studio/components/fs-schedule.jxn +714 -0
  77. package/sites/fitness-studio/components/fs-section-header.jxn +55 -0
  78. package/sites/fitness-studio/document.schema.json +11 -2
  79. package/sites/fitness-studio/layouts/base.jxn +17 -0
  80. package/sites/fitness-studio/package.json +3 -3
  81. package/sites/fitness-studio/project.jxn +124 -0
  82. package/sites/home-services/components/hs-callbar.jxn +60 -0
  83. package/sites/home-services/components/hs-cta.jxn +139 -0
  84. package/sites/home-services/components/hs-feature.jxn +43 -0
  85. package/sites/home-services/components/hs-footer.jxn +169 -0
  86. package/sites/home-services/components/hs-gallery.jxn +51 -0
  87. package/sites/home-services/components/hs-hero.jxn +308 -0
  88. package/sites/home-services/components/hs-intro.jxn +97 -0
  89. package/sites/home-services/components/hs-nav.jxn +207 -0
  90. package/sites/home-services/components/hs-reservation.jxn +125 -0
  91. package/sites/home-services/components/hs-review.jxn +84 -0
  92. package/sites/home-services/components/hs-section-header.jxn +56 -0
  93. package/sites/home-services/components/hs-service-card.jxn +68 -0
  94. package/sites/home-services/components/hs-stat.jxn +40 -0
  95. package/sites/home-services/components/hs-step.jxn +67 -0
  96. package/sites/home-services/components/hs-trust-bar.jxn +183 -0
  97. package/sites/home-services/document.schema.json +11 -2
  98. package/sites/home-services/layouts/base.jxn +22 -0
  99. package/sites/home-services/package.json +3 -3
  100. package/sites/home-services/project.jxn +113 -0
  101. package/sites/museum/components/mu-band.jxn +63 -0
  102. package/sites/museum/components/mu-cta.jxn +76 -0
  103. package/sites/museum/components/mu-exhibition-card.jxn +118 -0
  104. package/sites/museum/components/mu-exhibition-row.jxn +142 -0
  105. package/sites/museum/components/mu-fact.jxn +40 -0
  106. package/sites/museum/components/mu-footer.jxn +206 -0
  107. package/sites/museum/components/mu-hero.jxn +165 -0
  108. package/sites/museum/components/mu-more.jxn +30 -0
  109. package/sites/museum/components/mu-oculus.jxn +33 -0
  110. package/sites/museum/components/mu-pagehead.jxn +76 -0
  111. package/sites/museum/components/mu-quote.jxn +36 -0
  112. package/sites/museum/document.schema.json +11 -2
  113. package/sites/museum/layouts/ar.jxn +31 -0
  114. package/sites/museum/layouts/base.jxn +227 -0
  115. package/sites/museum/layouts/fr-ca.jxn +30 -0
  116. package/sites/museum/package.json +3 -3
  117. package/sites/museum/pages/about.jxn +228 -0
  118. package/sites/museum/pages/ar/about.jxn +232 -0
  119. package/sites/museum/pages/ar/exhibitions/[slug].jxn +150 -0
  120. package/sites/museum/pages/ar/exhibitions/index.jxn +82 -0
  121. package/sites/museum/pages/ar/index.jxn +206 -0
  122. package/sites/museum/pages/ar/visit.jxn +270 -0
  123. package/sites/museum/pages/exhibitions/[slug].jxn +146 -0
  124. package/sites/museum/pages/exhibitions/index.jxn +78 -0
  125. package/sites/museum/pages/fr-ca/a-propos.jxn +233 -0
  126. package/sites/museum/pages/fr-ca/expositions/[slug].jxn +151 -0
  127. package/sites/museum/pages/fr-ca/expositions/index.jxn +83 -0
  128. package/sites/museum/pages/fr-ca/index.jxn +206 -0
  129. package/sites/museum/pages/fr-ca/visite.jxn +271 -0
  130. package/sites/museum/pages/index.jxn +202 -0
  131. package/sites/museum/pages/visit.jxn +266 -0
  132. package/sites/museum/project.jxn +130 -0
  133. package/sites/nonprofit/components/np-contact-form.jxn +97 -0
  134. package/sites/nonprofit/components/np-contact-info.jxn +104 -0
  135. package/sites/nonprofit/components/np-cta.jxn +163 -0
  136. package/sites/nonprofit/components/np-donate-tier.jxn +103 -0
  137. package/sites/nonprofit/components/np-feature.jxn +46 -0
  138. package/sites/nonprofit/components/np-footer.jxn +194 -0
  139. package/sites/nonprofit/components/np-hero.jxn +275 -0
  140. package/sites/nonprofit/components/np-impact-band.jxn +83 -0
  141. package/sites/nonprofit/components/np-intro.jxn +130 -0
  142. package/sites/nonprofit/components/np-nav.jxn +157 -0
  143. package/sites/nonprofit/components/np-program-card.jxn +95 -0
  144. package/sites/nonprofit/components/np-section-header.jxn +63 -0
  145. package/sites/nonprofit/components/np-stat.jxn +51 -0
  146. package/sites/nonprofit/components/np-step.jxn +73 -0
  147. package/sites/nonprofit/components/np-team-member.jxn +60 -0
  148. package/sites/nonprofit/components/np-testimonial.jxn +120 -0
  149. package/sites/nonprofit/document.schema.json +11 -2
  150. package/sites/nonprofit/layouts/base.jxn +17 -0
  151. package/sites/nonprofit/package.json +3 -3
  152. package/sites/nonprofit/project.jxn +99 -0
  153. package/sites/portfolio/components/pv-about-split.jxn +53 -0
  154. package/sites/portfolio/components/pv-category-pill.jxn +19 -0
  155. package/sites/portfolio/components/pv-contact-form.jxn +72 -0
  156. package/sites/portfolio/components/pv-cta.jxn +62 -0
  157. package/sites/portfolio/components/pv-feature.jxn +28 -0
  158. package/sites/portfolio/components/pv-footer.jxn +113 -0
  159. package/sites/portfolio/components/pv-gallery.jxn +40 -0
  160. package/sites/portfolio/components/pv-hero.jxn +109 -0
  161. package/sites/portfolio/components/pv-nav.jxn +76 -0
  162. package/sites/portfolio/components/pv-project-card.jxn +118 -0
  163. package/sites/portfolio/components/pv-project-grid.jxn +29 -0
  164. package/sites/portfolio/components/pv-section-header.jxn +65 -0
  165. package/sites/portfolio/document.schema.json +11 -2
  166. package/sites/portfolio/layouts/base.jxn +12 -0
  167. package/sites/portfolio/package.json +3 -3
  168. package/sites/portfolio/pages/[slug].jxn +177 -0
  169. package/sites/portfolio/project.jxn +85 -0
  170. package/sites/professional-firm/components/pf-article-header.jxn +60 -0
  171. package/sites/professional-firm/components/pf-contact-form.jxn +74 -0
  172. package/sites/professional-firm/components/pf-contact-info.jxn +101 -0
  173. package/sites/professional-firm/components/pf-cta.jxn +63 -0
  174. package/sites/professional-firm/components/pf-feature.jxn +32 -0
  175. package/sites/professional-firm/components/pf-footer.jxn +171 -0
  176. package/sites/professional-firm/components/pf-hero.jxn +139 -0
  177. package/sites/professional-firm/components/pf-insight-row.jxn +111 -0
  178. package/sites/professional-firm/components/pf-intro.jxn +68 -0
  179. package/sites/professional-firm/components/pf-logo-bar.jxn +90 -0
  180. package/sites/professional-firm/components/pf-nav.jxn +93 -0
  181. package/sites/professional-firm/components/pf-section-header.jxn +53 -0
  182. package/sites/professional-firm/components/pf-service-row.jxn +67 -0
  183. package/sites/professional-firm/components/pf-statband.jxn +135 -0
  184. package/sites/professional-firm/components/pf-team-member.jxn +53 -0
  185. package/sites/professional-firm/document.schema.json +11 -2
  186. package/sites/professional-firm/layouts/article.jxn +88 -0
  187. package/sites/professional-firm/layouts/base.jxn +12 -0
  188. package/sites/professional-firm/package.json +3 -3
  189. package/sites/professional-firm/pages/insights/[slug].jxn +106 -0
  190. package/sites/professional-firm/project.jxn +94 -0
  191. package/sites/real-estate/components/re-agent-band.jxn +165 -0
  192. package/sites/real-estate/components/re-agent-card.jxn +78 -0
  193. package/sites/real-estate/components/re-contact-form.jxn +119 -0
  194. package/sites/real-estate/components/re-cta.jxn +98 -0
  195. package/sites/real-estate/components/re-detail-row.jxn +18 -0
  196. package/sites/real-estate/components/re-feature.jxn +41 -0
  197. package/sites/real-estate/components/re-footer.jxn +219 -0
  198. package/sites/real-estate/components/re-hero.jxn +367 -0
  199. package/sites/real-estate/components/re-intro.jxn +43 -0
  200. package/sites/real-estate/components/re-listing-card.jxn +210 -0
  201. package/sites/real-estate/components/re-listings-filter.jxn +371 -0
  202. package/sites/real-estate/components/re-nav.jxn +162 -0
  203. package/sites/real-estate/components/re-neighborhood.jxn +101 -0
  204. package/sites/real-estate/components/re-section-header.jxn +55 -0
  205. package/sites/real-estate/components/re-stat.jxn +26 -0
  206. package/sites/real-estate/components/re-step.jxn +42 -0
  207. package/sites/real-estate/components/re-testimonial.jxn +66 -0
  208. package/sites/real-estate/document.schema.json +11 -2
  209. package/sites/real-estate/layouts/base.jxn +17 -0
  210. package/sites/real-estate/package.json +3 -3
  211. package/sites/real-estate/pages/[slug].jxn +452 -0
  212. package/sites/real-estate/project.jxn +103 -0
  213. package/sites/restaurant/components/bit-cta.jxn +105 -0
  214. package/sites/restaurant/components/bit-feature.jxn +38 -0
  215. package/sites/restaurant/components/bit-footer.jxn +142 -0
  216. package/sites/restaurant/components/bit-gallery.jxn +50 -0
  217. package/sites/restaurant/components/bit-hero.jxn +194 -0
  218. package/sites/restaurant/components/bit-hours.jxn +145 -0
  219. package/sites/restaurant/components/bit-intro.jxn +75 -0
  220. package/sites/restaurant/components/bit-menu-group.jxn +51 -0
  221. package/sites/restaurant/components/bit-menu-item.jxn +50 -0
  222. package/sites/restaurant/components/bit-nav.jxn +145 -0
  223. package/sites/restaurant/components/bit-reservation.jxn +90 -0
  224. package/sites/restaurant/components/bit-review.jxn +54 -0
  225. package/sites/restaurant/components/bit-section-header.jxn +73 -0
  226. package/sites/restaurant/document.schema.json +11 -2
  227. package/sites/restaurant/layouts/base.jxn +17 -0
  228. package/sites/restaurant/package.json +3 -3
  229. package/sites/restaurant/project.jxn +93 -0
  230. package/sites/saas/components/sa-check-item.jxn +25 -0
  231. package/sites/saas/components/sa-contact-form.jxn +94 -0
  232. package/sites/saas/components/sa-cta.jxn +68 -0
  233. package/sites/saas/components/sa-faq.jxn +347 -0
  234. package/sites/saas/components/sa-feature-card.jxn +57 -0
  235. package/sites/saas/components/sa-feature-split.jxn +43 -0
  236. package/sites/saas/components/sa-footer.jxn +106 -0
  237. package/sites/saas/components/sa-hero.jxn +217 -0
  238. package/sites/saas/components/sa-logo-cloud.jxn +98 -0
  239. package/sites/saas/components/sa-nav.jxn +108 -0
  240. package/sites/saas/components/sa-pricing.jxn +317 -0
  241. package/sites/saas/components/sa-section-header.jxn +43 -0
  242. package/sites/saas/components/sa-stat.jxn +32 -0
  243. package/sites/saas/components/sa-testimonial-card.jxn +37 -0
  244. package/sites/saas/document.schema.json +11 -2
  245. package/sites/saas/layouts/base.jxn +17 -0
  246. package/sites/saas/package.json +3 -3
  247. package/sites/saas/project.jxn +119 -0
  248. package/sites/shop/components/shp-badge.jxn +17 -0
  249. package/sites/shop/components/shp-category-tile.jxn +79 -0
  250. package/sites/shop/components/shp-contact-form.jxn +84 -0
  251. package/sites/shop/components/shp-cta.jxn +85 -0
  252. package/sites/shop/components/shp-feature.jxn +44 -0
  253. package/sites/shop/components/shp-footer.jxn +311 -0
  254. package/sites/shop/components/shp-hero.jxn +311 -0
  255. package/sites/shop/components/shp-intro.jxn +42 -0
  256. package/sites/shop/components/shp-nav.jxn +273 -0
  257. package/sites/shop/components/shp-newsletter.jxn +119 -0
  258. package/sites/shop/components/shp-product-card.jxn +187 -0
  259. package/sites/shop/components/shp-product-filter.jxn +263 -0
  260. package/sites/shop/components/shp-review.jxn +38 -0
  261. package/sites/shop/components/shp-section-header.jxn +61 -0
  262. package/sites/shop/components/shp-service.jxn +58 -0
  263. package/sites/shop/components/shp-stat.jxn +27 -0
  264. package/sites/shop/components/shp-trust.jxn +39 -0
  265. package/sites/shop/components/shp-visit-info.jxn +82 -0
  266. package/sites/shop/document.schema.json +11 -2
  267. package/sites/shop/layouts/base.jxn +17 -0
  268. package/sites/shop/package.json +3 -3
  269. package/sites/shop/pages/products/[sku].jxn +351 -0
  270. package/sites/shop/project.jxn +100 -0
  271. package/sites/blog/components/bl-author-bio.json +0 -86
  272. package/sites/blog/components/bl-contact-form.json +0 -114
  273. package/sites/blog/components/bl-contact-info.json +0 -54
  274. package/sites/blog/components/bl-cta.json +0 -68
  275. package/sites/blog/components/bl-footer.json +0 -122
  276. package/sites/blog/components/bl-masthead.json +0 -134
  277. package/sites/blog/components/bl-nav.json +0 -90
  278. package/sites/blog/components/bl-newsletter-cta.json +0 -134
  279. package/sites/blog/components/bl-post-card.json +0 -132
  280. package/sites/blog/components/bl-post-list.json +0 -10
  281. package/sites/blog/components/bl-prose.json +0 -89
  282. package/sites/blog/components/bl-section-header.json +0 -70
  283. package/sites/blog/components/bl-tag-pill.json +0 -29
  284. package/sites/blog/layouts/base.json +0 -22
  285. package/sites/blog/layouts/post.json +0 -15
  286. package/sites/blog/pages/[slug].json +0 -148
  287. package/sites/blog/project.json +0 -140
  288. package/sites/course/components/co-application.json +0 -225
  289. package/sites/course/components/co-cohort.json +0 -172
  290. package/sites/course/components/co-cta.json +0 -126
  291. package/sites/course/components/co-curriculum-accordion.json +0 -1476
  292. package/sites/course/components/co-faq.json +0 -524
  293. package/sites/course/components/co-footer.json +0 -195
  294. package/sites/course/components/co-hero.json +0 -475
  295. package/sites/course/components/co-instructor-card.json +0 -159
  296. package/sites/course/components/co-mentor.json +0 -65
  297. package/sites/course/components/co-module-card.json +0 -138
  298. package/sites/course/components/co-nav.json +0 -244
  299. package/sites/course/components/co-outcome-card.json +0 -84
  300. package/sites/course/components/co-outcomes.json +0 -248
  301. package/sites/course/components/co-pricing.json +0 -178
  302. package/sites/course/components/co-section-header.json +0 -74
  303. package/sites/course/components/co-testimonial-card.json +0 -109
  304. package/sites/course/layouts/base.json +0 -22
  305. package/sites/course/project.json +0 -141
  306. package/sites/event/components/ev-agenda-tabs.json +0 -828
  307. package/sites/event/components/ev-cta.json +0 -126
  308. package/sites/event/components/ev-feature.json +0 -62
  309. package/sites/event/components/ev-footer.json +0 -197
  310. package/sites/event/components/ev-hero.json +0 -431
  311. package/sites/event/components/ev-nav.json +0 -186
  312. package/sites/event/components/ev-reason.json +0 -64
  313. package/sites/event/components/ev-savedate.json +0 -331
  314. package/sites/event/components/ev-section-header.json +0 -70
  315. package/sites/event/components/ev-session-row.json +0 -132
  316. package/sites/event/components/ev-speaker-card.json +0 -130
  317. package/sites/event/components/ev-sponsors.json +0 -131
  318. package/sites/event/components/ev-stat.json +0 -47
  319. package/sites/event/components/ev-ticket-card.json +0 -214
  320. package/sites/event/components/ev-venue.json +0 -86
  321. package/sites/event/layouts/base.json +0 -22
  322. package/sites/event/project.json +0 -163
  323. package/sites/fitness-studio/components/fs-band.json +0 -149
  324. package/sites/fitness-studio/components/fs-booking.json +0 -147
  325. package/sites/fitness-studio/components/fs-class-card.json +0 -143
  326. package/sites/fitness-studio/components/fs-class-grid.json +0 -36
  327. package/sites/fitness-studio/components/fs-cta.json +0 -106
  328. package/sites/fitness-studio/components/fs-feature.json +0 -56
  329. package/sites/fitness-studio/components/fs-footer.json +0 -178
  330. package/sites/fitness-studio/components/fs-hero.json +0 -375
  331. package/sites/fitness-studio/components/fs-hours.json +0 -109
  332. package/sites/fitness-studio/components/fs-instructor-card.json +0 -136
  333. package/sites/fitness-studio/components/fs-intro.json +0 -294
  334. package/sites/fitness-studio/components/fs-modality.json +0 -171
  335. package/sites/fitness-studio/components/fs-nav.json +0 -128
  336. package/sites/fitness-studio/components/fs-pricing-card.json +0 -243
  337. package/sites/fitness-studio/components/fs-pricing-table.json +0 -458
  338. package/sites/fitness-studio/components/fs-review.json +0 -88
  339. package/sites/fitness-studio/components/fs-schedule.json +0 -1165
  340. package/sites/fitness-studio/components/fs-section-header.json +0 -77
  341. package/sites/fitness-studio/layouts/base.json +0 -22
  342. package/sites/fitness-studio/project.json +0 -175
  343. package/sites/home-services/components/hs-callbar.json +0 -72
  344. package/sites/home-services/components/hs-cta.json +0 -184
  345. package/sites/home-services/components/hs-feature.json +0 -62
  346. package/sites/home-services/components/hs-footer.json +0 -232
  347. package/sites/home-services/components/hs-gallery.json +0 -104
  348. package/sites/home-services/components/hs-hero.json +0 -446
  349. package/sites/home-services/components/hs-intro.json +0 -122
  350. package/sites/home-services/components/hs-nav.json +0 -278
  351. package/sites/home-services/components/hs-reservation.json +0 -225
  352. package/sites/home-services/components/hs-review.json +0 -114
  353. package/sites/home-services/components/hs-section-header.json +0 -70
  354. package/sites/home-services/components/hs-service-card.json +0 -89
  355. package/sites/home-services/components/hs-stat.json +0 -54
  356. package/sites/home-services/components/hs-step.json +0 -80
  357. package/sites/home-services/components/hs-trust-bar.json +0 -256
  358. package/sites/home-services/layouts/base.json +0 -24
  359. package/sites/home-services/project.json +0 -160
  360. package/sites/museum/components/mu-band.json +0 -92
  361. package/sites/museum/components/mu-cta.json +0 -101
  362. package/sites/museum/components/mu-exhibition-card.json +0 -191
  363. package/sites/museum/components/mu-exhibition-row.json +0 -237
  364. package/sites/museum/components/mu-fact.json +0 -64
  365. package/sites/museum/components/mu-footer.json +0 -256
  366. package/sites/museum/components/mu-hero.json +0 -236
  367. package/sites/museum/components/mu-more.json +0 -63
  368. package/sites/museum/components/mu-oculus.json +0 -44
  369. package/sites/museum/components/mu-pagehead.json +0 -105
  370. package/sites/museum/components/mu-quote.json +0 -49
  371. package/sites/museum/layouts/ar.json +0 -29
  372. package/sites/museum/layouts/base.json +0 -329
  373. package/sites/museum/layouts/fr-ca.json +0 -28
  374. package/sites/museum/pages/about.json +0 -378
  375. package/sites/museum/pages/ar/about.json +0 -314
  376. package/sites/museum/pages/ar/exhibitions/[slug].json +0 -211
  377. package/sites/museum/pages/ar/exhibitions/index.json +0 -103
  378. package/sites/museum/pages/ar/index.json +0 -246
  379. package/sites/museum/pages/ar/visit.json +0 -327
  380. package/sites/museum/pages/exhibitions/[slug].json +0 -200
  381. package/sites/museum/pages/exhibitions/index.json +0 -93
  382. package/sites/museum/pages/fr-ca/a-propos.json +0 -313
  383. package/sites/museum/pages/fr-ca/expositions/[slug].json +0 -215
  384. package/sites/museum/pages/fr-ca/expositions/index.json +0 -104
  385. package/sites/museum/pages/fr-ca/index.json +0 -246
  386. package/sites/museum/pages/fr-ca/visite.json +0 -328
  387. package/sites/museum/pages/index.json +0 -236
  388. package/sites/museum/pages/visit.json +0 -317
  389. package/sites/museum/project.json +0 -179
  390. package/sites/nonprofit/components/np-contact-form.json +0 -162
  391. package/sites/nonprofit/components/np-contact-info.json +0 -159
  392. package/sites/nonprofit/components/np-cta.json +0 -203
  393. package/sites/nonprofit/components/np-donate-tier.json +0 -116
  394. package/sites/nonprofit/components/np-feature.json +0 -57
  395. package/sites/nonprofit/components/np-footer.json +0 -257
  396. package/sites/nonprofit/components/np-hero.json +0 -360
  397. package/sites/nonprofit/components/np-impact-band.json +0 -108
  398. package/sites/nonprofit/components/np-intro.json +0 -166
  399. package/sites/nonprofit/components/np-nav.json +0 -216
  400. package/sites/nonprofit/components/np-program-card.json +0 -129
  401. package/sites/nonprofit/components/np-section-header.json +0 -79
  402. package/sites/nonprofit/components/np-stat.json +0 -69
  403. package/sites/nonprofit/components/np-step.json +0 -84
  404. package/sites/nonprofit/components/np-team-member.json +0 -74
  405. package/sites/nonprofit/components/np-testimonial.json +0 -169
  406. package/sites/nonprofit/layouts/base.json +0 -22
  407. package/sites/nonprofit/project.json +0 -147
  408. package/sites/portfolio/components/pv-about-split.json +0 -71
  409. package/sites/portfolio/components/pv-category-pill.json +0 -25
  410. package/sites/portfolio/components/pv-contact-form.json +0 -126
  411. package/sites/portfolio/components/pv-cta.json +0 -80
  412. package/sites/portfolio/components/pv-feature.json +0 -48
  413. package/sites/portfolio/components/pv-footer.json +0 -167
  414. package/sites/portfolio/components/pv-gallery.json +0 -50
  415. package/sites/portfolio/components/pv-hero.json +0 -139
  416. package/sites/portfolio/components/pv-nav.json +0 -100
  417. package/sites/portfolio/components/pv-project-card.json +0 -160
  418. package/sites/portfolio/components/pv-project-grid.json +0 -30
  419. package/sites/portfolio/components/pv-section-header.json +0 -90
  420. package/sites/portfolio/layouts/base.json +0 -22
  421. package/sites/portfolio/pages/[slug].json +0 -260
  422. package/sites/portfolio/project.json +0 -137
  423. package/sites/professional-firm/components/pf-article-header.json +0 -93
  424. package/sites/professional-firm/components/pf-contact-form.json +0 -146
  425. package/sites/professional-firm/components/pf-contact-info.json +0 -147
  426. package/sites/professional-firm/components/pf-cta.json +0 -86
  427. package/sites/professional-firm/components/pf-feature.json +0 -52
  428. package/sites/professional-firm/components/pf-footer.json +0 -231
  429. package/sites/professional-firm/components/pf-hero.json +0 -174
  430. package/sites/professional-firm/components/pf-insight-row.json +0 -144
  431. package/sites/professional-firm/components/pf-intro.json +0 -93
  432. package/sites/professional-firm/components/pf-logo-bar.json +0 -113
  433. package/sites/professional-firm/components/pf-nav.json +0 -135
  434. package/sites/professional-firm/components/pf-section-header.json +0 -77
  435. package/sites/professional-firm/components/pf-service-row.json +0 -104
  436. package/sites/professional-firm/components/pf-statband.json +0 -183
  437. package/sites/professional-firm/components/pf-team-member.json +0 -75
  438. package/sites/professional-firm/layouts/article.json +0 -130
  439. package/sites/professional-firm/layouts/base.json +0 -22
  440. package/sites/professional-firm/pages/insights/[slug].json +0 -129
  441. package/sites/professional-firm/project.json +0 -145
  442. package/sites/real-estate/components/re-agent-band.json +0 -240
  443. package/sites/real-estate/components/re-agent-card.json +0 -93
  444. package/sites/real-estate/components/re-contact-form.json +0 -181
  445. package/sites/real-estate/components/re-cta.json +0 -128
  446. package/sites/real-estate/components/re-detail-row.json +0 -26
  447. package/sites/real-estate/components/re-feature.json +0 -57
  448. package/sites/real-estate/components/re-footer.json +0 -291
  449. package/sites/real-estate/components/re-hero.json +0 -536
  450. package/sites/real-estate/components/re-intro.json +0 -60
  451. package/sites/real-estate/components/re-listing-card.json +0 -286
  452. package/sites/real-estate/components/re-listings-filter.json +0 -454
  453. package/sites/real-estate/components/re-nav.json +0 -216
  454. package/sites/real-estate/components/re-neighborhood.json +0 -135
  455. package/sites/real-estate/components/re-section-header.json +0 -69
  456. package/sites/real-estate/components/re-stat.json +0 -37
  457. package/sites/real-estate/components/re-step.json +0 -58
  458. package/sites/real-estate/components/re-testimonial.json +0 -91
  459. package/sites/real-estate/layouts/base.json +0 -22
  460. package/sites/real-estate/pages/[slug].json +0 -629
  461. package/sites/real-estate/project.json +0 -163
  462. package/sites/restaurant/components/bit-cta.json +0 -140
  463. package/sites/restaurant/components/bit-feature.json +0 -61
  464. package/sites/restaurant/components/bit-footer.json +0 -191
  465. package/sites/restaurant/components/bit-gallery.json +0 -74
  466. package/sites/restaurant/components/bit-hero.json +0 -253
  467. package/sites/restaurant/components/bit-hours.json +0 -183
  468. package/sites/restaurant/components/bit-intro.json +0 -96
  469. package/sites/restaurant/components/bit-menu-group.json +0 -74
  470. package/sites/restaurant/components/bit-menu-item.json +0 -72
  471. package/sites/restaurant/components/bit-nav.json +0 -214
  472. package/sites/restaurant/components/bit-reservation.json +0 -155
  473. package/sites/restaurant/components/bit-review.json +0 -84
  474. package/sites/restaurant/components/bit-section-header.json +0 -98
  475. package/sites/restaurant/layouts/base.json +0 -22
  476. package/sites/restaurant/project.json +0 -145
  477. package/sites/saas/components/sa-check-item.json +0 -40
  478. package/sites/saas/components/sa-contact-form.json +0 -153
  479. package/sites/saas/components/sa-cta.json +0 -102
  480. package/sites/saas/components/sa-faq.json +0 -413
  481. package/sites/saas/components/sa-feature-card.json +0 -69
  482. package/sites/saas/components/sa-feature-split.json +0 -60
  483. package/sites/saas/components/sa-footer.json +0 -145
  484. package/sites/saas/components/sa-hero.json +0 -277
  485. package/sites/saas/components/sa-logo-cloud.json +0 -119
  486. package/sites/saas/components/sa-nav.json +0 -138
  487. package/sites/saas/components/sa-pricing.json +0 -428
  488. package/sites/saas/components/sa-section-header.json +0 -55
  489. package/sites/saas/components/sa-stat.json +0 -44
  490. package/sites/saas/components/sa-testimonial-card.json +0 -57
  491. package/sites/saas/layouts/base.json +0 -22
  492. package/sites/saas/project.json +0 -166
  493. package/sites/shop/components/shp-badge.json +0 -18
  494. package/sites/shop/components/shp-category-tile.json +0 -104
  495. package/sites/shop/components/shp-contact-form.json +0 -156
  496. package/sites/shop/components/shp-cta.json +0 -121
  497. package/sites/shop/components/shp-feature.json +0 -60
  498. package/sites/shop/components/shp-footer.json +0 -411
  499. package/sites/shop/components/shp-hero.json +0 -395
  500. package/sites/shop/components/shp-intro.json +0 -59
  501. package/sites/shop/components/shp-nav.json +0 -358
  502. package/sites/shop/components/shp-newsletter.json +0 -166
  503. package/sites/shop/components/shp-product-card.json +0 -238
  504. package/sites/shop/components/shp-product-filter.json +0 -366
  505. package/sites/shop/components/shp-review.json +0 -54
  506. package/sites/shop/components/shp-section-header.json +0 -75
  507. package/sites/shop/components/shp-service.json +0 -83
  508. package/sites/shop/components/shp-stat.json +0 -37
  509. package/sites/shop/components/shp-trust.json +0 -58
  510. package/sites/shop/components/shp-visit-info.json +0 -132
  511. package/sites/shop/layouts/base.json +0 -22
  512. package/sites/shop/pages/products/[sku].json +0 -482
  513. package/sites/shop/project.json +0 -156
@@ -0,0 +1,210 @@
1
+ /- kdl-version 2
2
+
3
+ re-listing-card {
4
+ state {
5
+ heading ""
6
+ price "0"
7
+ beds "0"
8
+ baths "0"
9
+ sqft "0"
10
+ city ""
11
+ status "For Sale"
12
+ image type=string format=image default=""
13
+ href "#"
14
+ }
15
+ style {
16
+ display block
17
+ backgroundColor "var(--color-bg-white)"
18
+ border "1px solid var(--color-border)"
19
+ borderRadius "var(--radius)"
20
+ overflow hidden
21
+ boxShadow "var(--shadow-card)"
22
+ transition "transform 0.2s, box-shadow 0.2s, border-color 0.2s"
23
+ :hover {
24
+ transform "translateY(-4px)"
25
+ boxShadow "0 18px 40px -18px rgba(15,23,42,0.28)"
26
+ borderColor "var(--color-border-strong)"
27
+ }
28
+ ":hover img" transform="scale(1.05)"
29
+ }
30
+ a href="${state.href}" {
31
+ style {
32
+ display block
33
+ position relative
34
+ overflow hidden
35
+ textDecoration none
36
+ aspectRatio "3 / 2"
37
+ backgroundColor "var(--color-bg-tint)"
38
+ }
39
+ img src="${state.image}" alt="${state.heading}" loading=lazy {
40
+ style {
41
+ position absolute
42
+ inset "0"
43
+ width "100%"
44
+ height "100%"
45
+ objectFit cover
46
+ display block
47
+ transition "transform 0.5s cubic-bezier(0.22, 1, 0.36, 1)"
48
+ }
49
+ }
50
+ span {
51
+ style {
52
+ position absolute
53
+ top "0.85rem"
54
+ left "0.85rem"
55
+ display inline-flex
56
+ alignItems center
57
+ gap "0.35rem"
58
+ backgroundColor "${state.status === 'New' ? 'var(--color-status-new)' : 'rgba(11,18,32,0.82)'}"
59
+ color "var(--color-text-white)"
60
+ fontWeight "700"
61
+ fontSize "0.72rem"
62
+ letterSpacing "0.04em"
63
+ textTransform uppercase
64
+ padding "0.3rem 0.65rem"
65
+ borderRadius "999px"
66
+ backdropFilter "blur(4px)"
67
+ }
68
+ span {
69
+ style {
70
+ width "0.4rem"
71
+ height "0.4rem"
72
+ borderRadius "999px"
73
+ backgroundColor "var(--color-accent-bright)"
74
+ }
75
+ }
76
+ span "${state.status}"
77
+ }
78
+ span ♡ {
79
+ style {
80
+ position absolute
81
+ top "0.85rem"
82
+ right "0.85rem"
83
+ display inline-flex
84
+ alignItems center
85
+ justifyContent center
86
+ width "2rem"
87
+ height "2rem"
88
+ borderRadius "999px"
89
+ backgroundColor "rgba(255,255,255,0.92)"
90
+ color "var(--color-text-secondary)"
91
+ fontSize "0.95rem"
92
+ boxShadow "0 2px 8px rgba(15,23,42,0.18)"
93
+ }
94
+ }
95
+ }
96
+ div {
97
+ style padding="1.1rem 1.25rem 1.3rem"
98
+ div {
99
+ style {
100
+ display flex
101
+ alignItems baseline
102
+ justifyContent space-between
103
+ gap "0.75rem"
104
+ marginBottom "0.35rem"
105
+ }
106
+ div "$${Number(state.price).toLocaleString('en-US')}" {
107
+ style {
108
+ fontFamily "var(--font-heading)"
109
+ fontSize "1.5rem"
110
+ fontWeight "800"
111
+ letterSpacing "-0.02em"
112
+ color "var(--color-text-primary)"
113
+ fontVariantNumeric tabular-nums
114
+ }
115
+ }
116
+ div "${state.sqft && Number(state.sqft) > 0 ? '$' + Math.round(Number(state.price)/Number(state.sqft)).toLocaleString('en-US') + '/sqft' : ''}" {
117
+ style {
118
+ fontSize "0.78rem"
119
+ fontWeight "600"
120
+ color "var(--color-text-muted)"
121
+ whiteSpace nowrap
122
+ fontVariantNumeric tabular-nums
123
+ }
124
+ }
125
+ }
126
+ a href="${state.href}" {
127
+ style textDecoration=none color="var(--color-text-primary)"
128
+ h3 "${state.heading}" {
129
+ style {
130
+ fontFamily "var(--font-heading)"
131
+ fontSize "1.05rem"
132
+ fontWeight "700"
133
+ margin "0 0 0.25rem"
134
+ letterSpacing "-0.01em"
135
+ }
136
+ }
137
+ }
138
+ p {
139
+ style {
140
+ display flex
141
+ alignItems center
142
+ gap "0.3rem"
143
+ margin "0 0 0.9rem"
144
+ color "var(--color-text-muted)"
145
+ fontSize "0.88rem"
146
+ fontWeight "500"
147
+ }
148
+ span 📍 {
149
+ style fontSize="0.8rem"
150
+ }
151
+ span "${state.city}"
152
+ }
153
+ div {
154
+ style {
155
+ display flex
156
+ alignItems center
157
+ paddingTop "0.85rem"
158
+ borderTop "1px solid var(--color-border)"
159
+ }
160
+ div {
161
+ style flex="1" textAlign=center
162
+ div "${state.beds}" {
163
+ style {
164
+ fontWeight "800"
165
+ fontSize "0.98rem"
166
+ color "var(--color-text-primary)"
167
+ fontVariantNumeric tabular-nums
168
+ }
169
+ }
170
+ div beds {
171
+ style fontSize="0.72rem" color="var(--color-text-muted)" fontWeight="600"
172
+ }
173
+ }
174
+ div {
175
+ style width="1px" alignSelf=stretch backgroundColor="var(--color-border)"
176
+ }
177
+ div {
178
+ style flex="1" textAlign=center
179
+ div "${state.baths}" {
180
+ style {
181
+ fontWeight "800"
182
+ fontSize "0.98rem"
183
+ color "var(--color-text-primary)"
184
+ fontVariantNumeric tabular-nums
185
+ }
186
+ }
187
+ div baths {
188
+ style fontSize="0.72rem" color="var(--color-text-muted)" fontWeight="600"
189
+ }
190
+ }
191
+ div {
192
+ style width="1px" alignSelf=stretch backgroundColor="var(--color-border)"
193
+ }
194
+ div {
195
+ style flex="1" textAlign=center
196
+ div "${Number(state.sqft).toLocaleString('en-US')}" {
197
+ style {
198
+ fontWeight "800"
199
+ fontSize "0.98rem"
200
+ color "var(--color-text-primary)"
201
+ fontVariantNumeric tabular-nums
202
+ }
203
+ }
204
+ div sqft {
205
+ style fontSize="0.72rem" color="var(--color-text-muted)" fontWeight="600"
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
@@ -0,0 +1,371 @@
1
+ /- kdl-version 2
2
+ $elements {
3
+ - (ref)"./re-listing-card.jxn"
4
+ }
5
+
6
+ re-listings-filter {
7
+ state {
8
+ minBeds 0
9
+ maxPrice 0
10
+ listings {
11
+ - {
12
+ Title "Cedar Lane Colonial"
13
+ link "/cedar-lane-colonial/"
14
+ price 425000
15
+ beds 3
16
+ baths 2
17
+ sqft 1850
18
+ city Maplewood
19
+ image "/images/listing-1.jpg"
20
+ status New
21
+ }
22
+ - {
23
+ Title "Harbor View Modern"
24
+ link "/harbor-view-modern/"
25
+ price 875000
26
+ beds 4
27
+ baths 3
28
+ sqft 2600
29
+ city Bayport
30
+ image "/images/listing-2.jpg"
31
+ status "For Sale"
32
+ }
33
+ - {
34
+ Title "Lakeview Loft"
35
+ link "/lakeview-loft/"
36
+ price 389000
37
+ beds 2
38
+ baths 2
39
+ sqft 1200
40
+ city Lakeview
41
+ image "/images/listing-3.jpg"
42
+ status New
43
+ }
44
+ - {
45
+ Title "Willow Creek Cottage"
46
+ link "/willow-creek-cottage/"
47
+ price 315000
48
+ beds 2
49
+ baths 1
50
+ sqft 980
51
+ city "Cedar Grove"
52
+ image "/images/listing-4.jpg"
53
+ status "For Sale"
54
+ }
55
+ - {
56
+ Title "Summit Ridge Contemporary"
57
+ link "/summit-ridge-contemporary/"
58
+ price 1150000
59
+ beds 5
60
+ baths 4
61
+ sqft 3400
62
+ city "Harbor Hills"
63
+ image "/images/listing-5.jpg"
64
+ status "For Sale"
65
+ }
66
+ - {
67
+ Title "Birchwood Family Home"
68
+ link "/birchwood-family-home/"
69
+ price 549000
70
+ beds 4
71
+ baths 3
72
+ sqft 2200
73
+ city Northshore
74
+ image "/images/listing-6.jpg"
75
+ status "For Sale"
76
+ }
77
+ }
78
+ (fn)visibleCount "return state.listings.filter(l => (state.minBeds === 0 || l.beds >= state.minBeds) && (state.maxPrice === 0 || l.price <= state.maxPrice)).length;"
79
+ setBeds0 {
80
+ $expression operator="=" target=(ref)"#/state/minBeds" value=0
81
+ }
82
+ setBeds2 {
83
+ $expression operator="=" target=(ref)"#/state/minBeds" value=2
84
+ }
85
+ setBeds3 {
86
+ $expression operator="=" target=(ref)"#/state/minBeds" value=3
87
+ }
88
+ setBeds4 {
89
+ $expression operator="=" target=(ref)"#/state/minBeds" value=4
90
+ }
91
+ setPrice0 {
92
+ $expression operator="=" target=(ref)"#/state/maxPrice" value=0
93
+ }
94
+ setPrice400 {
95
+ $expression operator="=" target=(ref)"#/state/maxPrice" value=400000
96
+ }
97
+ setPrice700 {
98
+ $expression operator="=" target=(ref)"#/state/maxPrice" value=700000
99
+ }
100
+ setPrice1200 {
101
+ $expression operator="=" target=(ref)"#/state/maxPrice" value=1200000
102
+ }
103
+ }
104
+ style {
105
+ display grid
106
+ gridTemplateColumns "290px 1fr"
107
+ gap "clamp(1.5rem, 3vw, 2.5rem)"
108
+ alignItems start
109
+ maxWidth "var(--max-width)"
110
+ margin "0 auto"
111
+ padding "0 1.5rem"
112
+ @--lg gridTemplateColumns="1fr"
113
+ }
114
+ aside {
115
+ style {
116
+ position sticky
117
+ top "5rem"
118
+ backgroundColor "var(--color-bg-white)"
119
+ border "1px solid var(--color-border)"
120
+ borderRadius "var(--radius-lg)"
121
+ boxShadow "var(--shadow-card)"
122
+ padding "1.5rem"
123
+ @--lg position=static
124
+ }
125
+ div {
126
+ style {
127
+ display flex
128
+ alignItems center
129
+ justifyContent space-between
130
+ paddingBottom "1.1rem"
131
+ marginBottom "1.25rem"
132
+ borderBottom "1px solid var(--color-border)"
133
+ }
134
+ div {
135
+ style {
136
+ display inline-flex
137
+ alignItems center
138
+ gap "0.5rem"
139
+ fontFamily "var(--font-heading)"
140
+ fontWeight "800"
141
+ fontSize "1.05rem"
142
+ letterSpacing "-0.01em"
143
+ }
144
+ span ⛃ {
145
+ style color="var(--color-primary)"
146
+ }
147
+ span Filters
148
+ }
149
+ span {
150
+ style {
151
+ display inline-flex
152
+ alignItems center
153
+ gap "0.35rem"
154
+ padding "0.3rem 0.7rem"
155
+ borderRadius "999px"
156
+ backgroundColor "var(--color-teal-tint)"
157
+ color "var(--color-primary)"
158
+ fontWeight "800"
159
+ fontSize "0.82rem"
160
+ fontVariantNumeric tabular-nums
161
+ }
162
+ span "${state.visibleCount}"
163
+ span "of 6" {
164
+ style fontWeight="600" color="var(--color-text-muted)"
165
+ }
166
+ }
167
+ }
168
+ div Bedrooms {
169
+ style {
170
+ textTransform uppercase
171
+ letterSpacing "0.1em"
172
+ fontSize "0.72rem"
173
+ fontWeight "700"
174
+ color "var(--color-text-muted)"
175
+ marginBottom "0.7rem"
176
+ }
177
+ }
178
+ div {
179
+ style {
180
+ display grid
181
+ gridTemplateColumns "repeat(4, 1fr)"
182
+ gap "0.4rem"
183
+ marginBottom "1.5rem"
184
+ }
185
+ button onclick=(ref)"#/state/setBeds0" Any {
186
+ style {
187
+ padding "0.55rem 0.4rem"
188
+ borderRadius "var(--radius-sm)"
189
+ border "1px solid ${state.minBeds === 0 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
190
+ cursor pointer
191
+ fontWeight "700"
192
+ fontSize "0.88rem"
193
+ fontFamily inherit
194
+ transition "all 0.15s"
195
+ backgroundColor "${state.minBeds === 0 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
196
+ color "${state.minBeds === 0 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
197
+ }
198
+ }
199
+ button onclick=(ref)"#/state/setBeds2" "2+" {
200
+ style {
201
+ padding "0.55rem 0.4rem"
202
+ borderRadius "var(--radius-sm)"
203
+ border "1px solid ${state.minBeds === 2 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
204
+ cursor pointer
205
+ fontWeight "700"
206
+ fontSize "0.88rem"
207
+ fontFamily inherit
208
+ transition "all 0.15s"
209
+ backgroundColor "${state.minBeds === 2 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
210
+ color "${state.minBeds === 2 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
211
+ }
212
+ }
213
+ button onclick=(ref)"#/state/setBeds3" "3+" {
214
+ style {
215
+ padding "0.55rem 0.4rem"
216
+ borderRadius "var(--radius-sm)"
217
+ border "1px solid ${state.minBeds === 3 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
218
+ cursor pointer
219
+ fontWeight "700"
220
+ fontSize "0.88rem"
221
+ fontFamily inherit
222
+ transition "all 0.15s"
223
+ backgroundColor "${state.minBeds === 3 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
224
+ color "${state.minBeds === 3 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
225
+ }
226
+ }
227
+ button onclick=(ref)"#/state/setBeds4" "4+" {
228
+ style {
229
+ padding "0.55rem 0.4rem"
230
+ borderRadius "var(--radius-sm)"
231
+ border "1px solid ${state.minBeds === 4 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
232
+ cursor pointer
233
+ fontWeight "700"
234
+ fontSize "0.88rem"
235
+ fontFamily inherit
236
+ transition "all 0.15s"
237
+ backgroundColor "${state.minBeds === 4 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
238
+ color "${state.minBeds === 4 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
239
+ }
240
+ }
241
+ }
242
+ div "Max price" {
243
+ style {
244
+ textTransform uppercase
245
+ letterSpacing "0.1em"
246
+ fontSize "0.72rem"
247
+ fontWeight "700"
248
+ color "var(--color-text-muted)"
249
+ marginBottom "0.7rem"
250
+ }
251
+ }
252
+ div {
253
+ style display=grid gridTemplateColumns="repeat(2, 1fr)" gap="0.4rem"
254
+ button onclick=(ref)"#/state/setPrice0" Any {
255
+ style {
256
+ padding "0.6rem 0.5rem"
257
+ borderRadius "var(--radius-sm)"
258
+ border "1px solid ${state.maxPrice === 0 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
259
+ cursor pointer
260
+ fontWeight "700"
261
+ fontSize "0.88rem"
262
+ fontFamily inherit
263
+ fontVariantNumeric tabular-nums
264
+ transition "all 0.15s"
265
+ backgroundColor "${state.maxPrice === 0 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
266
+ color "${state.maxPrice === 0 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
267
+ }
268
+ }
269
+ button onclick=(ref)"#/state/setPrice400" "≤ $400k" {
270
+ style {
271
+ padding "0.6rem 0.5rem"
272
+ borderRadius "var(--radius-sm)"
273
+ border "1px solid ${state.maxPrice === 400000 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
274
+ cursor pointer
275
+ fontWeight "700"
276
+ fontSize "0.88rem"
277
+ fontFamily inherit
278
+ fontVariantNumeric tabular-nums
279
+ transition "all 0.15s"
280
+ backgroundColor "${state.maxPrice === 400000 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
281
+ color "${state.maxPrice === 400000 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
282
+ }
283
+ }
284
+ button onclick=(ref)"#/state/setPrice700" "≤ $700k" {
285
+ style {
286
+ padding "0.6rem 0.5rem"
287
+ borderRadius "var(--radius-sm)"
288
+ border "1px solid ${state.maxPrice === 700000 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
289
+ cursor pointer
290
+ fontWeight "700"
291
+ fontSize "0.88rem"
292
+ fontFamily inherit
293
+ fontVariantNumeric tabular-nums
294
+ transition "all 0.15s"
295
+ backgroundColor "${state.maxPrice === 700000 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
296
+ color "${state.maxPrice === 700000 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
297
+ }
298
+ }
299
+ button onclick=(ref)"#/state/setPrice1200" "≤ $1.2M" {
300
+ style {
301
+ padding "0.6rem 0.5rem"
302
+ borderRadius "var(--radius-sm)"
303
+ border "1px solid ${state.maxPrice === 1200000 ? 'var(--color-primary)' : 'var(--color-border-strong)'}"
304
+ cursor pointer
305
+ fontWeight "700"
306
+ fontSize "0.88rem"
307
+ fontFamily inherit
308
+ fontVariantNumeric tabular-nums
309
+ transition "all 0.15s"
310
+ backgroundColor "${state.maxPrice === 1200000 ? 'var(--color-primary)' : 'var(--color-bg-white)'}"
311
+ color "${state.maxPrice === 1200000 ? 'var(--color-text-white)' : 'var(--color-text-primary)'}"
312
+ }
313
+ }
314
+ }
315
+ p "Results update instantly — no page reloads." {
316
+ style {
317
+ margin "1.5rem 0 0"
318
+ fontSize "0.82rem"
319
+ color "var(--color-text-muted)"
320
+ lineHeight "1.5"
321
+ }
322
+ }
323
+ }
324
+ div {
325
+ div {
326
+ style {
327
+ display flex
328
+ alignItems baseline
329
+ justifyContent space-between
330
+ gap "1rem"
331
+ marginBottom "1.25rem"
332
+ flexWrap wrap
333
+ }
334
+ div {
335
+ style fontWeight="700" fontSize="1rem" color="var(--color-text-primary)"
336
+ span "${state.visibleCount}" {
337
+ style color="var(--color-primary)" fontVariantNumeric=tabular-nums
338
+ }
339
+ span " homes on the north shore"
340
+ }
341
+ div "Sorted by newest" {
342
+ style fontSize="0.85rem" color="var(--color-text-muted)" fontWeight="600"
343
+ }
344
+ }
345
+ div {
346
+ style display=grid gridTemplateColumns="repeat(2, 1fr)" gap="1.35rem" {
347
+ @--sm gridTemplateColumns="1fr"
348
+ }
349
+ .children {
350
+ $array items=(ref)"#/state/listings" {
351
+ re-listing-card {
352
+ $props {
353
+ heading (ref)"$map/item/Title"
354
+ price (ref)"$map/item/price"
355
+ beds (ref)"$map/item/beds"
356
+ baths (ref)"$map/item/baths"
357
+ sqft (ref)"$map/item/sqft"
358
+ city (ref)"$map/item/city"
359
+ status (ref)"$map/item/status"
360
+ image (ref)"$map/item/image"
361
+ href (ref)"$map/item/link"
362
+ }
363
+ style {
364
+ display "${(state.minBeds === 0 || item.beds >= state.minBeds) && (state.maxPrice === 0 || item.price <= state.maxPrice) ? 'block' : 'none'}"
365
+ }
366
+ }
367
+ }
368
+ }
369
+ }
370
+ }
371
+ }