@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,94 @@
1
+ /- kdl-version 2
2
+
3
+ sa-contact-form {
4
+ state {
5
+ heading "Send us a message"
6
+ note "This is a demo form. Wire it to your CRM or email in pages/contact.md."
7
+ }
8
+ style display=block
9
+ h3 "${state.heading}" {
10
+ style {
11
+ fontFamily "var(--font-heading)"
12
+ fontSize "1.5rem"
13
+ fontWeight "600"
14
+ letterSpacing "-0.01em"
15
+ margin "0 0 1.25rem"
16
+ }
17
+ }
18
+ form action="#" method=post {
19
+ style display=grid gap="1rem" alignContent=start
20
+ input type=text name=name placeholder="Your name" required="true" aria-label="Your name" {
21
+ style {
22
+ width "100%"
23
+ padding "0.75rem 0.9rem"
24
+ border "1px solid var(--color-border)"
25
+ borderRadius "var(--radius)"
26
+ fontSize "1rem"
27
+ fontFamily inherit
28
+ }
29
+ }
30
+ input type=email name=email placeholder="Work email" required="true" aria-label="Work email" {
31
+ style {
32
+ width "100%"
33
+ padding "0.75rem 0.9rem"
34
+ border "1px solid var(--color-border)"
35
+ borderRadius "var(--radius)"
36
+ fontSize "1rem"
37
+ fontFamily inherit
38
+ }
39
+ }
40
+ div {
41
+ style display=grid gridTemplateColumns="1fr 1fr" gap="1rem" {
42
+ @--sm gridTemplateColumns="1fr"
43
+ }
44
+ input type=text name=company placeholder=Company aria-label=Company {
45
+ style {
46
+ width "100%"
47
+ padding "0.75rem 0.9rem"
48
+ border "1px solid var(--color-border)"
49
+ borderRadius "var(--radius)"
50
+ fontSize "1rem"
51
+ fontFamily inherit
52
+ }
53
+ }
54
+ input type=number name=team min="1" max="10000" placeholder="Team size" aria-label="Team size" {
55
+ style {
56
+ width "100%"
57
+ padding "0.75rem 0.9rem"
58
+ border "1px solid var(--color-border)"
59
+ borderRadius "var(--radius)"
60
+ fontSize "1rem"
61
+ fontFamily inherit
62
+ }
63
+ }
64
+ }
65
+ textarea name=message rows="4" placeholder="How can we help?" aria-label=Message {
66
+ style {
67
+ width "100%"
68
+ padding "0.75rem 0.9rem"
69
+ border "1px solid var(--color-border)"
70
+ borderRadius "var(--radius)"
71
+ fontSize "1rem"
72
+ fontFamily inherit
73
+ }
74
+ }
75
+ button type=submit "Send message" {
76
+ style {
77
+ backgroundColor "var(--color-primary)"
78
+ color "var(--color-text-white)"
79
+ padding "0.85rem 1.5rem"
80
+ border none
81
+ borderRadius "var(--radius)"
82
+ fontSize "1rem"
83
+ fontWeight "600"
84
+ cursor pointer
85
+ justifySelf start
86
+ transition "background-color 0.15s"
87
+ :hover backgroundColor="var(--color-primary-hover)"
88
+ }
89
+ }
90
+ p "${state.note}" {
91
+ style fontSize="0.85rem" color="var(--color-text-muted)" margin="0"
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,68 @@
1
+ /- kdl-version 2
2
+
3
+ sa-cta {
4
+ state heading="" text="" cta="Get started free" ctaHref="/pricing/" cta2="" cta2Href="/contact/"
5
+ style {
6
+ display block
7
+ position relative
8
+ overflow hidden
9
+ backgroundColor "var(--color-bg-dark)"
10
+ color "var(--color-text-white)"
11
+ background "radial-gradient(ellipse 70% 60% at 50% 120%, rgba(99, 102, 241, 0.3), transparent 70%), var(--color-bg-dark)"
12
+ padding "clamp(3.5rem, 9vw, 6rem) 1.5rem"
13
+ textAlign center
14
+ }
15
+ div {
16
+ style position=relative zIndex="10" maxWidth="var(--max-width-narrow)" margin="0 auto"
17
+ h2 "${state.heading}" {
18
+ style {
19
+ fontFamily "var(--font-heading)"
20
+ fontSize "clamp(1.9rem, 4vw, 2.9rem)"
21
+ fontWeight "700"
22
+ letterSpacing "-0.03em"
23
+ lineHeight "1.12"
24
+ margin "0 0 1rem"
25
+ }
26
+ }
27
+ p "${state.text}" {
28
+ style {
29
+ fontSize "1.1rem"
30
+ lineHeight "1.7"
31
+ color "rgba(255, 255, 255, 0.72)"
32
+ margin "0 auto 2rem"
33
+ maxWidth "48ch"
34
+ }
35
+ }
36
+ div {
37
+ style display=flex gap="0.75rem" justifyContent=center flexWrap=wrap
38
+ a href="${state.ctaHref}" "${state.cta}" {
39
+ style {
40
+ display inline-block
41
+ backgroundColor "var(--color-primary)"
42
+ color "var(--color-text-white)"
43
+ padding "0.9rem 2.25rem"
44
+ borderRadius "var(--radius)"
45
+ fontSize "1.05rem"
46
+ fontWeight "600"
47
+ textDecoration none
48
+ transition "background-color 0.15s"
49
+ :hover backgroundColor="var(--color-primary-hover)"
50
+ }
51
+ }
52
+ a href="${state.cta2Href}" "${state.cta2}" {
53
+ style {
54
+ display "${state.cta2 ? 'inline-block' : 'none'}"
55
+ border "1px solid rgba(255, 255, 255, 0.28)"
56
+ color "var(--color-text-white)"
57
+ padding "0.9rem 2.25rem"
58
+ borderRadius "var(--radius)"
59
+ fontSize "1.05rem"
60
+ fontWeight "600"
61
+ textDecoration none
62
+ transition "background-color 0.15s"
63
+ :hover backgroundColor="rgba(255, 255, 255, 0.1)"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,347 @@
1
+ /- kdl-version 2
2
+
3
+ sa-faq {
4
+ state open=0
5
+ style {
6
+ display block
7
+ maxWidth "var(--max-width-narrow)"
8
+ margin "0 auto"
9
+ borderTop "1px solid var(--color-border)"
10
+ }
11
+ div {
12
+ style borderBottom="1px solid var(--color-border)"
13
+ button {
14
+ (on)onclick {
15
+ $expression {
16
+ operator "="
17
+ target (ref)"#/state/open"
18
+ value {
19
+ operator ||
20
+ target {
21
+ operator &&
22
+ target operator="===" target=(ref)"#/state/open" value=0
23
+ value -1
24
+ }
25
+ value 0
26
+ }
27
+ }
28
+ }
29
+ style {
30
+ display flex
31
+ alignItems center
32
+ justifyContent space-between
33
+ gap "1rem"
34
+ width "100%"
35
+ padding "1.4rem 0.25rem"
36
+ border none
37
+ background transparent
38
+ cursor pointer
39
+ textAlign left
40
+ fontFamily "var(--font-heading)"
41
+ fontSize "1.1rem"
42
+ fontWeight "600"
43
+ color "var(--color-text-primary)"
44
+ }
45
+ span "Can I change plans or cancel at any time?"
46
+ span ⌄ {
47
+ style {
48
+ flexShrink "0"
49
+ color "var(--color-primary)"
50
+ fontSize "1.1rem"
51
+ transition "transform 0.2s"
52
+ transform "${state.open === 0 ? 'rotate(180deg)' : 'rotate(0deg)'}"
53
+ }
54
+ }
55
+ }
56
+ div "Absolutely. Upgrade, downgrade, or cancel from your billing settings whenever you like. Changes are prorated automatically, so you only ever pay for what you use." {
57
+ style {
58
+ display "${state.open === 0 ? 'block' : 'none'}"
59
+ padding "0 0.25rem 1.4rem"
60
+ color "var(--color-text-muted)"
61
+ fontSize "1rem"
62
+ lineHeight "1.7"
63
+ maxWidth "60ch"
64
+ }
65
+ }
66
+ }
67
+ div {
68
+ style borderBottom="1px solid var(--color-border)"
69
+ button {
70
+ (on)onclick {
71
+ $expression {
72
+ operator "="
73
+ target (ref)"#/state/open"
74
+ value {
75
+ operator ||
76
+ target {
77
+ operator &&
78
+ target operator="===" target=(ref)"#/state/open" value=1
79
+ value -1
80
+ }
81
+ value 1
82
+ }
83
+ }
84
+ }
85
+ style {
86
+ display flex
87
+ alignItems center
88
+ justifyContent space-between
89
+ gap "1rem"
90
+ width "100%"
91
+ padding "1.4rem 0.25rem"
92
+ border none
93
+ background transparent
94
+ cursor pointer
95
+ textAlign left
96
+ fontFamily "var(--font-heading)"
97
+ fontSize "1.1rem"
98
+ fontWeight "600"
99
+ color "var(--color-text-primary)"
100
+ }
101
+ span "Is there a free plan?"
102
+ span ⌄ {
103
+ style {
104
+ flexShrink "0"
105
+ color "var(--color-primary)"
106
+ fontSize "1.1rem"
107
+ transition "transform 0.2s"
108
+ transform "${state.open === 1 ? 'rotate(180deg)' : 'rotate(0deg)'}"
109
+ }
110
+ }
111
+ }
112
+ div "Yes. The Starter plan is free forever and includes up to three projects — no credit card required. It’s a great way to explore Flowlark before inviting your whole team." {
113
+ style {
114
+ display "${state.open === 1 ? 'block' : 'none'}"
115
+ padding "0 0.25rem 1.4rem"
116
+ color "var(--color-text-muted)"
117
+ fontSize "1rem"
118
+ lineHeight "1.7"
119
+ maxWidth "60ch"
120
+ }
121
+ }
122
+ }
123
+ div {
124
+ style borderBottom="1px solid var(--color-border)"
125
+ button {
126
+ (on)onclick {
127
+ $expression {
128
+ operator "="
129
+ target (ref)"#/state/open"
130
+ value {
131
+ operator ||
132
+ target {
133
+ operator &&
134
+ target operator="===" target=(ref)"#/state/open" value=2
135
+ value -1
136
+ }
137
+ value 2
138
+ }
139
+ }
140
+ }
141
+ style {
142
+ display flex
143
+ alignItems center
144
+ justifyContent space-between
145
+ gap "1rem"
146
+ width "100%"
147
+ padding "1.4rem 0.25rem"
148
+ border none
149
+ background transparent
150
+ cursor pointer
151
+ textAlign left
152
+ fontFamily "var(--font-heading)"
153
+ fontSize "1.1rem"
154
+ fontWeight "600"
155
+ color "var(--color-text-primary)"
156
+ }
157
+ span "How does annual billing save me money?"
158
+ span ⌄ {
159
+ style {
160
+ flexShrink "0"
161
+ color "var(--color-primary)"
162
+ fontSize "1.1rem"
163
+ transition "transform 0.2s"
164
+ transform "${state.open === 2 ? 'rotate(180deg)' : 'rotate(0deg)'}"
165
+ }
166
+ }
167
+ }
168
+ div "Choosing annual billing gives you roughly two months free — a 20% discount versus paying month to month. Toggle the switch above to compare the two side by side." {
169
+ style {
170
+ display "${state.open === 2 ? 'block' : 'none'}"
171
+ padding "0 0.25rem 1.4rem"
172
+ color "var(--color-text-muted)"
173
+ fontSize "1rem"
174
+ lineHeight "1.7"
175
+ maxWidth "60ch"
176
+ }
177
+ }
178
+ }
179
+ div {
180
+ style borderBottom="1px solid var(--color-border)"
181
+ button {
182
+ (on)onclick {
183
+ $expression {
184
+ operator "="
185
+ target (ref)"#/state/open"
186
+ value {
187
+ operator ||
188
+ target {
189
+ operator &&
190
+ target operator="===" target=(ref)"#/state/open" value=3
191
+ value -1
192
+ }
193
+ value 3
194
+ }
195
+ }
196
+ }
197
+ style {
198
+ display flex
199
+ alignItems center
200
+ justifyContent space-between
201
+ gap "1rem"
202
+ width "100%"
203
+ padding "1.4rem 0.25rem"
204
+ border none
205
+ background transparent
206
+ cursor pointer
207
+ textAlign left
208
+ fontFamily "var(--font-heading)"
209
+ fontSize "1.1rem"
210
+ fontWeight "600"
211
+ color "var(--color-text-primary)"
212
+ }
213
+ span "Do you offer discounts for startups or nonprofits?"
214
+ span ⌄ {
215
+ style {
216
+ flexShrink "0"
217
+ color "var(--color-primary)"
218
+ fontSize "1.1rem"
219
+ transition "transform 0.2s"
220
+ transform "${state.open === 3 ? 'rotate(180deg)' : 'rotate(0deg)'}"
221
+ }
222
+ }
223
+ }
224
+ div "We do. Early-stage startups and registered nonprofits qualify for meaningful discounts on Pro and Scale. Reach out through the contact page and our team will get you set up." {
225
+ style {
226
+ display "${state.open === 3 ? 'block' : 'none'}"
227
+ padding "0 0.25rem 1.4rem"
228
+ color "var(--color-text-muted)"
229
+ fontSize "1rem"
230
+ lineHeight "1.7"
231
+ maxWidth "60ch"
232
+ }
233
+ }
234
+ }
235
+ div {
236
+ style borderBottom="1px solid var(--color-border)"
237
+ button {
238
+ (on)onclick {
239
+ $expression {
240
+ operator "="
241
+ target (ref)"#/state/open"
242
+ value {
243
+ operator ||
244
+ target {
245
+ operator &&
246
+ target operator="===" target=(ref)"#/state/open" value=4
247
+ value -1
248
+ }
249
+ value 4
250
+ }
251
+ }
252
+ }
253
+ style {
254
+ display flex
255
+ alignItems center
256
+ justifyContent space-between
257
+ gap "1rem"
258
+ width "100%"
259
+ padding "1.4rem 0.25rem"
260
+ border none
261
+ background transparent
262
+ cursor pointer
263
+ textAlign left
264
+ fontFamily "var(--font-heading)"
265
+ fontSize "1.1rem"
266
+ fontWeight "600"
267
+ color "var(--color-text-primary)"
268
+ }
269
+ span "Is my data secure?"
270
+ span ⌄ {
271
+ style {
272
+ flexShrink "0"
273
+ color "var(--color-primary)"
274
+ fontSize "1.1rem"
275
+ transition "transform 0.2s"
276
+ transform "${state.open === 4 ? 'rotate(180deg)' : 'rotate(0deg)'}"
277
+ }
278
+ }
279
+ }
280
+ div "Security is built in, not bolted on. Data is encrypted in transit and at rest, and the Scale plan adds SSO, SCIM provisioning, and audit logs for teams with stricter compliance needs." {
281
+ style {
282
+ display "${state.open === 4 ? 'block' : 'none'}"
283
+ padding "0 0.25rem 1.4rem"
284
+ color "var(--color-text-muted)"
285
+ fontSize "1rem"
286
+ lineHeight "1.7"
287
+ maxWidth "60ch"
288
+ }
289
+ }
290
+ }
291
+ div {
292
+ style borderBottom="1px solid var(--color-border)"
293
+ button {
294
+ (on)onclick {
295
+ $expression {
296
+ operator "="
297
+ target (ref)"#/state/open"
298
+ value {
299
+ operator ||
300
+ target {
301
+ operator &&
302
+ target operator="===" target=(ref)"#/state/open" value=5
303
+ value -1
304
+ }
305
+ value 5
306
+ }
307
+ }
308
+ }
309
+ style {
310
+ display flex
311
+ alignItems center
312
+ justifyContent space-between
313
+ gap "1rem"
314
+ width "100%"
315
+ padding "1.4rem 0.25rem"
316
+ border none
317
+ background transparent
318
+ cursor pointer
319
+ textAlign left
320
+ fontFamily "var(--font-heading)"
321
+ fontSize "1.1rem"
322
+ fontWeight "600"
323
+ color "var(--color-text-primary)"
324
+ }
325
+ span "What kind of support do you offer?"
326
+ span ⌄ {
327
+ style {
328
+ flexShrink "0"
329
+ color "var(--color-primary)"
330
+ fontSize "1.1rem"
331
+ transition "transform 0.2s"
332
+ transform "${state.open === 5 ? 'rotate(180deg)' : 'rotate(0deg)'}"
333
+ }
334
+ }
335
+ }
336
+ div "Every plan includes documentation and community help. Pro adds priority email support, and Scale includes a dedicated success manager plus guaranteed response times." {
337
+ style {
338
+ display "${state.open === 5 ? 'block' : 'none'}"
339
+ padding "0 0.25rem 1.4rem"
340
+ color "var(--color-text-muted)"
341
+ fontSize "1rem"
342
+ lineHeight "1.7"
343
+ maxWidth "60ch"
344
+ }
345
+ }
346
+ }
347
+ }
@@ -0,0 +1,57 @@
1
+ /- kdl-version 2
2
+
3
+ sa-feature-card {
4
+ state icon="" title="" text="" col="2"
5
+ style {
6
+ display flex
7
+ flexDirection column
8
+ gridColumn "span ${state.col}"
9
+ padding "1.9rem"
10
+ backgroundColor "var(--color-bg-elev)"
11
+ borderRadius "var(--radius)"
12
+ border "1px solid var(--color-border)"
13
+ position relative
14
+ overflow hidden
15
+ transition "border-color 0.18s, transform 0.18s, box-shadow 0.18s"
16
+ @--md gridColumn="span 1"
17
+ :hover {
18
+ borderColor "rgba(124, 116, 255, 0.5)"
19
+ transform "translateY(-3px)"
20
+ boxShadow "0 18px 44px -20px var(--glow)"
21
+ }
22
+ }
23
+ div "${state.icon}" {
24
+ style {
25
+ display inline-flex
26
+ alignItems center
27
+ justifyContent center
28
+ width "2.9rem"
29
+ height "2.9rem"
30
+ borderRadius "0.7rem"
31
+ background "linear-gradient(150deg, rgba(124,116,255,0.28), rgba(34,211,238,0.14))"
32
+ border "1px solid var(--color-border)"
33
+ fontSize "1.45rem"
34
+ lineHeight "1"
35
+ marginBottom "1.1rem"
36
+ }
37
+ }
38
+ h3 "${state.title}" {
39
+ style {
40
+ fontFamily "var(--font-heading)"
41
+ fontSize "1.22rem"
42
+ fontWeight "600"
43
+ letterSpacing "-0.01em"
44
+ margin "0 0 0.5rem"
45
+ color "var(--color-text-primary)"
46
+ }
47
+ }
48
+ p "${state.text}" {
49
+ style {
50
+ margin "0"
51
+ color "var(--color-text-muted)"
52
+ fontSize "0.98rem"
53
+ lineHeight "1.65"
54
+ maxWidth "46ch"
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,43 @@
1
+ /- kdl-version 2
2
+
3
+ sa-feature-split {
4
+ state {
5
+ image type=string format=image default=""
6
+ imageAlt ""
7
+ reverse #false
8
+ }
9
+ style display=block padding="clamp(3rem, 7vw, 5rem) 1.5rem"
10
+ div {
11
+ style {
12
+ maxWidth "var(--max-width)"
13
+ margin "0 auto"
14
+ display grid
15
+ gridTemplateColumns "1fr 1fr"
16
+ gap "clamp(2rem, 5vw, 4rem)"
17
+ alignItems center
18
+ @--md gridTemplateColumns="1fr"
19
+ }
20
+ div {
21
+ style order="${state.reverse ? '2' : '1'}"
22
+ img src="${state.image}" alt="${state.imageAlt}" loading=lazy {
23
+ style {
24
+ width "100%"
25
+ height auto
26
+ borderRadius "var(--radius)"
27
+ display block
28
+ border "1px solid var(--color-border)"
29
+ boxShadow "0 18px 48px rgba(20, 20, 43, 0.12)"
30
+ }
31
+ }
32
+ }
33
+ div {
34
+ style {
35
+ order "${state.reverse ? '1' : '2'}"
36
+ fontSize "1.05rem"
37
+ lineHeight "1.75"
38
+ color "var(--color-text-primary)"
39
+ }
40
+ slot
41
+ }
42
+ }
43
+ }