@jxsuite/starters 3.4.0 → 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 (500) 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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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/course/components/co-application.json +0 -225
  288. package/sites/course/components/co-cohort.json +0 -172
  289. package/sites/course/components/co-cta.json +0 -126
  290. package/sites/course/components/co-curriculum-accordion.json +0 -1476
  291. package/sites/course/components/co-faq.json +0 -524
  292. package/sites/course/components/co-footer.json +0 -195
  293. package/sites/course/components/co-hero.json +0 -475
  294. package/sites/course/components/co-instructor-card.json +0 -159
  295. package/sites/course/components/co-mentor.json +0 -65
  296. package/sites/course/components/co-module-card.json +0 -138
  297. package/sites/course/components/co-nav.json +0 -244
  298. package/sites/course/components/co-outcome-card.json +0 -84
  299. package/sites/course/components/co-outcomes.json +0 -248
  300. package/sites/course/components/co-pricing.json +0 -178
  301. package/sites/course/components/co-section-header.json +0 -74
  302. package/sites/course/components/co-testimonial-card.json +0 -109
  303. package/sites/course/layouts/base.json +0 -22
  304. package/sites/event/components/ev-agenda-tabs.json +0 -828
  305. package/sites/event/components/ev-cta.json +0 -126
  306. package/sites/event/components/ev-feature.json +0 -62
  307. package/sites/event/components/ev-footer.json +0 -197
  308. package/sites/event/components/ev-hero.json +0 -431
  309. package/sites/event/components/ev-nav.json +0 -186
  310. package/sites/event/components/ev-reason.json +0 -64
  311. package/sites/event/components/ev-savedate.json +0 -331
  312. package/sites/event/components/ev-section-header.json +0 -70
  313. package/sites/event/components/ev-session-row.json +0 -132
  314. package/sites/event/components/ev-speaker-card.json +0 -130
  315. package/sites/event/components/ev-sponsors.json +0 -131
  316. package/sites/event/components/ev-stat.json +0 -47
  317. package/sites/event/components/ev-ticket-card.json +0 -214
  318. package/sites/event/components/ev-venue.json +0 -86
  319. package/sites/event/layouts/base.json +0 -22
  320. package/sites/fitness-studio/components/fs-band.json +0 -149
  321. package/sites/fitness-studio/components/fs-booking.json +0 -147
  322. package/sites/fitness-studio/components/fs-class-card.json +0 -143
  323. package/sites/fitness-studio/components/fs-class-grid.json +0 -36
  324. package/sites/fitness-studio/components/fs-cta.json +0 -106
  325. package/sites/fitness-studio/components/fs-feature.json +0 -56
  326. package/sites/fitness-studio/components/fs-footer.json +0 -178
  327. package/sites/fitness-studio/components/fs-hero.json +0 -375
  328. package/sites/fitness-studio/components/fs-hours.json +0 -109
  329. package/sites/fitness-studio/components/fs-instructor-card.json +0 -136
  330. package/sites/fitness-studio/components/fs-intro.json +0 -294
  331. package/sites/fitness-studio/components/fs-modality.json +0 -171
  332. package/sites/fitness-studio/components/fs-nav.json +0 -128
  333. package/sites/fitness-studio/components/fs-pricing-card.json +0 -243
  334. package/sites/fitness-studio/components/fs-pricing-table.json +0 -458
  335. package/sites/fitness-studio/components/fs-review.json +0 -88
  336. package/sites/fitness-studio/components/fs-schedule.json +0 -1165
  337. package/sites/fitness-studio/components/fs-section-header.json +0 -77
  338. package/sites/fitness-studio/layouts/base.json +0 -22
  339. package/sites/home-services/components/hs-callbar.json +0 -72
  340. package/sites/home-services/components/hs-cta.json +0 -184
  341. package/sites/home-services/components/hs-feature.json +0 -62
  342. package/sites/home-services/components/hs-footer.json +0 -232
  343. package/sites/home-services/components/hs-gallery.json +0 -104
  344. package/sites/home-services/components/hs-hero.json +0 -446
  345. package/sites/home-services/components/hs-intro.json +0 -122
  346. package/sites/home-services/components/hs-nav.json +0 -278
  347. package/sites/home-services/components/hs-reservation.json +0 -225
  348. package/sites/home-services/components/hs-review.json +0 -114
  349. package/sites/home-services/components/hs-section-header.json +0 -70
  350. package/sites/home-services/components/hs-service-card.json +0 -89
  351. package/sites/home-services/components/hs-stat.json +0 -54
  352. package/sites/home-services/components/hs-step.json +0 -80
  353. package/sites/home-services/components/hs-trust-bar.json +0 -256
  354. package/sites/home-services/layouts/base.json +0 -24
  355. package/sites/museum/components/mu-band.json +0 -92
  356. package/sites/museum/components/mu-cta.json +0 -101
  357. package/sites/museum/components/mu-exhibition-card.json +0 -191
  358. package/sites/museum/components/mu-exhibition-row.json +0 -237
  359. package/sites/museum/components/mu-fact.json +0 -64
  360. package/sites/museum/components/mu-footer.json +0 -256
  361. package/sites/museum/components/mu-hero.json +0 -236
  362. package/sites/museum/components/mu-more.json +0 -63
  363. package/sites/museum/components/mu-oculus.json +0 -44
  364. package/sites/museum/components/mu-pagehead.json +0 -105
  365. package/sites/museum/components/mu-quote.json +0 -49
  366. package/sites/museum/layouts/ar.json +0 -29
  367. package/sites/museum/layouts/base.json +0 -329
  368. package/sites/museum/layouts/fr-ca.json +0 -28
  369. package/sites/museum/pages/about.json +0 -378
  370. package/sites/museum/pages/ar/about.json +0 -314
  371. package/sites/museum/pages/ar/exhibitions/[slug].json +0 -211
  372. package/sites/museum/pages/ar/exhibitions/index.json +0 -103
  373. package/sites/museum/pages/ar/index.json +0 -246
  374. package/sites/museum/pages/ar/visit.json +0 -327
  375. package/sites/museum/pages/exhibitions/[slug].json +0 -200
  376. package/sites/museum/pages/exhibitions/index.json +0 -93
  377. package/sites/museum/pages/fr-ca/a-propos.json +0 -313
  378. package/sites/museum/pages/fr-ca/expositions/[slug].json +0 -215
  379. package/sites/museum/pages/fr-ca/expositions/index.json +0 -104
  380. package/sites/museum/pages/fr-ca/index.json +0 -246
  381. package/sites/museum/pages/fr-ca/visite.json +0 -328
  382. package/sites/museum/pages/index.json +0 -236
  383. package/sites/museum/pages/visit.json +0 -317
  384. package/sites/nonprofit/components/np-contact-form.json +0 -162
  385. package/sites/nonprofit/components/np-contact-info.json +0 -159
  386. package/sites/nonprofit/components/np-cta.json +0 -203
  387. package/sites/nonprofit/components/np-donate-tier.json +0 -116
  388. package/sites/nonprofit/components/np-feature.json +0 -57
  389. package/sites/nonprofit/components/np-footer.json +0 -257
  390. package/sites/nonprofit/components/np-hero.json +0 -360
  391. package/sites/nonprofit/components/np-impact-band.json +0 -108
  392. package/sites/nonprofit/components/np-intro.json +0 -166
  393. package/sites/nonprofit/components/np-nav.json +0 -216
  394. package/sites/nonprofit/components/np-program-card.json +0 -129
  395. package/sites/nonprofit/components/np-section-header.json +0 -79
  396. package/sites/nonprofit/components/np-stat.json +0 -69
  397. package/sites/nonprofit/components/np-step.json +0 -84
  398. package/sites/nonprofit/components/np-team-member.json +0 -74
  399. package/sites/nonprofit/components/np-testimonial.json +0 -169
  400. package/sites/nonprofit/layouts/base.json +0 -22
  401. package/sites/portfolio/components/pv-about-split.json +0 -71
  402. package/sites/portfolio/components/pv-category-pill.json +0 -25
  403. package/sites/portfolio/components/pv-contact-form.json +0 -126
  404. package/sites/portfolio/components/pv-cta.json +0 -80
  405. package/sites/portfolio/components/pv-feature.json +0 -48
  406. package/sites/portfolio/components/pv-footer.json +0 -167
  407. package/sites/portfolio/components/pv-gallery.json +0 -50
  408. package/sites/portfolio/components/pv-hero.json +0 -139
  409. package/sites/portfolio/components/pv-nav.json +0 -100
  410. package/sites/portfolio/components/pv-project-card.json +0 -160
  411. package/sites/portfolio/components/pv-project-grid.json +0 -30
  412. package/sites/portfolio/components/pv-section-header.json +0 -90
  413. package/sites/portfolio/layouts/base.json +0 -22
  414. package/sites/portfolio/pages/[slug].json +0 -260
  415. package/sites/professional-firm/components/pf-article-header.json +0 -93
  416. package/sites/professional-firm/components/pf-contact-form.json +0 -146
  417. package/sites/professional-firm/components/pf-contact-info.json +0 -147
  418. package/sites/professional-firm/components/pf-cta.json +0 -86
  419. package/sites/professional-firm/components/pf-feature.json +0 -52
  420. package/sites/professional-firm/components/pf-footer.json +0 -231
  421. package/sites/professional-firm/components/pf-hero.json +0 -174
  422. package/sites/professional-firm/components/pf-insight-row.json +0 -144
  423. package/sites/professional-firm/components/pf-intro.json +0 -93
  424. package/sites/professional-firm/components/pf-logo-bar.json +0 -113
  425. package/sites/professional-firm/components/pf-nav.json +0 -135
  426. package/sites/professional-firm/components/pf-section-header.json +0 -77
  427. package/sites/professional-firm/components/pf-service-row.json +0 -104
  428. package/sites/professional-firm/components/pf-statband.json +0 -183
  429. package/sites/professional-firm/components/pf-team-member.json +0 -75
  430. package/sites/professional-firm/layouts/article.json +0 -130
  431. package/sites/professional-firm/layouts/base.json +0 -22
  432. package/sites/professional-firm/pages/insights/[slug].json +0 -129
  433. package/sites/real-estate/components/re-agent-band.json +0 -240
  434. package/sites/real-estate/components/re-agent-card.json +0 -93
  435. package/sites/real-estate/components/re-contact-form.json +0 -181
  436. package/sites/real-estate/components/re-cta.json +0 -128
  437. package/sites/real-estate/components/re-detail-row.json +0 -26
  438. package/sites/real-estate/components/re-feature.json +0 -57
  439. package/sites/real-estate/components/re-footer.json +0 -291
  440. package/sites/real-estate/components/re-hero.json +0 -536
  441. package/sites/real-estate/components/re-intro.json +0 -60
  442. package/sites/real-estate/components/re-listing-card.json +0 -286
  443. package/sites/real-estate/components/re-listings-filter.json +0 -454
  444. package/sites/real-estate/components/re-nav.json +0 -216
  445. package/sites/real-estate/components/re-neighborhood.json +0 -135
  446. package/sites/real-estate/components/re-section-header.json +0 -69
  447. package/sites/real-estate/components/re-stat.json +0 -37
  448. package/sites/real-estate/components/re-step.json +0 -58
  449. package/sites/real-estate/components/re-testimonial.json +0 -91
  450. package/sites/real-estate/layouts/base.json +0 -22
  451. package/sites/real-estate/pages/[slug].json +0 -629
  452. package/sites/restaurant/components/bit-cta.json +0 -140
  453. package/sites/restaurant/components/bit-feature.json +0 -61
  454. package/sites/restaurant/components/bit-footer.json +0 -191
  455. package/sites/restaurant/components/bit-gallery.json +0 -74
  456. package/sites/restaurant/components/bit-hero.json +0 -253
  457. package/sites/restaurant/components/bit-hours.json +0 -183
  458. package/sites/restaurant/components/bit-intro.json +0 -96
  459. package/sites/restaurant/components/bit-menu-group.json +0 -74
  460. package/sites/restaurant/components/bit-menu-item.json +0 -72
  461. package/sites/restaurant/components/bit-nav.json +0 -214
  462. package/sites/restaurant/components/bit-reservation.json +0 -155
  463. package/sites/restaurant/components/bit-review.json +0 -84
  464. package/sites/restaurant/components/bit-section-header.json +0 -98
  465. package/sites/restaurant/layouts/base.json +0 -22
  466. package/sites/saas/components/sa-check-item.json +0 -40
  467. package/sites/saas/components/sa-contact-form.json +0 -153
  468. package/sites/saas/components/sa-cta.json +0 -102
  469. package/sites/saas/components/sa-faq.json +0 -413
  470. package/sites/saas/components/sa-feature-card.json +0 -69
  471. package/sites/saas/components/sa-feature-split.json +0 -60
  472. package/sites/saas/components/sa-footer.json +0 -145
  473. package/sites/saas/components/sa-hero.json +0 -277
  474. package/sites/saas/components/sa-logo-cloud.json +0 -119
  475. package/sites/saas/components/sa-nav.json +0 -138
  476. package/sites/saas/components/sa-pricing.json +0 -428
  477. package/sites/saas/components/sa-section-header.json +0 -55
  478. package/sites/saas/components/sa-stat.json +0 -44
  479. package/sites/saas/components/sa-testimonial-card.json +0 -57
  480. package/sites/saas/layouts/base.json +0 -22
  481. package/sites/shop/components/shp-badge.json +0 -18
  482. package/sites/shop/components/shp-category-tile.json +0 -104
  483. package/sites/shop/components/shp-contact-form.json +0 -156
  484. package/sites/shop/components/shp-cta.json +0 -121
  485. package/sites/shop/components/shp-feature.json +0 -60
  486. package/sites/shop/components/shp-footer.json +0 -411
  487. package/sites/shop/components/shp-hero.json +0 -395
  488. package/sites/shop/components/shp-intro.json +0 -59
  489. package/sites/shop/components/shp-nav.json +0 -358
  490. package/sites/shop/components/shp-newsletter.json +0 -166
  491. package/sites/shop/components/shp-product-card.json +0 -238
  492. package/sites/shop/components/shp-product-filter.json +0 -366
  493. package/sites/shop/components/shp-review.json +0 -54
  494. package/sites/shop/components/shp-section-header.json +0 -75
  495. package/sites/shop/components/shp-service.json +0 -83
  496. package/sites/shop/components/shp-stat.json +0 -37
  497. package/sites/shop/components/shp-trust.json +0 -58
  498. package/sites/shop/components/shp-visit-info.json +0 -132
  499. package/sites/shop/layouts/base.json +0 -22
  500. package/sites/shop/pages/products/[sku].json +0 -482
@@ -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
+ }
@@ -0,0 +1,162 @@
1
+ /- kdl-version 2
2
+
3
+ re-nav {
4
+ state brand=Northshore
5
+ style {
6
+ display block
7
+ position sticky
8
+ top "0"
9
+ zIndex "50"
10
+ backgroundColor "rgba(255, 255, 255, 0.86)"
11
+ backdropFilter "blur(14px)"
12
+ borderBottom "1px solid var(--color-border)"
13
+ }
14
+ div {
15
+ style {
16
+ maxWidth "var(--max-width)"
17
+ margin "0 auto"
18
+ padding "0.85rem 1.5rem"
19
+ display flex
20
+ alignItems center
21
+ gap "1.25rem"
22
+ }
23
+ a href="/" {
24
+ style {
25
+ display inline-flex
26
+ alignItems center
27
+ gap "0.6rem"
28
+ textDecoration none
29
+ marginRight "0.5rem"
30
+ }
31
+ span ⌂ {
32
+ style {
33
+ display inline-flex
34
+ alignItems center
35
+ justifyContent center
36
+ width "2rem"
37
+ height "2rem"
38
+ borderRadius "0.55rem"
39
+ background "linear-gradient(150deg, var(--color-accent-bright), var(--color-primary))"
40
+ color "var(--color-text-white)"
41
+ fontSize "1.05rem"
42
+ boxShadow "0 6px 16px -6px rgba(15,118,110,0.6)"
43
+ }
44
+ }
45
+ span {
46
+ style display=flex flexDirection=column lineHeight="1"
47
+ span "${state.brand} Realty" {
48
+ style {
49
+ fontFamily "var(--font-heading)"
50
+ fontSize "1.15rem"
51
+ fontWeight "800"
52
+ letterSpacing "-0.03em"
53
+ color "var(--color-text-primary)"
54
+ }
55
+ }
56
+ span "North Shore MLS" {
57
+ style {
58
+ fontSize "0.62rem"
59
+ fontWeight "700"
60
+ letterSpacing "0.22em"
61
+ textTransform uppercase
62
+ color "var(--color-text-muted)"
63
+ marginTop "0.2rem"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ nav {
69
+ style display=flex alignItems=center gap="1.4rem" marginLeft="0.5rem" {
70
+ @--md display=none
71
+ }
72
+ a href="/listings/" Buy {
73
+ style {
74
+ color "var(--color-text-secondary)"
75
+ textDecoration none
76
+ fontWeight "600"
77
+ fontSize "0.92rem"
78
+ transition "color 0.15s"
79
+ :hover color="var(--color-primary)"
80
+ }
81
+ }
82
+ a href="/listings/" Listings {
83
+ style {
84
+ color "var(--color-text-secondary)"
85
+ textDecoration none
86
+ fontWeight "600"
87
+ fontSize "0.92rem"
88
+ transition "color 0.15s"
89
+ :hover color="var(--color-primary)"
90
+ }
91
+ }
92
+ a href="/#neighborhoods" Neighborhoods {
93
+ style {
94
+ color "var(--color-text-secondary)"
95
+ textDecoration none
96
+ fontWeight "600"
97
+ fontSize "0.92rem"
98
+ transition "color 0.15s"
99
+ :hover color="var(--color-primary)"
100
+ }
101
+ }
102
+ a href="/about/" About {
103
+ style {
104
+ color "var(--color-text-secondary)"
105
+ textDecoration none
106
+ fontWeight "600"
107
+ fontSize "0.92rem"
108
+ transition "color 0.15s"
109
+ :hover color="var(--color-primary)"
110
+ }
111
+ }
112
+ }
113
+ a href="/listings/" aria-label="Search homes" {
114
+ style {
115
+ marginLeft auto
116
+ display inline-flex
117
+ alignItems center
118
+ gap "0.55rem"
119
+ padding "0.5rem 0.9rem 0.5rem 0.75rem"
120
+ borderRadius "999px"
121
+ border "1px solid var(--color-border-strong)"
122
+ backgroundColor "var(--color-bg-white)"
123
+ color "var(--color-text-muted)"
124
+ textDecoration none
125
+ fontSize "0.88rem"
126
+ fontWeight "600"
127
+ transition "border-color 0.15s, color 0.15s"
128
+ @--sm display=none
129
+ :hover borderColor="var(--color-primary)" color="var(--color-primary)"
130
+ }
131
+ span ⌕ {
132
+ style {
133
+ display inline-flex
134
+ alignItems center
135
+ justifyContent center
136
+ width "1.5rem"
137
+ height "1.5rem"
138
+ borderRadius "999px"
139
+ backgroundColor "var(--color-teal-tint)"
140
+ color "var(--color-primary)"
141
+ fontSize "0.85rem"
142
+ }
143
+ }
144
+ span "Search homes"
145
+ }
146
+ a href="/contact/" "List with us" {
147
+ style {
148
+ display inline-flex
149
+ alignItems center
150
+ backgroundColor "var(--color-primary)"
151
+ color "var(--color-text-white)"
152
+ padding "0.6rem 1.15rem"
153
+ borderRadius "999px"
154
+ textDecoration none
155
+ fontWeight "700"
156
+ fontSize "0.9rem"
157
+ transition "background-color 0.15s, transform 0.15s"
158
+ :hover backgroundColor="var(--color-primary-hover)" transform="translateY(-1px)"
159
+ }
160
+ }
161
+ }
162
+ }
@@ -0,0 +1,101 @@
1
+ /- kdl-version 2
2
+
3
+ re-neighborhood {
4
+ state {
5
+ name ""
6
+ count ""
7
+ price ""
8
+ href "/listings/"
9
+ image type=string format=image default=""
10
+ }
11
+ style display=block minWidth="0"
12
+ a href="${state.href}" {
13
+ style {
14
+ position relative
15
+ display block
16
+ overflow hidden
17
+ borderRadius "var(--radius)"
18
+ textDecoration none
19
+ color "var(--color-text-white)"
20
+ aspectRatio "4 / 5"
21
+ backgroundColor "var(--color-bg-dark)"
22
+ ":hover img" transform="scale(1.07)"
23
+ ":hover .re-nb-go" transform="translateX(0.2rem)"
24
+ }
25
+ img src="${state.image}" alt="${state.name}" loading=lazy {
26
+ style {
27
+ position absolute
28
+ inset "0"
29
+ width "100%"
30
+ height "100%"
31
+ objectFit cover
32
+ display block
33
+ transition "transform 0.6s cubic-bezier(0.22, 1, 0.36, 1)"
34
+ }
35
+ }
36
+ div {
37
+ style {
38
+ position absolute
39
+ inset "0"
40
+ background "linear-gradient(to top, rgba(11,18,32,0.9) 0%, rgba(11,18,32,0.35) 45%, rgba(11,18,32,0.05) 75%)"
41
+ }
42
+ }
43
+ span "${state.count} listings" {
44
+ style {
45
+ position absolute
46
+ top "0.85rem"
47
+ right "0.85rem"
48
+ display inline-flex
49
+ alignItems center
50
+ gap "0.3rem"
51
+ padding "0.28rem 0.6rem"
52
+ borderRadius "999px"
53
+ backgroundColor "rgba(255,255,255,0.16)"
54
+ border "1px solid rgba(255,255,255,0.25)"
55
+ backdropFilter "blur(6px)"
56
+ fontSize "0.72rem"
57
+ fontWeight "700"
58
+ fontVariantNumeric tabular-nums
59
+ }
60
+ }
61
+ div {
62
+ style position=absolute left="0" right="0" bottom="0" padding="1.15rem"
63
+ h3 "${state.name}" {
64
+ style {
65
+ fontFamily "var(--font-display)"
66
+ fontSize "1.35rem"
67
+ fontWeight "500"
68
+ letterSpacing "-0.01em"
69
+ margin "0 0 0.3rem"
70
+ color "var(--color-text-white)"
71
+ }
72
+ }
73
+ div {
74
+ style display=flex alignItems=center justifyContent=space-between gap="0.5rem"
75
+ span "Median ${state.price}" {
76
+ style {
77
+ fontSize "0.82rem"
78
+ fontWeight "600"
79
+ color "rgba(255,255,255,0.82)"
80
+ fontVariantNumeric tabular-nums
81
+ }
82
+ }
83
+ span class=re-nb-go → {
84
+ style {
85
+ display inline-flex
86
+ alignItems center
87
+ justifyContent center
88
+ width "1.7rem"
89
+ height "1.7rem"
90
+ borderRadius "999px"
91
+ backgroundColor "var(--color-accent-bright)"
92
+ color "var(--color-ink)"
93
+ fontSize "0.85rem"
94
+ fontWeight "800"
95
+ transition "transform 0.2s"
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
@@ -0,0 +1,55 @@
1
+ /- kdl-version 2
2
+
3
+ re-section-header {
4
+ state eyebrow="" heading="" subheading="" align=left
5
+ style {
6
+ display block
7
+ maxWidth "${state.align === 'center' ? 'var(--max-width-narrow)' : 'var(--max-width)'}"
8
+ margin "${state.align === 'center' ? '0 auto 2.75rem' : '0 auto 2.5rem'}"
9
+ padding "0 1.5rem"
10
+ textAlign "${state.align}"
11
+ }
12
+ p {
13
+ style {
14
+ display "${state.eyebrow ? 'inline-flex' : 'none'}"
15
+ alignItems center
16
+ gap "0.6rem"
17
+ textTransform uppercase
18
+ letterSpacing "0.14em"
19
+ fontSize "0.74rem"
20
+ fontWeight "700"
21
+ color "var(--color-primary)"
22
+ margin "0 0 0.9rem"
23
+ }
24
+ span {
25
+ style {
26
+ width "1.6rem"
27
+ height "2px"
28
+ backgroundColor "var(--color-accent)"
29
+ borderRadius "2px"
30
+ }
31
+ }
32
+ span "${state.eyebrow}"
33
+ }
34
+ h2 "${state.heading}" {
35
+ style {
36
+ fontFamily "var(--font-display)"
37
+ fontSize "clamp(1.9rem, 3.6vw, 2.8rem)"
38
+ fontWeight "500"
39
+ lineHeight "1.1"
40
+ letterSpacing "-0.015em"
41
+ margin "0"
42
+ color "var(--color-text-primary)"
43
+ }
44
+ }
45
+ p "${state.subheading}" {
46
+ style {
47
+ display "${state.subheading ? 'block' : 'none'}"
48
+ fontSize "1.08rem"
49
+ lineHeight "1.65"
50
+ color "var(--color-text-muted)"
51
+ margin "${state.align === 'center' ? '1rem auto 0' : '1rem 0 0'}"
52
+ maxWidth "56ch"
53
+ }
54
+ }
55
+ }