@jxsuite/starters 3.3.2 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. package/package.json +5 -5
  2. package/sites/blog/components/bl-author-bio.jxn +64 -0
  3. package/sites/blog/components/bl-contact-form.jxn +77 -0
  4. package/sites/blog/components/bl-contact-info.jxn +32 -0
  5. package/sites/blog/components/bl-cta.jxn +52 -0
  6. package/sites/blog/components/bl-footer.jxn +85 -0
  7. package/sites/blog/components/bl-masthead.jxn +111 -0
  8. package/sites/blog/components/bl-nav.jxn +62 -0
  9. package/sites/blog/components/bl-newsletter-cta.jxn +104 -0
  10. package/sites/blog/components/bl-post-card.jxn +106 -0
  11. package/sites/blog/components/bl-post-list.jxn +11 -0
  12. package/sites/blog/components/bl-prose.jxn +67 -0
  13. package/sites/blog/components/bl-section-header.jxn +52 -0
  14. package/sites/blog/components/bl-tag-pill.jxn +19 -0
  15. package/sites/blog/document.schema.json +11 -2
  16. package/sites/blog/layouts/base.jxn +17 -0
  17. package/sites/blog/layouts/post.jxn +13 -0
  18. package/sites/blog/package.json +3 -3
  19. package/sites/blog/pages/[slug].jxn +107 -0
  20. package/sites/blog/project.jxn +86 -0
  21. package/sites/course/components/co-application.jxn +106 -0
  22. package/sites/course/components/co-cohort.jxn +132 -0
  23. package/sites/course/components/co-cta.jxn +95 -0
  24. package/sites/course/components/co-curriculum-accordion.jxn +917 -0
  25. package/sites/course/components/co-faq.jxn +348 -0
  26. package/sites/course/components/co-footer.jxn +138 -0
  27. package/sites/course/components/co-hero.jxn +354 -0
  28. package/sites/course/components/co-instructor-card.jxn +128 -0
  29. package/sites/course/components/co-mentor.jxn +51 -0
  30. package/sites/course/components/co-module-card.jxn +101 -0
  31. package/sites/course/components/co-nav.jxn +172 -0
  32. package/sites/course/components/co-outcome-card.jxn +57 -0
  33. package/sites/course/components/co-outcomes.jxn +179 -0
  34. package/sites/course/components/co-pricing.jxn +145 -0
  35. package/sites/course/components/co-section-header.jxn +55 -0
  36. package/sites/course/components/co-testimonial-card.jxn +69 -0
  37. package/sites/course/document.schema.json +11 -2
  38. package/sites/course/layouts/base.jxn +17 -0
  39. package/sites/course/package.json +3 -3
  40. package/sites/course/project.jxn +94 -0
  41. package/sites/event/components/ev-agenda-tabs.jxn +663 -0
  42. package/sites/event/components/ev-cta.jxn +93 -0
  43. package/sites/event/components/ev-feature.jxn +46 -0
  44. package/sites/event/components/ev-footer.jxn +135 -0
  45. package/sites/event/components/ev-hero.jxn +323 -0
  46. package/sites/event/components/ev-nav.jxn +142 -0
  47. package/sites/event/components/ev-reason.jxn +50 -0
  48. package/sites/event/components/ev-savedate.jxn +268 -0
  49. package/sites/event/components/ev-section-header.jxn +51 -0
  50. package/sites/event/components/ev-session-row.jxn +103 -0
  51. package/sites/event/components/ev-speaker-card.jxn +104 -0
  52. package/sites/event/components/ev-sponsors.jxn +110 -0
  53. package/sites/event/components/ev-stat.jxn +39 -0
  54. package/sites/event/components/ev-ticket-card.jxn +169 -0
  55. package/sites/event/components/ev-venue.jxn +61 -0
  56. package/sites/event/document.schema.json +11 -2
  57. package/sites/event/layouts/base.jxn +12 -0
  58. package/sites/event/package.json +3 -3
  59. package/sites/event/project.jxn +114 -0
  60. package/sites/fitness-studio/components/fs-band.jxn +119 -0
  61. package/sites/fitness-studio/components/fs-booking.jxn +92 -0
  62. package/sites/fitness-studio/components/fs-class-card.jxn +103 -0
  63. package/sites/fitness-studio/components/fs-class-grid.jxn +23 -0
  64. package/sites/fitness-studio/components/fs-cta.jxn +81 -0
  65. package/sites/fitness-studio/components/fs-feature.jxn +40 -0
  66. package/sites/fitness-studio/components/fs-footer.jxn +116 -0
  67. package/sites/fitness-studio/components/fs-hero.jxn +290 -0
  68. package/sites/fitness-studio/components/fs-hours.jxn +78 -0
  69. package/sites/fitness-studio/components/fs-instructor-card.jxn +104 -0
  70. package/sites/fitness-studio/components/fs-intro.jxn +231 -0
  71. package/sites/fitness-studio/components/fs-modality.jxn +133 -0
  72. package/sites/fitness-studio/components/fs-nav.jxn +95 -0
  73. package/sites/fitness-studio/components/fs-pricing-card.jxn +190 -0
  74. package/sites/fitness-studio/components/fs-pricing-table.jxn +322 -0
  75. package/sites/fitness-studio/components/fs-review.jxn +59 -0
  76. package/sites/fitness-studio/components/fs-schedule.jxn +714 -0
  77. package/sites/fitness-studio/components/fs-section-header.jxn +55 -0
  78. package/sites/fitness-studio/document.schema.json +11 -2
  79. package/sites/fitness-studio/layouts/base.jxn +17 -0
  80. package/sites/fitness-studio/package.json +3 -3
  81. package/sites/fitness-studio/project.jxn +124 -0
  82. package/sites/home-services/components/hs-callbar.jxn +60 -0
  83. package/sites/home-services/components/hs-cta.jxn +139 -0
  84. package/sites/home-services/components/hs-feature.jxn +43 -0
  85. package/sites/home-services/components/hs-footer.jxn +169 -0
  86. package/sites/home-services/components/hs-gallery.jxn +51 -0
  87. package/sites/home-services/components/hs-hero.jxn +308 -0
  88. package/sites/home-services/components/hs-intro.jxn +97 -0
  89. package/sites/home-services/components/hs-nav.jxn +207 -0
  90. package/sites/home-services/components/hs-reservation.jxn +125 -0
  91. package/sites/home-services/components/hs-review.jxn +84 -0
  92. package/sites/home-services/components/hs-section-header.jxn +56 -0
  93. package/sites/home-services/components/hs-service-card.jxn +68 -0
  94. package/sites/home-services/components/hs-stat.jxn +40 -0
  95. package/sites/home-services/components/hs-step.jxn +67 -0
  96. package/sites/home-services/components/hs-trust-bar.jxn +183 -0
  97. package/sites/home-services/document.schema.json +11 -2
  98. package/sites/home-services/layouts/base.jxn +22 -0
  99. package/sites/home-services/package.json +3 -3
  100. package/sites/home-services/project.jxn +113 -0
  101. package/sites/museum/components/mu-band.jxn +63 -0
  102. package/sites/museum/components/mu-cta.jxn +76 -0
  103. package/sites/museum/components/mu-exhibition-card.jxn +118 -0
  104. package/sites/museum/components/mu-exhibition-row.jxn +142 -0
  105. package/sites/museum/components/mu-fact.jxn +40 -0
  106. package/sites/museum/components/mu-footer.jxn +206 -0
  107. package/sites/museum/components/mu-hero.jxn +165 -0
  108. package/sites/museum/components/mu-more.jxn +30 -0
  109. package/sites/museum/components/mu-oculus.jxn +33 -0
  110. package/sites/museum/components/mu-pagehead.jxn +76 -0
  111. package/sites/museum/components/mu-quote.jxn +36 -0
  112. package/sites/museum/document.schema.json +11 -2
  113. package/sites/museum/layouts/ar.jxn +31 -0
  114. package/sites/museum/layouts/base.jxn +227 -0
  115. package/sites/museum/layouts/fr-ca.jxn +30 -0
  116. package/sites/museum/package.json +3 -3
  117. package/sites/museum/pages/about.jxn +228 -0
  118. package/sites/museum/pages/ar/about.jxn +232 -0
  119. package/sites/museum/pages/ar/exhibitions/[slug].jxn +150 -0
  120. package/sites/museum/pages/ar/exhibitions/index.jxn +82 -0
  121. package/sites/museum/pages/ar/index.jxn +206 -0
  122. package/sites/museum/pages/ar/visit.jxn +270 -0
  123. package/sites/museum/pages/exhibitions/[slug].jxn +146 -0
  124. package/sites/museum/pages/exhibitions/index.jxn +78 -0
  125. package/sites/museum/pages/fr-ca/a-propos.jxn +233 -0
  126. package/sites/museum/pages/fr-ca/expositions/[slug].jxn +151 -0
  127. package/sites/museum/pages/fr-ca/expositions/index.jxn +83 -0
  128. package/sites/museum/pages/fr-ca/index.jxn +206 -0
  129. package/sites/museum/pages/fr-ca/visite.jxn +271 -0
  130. package/sites/museum/pages/index.jxn +202 -0
  131. package/sites/museum/pages/visit.jxn +266 -0
  132. package/sites/museum/project.jxn +130 -0
  133. package/sites/nonprofit/components/np-contact-form.jxn +97 -0
  134. package/sites/nonprofit/components/np-contact-info.jxn +104 -0
  135. package/sites/nonprofit/components/np-cta.jxn +163 -0
  136. package/sites/nonprofit/components/np-donate-tier.jxn +103 -0
  137. package/sites/nonprofit/components/np-feature.jxn +46 -0
  138. package/sites/nonprofit/components/np-footer.jxn +194 -0
  139. package/sites/nonprofit/components/np-hero.jxn +275 -0
  140. package/sites/nonprofit/components/np-impact-band.jxn +83 -0
  141. package/sites/nonprofit/components/np-intro.jxn +130 -0
  142. package/sites/nonprofit/components/np-nav.jxn +157 -0
  143. package/sites/nonprofit/components/np-program-card.jxn +95 -0
  144. package/sites/nonprofit/components/np-section-header.jxn +63 -0
  145. package/sites/nonprofit/components/np-stat.jxn +51 -0
  146. package/sites/nonprofit/components/np-step.jxn +73 -0
  147. package/sites/nonprofit/components/np-team-member.jxn +60 -0
  148. package/sites/nonprofit/components/np-testimonial.jxn +120 -0
  149. package/sites/nonprofit/document.schema.json +11 -2
  150. package/sites/nonprofit/layouts/base.jxn +17 -0
  151. package/sites/nonprofit/package.json +3 -3
  152. package/sites/nonprofit/project.jxn +99 -0
  153. package/sites/portfolio/components/pv-about-split.jxn +53 -0
  154. package/sites/portfolio/components/pv-category-pill.jxn +19 -0
  155. package/sites/portfolio/components/pv-contact-form.jxn +72 -0
  156. package/sites/portfolio/components/pv-cta.jxn +62 -0
  157. package/sites/portfolio/components/pv-feature.jxn +28 -0
  158. package/sites/portfolio/components/pv-footer.jxn +113 -0
  159. package/sites/portfolio/components/pv-gallery.jxn +40 -0
  160. package/sites/portfolio/components/pv-hero.jxn +109 -0
  161. package/sites/portfolio/components/pv-nav.jxn +76 -0
  162. package/sites/portfolio/components/pv-project-card.jxn +118 -0
  163. package/sites/portfolio/components/pv-project-grid.jxn +29 -0
  164. package/sites/portfolio/components/pv-section-header.jxn +65 -0
  165. package/sites/portfolio/document.schema.json +11 -2
  166. package/sites/portfolio/layouts/base.jxn +12 -0
  167. package/sites/portfolio/package.json +3 -3
  168. package/sites/portfolio/pages/[slug].jxn +177 -0
  169. package/sites/portfolio/project.jxn +85 -0
  170. package/sites/professional-firm/components/pf-article-header.jxn +60 -0
  171. package/sites/professional-firm/components/pf-contact-form.jxn +74 -0
  172. package/sites/professional-firm/components/pf-contact-info.jxn +101 -0
  173. package/sites/professional-firm/components/pf-cta.jxn +63 -0
  174. package/sites/professional-firm/components/pf-feature.jxn +32 -0
  175. package/sites/professional-firm/components/pf-footer.jxn +171 -0
  176. package/sites/professional-firm/components/pf-hero.jxn +139 -0
  177. package/sites/professional-firm/components/pf-insight-row.jxn +111 -0
  178. package/sites/professional-firm/components/pf-intro.jxn +68 -0
  179. package/sites/professional-firm/components/pf-logo-bar.jxn +90 -0
  180. package/sites/professional-firm/components/pf-nav.jxn +93 -0
  181. package/sites/professional-firm/components/pf-section-header.jxn +53 -0
  182. package/sites/professional-firm/components/pf-service-row.jxn +67 -0
  183. package/sites/professional-firm/components/pf-statband.jxn +135 -0
  184. package/sites/professional-firm/components/pf-team-member.jxn +53 -0
  185. package/sites/professional-firm/document.schema.json +11 -2
  186. package/sites/professional-firm/layouts/article.jxn +88 -0
  187. package/sites/professional-firm/layouts/base.jxn +12 -0
  188. package/sites/professional-firm/package.json +3 -3
  189. package/sites/professional-firm/pages/insights/[slug].jxn +106 -0
  190. package/sites/professional-firm/project.jxn +94 -0
  191. package/sites/real-estate/components/re-agent-band.jxn +165 -0
  192. package/sites/real-estate/components/re-agent-card.jxn +78 -0
  193. package/sites/real-estate/components/re-contact-form.jxn +119 -0
  194. package/sites/real-estate/components/re-cta.jxn +98 -0
  195. package/sites/real-estate/components/re-detail-row.jxn +18 -0
  196. package/sites/real-estate/components/re-feature.jxn +41 -0
  197. package/sites/real-estate/components/re-footer.jxn +219 -0
  198. package/sites/real-estate/components/re-hero.jxn +367 -0
  199. package/sites/real-estate/components/re-intro.jxn +43 -0
  200. package/sites/real-estate/components/re-listing-card.jxn +210 -0
  201. package/sites/real-estate/components/re-listings-filter.jxn +371 -0
  202. package/sites/real-estate/components/re-nav.jxn +162 -0
  203. package/sites/real-estate/components/re-neighborhood.jxn +101 -0
  204. package/sites/real-estate/components/re-section-header.jxn +55 -0
  205. package/sites/real-estate/components/re-stat.jxn +26 -0
  206. package/sites/real-estate/components/re-step.jxn +42 -0
  207. package/sites/real-estate/components/re-testimonial.jxn +66 -0
  208. package/sites/real-estate/document.schema.json +11 -2
  209. package/sites/real-estate/layouts/base.jxn +17 -0
  210. package/sites/real-estate/package.json +3 -3
  211. package/sites/real-estate/pages/[slug].jxn +452 -0
  212. package/sites/real-estate/project.jxn +103 -0
  213. package/sites/restaurant/components/bit-cta.jxn +105 -0
  214. package/sites/restaurant/components/bit-feature.jxn +38 -0
  215. package/sites/restaurant/components/bit-footer.jxn +142 -0
  216. package/sites/restaurant/components/bit-gallery.jxn +50 -0
  217. package/sites/restaurant/components/bit-hero.jxn +194 -0
  218. package/sites/restaurant/components/bit-hours.jxn +145 -0
  219. package/sites/restaurant/components/bit-intro.jxn +75 -0
  220. package/sites/restaurant/components/bit-menu-group.jxn +51 -0
  221. package/sites/restaurant/components/bit-menu-item.jxn +50 -0
  222. package/sites/restaurant/components/bit-nav.jxn +145 -0
  223. package/sites/restaurant/components/bit-reservation.jxn +90 -0
  224. package/sites/restaurant/components/bit-review.jxn +54 -0
  225. package/sites/restaurant/components/bit-section-header.jxn +73 -0
  226. package/sites/restaurant/document.schema.json +11 -2
  227. package/sites/restaurant/layouts/base.jxn +17 -0
  228. package/sites/restaurant/package.json +3 -3
  229. package/sites/restaurant/project.jxn +93 -0
  230. package/sites/saas/components/sa-check-item.jxn +25 -0
  231. package/sites/saas/components/sa-contact-form.jxn +94 -0
  232. package/sites/saas/components/sa-cta.jxn +68 -0
  233. package/sites/saas/components/sa-faq.jxn +347 -0
  234. package/sites/saas/components/sa-feature-card.jxn +57 -0
  235. package/sites/saas/components/sa-feature-split.jxn +43 -0
  236. package/sites/saas/components/sa-footer.jxn +106 -0
  237. package/sites/saas/components/sa-hero.jxn +217 -0
  238. package/sites/saas/components/sa-logo-cloud.jxn +98 -0
  239. package/sites/saas/components/sa-nav.jxn +108 -0
  240. package/sites/saas/components/sa-pricing.jxn +317 -0
  241. package/sites/saas/components/sa-section-header.jxn +43 -0
  242. package/sites/saas/components/sa-stat.jxn +32 -0
  243. package/sites/saas/components/sa-testimonial-card.jxn +37 -0
  244. package/sites/saas/document.schema.json +11 -2
  245. package/sites/saas/layouts/base.jxn +17 -0
  246. package/sites/saas/package.json +3 -3
  247. package/sites/saas/project.jxn +119 -0
  248. package/sites/shop/components/shp-badge.jxn +17 -0
  249. package/sites/shop/components/shp-category-tile.jxn +79 -0
  250. package/sites/shop/components/shp-contact-form.jxn +84 -0
  251. package/sites/shop/components/shp-cta.jxn +85 -0
  252. package/sites/shop/components/shp-feature.jxn +44 -0
  253. package/sites/shop/components/shp-footer.jxn +311 -0
  254. package/sites/shop/components/shp-hero.jxn +311 -0
  255. package/sites/shop/components/shp-intro.jxn +42 -0
  256. package/sites/shop/components/shp-nav.jxn +273 -0
  257. package/sites/shop/components/shp-newsletter.jxn +119 -0
  258. package/sites/shop/components/shp-product-card.jxn +187 -0
  259. package/sites/shop/components/shp-product-filter.jxn +263 -0
  260. package/sites/shop/components/shp-review.jxn +38 -0
  261. package/sites/shop/components/shp-section-header.jxn +61 -0
  262. package/sites/shop/components/shp-service.jxn +58 -0
  263. package/sites/shop/components/shp-stat.jxn +27 -0
  264. package/sites/shop/components/shp-trust.jxn +39 -0
  265. package/sites/shop/components/shp-visit-info.jxn +82 -0
  266. package/sites/shop/document.schema.json +11 -2
  267. package/sites/shop/layouts/base.jxn +17 -0
  268. package/sites/shop/package.json +3 -3
  269. package/sites/shop/pages/products/[sku].jxn +351 -0
  270. package/sites/shop/project.jxn +100 -0
  271. package/sites/blog/components/bl-author-bio.json +0 -86
  272. package/sites/blog/components/bl-contact-form.json +0 -114
  273. package/sites/blog/components/bl-contact-info.json +0 -54
  274. package/sites/blog/components/bl-cta.json +0 -68
  275. package/sites/blog/components/bl-footer.json +0 -122
  276. package/sites/blog/components/bl-masthead.json +0 -134
  277. package/sites/blog/components/bl-nav.json +0 -90
  278. package/sites/blog/components/bl-newsletter-cta.json +0 -134
  279. package/sites/blog/components/bl-post-card.json +0 -132
  280. package/sites/blog/components/bl-post-list.json +0 -10
  281. package/sites/blog/components/bl-prose.json +0 -89
  282. package/sites/blog/components/bl-section-header.json +0 -70
  283. package/sites/blog/components/bl-tag-pill.json +0 -29
  284. package/sites/blog/layouts/base.json +0 -22
  285. package/sites/blog/layouts/post.json +0 -15
  286. package/sites/blog/pages/[slug].json +0 -148
  287. package/sites/blog/project.json +0 -140
  288. package/sites/course/components/co-application.json +0 -225
  289. package/sites/course/components/co-cohort.json +0 -172
  290. package/sites/course/components/co-cta.json +0 -126
  291. package/sites/course/components/co-curriculum-accordion.json +0 -1476
  292. package/sites/course/components/co-faq.json +0 -524
  293. package/sites/course/components/co-footer.json +0 -195
  294. package/sites/course/components/co-hero.json +0 -475
  295. package/sites/course/components/co-instructor-card.json +0 -159
  296. package/sites/course/components/co-mentor.json +0 -65
  297. package/sites/course/components/co-module-card.json +0 -138
  298. package/sites/course/components/co-nav.json +0 -244
  299. package/sites/course/components/co-outcome-card.json +0 -84
  300. package/sites/course/components/co-outcomes.json +0 -248
  301. package/sites/course/components/co-pricing.json +0 -178
  302. package/sites/course/components/co-section-header.json +0 -74
  303. package/sites/course/components/co-testimonial-card.json +0 -109
  304. package/sites/course/layouts/base.json +0 -22
  305. package/sites/course/project.json +0 -141
  306. package/sites/event/components/ev-agenda-tabs.json +0 -828
  307. package/sites/event/components/ev-cta.json +0 -126
  308. package/sites/event/components/ev-feature.json +0 -62
  309. package/sites/event/components/ev-footer.json +0 -197
  310. package/sites/event/components/ev-hero.json +0 -431
  311. package/sites/event/components/ev-nav.json +0 -186
  312. package/sites/event/components/ev-reason.json +0 -64
  313. package/sites/event/components/ev-savedate.json +0 -331
  314. package/sites/event/components/ev-section-header.json +0 -70
  315. package/sites/event/components/ev-session-row.json +0 -132
  316. package/sites/event/components/ev-speaker-card.json +0 -130
  317. package/sites/event/components/ev-sponsors.json +0 -131
  318. package/sites/event/components/ev-stat.json +0 -47
  319. package/sites/event/components/ev-ticket-card.json +0 -214
  320. package/sites/event/components/ev-venue.json +0 -86
  321. package/sites/event/layouts/base.json +0 -22
  322. package/sites/event/project.json +0 -163
  323. package/sites/fitness-studio/components/fs-band.json +0 -149
  324. package/sites/fitness-studio/components/fs-booking.json +0 -147
  325. package/sites/fitness-studio/components/fs-class-card.json +0 -143
  326. package/sites/fitness-studio/components/fs-class-grid.json +0 -36
  327. package/sites/fitness-studio/components/fs-cta.json +0 -106
  328. package/sites/fitness-studio/components/fs-feature.json +0 -56
  329. package/sites/fitness-studio/components/fs-footer.json +0 -178
  330. package/sites/fitness-studio/components/fs-hero.json +0 -375
  331. package/sites/fitness-studio/components/fs-hours.json +0 -109
  332. package/sites/fitness-studio/components/fs-instructor-card.json +0 -136
  333. package/sites/fitness-studio/components/fs-intro.json +0 -294
  334. package/sites/fitness-studio/components/fs-modality.json +0 -171
  335. package/sites/fitness-studio/components/fs-nav.json +0 -128
  336. package/sites/fitness-studio/components/fs-pricing-card.json +0 -243
  337. package/sites/fitness-studio/components/fs-pricing-table.json +0 -458
  338. package/sites/fitness-studio/components/fs-review.json +0 -88
  339. package/sites/fitness-studio/components/fs-schedule.json +0 -1165
  340. package/sites/fitness-studio/components/fs-section-header.json +0 -77
  341. package/sites/fitness-studio/layouts/base.json +0 -22
  342. package/sites/fitness-studio/project.json +0 -175
  343. package/sites/home-services/components/hs-callbar.json +0 -72
  344. package/sites/home-services/components/hs-cta.json +0 -184
  345. package/sites/home-services/components/hs-feature.json +0 -62
  346. package/sites/home-services/components/hs-footer.json +0 -232
  347. package/sites/home-services/components/hs-gallery.json +0 -104
  348. package/sites/home-services/components/hs-hero.json +0 -446
  349. package/sites/home-services/components/hs-intro.json +0 -122
  350. package/sites/home-services/components/hs-nav.json +0 -278
  351. package/sites/home-services/components/hs-reservation.json +0 -225
  352. package/sites/home-services/components/hs-review.json +0 -114
  353. package/sites/home-services/components/hs-section-header.json +0 -70
  354. package/sites/home-services/components/hs-service-card.json +0 -89
  355. package/sites/home-services/components/hs-stat.json +0 -54
  356. package/sites/home-services/components/hs-step.json +0 -80
  357. package/sites/home-services/components/hs-trust-bar.json +0 -256
  358. package/sites/home-services/layouts/base.json +0 -24
  359. package/sites/home-services/project.json +0 -160
  360. package/sites/museum/components/mu-band.json +0 -92
  361. package/sites/museum/components/mu-cta.json +0 -101
  362. package/sites/museum/components/mu-exhibition-card.json +0 -191
  363. package/sites/museum/components/mu-exhibition-row.json +0 -237
  364. package/sites/museum/components/mu-fact.json +0 -64
  365. package/sites/museum/components/mu-footer.json +0 -256
  366. package/sites/museum/components/mu-hero.json +0 -236
  367. package/sites/museum/components/mu-more.json +0 -63
  368. package/sites/museum/components/mu-oculus.json +0 -44
  369. package/sites/museum/components/mu-pagehead.json +0 -105
  370. package/sites/museum/components/mu-quote.json +0 -49
  371. package/sites/museum/layouts/ar.json +0 -29
  372. package/sites/museum/layouts/base.json +0 -329
  373. package/sites/museum/layouts/fr-ca.json +0 -28
  374. package/sites/museum/pages/about.json +0 -378
  375. package/sites/museum/pages/ar/about.json +0 -314
  376. package/sites/museum/pages/ar/exhibitions/[slug].json +0 -211
  377. package/sites/museum/pages/ar/exhibitions/index.json +0 -103
  378. package/sites/museum/pages/ar/index.json +0 -246
  379. package/sites/museum/pages/ar/visit.json +0 -327
  380. package/sites/museum/pages/exhibitions/[slug].json +0 -200
  381. package/sites/museum/pages/exhibitions/index.json +0 -93
  382. package/sites/museum/pages/fr-ca/a-propos.json +0 -313
  383. package/sites/museum/pages/fr-ca/expositions/[slug].json +0 -215
  384. package/sites/museum/pages/fr-ca/expositions/index.json +0 -104
  385. package/sites/museum/pages/fr-ca/index.json +0 -246
  386. package/sites/museum/pages/fr-ca/visite.json +0 -328
  387. package/sites/museum/pages/index.json +0 -236
  388. package/sites/museum/pages/visit.json +0 -317
  389. package/sites/museum/project.json +0 -179
  390. package/sites/nonprofit/components/np-contact-form.json +0 -162
  391. package/sites/nonprofit/components/np-contact-info.json +0 -159
  392. package/sites/nonprofit/components/np-cta.json +0 -203
  393. package/sites/nonprofit/components/np-donate-tier.json +0 -116
  394. package/sites/nonprofit/components/np-feature.json +0 -57
  395. package/sites/nonprofit/components/np-footer.json +0 -257
  396. package/sites/nonprofit/components/np-hero.json +0 -360
  397. package/sites/nonprofit/components/np-impact-band.json +0 -108
  398. package/sites/nonprofit/components/np-intro.json +0 -166
  399. package/sites/nonprofit/components/np-nav.json +0 -216
  400. package/sites/nonprofit/components/np-program-card.json +0 -129
  401. package/sites/nonprofit/components/np-section-header.json +0 -79
  402. package/sites/nonprofit/components/np-stat.json +0 -69
  403. package/sites/nonprofit/components/np-step.json +0 -84
  404. package/sites/nonprofit/components/np-team-member.json +0 -74
  405. package/sites/nonprofit/components/np-testimonial.json +0 -169
  406. package/sites/nonprofit/layouts/base.json +0 -22
  407. package/sites/nonprofit/project.json +0 -147
  408. package/sites/portfolio/components/pv-about-split.json +0 -71
  409. package/sites/portfolio/components/pv-category-pill.json +0 -25
  410. package/sites/portfolio/components/pv-contact-form.json +0 -126
  411. package/sites/portfolio/components/pv-cta.json +0 -80
  412. package/sites/portfolio/components/pv-feature.json +0 -48
  413. package/sites/portfolio/components/pv-footer.json +0 -167
  414. package/sites/portfolio/components/pv-gallery.json +0 -50
  415. package/sites/portfolio/components/pv-hero.json +0 -139
  416. package/sites/portfolio/components/pv-nav.json +0 -100
  417. package/sites/portfolio/components/pv-project-card.json +0 -160
  418. package/sites/portfolio/components/pv-project-grid.json +0 -30
  419. package/sites/portfolio/components/pv-section-header.json +0 -90
  420. package/sites/portfolio/layouts/base.json +0 -22
  421. package/sites/portfolio/pages/[slug].json +0 -260
  422. package/sites/portfolio/project.json +0 -137
  423. package/sites/professional-firm/components/pf-article-header.json +0 -93
  424. package/sites/professional-firm/components/pf-contact-form.json +0 -146
  425. package/sites/professional-firm/components/pf-contact-info.json +0 -147
  426. package/sites/professional-firm/components/pf-cta.json +0 -86
  427. package/sites/professional-firm/components/pf-feature.json +0 -52
  428. package/sites/professional-firm/components/pf-footer.json +0 -231
  429. package/sites/professional-firm/components/pf-hero.json +0 -174
  430. package/sites/professional-firm/components/pf-insight-row.json +0 -144
  431. package/sites/professional-firm/components/pf-intro.json +0 -93
  432. package/sites/professional-firm/components/pf-logo-bar.json +0 -113
  433. package/sites/professional-firm/components/pf-nav.json +0 -135
  434. package/sites/professional-firm/components/pf-section-header.json +0 -77
  435. package/sites/professional-firm/components/pf-service-row.json +0 -104
  436. package/sites/professional-firm/components/pf-statband.json +0 -183
  437. package/sites/professional-firm/components/pf-team-member.json +0 -75
  438. package/sites/professional-firm/layouts/article.json +0 -130
  439. package/sites/professional-firm/layouts/base.json +0 -22
  440. package/sites/professional-firm/pages/insights/[slug].json +0 -129
  441. package/sites/professional-firm/project.json +0 -145
  442. package/sites/real-estate/components/re-agent-band.json +0 -240
  443. package/sites/real-estate/components/re-agent-card.json +0 -93
  444. package/sites/real-estate/components/re-contact-form.json +0 -181
  445. package/sites/real-estate/components/re-cta.json +0 -128
  446. package/sites/real-estate/components/re-detail-row.json +0 -26
  447. package/sites/real-estate/components/re-feature.json +0 -57
  448. package/sites/real-estate/components/re-footer.json +0 -291
  449. package/sites/real-estate/components/re-hero.json +0 -536
  450. package/sites/real-estate/components/re-intro.json +0 -60
  451. package/sites/real-estate/components/re-listing-card.json +0 -286
  452. package/sites/real-estate/components/re-listings-filter.json +0 -454
  453. package/sites/real-estate/components/re-nav.json +0 -216
  454. package/sites/real-estate/components/re-neighborhood.json +0 -135
  455. package/sites/real-estate/components/re-section-header.json +0 -69
  456. package/sites/real-estate/components/re-stat.json +0 -37
  457. package/sites/real-estate/components/re-step.json +0 -58
  458. package/sites/real-estate/components/re-testimonial.json +0 -91
  459. package/sites/real-estate/layouts/base.json +0 -22
  460. package/sites/real-estate/pages/[slug].json +0 -629
  461. package/sites/real-estate/project.json +0 -163
  462. package/sites/restaurant/components/bit-cta.json +0 -140
  463. package/sites/restaurant/components/bit-feature.json +0 -61
  464. package/sites/restaurant/components/bit-footer.json +0 -191
  465. package/sites/restaurant/components/bit-gallery.json +0 -74
  466. package/sites/restaurant/components/bit-hero.json +0 -253
  467. package/sites/restaurant/components/bit-hours.json +0 -183
  468. package/sites/restaurant/components/bit-intro.json +0 -96
  469. package/sites/restaurant/components/bit-menu-group.json +0 -74
  470. package/sites/restaurant/components/bit-menu-item.json +0 -72
  471. package/sites/restaurant/components/bit-nav.json +0 -214
  472. package/sites/restaurant/components/bit-reservation.json +0 -155
  473. package/sites/restaurant/components/bit-review.json +0 -84
  474. package/sites/restaurant/components/bit-section-header.json +0 -98
  475. package/sites/restaurant/layouts/base.json +0 -22
  476. package/sites/restaurant/project.json +0 -145
  477. package/sites/saas/components/sa-check-item.json +0 -40
  478. package/sites/saas/components/sa-contact-form.json +0 -153
  479. package/sites/saas/components/sa-cta.json +0 -102
  480. package/sites/saas/components/sa-faq.json +0 -413
  481. package/sites/saas/components/sa-feature-card.json +0 -69
  482. package/sites/saas/components/sa-feature-split.json +0 -60
  483. package/sites/saas/components/sa-footer.json +0 -145
  484. package/sites/saas/components/sa-hero.json +0 -277
  485. package/sites/saas/components/sa-logo-cloud.json +0 -119
  486. package/sites/saas/components/sa-nav.json +0 -138
  487. package/sites/saas/components/sa-pricing.json +0 -428
  488. package/sites/saas/components/sa-section-header.json +0 -55
  489. package/sites/saas/components/sa-stat.json +0 -44
  490. package/sites/saas/components/sa-testimonial-card.json +0 -57
  491. package/sites/saas/layouts/base.json +0 -22
  492. package/sites/saas/project.json +0 -166
  493. package/sites/shop/components/shp-badge.json +0 -18
  494. package/sites/shop/components/shp-category-tile.json +0 -104
  495. package/sites/shop/components/shp-contact-form.json +0 -156
  496. package/sites/shop/components/shp-cta.json +0 -121
  497. package/sites/shop/components/shp-feature.json +0 -60
  498. package/sites/shop/components/shp-footer.json +0 -411
  499. package/sites/shop/components/shp-hero.json +0 -395
  500. package/sites/shop/components/shp-intro.json +0 -59
  501. package/sites/shop/components/shp-nav.json +0 -358
  502. package/sites/shop/components/shp-newsletter.json +0 -166
  503. package/sites/shop/components/shp-product-card.json +0 -238
  504. package/sites/shop/components/shp-product-filter.json +0 -366
  505. package/sites/shop/components/shp-review.json +0 -54
  506. package/sites/shop/components/shp-section-header.json +0 -75
  507. package/sites/shop/components/shp-service.json +0 -83
  508. package/sites/shop/components/shp-stat.json +0 -37
  509. package/sites/shop/components/shp-trust.json +0 -58
  510. package/sites/shop/components/shp-visit-info.json +0 -132
  511. package/sites/shop/layouts/base.json +0 -22
  512. package/sites/shop/pages/products/[sku].json +0 -482
  513. package/sites/shop/project.json +0 -156
@@ -0,0 +1,917 @@
1
+ /- kdl-version 2
2
+
3
+ co-curriculum-accordion {
4
+ state {
5
+ open -1
6
+ toggle0 {
7
+ $expression {
8
+ operator "="
9
+ target (ref)"#/state/open"
10
+ value {
11
+ operator -
12
+ target 0
13
+ value {
14
+ operator *
15
+ target operator="===" target=(ref)"#/state/open" value=0
16
+ value 1
17
+ }
18
+ }
19
+ }
20
+ }
21
+ toggle1 {
22
+ $expression {
23
+ operator "="
24
+ target (ref)"#/state/open"
25
+ value {
26
+ operator -
27
+ target 1
28
+ value {
29
+ operator *
30
+ target operator="===" target=(ref)"#/state/open" value=1
31
+ value 2
32
+ }
33
+ }
34
+ }
35
+ }
36
+ toggle2 {
37
+ $expression {
38
+ operator "="
39
+ target (ref)"#/state/open"
40
+ value {
41
+ operator -
42
+ target 2
43
+ value {
44
+ operator *
45
+ target operator="===" target=(ref)"#/state/open" value=2
46
+ value 3
47
+ }
48
+ }
49
+ }
50
+ }
51
+ toggle3 {
52
+ $expression {
53
+ operator "="
54
+ target (ref)"#/state/open"
55
+ value {
56
+ operator -
57
+ target 3
58
+ value {
59
+ operator *
60
+ target operator="===" target=(ref)"#/state/open" value=3
61
+ value 4
62
+ }
63
+ }
64
+ }
65
+ }
66
+ toggle4 {
67
+ $expression {
68
+ operator "="
69
+ target (ref)"#/state/open"
70
+ value {
71
+ operator -
72
+ target 4
73
+ value {
74
+ operator *
75
+ target operator="===" target=(ref)"#/state/open" value=4
76
+ value 5
77
+ }
78
+ }
79
+ }
80
+ }
81
+ toggle5 {
82
+ $expression {
83
+ operator "="
84
+ target (ref)"#/state/open"
85
+ value {
86
+ operator -
87
+ target 5
88
+ value {
89
+ operator *
90
+ target operator="===" target=(ref)"#/state/open" value=5
91
+ value 6
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ style {
98
+ display block
99
+ maxWidth "var(--max-width-narrow)"
100
+ margin "0 auto"
101
+ backgroundColor "var(--color-bg-white)"
102
+ border "1px solid var(--color-border)"
103
+ borderRadius "var(--radius)"
104
+ overflow hidden
105
+ boxShadow "0 12px 40px rgba(15,23,42,0.06)"
106
+ }
107
+ div {
108
+ style borderBottom="1px solid var(--color-border)"
109
+ button type=button aria-label="Toggle Foundations of the Web" onclick=(ref)"#/state/toggle0" {
110
+ style {
111
+ width "100%"
112
+ display flex
113
+ alignItems center
114
+ gap "1rem"
115
+ padding "1.1rem 1.35rem"
116
+ border none
117
+ background "${state.open === 0 ? 'rgba(79,70,229,0.06)' : 'transparent'}"
118
+ cursor pointer
119
+ textAlign left
120
+ font inherit
121
+ transition "background 0.15s"
122
+ }
123
+ span "1" {
124
+ style {
125
+ flex none
126
+ display inline-flex
127
+ alignItems center
128
+ justifyContent center
129
+ width "2.25rem"
130
+ height "2.25rem"
131
+ borderRadius "0.5rem"
132
+ backgroundColor "${state.open === 0 ? 'var(--color-primary)' : 'rgba(79,70,229,0.1)'}"
133
+ color "${state.open === 0 ? 'var(--color-text-white)' : 'var(--color-primary)'}"
134
+ fontFamily "var(--font-heading)"
135
+ fontWeight "800"
136
+ fontSize "1rem"
137
+ transition "background-color 0.15s, color 0.15s"
138
+ }
139
+ }
140
+ span {
141
+ style flex="1"
142
+ span "Foundations of the Web" {
143
+ style {
144
+ display block
145
+ fontFamily "var(--font-heading)"
146
+ fontSize "1.15rem"
147
+ fontWeight "700"
148
+ color "var(--color-text-primary)"
149
+ }
150
+ }
151
+ span "1 week" {
152
+ style {
153
+ display block
154
+ fontSize "0.85rem"
155
+ color "var(--color-text-muted)"
156
+ marginTop "0.15rem"
157
+ }
158
+ }
159
+ }
160
+ span "${state.open === 0 ? '−' : '+'}" {
161
+ style {
162
+ flex none
163
+ width "1.75rem"
164
+ height "1.75rem"
165
+ display inline-flex
166
+ alignItems center
167
+ justifyContent center
168
+ fontSize "1.4rem"
169
+ fontWeight "400"
170
+ color "var(--color-primary)"
171
+ lineHeight "1"
172
+ }
173
+ }
174
+ }
175
+ div {
176
+ style display="${state.open === 0 ? 'block' : 'none'}" padding="0.25rem 1.35rem 1.5rem"
177
+ ul {
178
+ style listStyle=none margin="0" padding="0"
179
+ li {
180
+ style {
181
+ padding "0.5rem 0"
182
+ borderTop "1px solid var(--color-border)"
183
+ color "var(--color-text-muted)"
184
+ fontSize "0.98rem"
185
+ display flex
186
+ gap "0.6rem"
187
+ alignItems baseline
188
+ }
189
+ span → {
190
+ style color="var(--color-primary)" fontWeight="700"
191
+ }
192
+ span "How the web works: DNS, HTTP & the browser"
193
+ }
194
+ li {
195
+ style {
196
+ padding "0.5rem 0"
197
+ borderTop "1px solid var(--color-border)"
198
+ color "var(--color-text-muted)"
199
+ fontSize "0.98rem"
200
+ display flex
201
+ gap "0.6rem"
202
+ alignItems baseline
203
+ }
204
+ span → {
205
+ style color="var(--color-primary)" fontWeight="700"
206
+ }
207
+ span "The command line & your dev environment"
208
+ }
209
+ li {
210
+ style {
211
+ padding "0.5rem 0"
212
+ borderTop "1px solid var(--color-border)"
213
+ color "var(--color-text-muted)"
214
+ fontSize "0.98rem"
215
+ display flex
216
+ gap "0.6rem"
217
+ alignItems baseline
218
+ }
219
+ span → {
220
+ style color="var(--color-primary)" fontWeight="700"
221
+ }
222
+ span "Version control with Git & GitHub"
223
+ }
224
+ li {
225
+ style {
226
+ padding "0.5rem 0"
227
+ borderTop "1px solid var(--color-border)"
228
+ color "var(--color-text-muted)"
229
+ fontSize "0.98rem"
230
+ display flex
231
+ gap "0.6rem"
232
+ alignItems baseline
233
+ }
234
+ span → {
235
+ style color="var(--color-primary)" fontWeight="700"
236
+ }
237
+ span "Your first deploy to the internet"
238
+ }
239
+ }
240
+ }
241
+ }
242
+ div {
243
+ style borderBottom="1px solid var(--color-border)"
244
+ button type=button aria-label="Toggle HTML & CSS" onclick=(ref)"#/state/toggle1" {
245
+ style {
246
+ width "100%"
247
+ display flex
248
+ alignItems center
249
+ gap "1rem"
250
+ padding "1.1rem 1.35rem"
251
+ border none
252
+ background "${state.open === 1 ? 'rgba(79,70,229,0.06)' : 'transparent'}"
253
+ cursor pointer
254
+ textAlign left
255
+ font inherit
256
+ transition "background 0.15s"
257
+ }
258
+ span "2" {
259
+ style {
260
+ flex none
261
+ display inline-flex
262
+ alignItems center
263
+ justifyContent center
264
+ width "2.25rem"
265
+ height "2.25rem"
266
+ borderRadius "0.5rem"
267
+ backgroundColor "${state.open === 1 ? 'var(--color-primary)' : 'rgba(79,70,229,0.1)'}"
268
+ color "${state.open === 1 ? 'var(--color-text-white)' : 'var(--color-primary)'}"
269
+ fontFamily "var(--font-heading)"
270
+ fontWeight "800"
271
+ fontSize "1rem"
272
+ transition "background-color 0.15s, color 0.15s"
273
+ }
274
+ }
275
+ span {
276
+ style flex="1"
277
+ span "HTML & CSS" {
278
+ style {
279
+ display block
280
+ fontFamily "var(--font-heading)"
281
+ fontSize "1.15rem"
282
+ fontWeight "700"
283
+ color "var(--color-text-primary)"
284
+ }
285
+ }
286
+ span "2 weeks" {
287
+ style {
288
+ display block
289
+ fontSize "0.85rem"
290
+ color "var(--color-text-muted)"
291
+ marginTop "0.15rem"
292
+ }
293
+ }
294
+ }
295
+ span "${state.open === 1 ? '−' : '+'}" {
296
+ style {
297
+ flex none
298
+ width "1.75rem"
299
+ height "1.75rem"
300
+ display inline-flex
301
+ alignItems center
302
+ justifyContent center
303
+ fontSize "1.4rem"
304
+ fontWeight "400"
305
+ color "var(--color-primary)"
306
+ lineHeight "1"
307
+ }
308
+ }
309
+ }
310
+ div {
311
+ style display="${state.open === 1 ? 'block' : 'none'}" padding="0.25rem 1.35rem 1.5rem"
312
+ ul {
313
+ style listStyle=none margin="0" padding="0"
314
+ li {
315
+ style {
316
+ padding "0.5rem 0"
317
+ borderTop "1px solid var(--color-border)"
318
+ color "var(--color-text-muted)"
319
+ fontSize "0.98rem"
320
+ display flex
321
+ gap "0.6rem"
322
+ alignItems baseline
323
+ }
324
+ span → {
325
+ style color="var(--color-primary)" fontWeight="700"
326
+ }
327
+ span "Semantic HTML & document structure"
328
+ }
329
+ li {
330
+ style {
331
+ padding "0.5rem 0"
332
+ borderTop "1px solid var(--color-border)"
333
+ color "var(--color-text-muted)"
334
+ fontSize "0.98rem"
335
+ display flex
336
+ gap "0.6rem"
337
+ alignItems baseline
338
+ }
339
+ span → {
340
+ style color="var(--color-primary)" fontWeight="700"
341
+ }
342
+ span "The box model & modern CSS layout"
343
+ }
344
+ li {
345
+ style {
346
+ padding "0.5rem 0"
347
+ borderTop "1px solid var(--color-border)"
348
+ color "var(--color-text-muted)"
349
+ fontSize "0.98rem"
350
+ display flex
351
+ gap "0.6rem"
352
+ alignItems baseline
353
+ }
354
+ span → {
355
+ style color="var(--color-primary)" fontWeight="700"
356
+ }
357
+ span "Flexbox & CSS Grid in depth"
358
+ }
359
+ li {
360
+ style {
361
+ padding "0.5rem 0"
362
+ borderTop "1px solid var(--color-border)"
363
+ color "var(--color-text-muted)"
364
+ fontSize "0.98rem"
365
+ display flex
366
+ gap "0.6rem"
367
+ alignItems baseline
368
+ }
369
+ span → {
370
+ style color="var(--color-primary)" fontWeight="700"
371
+ }
372
+ span "Responsive, accessible interfaces"
373
+ }
374
+ }
375
+ }
376
+ }
377
+ div {
378
+ style borderBottom="1px solid var(--color-border)"
379
+ button type=button aria-label="Toggle JavaScript Programming" onclick=(ref)"#/state/toggle2" {
380
+ style {
381
+ width "100%"
382
+ display flex
383
+ alignItems center
384
+ gap "1rem"
385
+ padding "1.1rem 1.35rem"
386
+ border none
387
+ background "${state.open === 2 ? 'rgba(79,70,229,0.06)' : 'transparent'}"
388
+ cursor pointer
389
+ textAlign left
390
+ font inherit
391
+ transition "background 0.15s"
392
+ }
393
+ span "3" {
394
+ style {
395
+ flex none
396
+ display inline-flex
397
+ alignItems center
398
+ justifyContent center
399
+ width "2.25rem"
400
+ height "2.25rem"
401
+ borderRadius "0.5rem"
402
+ backgroundColor "${state.open === 2 ? 'var(--color-primary)' : 'rgba(79,70,229,0.1)'}"
403
+ color "${state.open === 2 ? 'var(--color-text-white)' : 'var(--color-primary)'}"
404
+ fontFamily "var(--font-heading)"
405
+ fontWeight "800"
406
+ fontSize "1rem"
407
+ transition "background-color 0.15s, color 0.15s"
408
+ }
409
+ }
410
+ span {
411
+ style flex="1"
412
+ span "JavaScript Programming" {
413
+ style {
414
+ display block
415
+ fontFamily "var(--font-heading)"
416
+ fontSize "1.15rem"
417
+ fontWeight "700"
418
+ color "var(--color-text-primary)"
419
+ }
420
+ }
421
+ span "3 weeks" {
422
+ style {
423
+ display block
424
+ fontSize "0.85rem"
425
+ color "var(--color-text-muted)"
426
+ marginTop "0.15rem"
427
+ }
428
+ }
429
+ }
430
+ span "${state.open === 2 ? '−' : '+'}" {
431
+ style {
432
+ flex none
433
+ width "1.75rem"
434
+ height "1.75rem"
435
+ display inline-flex
436
+ alignItems center
437
+ justifyContent center
438
+ fontSize "1.4rem"
439
+ fontWeight "400"
440
+ color "var(--color-primary)"
441
+ lineHeight "1"
442
+ }
443
+ }
444
+ }
445
+ div {
446
+ style display="${state.open === 2 ? 'block' : 'none'}" padding="0.25rem 1.35rem 1.5rem"
447
+ ul {
448
+ style listStyle=none margin="0" padding="0"
449
+ li {
450
+ style {
451
+ padding "0.5rem 0"
452
+ borderTop "1px solid var(--color-border)"
453
+ color "var(--color-text-muted)"
454
+ fontSize "0.98rem"
455
+ display flex
456
+ gap "0.6rem"
457
+ alignItems baseline
458
+ }
459
+ span → {
460
+ style color="var(--color-primary)" fontWeight="700"
461
+ }
462
+ span "Language fundamentals & data structures"
463
+ }
464
+ li {
465
+ style {
466
+ padding "0.5rem 0"
467
+ borderTop "1px solid var(--color-border)"
468
+ color "var(--color-text-muted)"
469
+ fontSize "0.98rem"
470
+ display flex
471
+ gap "0.6rem"
472
+ alignItems baseline
473
+ }
474
+ span → {
475
+ style color="var(--color-primary)" fontWeight="700"
476
+ }
477
+ span "Functions, scope & the DOM"
478
+ }
479
+ li {
480
+ style {
481
+ padding "0.5rem 0"
482
+ borderTop "1px solid var(--color-border)"
483
+ color "var(--color-text-muted)"
484
+ fontSize "0.98rem"
485
+ display flex
486
+ gap "0.6rem"
487
+ alignItems baseline
488
+ }
489
+ span → {
490
+ style color="var(--color-primary)" fontWeight="700"
491
+ }
492
+ span "Events & form handling"
493
+ }
494
+ li {
495
+ style {
496
+ padding "0.5rem 0"
497
+ borderTop "1px solid var(--color-border)"
498
+ color "var(--color-text-muted)"
499
+ fontSize "0.98rem"
500
+ display flex
501
+ gap "0.6rem"
502
+ alignItems baseline
503
+ }
504
+ span → {
505
+ style color="var(--color-primary)" fontWeight="700"
506
+ }
507
+ span "Async, fetch & working with APIs"
508
+ }
509
+ }
510
+ }
511
+ }
512
+ div {
513
+ style borderBottom="1px solid var(--color-border)"
514
+ button type=button aria-label="Toggle Frontend Frameworks" onclick=(ref)"#/state/toggle3" {
515
+ style {
516
+ width "100%"
517
+ display flex
518
+ alignItems center
519
+ gap "1rem"
520
+ padding "1.1rem 1.35rem"
521
+ border none
522
+ background "${state.open === 3 ? 'rgba(79,70,229,0.06)' : 'transparent'}"
523
+ cursor pointer
524
+ textAlign left
525
+ font inherit
526
+ transition "background 0.15s"
527
+ }
528
+ span "4" {
529
+ style {
530
+ flex none
531
+ display inline-flex
532
+ alignItems center
533
+ justifyContent center
534
+ width "2.25rem"
535
+ height "2.25rem"
536
+ borderRadius "0.5rem"
537
+ backgroundColor "${state.open === 3 ? 'var(--color-primary)' : 'rgba(79,70,229,0.1)'}"
538
+ color "${state.open === 3 ? 'var(--color-text-white)' : 'var(--color-primary)'}"
539
+ fontFamily "var(--font-heading)"
540
+ fontWeight "800"
541
+ fontSize "1rem"
542
+ transition "background-color 0.15s, color 0.15s"
543
+ }
544
+ }
545
+ span {
546
+ style flex="1"
547
+ span "Frontend Frameworks" {
548
+ style {
549
+ display block
550
+ fontFamily "var(--font-heading)"
551
+ fontSize "1.15rem"
552
+ fontWeight "700"
553
+ color "var(--color-text-primary)"
554
+ }
555
+ }
556
+ span "3 weeks" {
557
+ style {
558
+ display block
559
+ fontSize "0.85rem"
560
+ color "var(--color-text-muted)"
561
+ marginTop "0.15rem"
562
+ }
563
+ }
564
+ }
565
+ span "${state.open === 3 ? '−' : '+'}" {
566
+ style {
567
+ flex none
568
+ width "1.75rem"
569
+ height "1.75rem"
570
+ display inline-flex
571
+ alignItems center
572
+ justifyContent center
573
+ fontSize "1.4rem"
574
+ fontWeight "400"
575
+ color "var(--color-primary)"
576
+ lineHeight "1"
577
+ }
578
+ }
579
+ }
580
+ div {
581
+ style display="${state.open === 3 ? 'block' : 'none'}" padding="0.25rem 1.35rem 1.5rem"
582
+ ul {
583
+ style listStyle=none margin="0" padding="0"
584
+ li {
585
+ style {
586
+ padding "0.5rem 0"
587
+ borderTop "1px solid var(--color-border)"
588
+ color "var(--color-text-muted)"
589
+ fontSize "0.98rem"
590
+ display flex
591
+ gap "0.6rem"
592
+ alignItems baseline
593
+ }
594
+ span → {
595
+ style color="var(--color-primary)" fontWeight="700"
596
+ }
597
+ span "Components & reactive state"
598
+ }
599
+ li {
600
+ style {
601
+ padding "0.5rem 0"
602
+ borderTop "1px solid var(--color-border)"
603
+ color "var(--color-text-muted)"
604
+ fontSize "0.98rem"
605
+ display flex
606
+ gap "0.6rem"
607
+ alignItems baseline
608
+ }
609
+ span → {
610
+ style color="var(--color-primary)" fontWeight="700"
611
+ }
612
+ span "Props, events & composition"
613
+ }
614
+ li {
615
+ style {
616
+ padding "0.5rem 0"
617
+ borderTop "1px solid var(--color-border)"
618
+ color "var(--color-text-muted)"
619
+ fontSize "0.98rem"
620
+ display flex
621
+ gap "0.6rem"
622
+ alignItems baseline
623
+ }
624
+ span → {
625
+ style color="var(--color-primary)" fontWeight="700"
626
+ }
627
+ span "Client-side routing"
628
+ }
629
+ li {
630
+ style {
631
+ padding "0.5rem 0"
632
+ borderTop "1px solid var(--color-border)"
633
+ color "var(--color-text-muted)"
634
+ fontSize "0.98rem"
635
+ display flex
636
+ gap "0.6rem"
637
+ alignItems baseline
638
+ }
639
+ span → {
640
+ style color="var(--color-primary)" fontWeight="700"
641
+ }
642
+ span "Fetching & displaying live data"
643
+ }
644
+ }
645
+ }
646
+ }
647
+ div {
648
+ style borderBottom="1px solid var(--color-border)"
649
+ button type=button aria-label="Toggle Backend & Databases" onclick=(ref)"#/state/toggle4" {
650
+ style {
651
+ width "100%"
652
+ display flex
653
+ alignItems center
654
+ gap "1rem"
655
+ padding "1.1rem 1.35rem"
656
+ border none
657
+ background "${state.open === 4 ? 'rgba(79,70,229,0.06)' : 'transparent'}"
658
+ cursor pointer
659
+ textAlign left
660
+ font inherit
661
+ transition "background 0.15s"
662
+ }
663
+ span "5" {
664
+ style {
665
+ flex none
666
+ display inline-flex
667
+ alignItems center
668
+ justifyContent center
669
+ width "2.25rem"
670
+ height "2.25rem"
671
+ borderRadius "0.5rem"
672
+ backgroundColor "${state.open === 4 ? 'var(--color-primary)' : 'rgba(79,70,229,0.1)'}"
673
+ color "${state.open === 4 ? 'var(--color-text-white)' : 'var(--color-primary)'}"
674
+ fontFamily "var(--font-heading)"
675
+ fontWeight "800"
676
+ fontSize "1rem"
677
+ transition "background-color 0.15s, color 0.15s"
678
+ }
679
+ }
680
+ span {
681
+ style flex="1"
682
+ span "Backend & Databases" {
683
+ style {
684
+ display block
685
+ fontFamily "var(--font-heading)"
686
+ fontSize "1.15rem"
687
+ fontWeight "700"
688
+ color "var(--color-text-primary)"
689
+ }
690
+ }
691
+ span "2 weeks" {
692
+ style {
693
+ display block
694
+ fontSize "0.85rem"
695
+ color "var(--color-text-muted)"
696
+ marginTop "0.15rem"
697
+ }
698
+ }
699
+ }
700
+ span "${state.open === 4 ? '−' : '+'}" {
701
+ style {
702
+ flex none
703
+ width "1.75rem"
704
+ height "1.75rem"
705
+ display inline-flex
706
+ alignItems center
707
+ justifyContent center
708
+ fontSize "1.4rem"
709
+ fontWeight "400"
710
+ color "var(--color-primary)"
711
+ lineHeight "1"
712
+ }
713
+ }
714
+ }
715
+ div {
716
+ style display="${state.open === 4 ? 'block' : 'none'}" padding="0.25rem 1.35rem 1.5rem"
717
+ ul {
718
+ style listStyle=none margin="0" padding="0"
719
+ li {
720
+ style {
721
+ padding "0.5rem 0"
722
+ borderTop "1px solid var(--color-border)"
723
+ color "var(--color-text-muted)"
724
+ fontSize "0.98rem"
725
+ display flex
726
+ gap "0.6rem"
727
+ alignItems baseline
728
+ }
729
+ span → {
730
+ style color="var(--color-primary)" fontWeight="700"
731
+ }
732
+ span "HTTP servers & REST API design"
733
+ }
734
+ li {
735
+ style {
736
+ padding "0.5rem 0"
737
+ borderTop "1px solid var(--color-border)"
738
+ color "var(--color-text-muted)"
739
+ fontSize "0.98rem"
740
+ display flex
741
+ gap "0.6rem"
742
+ alignItems baseline
743
+ }
744
+ span → {
745
+ style color="var(--color-primary)" fontWeight="700"
746
+ }
747
+ span "Relational data & SQL"
748
+ }
749
+ li {
750
+ style {
751
+ padding "0.5rem 0"
752
+ borderTop "1px solid var(--color-border)"
753
+ color "var(--color-text-muted)"
754
+ fontSize "0.98rem"
755
+ display flex
756
+ gap "0.6rem"
757
+ alignItems baseline
758
+ }
759
+ span → {
760
+ style color="var(--color-primary)" fontWeight="700"
761
+ }
762
+ span "Authentication & sessions"
763
+ }
764
+ li {
765
+ style {
766
+ padding "0.5rem 0"
767
+ borderTop "1px solid var(--color-border)"
768
+ color "var(--color-text-muted)"
769
+ fontSize "0.98rem"
770
+ display flex
771
+ gap "0.6rem"
772
+ alignItems baseline
773
+ }
774
+ span → {
775
+ style color="var(--color-primary)" fontWeight="700"
776
+ }
777
+ span "Deploying your API to the cloud"
778
+ }
779
+ }
780
+ }
781
+ }
782
+ div {
783
+ style borderBottom="1px solid var(--color-border)"
784
+ button type=button aria-label="Toggle Capstone Project" onclick=(ref)"#/state/toggle5" {
785
+ style {
786
+ width "100%"
787
+ display flex
788
+ alignItems center
789
+ gap "1rem"
790
+ padding "1.1rem 1.35rem"
791
+ border none
792
+ background "${state.open === 5 ? 'rgba(79,70,229,0.06)' : 'transparent'}"
793
+ cursor pointer
794
+ textAlign left
795
+ font inherit
796
+ transition "background 0.15s"
797
+ }
798
+ span "6" {
799
+ style {
800
+ flex none
801
+ display inline-flex
802
+ alignItems center
803
+ justifyContent center
804
+ width "2.25rem"
805
+ height "2.25rem"
806
+ borderRadius "0.5rem"
807
+ backgroundColor "${state.open === 5 ? 'var(--color-primary)' : 'rgba(79,70,229,0.1)'}"
808
+ color "${state.open === 5 ? 'var(--color-text-white)' : 'var(--color-primary)'}"
809
+ fontFamily "var(--font-heading)"
810
+ fontWeight "800"
811
+ fontSize "1rem"
812
+ transition "background-color 0.15s, color 0.15s"
813
+ }
814
+ }
815
+ span {
816
+ style flex="1"
817
+ span "Capstone Project" {
818
+ style {
819
+ display block
820
+ fontFamily "var(--font-heading)"
821
+ fontSize "1.15rem"
822
+ fontWeight "700"
823
+ color "var(--color-text-primary)"
824
+ }
825
+ }
826
+ span "3 weeks" {
827
+ style {
828
+ display block
829
+ fontSize "0.85rem"
830
+ color "var(--color-text-muted)"
831
+ marginTop "0.15rem"
832
+ }
833
+ }
834
+ }
835
+ span "${state.open === 5 ? '−' : '+'}" {
836
+ style {
837
+ flex none
838
+ width "1.75rem"
839
+ height "1.75rem"
840
+ display inline-flex
841
+ alignItems center
842
+ justifyContent center
843
+ fontSize "1.4rem"
844
+ fontWeight "400"
845
+ color "var(--color-primary)"
846
+ lineHeight "1"
847
+ }
848
+ }
849
+ }
850
+ div {
851
+ style display="${state.open === 5 ? 'block' : 'none'}" padding="0.25rem 1.35rem 1.5rem"
852
+ ul {
853
+ style listStyle=none margin="0" padding="0"
854
+ li {
855
+ style {
856
+ padding "0.5rem 0"
857
+ borderTop "1px solid var(--color-border)"
858
+ color "var(--color-text-muted)"
859
+ fontSize "0.98rem"
860
+ display flex
861
+ gap "0.6rem"
862
+ alignItems baseline
863
+ }
864
+ span → {
865
+ style color="var(--color-primary)" fontWeight="700"
866
+ }
867
+ span "Scoping & planning your build"
868
+ }
869
+ li {
870
+ style {
871
+ padding "0.5rem 0"
872
+ borderTop "1px solid var(--color-border)"
873
+ color "var(--color-text-muted)"
874
+ fontSize "0.98rem"
875
+ display flex
876
+ gap "0.6rem"
877
+ alignItems baseline
878
+ }
879
+ span → {
880
+ style color="var(--color-primary)" fontWeight="700"
881
+ }
882
+ span "Building with live mentor code review"
883
+ }
884
+ li {
885
+ style {
886
+ padding "0.5rem 0"
887
+ borderTop "1px solid var(--color-border)"
888
+ color "var(--color-text-muted)"
889
+ fontSize "0.98rem"
890
+ display flex
891
+ gap "0.6rem"
892
+ alignItems baseline
893
+ }
894
+ span → {
895
+ style color="var(--color-primary)" fontWeight="700"
896
+ }
897
+ span "Testing, polish & performance"
898
+ }
899
+ li {
900
+ style {
901
+ padding "0.5rem 0"
902
+ borderTop "1px solid var(--color-border)"
903
+ color "var(--color-text-muted)"
904
+ fontSize "0.98rem"
905
+ display flex
906
+ gap "0.6rem"
907
+ alignItems baseline
908
+ }
909
+ span → {
910
+ style color="var(--color-primary)" fontWeight="700"
911
+ }
912
+ span "Demo-day presentation"
913
+ }
914
+ }
915
+ }
916
+ }
917
+ }