@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,227 @@
1
+ /- kdl-version 2
2
+ $elements {
3
+ - (ref)"../components/mu-footer.jxn"
4
+ }
5
+
6
+ div {
7
+ state {
8
+ brand Atrium
9
+ skipLabel "Skip to content"
10
+ railNote "City Museum of Art & History · Open today 10:00–18:00"
11
+ languageNavLabel Language
12
+ mainNavLabel Main
13
+ navExhibitions Exhibitions
14
+ navVisit Visit
15
+ navAbout About
16
+ homeHref "/"
17
+ exhibitionsHref "/exhibitions/"
18
+ visitHref "/visit/"
19
+ aboutHref "/about/"
20
+ footerTagline "A city museum in a glass hall: four centuries of the harbour, its makers and its maps, held in trust for everyone who lives here."
21
+ footerVisitLabel "Find us"
22
+ footerAddress "2 Quai des Écluses, Old Harbour"
23
+ footerHours "Tuesday to Sunday, 10:00–18:00. Closed Mondays."
24
+ footerReadLabel Read
25
+ footerExhibitionsLink Exhibitions
26
+ footerVisitLink "Plan your visit"
27
+ footerAboutLink "About the museum"
28
+ footerContactLabel Contact
29
+ footerEmail bonjour@atrium.example
30
+ footerPhone "+1 555 0140"
31
+ footerLegal "© 2026 Atrium — City Museum of Art & History"
32
+ footerCredit "A civic museum, free to enter, in three languages."
33
+ }
34
+ style minHeight="100vh" display=flex flexDirection=column backgroundColor="var(--color-chalk)"
35
+ a href="#main" "${state.skipLabel}" {
36
+ style {
37
+ position absolute
38
+ insetBlockStart "0.5rem"
39
+ insetInlineStart "0.5rem"
40
+ zIndex "100"
41
+ backgroundColor "var(--color-ink)"
42
+ color "var(--color-chalk)"
43
+ fontFamily "var(--font-label)"
44
+ fontSize "0.7rem"
45
+ letterSpacing "var(--label-tracking)"
46
+ textTransform "var(--label-case)"
47
+ textDecoration none
48
+ padding "0.6rem 1rem"
49
+ transform "translateY(-250%)"
50
+ :focus transform="translateY(0)"
51
+ }
52
+ }
53
+ header {
54
+ style {
55
+ position sticky
56
+ insetBlockStart "0"
57
+ zIndex "50"
58
+ backgroundColor "var(--color-card)"
59
+ borderBlockEnd "2px solid var(--color-ink)"
60
+ }
61
+ div {
62
+ style backgroundColor="var(--color-ink)" color="var(--color-chalk)"
63
+ div {
64
+ style {
65
+ maxWidth "var(--max-width)"
66
+ marginInline auto
67
+ paddingInline "var(--gutter)"
68
+ minHeight "2.5rem"
69
+ display flex
70
+ alignItems stretch
71
+ justifyContent space-between
72
+ gap "1.5rem"
73
+ fontFamily "var(--font-label)"
74
+ fontSize "0.66rem"
75
+ letterSpacing "var(--label-tracking)"
76
+ textTransform "var(--label-case)"
77
+ }
78
+ p "${state.railNote}" {
79
+ style margin="0" alignSelf=center color="rgba(231, 227, 218, 0.66)" {
80
+ @--md display=none
81
+ }
82
+ }
83
+ nav aria-label="${state.languageNavLabel}" {
84
+ style display=flex alignItems=stretch marginInlineStart=auto
85
+ .children {
86
+ $array items=(ref)"#/state/$page/alternates" {
87
+ a .lang="${item.code}" dir="${item.dir}" href="${item.url}" hreflang="${item.code}" aria-current="${item.current ? 'page' : 'false'}" "${item.label}" {
88
+ style {
89
+ display inline-flex
90
+ alignItems center
91
+ paddingInline "0.85rem"
92
+ paddingBlock "0.7rem"
93
+ textDecoration none
94
+ whiteSpace nowrap
95
+ transition "color 0.15s, background-color 0.15s"
96
+ color "${item.current ? 'var(--color-chalk)' : 'rgba(231, 227, 218, 0.6)'}"
97
+ backgroundColor "${item.current ? 'rgba(231, 227, 218, 0.1)' : 'transparent'}"
98
+ boxShadow "${item.current ? 'inset 0 -2px 0 0 var(--color-chalk)' : 'none'}"
99
+ :hover {
100
+ color "var(--color-chalk)"
101
+ backgroundColor "rgba(231, 227, 218, 0.1)"
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ div {
111
+ style {
112
+ maxWidth "var(--max-width)"
113
+ marginInline auto
114
+ paddingInline "var(--gutter)"
115
+ minHeight "4.6rem"
116
+ display flex
117
+ alignItems center
118
+ justifyContent space-between
119
+ gap "1.5rem"
120
+ }
121
+ a href="${state.homeHref}" {
122
+ style {
123
+ display inline-flex
124
+ alignItems center
125
+ gap "0.7rem"
126
+ textDecoration none
127
+ color "var(--color-ink)"
128
+ }
129
+ span aria-hidden="true" {
130
+ style {
131
+ width "1.05rem"
132
+ height "1.05rem"
133
+ borderRadius "50%"
134
+ backgroundColor "var(--color-pigment)"
135
+ flex "0 0 auto"
136
+ }
137
+ }
138
+ span "${state.brand}" {
139
+ style {
140
+ fontFamily "var(--font-display)"
141
+ fontSize "1.55rem"
142
+ fontWeight "700"
143
+ lineHeight "1"
144
+ letterSpacing "var(--display-tracking)"
145
+ }
146
+ }
147
+ }
148
+ nav aria-label="${state.mainNavLabel}" {
149
+ style {
150
+ display flex
151
+ alignItems center
152
+ gap "1.9rem"
153
+ fontFamily "var(--font-label)"
154
+ fontSize "0.7rem"
155
+ letterSpacing "var(--label-tracking)"
156
+ textTransform "var(--label-case)"
157
+ @--sm gap="1.1rem"
158
+ }
159
+ a href="${state.exhibitionsHref}" "${state.navExhibitions}" {
160
+ style {
161
+ color "var(--color-ink)"
162
+ textDecoration none
163
+ paddingBlock "0.35rem"
164
+ borderBlockEnd "2px solid transparent"
165
+ transition "color 0.15s, border-color 0.15s"
166
+ :hover {
167
+ color "var(--color-pigment)"
168
+ borderBlockEnd "2px solid var(--color-pigment)"
169
+ }
170
+ }
171
+ }
172
+ a href="${state.visitHref}" "${state.navVisit}" {
173
+ style {
174
+ color "var(--color-ink)"
175
+ textDecoration none
176
+ paddingBlock "0.35rem"
177
+ borderBlockEnd "2px solid transparent"
178
+ transition "color 0.15s, border-color 0.15s"
179
+ :hover {
180
+ color "var(--color-pigment)"
181
+ borderBlockEnd "2px solid var(--color-pigment)"
182
+ }
183
+ }
184
+ }
185
+ a href="${state.aboutHref}" "${state.navAbout}" {
186
+ style {
187
+ color "var(--color-ink)"
188
+ textDecoration none
189
+ paddingBlock "0.35rem"
190
+ borderBlockEnd "2px solid transparent"
191
+ @--sm display=none
192
+ transition "color 0.15s, border-color 0.15s"
193
+ :hover {
194
+ color "var(--color-pigment)"
195
+ borderBlockEnd "2px solid var(--color-pigment)"
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ main .id=main {
203
+ style flex="1"
204
+ slot
205
+ }
206
+ mu-footer {
207
+ $props {
208
+ brand "${state.brand}"
209
+ tagline "${state.footerTagline}"
210
+ visitLabel "${state.footerVisitLabel}"
211
+ address "${state.footerAddress}"
212
+ hours "${state.footerHours}"
213
+ readLabel "${state.footerReadLabel}"
214
+ exhibitionsLink "${state.footerExhibitionsLink}"
215
+ visitLink "${state.footerVisitLink}"
216
+ aboutLink "${state.footerAboutLink}"
217
+ contactLabel "${state.footerContactLabel}"
218
+ email "${state.footerEmail}"
219
+ phone "${state.footerPhone}"
220
+ legal "${state.footerLegal}"
221
+ credit "${state.footerCredit}"
222
+ exhibitionsHref "${state.exhibitionsHref}"
223
+ visitHref "${state.visitHref}"
224
+ aboutHref "${state.aboutHref}"
225
+ }
226
+ }
227
+ }
@@ -0,0 +1,30 @@
1
+ /- kdl-version 2
2
+ $layout "./layouts/base.jxn"
3
+
4
+ $element {
5
+ state {
6
+ skipLabel "Aller au contenu"
7
+ railNote "Musée municipal d'art et d'histoire · Ouvert aujourd'hui de 10 h à 18 h"
8
+ languageNavLabel Langue
9
+ mainNavLabel Principal
10
+ navExhibitions Expositions
11
+ navVisit Visite
12
+ navAbout "À propos"
13
+ homeHref "/fr-ca/"
14
+ exhibitionsHref "/fr-ca/expositions/"
15
+ visitHref "/fr-ca/visite/"
16
+ aboutHref "/fr-ca/a-propos/"
17
+ footerTagline "Un musée municipal sous une halle de verre : quatre siècles de port, de métiers et de cartes, gardés en fiducie pour toutes celles et ceux qui vivent ici."
18
+ footerVisitLabel "Nous trouver"
19
+ footerAddress "2, quai des Écluses, Vieux-Port"
20
+ footerHours "Du mardi au dimanche, de 10 h à 18 h. Fermé le lundi."
21
+ footerReadLabel "À lire"
22
+ footerExhibitionsLink Expositions
23
+ footerVisitLink "Préparer sa visite"
24
+ footerAboutLink "À propos du musée"
25
+ footerContactLabel "Nous joindre"
26
+ footerLegal "© 2026 Atrium — Musée municipal d'art et d'histoire"
27
+ footerCredit "Un musée public, à entrée libre, en trois langues."
28
+ }
29
+ slot
30
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.2"
12
+ "@jxsuite/parser": "^4.3.4"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.4.0",
16
- "@jxsuite/runtime": "^6.2.1"
15
+ "@jxsuite/compiler": "^8.6.0",
16
+ "@jxsuite/runtime": "^6.3.0"
17
17
  }
18
18
  }
@@ -0,0 +1,228 @@
1
+ /- kdl-version 2
2
+
3
+ $element .title="About the museum — Atrium" .description="Atrium is the city's museum of art and history: a glass hall over the old customs house, free to enter, run by the city and its readers since 1897." {
4
+ state {
5
+ catalogued {
6
+ $expression {
7
+ operator call
8
+ target (ref)"window#/Intl/formatNumber"
9
+ value {
10
+ - 0.94
11
+ - #null
12
+ - style=percent
13
+ }
14
+ }
15
+ }
16
+ archive {
17
+ $expression {
18
+ operator call
19
+ target (ref)"window#/Intl/formatNumber"
20
+ value {
21
+ - 1240
22
+ - #null
23
+ - style=unit unit=meter unitDisplay=long
24
+ }
25
+ }
26
+ }
27
+ staff {
28
+ $expression {
29
+ operator call
30
+ target (ref)"window#/Intl/formatNumber"
31
+ value {
32
+ - 61
33
+ }
34
+ }
35
+ }
36
+ languages {
37
+ $expression {
38
+ operator call
39
+ target (ref)"window#/Intl/formatList"
40
+ value {
41
+ - English French Arabic
42
+ }
43
+ }
44
+ }
45
+ }
46
+ mu-pagehead {
47
+ $props {
48
+ kicker About
49
+ title "A museum that argues with itself"
50
+ standfirst "Atrium was founded by 240 households who each put in what they could and demanded, in writing, that entry stay free. It has been kept that way for a hundred and twenty-nine years, through two rebuildings and one fire."
51
+ metaLabel "Reading room"
52
+ metaValue "Second floor, no appointment needed"
53
+ }
54
+ }
55
+ mu-band {
56
+ $props index="01" label="The building" tone=chalk
57
+ div {
58
+ style {
59
+ display grid
60
+ gridTemplateColumns "minmax(0, 1.4fr) minmax(0, 0.8fr)"
61
+ columnGap "clamp(2rem, 5vw, 4rem)"
62
+ rowGap "1.25rem"
63
+ @--md gridTemplateColumns="minmax(0, 1fr)"
64
+ alignItems start
65
+ }
66
+ div {
67
+ style maxWidth="var(--measure)"
68
+ p "The museum began in a room above the customs house, which it outgrew in nineteen years. The glass hall that replaced it in 1916 was built over the customs house rather than instead of it: the old stone walls are still standing inside, holding up nothing, and the tour begins by walking between them." {
69
+ style margin="0" lineHeight="1.75"
70
+ }
71
+ p "The roof is the reason people photograph the building and the reason the conservators dislike it. Every object on the ground floor is placed by how much light it can take, which is why the map cabinet sits in the darkest corner and the salt pan sits outside in the rain." {
72
+ style margin="1.1rem 0 0" lineHeight="1.75"
73
+ }
74
+ p "Nothing here is a copy. Where the museum shows a reproduction — three of the maps are too fragile to hang — the label says so in the first line, in the same size type as the title." {
75
+ style margin="1.1rem 0 0" lineHeight="1.75"
76
+ }
77
+ p "Where the museum does not know something, the label says that too. Roughly one object in nine has no attributed maker, and the catalogue records the gap rather than a guess." {
78
+ style margin="1.1rem 0 0" lineHeight="1.75"
79
+ }
80
+ }
81
+ mu-oculus {
82
+ $props size="20rem" tone=card
83
+ }
84
+ }
85
+ }
86
+ mu-band {
87
+ $props index="02" label="What we hold" tone=card
88
+ div {
89
+ style {
90
+ display grid
91
+ gridTemplateColumns "repeat(2, minmax(0, 1fr))"
92
+ columnGap "clamp(2rem, 5vw, 4rem)"
93
+ @--md gridTemplateColumns="minmax(0, 1fr)"
94
+ }
95
+ div {
96
+ mu-fact {
97
+ $props {
98
+ term Catalogued
99
+ value "${state.catalogued}"
100
+ note "Of everything accessioned. The remainder is mostly the 2019 workshop bequest."
101
+ }
102
+ }
103
+ mu-fact {
104
+ $props {
105
+ term Archive
106
+ value "${state.archive}"
107
+ note "Of shelved paper: ledgers, survey notebooks, and workshop correspondence."
108
+ }
109
+ }
110
+ }
111
+ div {
112
+ mu-fact {
113
+ $props {
114
+ term Staff
115
+ value "${state.staff}"
116
+ note "Curators, conservators, front-of-house and the two people who keep the roof clean."
117
+ }
118
+ }
119
+ mu-fact {
120
+ $props {
121
+ term "Labels in"
122
+ value "${state.languages}"
123
+ note "Every wall label, every room, with no abridged version for any of the three."
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ mu-band {
130
+ $props index="03" label="Three languages" tone=chalk
131
+ div {
132
+ style {
133
+ display grid
134
+ gridTemplateColumns "minmax(0, 1fr) minmax(0, 0.85fr)"
135
+ columnGap "clamp(2rem, 5vw, 4rem)"
136
+ alignItems start
137
+ @--md gridTemplateColumns="minmax(0, 1fr)" rowGap="2rem"
138
+ }
139
+ div {
140
+ style maxWidth="var(--measure)"
141
+ p "A third of this city reads French at home and a growing share reads Arabic, so the museum is written three times over rather than once with translations bolted on. Each language has its own pages, its own wall text and its own reading of the collection — the Arabic route through Gallery 2 is not the English one reversed, it is a different argument by a different curator." {
142
+ style margin="0" lineHeight="1.75"
143
+ }
144
+ p "Every page carries the same switch, and it lists only the languages that page actually exists in. If a language is missing from the switch, the page has not been written in it yet — that is a commitment we would rather show than hide." {
145
+ style margin="1.1rem 0 0" lineHeight="1.75"
146
+ }
147
+ }
148
+ div {
149
+ style {
150
+ border "2px solid var(--color-ink)"
151
+ backgroundColor "var(--color-card)"
152
+ padding "clamp(1.25rem, 3vw, 1.9rem)"
153
+ }
154
+ p "This page, in every language it exists in" {
155
+ style {
156
+ margin "0 0 1.1rem"
157
+ fontFamily "var(--font-label)"
158
+ fontSize "0.66rem"
159
+ letterSpacing "var(--label-tracking)"
160
+ textTransform "var(--label-case)"
161
+ color "var(--color-muted)"
162
+ }
163
+ }
164
+ ul {
165
+ style listStyle=none margin="0" padding="0" display=grid gap="0.55rem"
166
+ .children {
167
+ $array items=(ref)"#/state/$page/alternates" {
168
+ li {
169
+ a .lang="${item.code}" dir="${item.dir}" href="${item.url}" hreflang="${item.code}" aria-current="${item.current ? 'page' : 'false'}" {
170
+ style {
171
+ display flex
172
+ alignItems baseline
173
+ gap "0.7rem"
174
+ textDecoration none
175
+ paddingBlock "0.35rem"
176
+ borderBlockEnd "1px solid var(--color-hairline)"
177
+ color "${item.current ? 'var(--color-muted)' : 'var(--color-pigment)'}"
178
+ :hover color="var(--color-ink)"
179
+ }
180
+ span "${item.code}" {
181
+ style {
182
+ fontFamily "var(--font-label)"
183
+ fontSize "0.64rem"
184
+ letterSpacing "var(--label-tracking)"
185
+ textTransform "var(--label-case)"
186
+ opacity "0.7"
187
+ }
188
+ }
189
+ span "${item.label}" {
190
+ style fontSize="1.02rem"
191
+ }
192
+ span "You are here" {
193
+ style {
194
+ marginInlineStart auto
195
+ fontFamily "var(--font-label)"
196
+ fontSize "0.62rem"
197
+ letterSpacing "var(--label-tracking)"
198
+ textTransform "var(--label-case)"
199
+ display "${item.current ? 'inline' : 'none'}"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ mu-band {
211
+ $props index="04" label="In the founders' words" tone=ink
212
+ mu-quote {
213
+ $props {
214
+ quote "Let it be free at the door, or let it be something other than ours."
215
+ attribution "Subscription minute book, 4 November 1897"
216
+ }
217
+ }
218
+ }
219
+ mu-cta {
220
+ $props {
221
+ kicker "Come in"
222
+ heading "The reading room is open to anyone with a question."
223
+ text "Second floor, above the map cabinet. No appointment to read; ask at the desk to handle."
224
+ label "Plan your visit"
225
+ href "/visit/"
226
+ }
227
+ }
228
+ }