@jxsuite/starters 3.4.0 → 3.6.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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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 +26 -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,290 @@
1
+ /- kdl-version 2
2
+
3
+ fs-hero {
4
+ state {
5
+ eyebrow ""
6
+ heading ""
7
+ headingAccent ""
8
+ subheading ""
9
+ cta "Book a Class"
10
+ ctaHref "/contact/"
11
+ cta2 ""
12
+ cta2Href "/classes/"
13
+ chip1 ""
14
+ chip2 ""
15
+ bg type=string format=image default=""
16
+ }
17
+ style {
18
+ display flex
19
+ flexDirection column
20
+ position relative
21
+ overflow hidden
22
+ minHeight "clamp(560px, 92vh, 940px)"
23
+ color "var(--color-text-white)"
24
+ backgroundColor "var(--duo-shadow)"
25
+ }
26
+ div {
27
+ style position=absolute inset="0" zIndex="0"
28
+ img src="${state.bg}" alt="A movement class in session at Ember studio" width="1920" height="1280" loading=eager {
29
+ style {
30
+ position absolute
31
+ inset "0"
32
+ width "100%"
33
+ height "100%"
34
+ objectFit cover
35
+ objectPosition "center 30%"
36
+ filter "grayscale(100%) contrast(1.12) brightness(0.96)"
37
+ }
38
+ }
39
+ div {
40
+ style {
41
+ position absolute
42
+ inset "0"
43
+ backgroundColor "var(--duo-shadow)"
44
+ mixBlendMode lighten
45
+ }
46
+ }
47
+ div {
48
+ style {
49
+ position absolute
50
+ inset "0"
51
+ background "linear-gradient(115deg, #ff2e63 0%, #ff6a3d 55%, #ffb03a 100%)"
52
+ mixBlendMode multiply
53
+ opacity "0.92"
54
+ }
55
+ }
56
+ div {
57
+ style {
58
+ position absolute
59
+ inset "0"
60
+ background "linear-gradient(96deg, rgba(20,6,16,0.9) 0%, rgba(20,6,16,0.5) 46%, rgba(20,6,16,0.12) 78%, transparent 100%)"
61
+ }
62
+ }
63
+ div {
64
+ style {
65
+ position absolute
66
+ inset "0"
67
+ background "linear-gradient(180deg, rgba(20,6,16,0.35) 0%, transparent 30%, rgba(20,6,16,0.55) 100%)"
68
+ }
69
+ }
70
+ }
71
+ div {
72
+ style {
73
+ position relative
74
+ zIndex "5"
75
+ flex "1"
76
+ display flex
77
+ alignItems center
78
+ width "100%"
79
+ maxWidth "var(--max-width)"
80
+ margin "0 auto"
81
+ padding "clamp(3.5rem, 8vw, 5.5rem) 1.5rem clamp(2rem, 5vw, 3rem)"
82
+ }
83
+ div {
84
+ style maxWidth="760px" width="100%"
85
+ div {
86
+ style {
87
+ display inline-flex
88
+ alignItems center
89
+ gap "0.6rem"
90
+ marginBottom "1.6rem"
91
+ fontSize "0.78rem"
92
+ fontWeight "700"
93
+ letterSpacing "0.16em"
94
+ textTransform uppercase
95
+ color "#ffe0d3"
96
+ }
97
+ span {
98
+ style {
99
+ width "0.55rem"
100
+ height "0.55rem"
101
+ borderRadius "50%"
102
+ backgroundColor "#ffb03a"
103
+ boxShadow "0 0 0 5px rgba(255,176,58,0.28)"
104
+ }
105
+ }
106
+ span "${state.eyebrow}"
107
+ }
108
+ h1 {
109
+ style {
110
+ fontFamily "var(--font-display)"
111
+ fontSize "clamp(3.4rem, 11vw, 8rem)"
112
+ fontWeight "400"
113
+ lineHeight "0.9"
114
+ letterSpacing "0.005em"
115
+ textTransform uppercase
116
+ margin "0 0 1.4rem"
117
+ textShadow "0 18px 50px rgba(20,6,16,0.45)"
118
+ }
119
+ span "${state.heading}" {
120
+ style display=block color="#ffffff"
121
+ }
122
+ span "${state.headingAccent}" {
123
+ style {
124
+ display block
125
+ background "linear-gradient(100deg, #ffe7dc 0%, #ffb03a 60%, #ff8c42 100%)"
126
+ backgroundClip text
127
+ webkitBackgroundClip text
128
+ webkitTextFillColor transparent
129
+ color "#ffb03a"
130
+ }
131
+ }
132
+ }
133
+ p "${state.subheading}" {
134
+ style {
135
+ fontSize "clamp(1.05rem, 1.9vw, 1.3rem)"
136
+ lineHeight "1.6"
137
+ fontWeight "500"
138
+ margin "0 0 2rem"
139
+ maxWidth "46ch"
140
+ color "rgba(255,255,255,0.92)"
141
+ }
142
+ }
143
+ div {
144
+ style display=flex gap="0.8rem" flexWrap=wrap alignItems=center
145
+ a href="${state.ctaHref}" "${state.cta}" {
146
+ style {
147
+ display inline-block
148
+ backgroundColor "#ffffff"
149
+ color "var(--color-ink)"
150
+ padding "1rem 2.3rem"
151
+ borderRadius "999px"
152
+ fontFamily "var(--font-heading)"
153
+ fontSize "0.92rem"
154
+ fontWeight "800"
155
+ textTransform uppercase
156
+ letterSpacing "0.06em"
157
+ textDecoration none
158
+ boxShadow "0 16px 40px -12px rgba(0,0,0,0.5)"
159
+ transition "transform 0.15s, box-shadow 0.15s"
160
+ :hover {
161
+ transform "translateY(-3px)"
162
+ boxShadow "0 22px 48px -12px rgba(0,0,0,0.55)"
163
+ }
164
+ }
165
+ }
166
+ a href="${state.cta2Href}" "${state.cta2}" {
167
+ style {
168
+ display "${state.cta2 ? 'inline-flex' : 'none'}"
169
+ alignItems center
170
+ gap "0.5rem"
171
+ border "2px solid rgba(255,255,255,0.55)"
172
+ color "#ffffff"
173
+ padding "0.9rem 1.9rem"
174
+ borderRadius "999px"
175
+ fontFamily "var(--font-heading)"
176
+ fontSize "0.92rem"
177
+ fontWeight "700"
178
+ textTransform uppercase
179
+ letterSpacing "0.06em"
180
+ textDecoration none
181
+ transition "background-color 0.15s, border-color 0.15s"
182
+ :hover backgroundColor="rgba(255,255,255,0.14)" borderColor="#ffffff"
183
+ }
184
+ }
185
+ }
186
+ div {
187
+ style {
188
+ display "${state.chip1 ? 'flex' : 'none'}"
189
+ gap "1.4rem"
190
+ flexWrap wrap
191
+ marginTop "2.4rem"
192
+ }
193
+ div {
194
+ style display=flex alignItems=center gap="0.55rem"
195
+ span {
196
+ style {
197
+ width "0.4rem"
198
+ height "0.4rem"
199
+ borderRadius "50%"
200
+ backgroundColor "#ffb03a"
201
+ }
202
+ }
203
+ span "${state.chip1}" {
204
+ style {
205
+ fontSize "0.86rem"
206
+ fontWeight "600"
207
+ color "rgba(255,255,255,0.9)"
208
+ letterSpacing "0.02em"
209
+ }
210
+ }
211
+ }
212
+ div {
213
+ style display="${state.chip2 ? 'flex' : 'none'}" alignItems=center gap="0.55rem"
214
+ span {
215
+ style {
216
+ width "0.4rem"
217
+ height "0.4rem"
218
+ borderRadius "50%"
219
+ backgroundColor "#ffb03a"
220
+ }
221
+ }
222
+ span "${state.chip2}" {
223
+ style {
224
+ fontSize "0.86rem"
225
+ fontWeight "600"
226
+ color "rgba(255,255,255,0.9)"
227
+ letterSpacing "0.02em"
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }
234
+ div {
235
+ style {
236
+ position relative
237
+ zIndex "6"
238
+ width "116%"
239
+ marginLeft "-8%"
240
+ transform "rotate(-1.6deg)"
241
+ background "var(--grad-hot)"
242
+ padding "0.95rem 0"
243
+ marginTop "1.5rem"
244
+ marginBottom "0"
245
+ overflow hidden
246
+ boxShadow "0 16px 44px -18px rgba(255,46,99,0.7)"
247
+ }
248
+ div {
249
+ style {
250
+ display flex
251
+ alignItems center
252
+ justifyContent center
253
+ gap "1.5rem"
254
+ whiteSpace nowrap
255
+ fontFamily "var(--font-display)"
256
+ fontSize "clamp(0.95rem, 1.9vw, 1.25rem)"
257
+ letterSpacing "0.12em"
258
+ textTransform uppercase
259
+ color "#ffffff"
260
+ }
261
+ span Vinyasa
262
+ span ✦ {
263
+ style color="rgba(255,255,255,0.65)"
264
+ }
265
+ span "Power Yoga"
266
+ span ✦ {
267
+ style color="rgba(255,255,255,0.65)"
268
+ }
269
+ span Pilates
270
+ span ✦ {
271
+ style color="rgba(255,255,255,0.65)"
272
+ }
273
+ span HIIT
274
+ span ✦ {
275
+ style color="rgba(255,255,255,0.65)"
276
+ }
277
+ span Strength
278
+ span ✦ {
279
+ style color="rgba(255,255,255,0.65)" {
280
+ @--sm display=none
281
+ }
282
+ }
283
+ span Restorative {
284
+ style {
285
+ @--sm display=none
286
+ }
287
+ }
288
+ }
289
+ }
290
+ }
@@ -0,0 +1,78 @@
1
+ /- kdl-version 2
2
+
3
+ fs-hours {
4
+ state {
5
+ heading "Studio Hours"
6
+ weekdays "6:00am – 9:00pm"
7
+ saturday "7:00am – 2:00pm"
8
+ sunday "8:00am – 12:00pm"
9
+ note "Doors open 15 minutes before each class. Please arrive early to settle in."
10
+ }
11
+ style {
12
+ display block
13
+ backgroundColor "var(--color-ink)"
14
+ color "#ffffff"
15
+ borderRadius "var(--radius)"
16
+ padding "2.2rem"
17
+ overflow hidden
18
+ }
19
+ h3 "${state.heading}" {
20
+ style {
21
+ fontFamily "var(--font-display)"
22
+ fontSize "1.7rem"
23
+ fontWeight "400"
24
+ letterSpacing "0.01em"
25
+ textTransform uppercase
26
+ margin "0 0 1.35rem"
27
+ color "#ffffff"
28
+ }
29
+ }
30
+ div {
31
+ style {
32
+ display flex
33
+ justifyContent space-between
34
+ alignItems center
35
+ padding "0.7rem 0"
36
+ borderBottom "1px solid rgba(255,255,255,0.12)"
37
+ }
38
+ span "Mon – Fri" {
39
+ style fontWeight="600"
40
+ }
41
+ span "${state.weekdays}" {
42
+ style color="var(--color-ember)" fontWeight="700" fontFamily="var(--font-heading)"
43
+ }
44
+ }
45
+ div {
46
+ style {
47
+ display flex
48
+ justifyContent space-between
49
+ alignItems center
50
+ padding "0.7rem 0"
51
+ borderBottom "1px solid rgba(255,255,255,0.12)"
52
+ }
53
+ span Saturday {
54
+ style fontWeight="600"
55
+ }
56
+ span "${state.saturday}" {
57
+ style color="var(--color-ember)" fontWeight="700" fontFamily="var(--font-heading)"
58
+ }
59
+ }
60
+ div {
61
+ style display=flex justifyContent=space-between alignItems=center padding="0.7rem 0"
62
+ span Sunday {
63
+ style fontWeight="600"
64
+ }
65
+ span "${state.sunday}" {
66
+ style color="var(--color-ember)" fontWeight="700" fontFamily="var(--font-heading)"
67
+ }
68
+ }
69
+ p "${state.note}" {
70
+ style {
71
+ display "${state.note ? 'block' : 'none'}"
72
+ margin "1.35rem 0 0"
73
+ fontSize "0.85rem"
74
+ color "rgba(255,255,255,0.62)"
75
+ lineHeight "1.6"
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,104 @@
1
+ /- kdl-version 2
2
+
3
+ fs-instructor-card {
4
+ state {
5
+ name ""
6
+ specialty ""
7
+ bio ""
8
+ image type=string format=image default=""
9
+ }
10
+ style {
11
+ display flex
12
+ flexDirection column
13
+ height "100%"
14
+ backgroundColor "var(--color-bg-white)"
15
+ border "1px solid var(--color-border)"
16
+ borderRadius "var(--radius)"
17
+ overflow hidden
18
+ boxShadow "0 12px 34px -22px rgba(26,15,24,0.35)"
19
+ }
20
+ div {
21
+ style {
22
+ position relative
23
+ aspectRatio "4 / 5"
24
+ overflow hidden
25
+ backgroundColor "var(--duo-shadow)"
26
+ }
27
+ img src="${state.image}" alt="Portrait of ${state.name}" width="800" height="1000" loading=lazy {
28
+ style {
29
+ position absolute
30
+ inset "0"
31
+ width "100%"
32
+ height "100%"
33
+ objectFit cover
34
+ filter "grayscale(100%) contrast(1.02) brightness(1.2)"
35
+ }
36
+ }
37
+ div {
38
+ style {
39
+ position absolute
40
+ inset "0"
41
+ backgroundColor "var(--duo-shadow)"
42
+ mixBlendMode lighten
43
+ }
44
+ }
45
+ div {
46
+ style {
47
+ position absolute
48
+ inset "0"
49
+ background "linear-gradient(150deg, #ff2e63 0%, #ff8c42 100%)"
50
+ mixBlendMode multiply
51
+ opacity "0.72"
52
+ }
53
+ }
54
+ div {
55
+ style {
56
+ position absolute
57
+ inset "0"
58
+ background "linear-gradient(180deg, transparent 45%, rgba(20,6,16,0.72) 100%)"
59
+ }
60
+ }
61
+ div {
62
+ style position=absolute left="1.35rem" right="1.35rem" bottom="1.1rem"
63
+ div "${state.specialty}" {
64
+ style {
65
+ display "${state.specialty ? 'inline-block' : 'none'}"
66
+ marginBottom "0.5rem"
67
+ padding "0.28rem 0.7rem"
68
+ borderRadius "999px"
69
+ backgroundColor "rgba(255,255,255,0.92)"
70
+ color "var(--color-ink)"
71
+ fontFamily "var(--font-heading)"
72
+ fontSize "0.66rem"
73
+ fontWeight "800"
74
+ textTransform uppercase
75
+ letterSpacing "0.06em"
76
+ }
77
+ }
78
+ h3 "${state.name}" {
79
+ style {
80
+ margin "0"
81
+ fontFamily "var(--font-display)"
82
+ fontSize "1.9rem"
83
+ fontWeight "400"
84
+ lineHeight "0.95"
85
+ textTransform uppercase
86
+ color "#ffffff"
87
+ textShadow "0 4px 16px rgba(20,6,16,0.5)"
88
+ }
89
+ }
90
+ }
91
+ }
92
+ div {
93
+ style padding="1.4rem 1.5rem 1.6rem"
94
+ p "${state.bio}" {
95
+ style {
96
+ display "${state.bio ? 'block' : 'none'}"
97
+ margin "0"
98
+ color "var(--color-text-muted)"
99
+ fontSize "0.96rem"
100
+ lineHeight "1.65"
101
+ }
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,231 @@
1
+ /- kdl-version 2
2
+
3
+ fs-intro {
4
+ state {
5
+ kicker ""
6
+ image type=string format=image default=""
7
+ imageAlt ""
8
+ badge ""
9
+ stat1 ""
10
+ stat1label ""
11
+ stat2 ""
12
+ stat2label ""
13
+ stat3 ""
14
+ stat3label ""
15
+ }
16
+ style {
17
+ display block
18
+ padding "clamp(3.5rem, 8vw, 6.5rem) 1.5rem"
19
+ backgroundColor "var(--color-bg-white)"
20
+ }
21
+ div {
22
+ style {
23
+ maxWidth "var(--max-width)"
24
+ margin "0 auto"
25
+ display grid
26
+ gridTemplateColumns "0.95fr 1.05fr"
27
+ gap "clamp(2rem, 5vw, 4.5rem)"
28
+ alignItems center
29
+ @--md gridTemplateColumns="1fr" gap="2.5rem"
30
+ }
31
+ div {
32
+ style position=relative
33
+ div {
34
+ style {
35
+ position absolute
36
+ top "-1.1rem"
37
+ left "-1.1rem"
38
+ right "1.6rem"
39
+ bottom "1.6rem"
40
+ borderRadius "var(--radius)"
41
+ background "var(--grad)"
42
+ transform "rotate(-2.5deg)"
43
+ opacity "0.9"
44
+ @--sm display=none
45
+ }
46
+ }
47
+ div {
48
+ style {
49
+ position relative
50
+ borderRadius "var(--radius)"
51
+ overflow hidden
52
+ aspectRatio "4 / 5"
53
+ backgroundColor "var(--duo-shadow)"
54
+ boxShadow "0 30px 60px -28px rgba(26,15,24,0.5)"
55
+ }
56
+ img src="${state.image}" alt="${state.imageAlt}" width="1200" height="1500" loading=lazy {
57
+ style {
58
+ position absolute
59
+ inset "0"
60
+ width "100%"
61
+ height "100%"
62
+ objectFit cover
63
+ filter "grayscale(100%) contrast(1.08)"
64
+ }
65
+ }
66
+ div {
67
+ style {
68
+ position absolute
69
+ inset "0"
70
+ backgroundColor "var(--duo-shadow)"
71
+ mixBlendMode lighten
72
+ }
73
+ }
74
+ div {
75
+ style {
76
+ position absolute
77
+ inset "0"
78
+ background "linear-gradient(150deg, #ff2e63 0%, #ff8c42 100%)"
79
+ mixBlendMode multiply
80
+ opacity "0.85"
81
+ }
82
+ }
83
+ }
84
+ div {
85
+ style {
86
+ display "${state.badge ? 'flex' : 'none'}"
87
+ position absolute
88
+ bottom "-1.1rem"
89
+ right "-0.6rem"
90
+ alignItems center
91
+ gap "0.5rem"
92
+ padding "0.7rem 1.15rem"
93
+ borderRadius "999px"
94
+ backgroundColor "var(--color-ink)"
95
+ color "#ffffff"
96
+ fontFamily "var(--font-heading)"
97
+ fontWeight "700"
98
+ fontSize "0.82rem"
99
+ boxShadow "0 16px 34px -12px rgba(0,0,0,0.5)"
100
+ }
101
+ span {
102
+ style {
103
+ width "0.5rem"
104
+ height "0.5rem"
105
+ borderRadius "50%"
106
+ backgroundColor "#ffb03a"
107
+ }
108
+ }
109
+ span "${state.badge}"
110
+ }
111
+ }
112
+ div {
113
+ div {
114
+ style {
115
+ display "${state.kicker ? 'inline-flex' : 'none'}"
116
+ alignItems center
117
+ gap "0.55rem"
118
+ marginBottom "1.1rem"
119
+ }
120
+ span {
121
+ style {
122
+ width "1.6rem"
123
+ height "3px"
124
+ borderRadius "2px"
125
+ background "var(--grad-hot)"
126
+ }
127
+ }
128
+ span "${state.kicker}" {
129
+ style {
130
+ fontFamily "var(--font-heading)"
131
+ textTransform uppercase
132
+ letterSpacing "0.16em"
133
+ fontSize "0.78rem"
134
+ fontWeight "700"
135
+ color "var(--color-primary)"
136
+ }
137
+ }
138
+ }
139
+ div {
140
+ style fontSize="1.12rem" lineHeight="1.8" color="var(--color-text-primary)"
141
+ slot
142
+ }
143
+ div {
144
+ style {
145
+ display "${state.stat1 ? 'grid' : 'none'}"
146
+ gridTemplateColumns "repeat(3, auto)"
147
+ gap "clamp(1.25rem, 4vw, 2.5rem)"
148
+ marginTop "2.25rem"
149
+ paddingTop "1.75rem"
150
+ borderTop "1px solid var(--color-border)"
151
+ justifyContent start
152
+ @--sm gridTemplateColumns="repeat(3, 1fr)" gap="1rem"
153
+ }
154
+ div {
155
+ div "${state.stat1}" {
156
+ style {
157
+ fontFamily "var(--font-display)"
158
+ fontSize "clamp(1.9rem, 4vw, 2.6rem)"
159
+ lineHeight "1"
160
+ background "var(--grad-hot)"
161
+ backgroundClip text
162
+ webkitBackgroundClip text
163
+ webkitTextFillColor transparent
164
+ color "var(--color-primary)"
165
+ }
166
+ }
167
+ div "${state.stat1label}" {
168
+ style {
169
+ fontSize "0.8rem"
170
+ fontWeight "600"
171
+ color "var(--color-text-muted)"
172
+ marginTop "0.35rem"
173
+ textTransform uppercase
174
+ letterSpacing "0.04em"
175
+ }
176
+ }
177
+ }
178
+ div {
179
+ style display="${state.stat2 ? 'block' : 'none'}"
180
+ div "${state.stat2}" {
181
+ style {
182
+ fontFamily "var(--font-display)"
183
+ fontSize "clamp(1.9rem, 4vw, 2.6rem)"
184
+ lineHeight "1"
185
+ background "var(--grad-hot)"
186
+ backgroundClip text
187
+ webkitBackgroundClip text
188
+ webkitTextFillColor transparent
189
+ color "var(--color-primary)"
190
+ }
191
+ }
192
+ div "${state.stat2label}" {
193
+ style {
194
+ fontSize "0.8rem"
195
+ fontWeight "600"
196
+ color "var(--color-text-muted)"
197
+ marginTop "0.35rem"
198
+ textTransform uppercase
199
+ letterSpacing "0.04em"
200
+ }
201
+ }
202
+ }
203
+ div {
204
+ style display="${state.stat3 ? 'block' : 'none'}"
205
+ div "${state.stat3}" {
206
+ style {
207
+ fontFamily "var(--font-display)"
208
+ fontSize "clamp(1.9rem, 4vw, 2.6rem)"
209
+ lineHeight "1"
210
+ background "var(--grad-hot)"
211
+ backgroundClip text
212
+ webkitBackgroundClip text
213
+ webkitTextFillColor transparent
214
+ color "var(--color-primary)"
215
+ }
216
+ }
217
+ div "${state.stat3label}" {
218
+ style {
219
+ fontSize "0.8rem"
220
+ fontWeight "600"
221
+ color "var(--color-text-muted)"
222
+ marginTop "0.35rem"
223
+ textTransform uppercase
224
+ letterSpacing "0.04em"
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }