@jxsuite/starters 1.2.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +194 -0
  2. package/package.json +4 -2
  3. package/registry.json +16 -0
  4. package/sites/blog/document.schema.json +1802 -1153
  5. package/sites/blog/package.json +3 -3
  6. package/sites/blog/project.schema.json +535 -39
  7. package/sites/course/document.schema.json +1802 -1153
  8. package/sites/course/package.json +3 -3
  9. package/sites/course/project.schema.json +535 -39
  10. package/sites/event/document.schema.json +1802 -1153
  11. package/sites/event/package.json +3 -3
  12. package/sites/event/project.schema.json +535 -39
  13. package/sites/fitness-studio/document.schema.json +1802 -1153
  14. package/sites/fitness-studio/package.json +3 -3
  15. package/sites/fitness-studio/project.schema.json +535 -39
  16. package/sites/home-services/document.schema.json +1802 -1153
  17. package/sites/home-services/package.json +3 -3
  18. package/sites/home-services/project.schema.json +535 -39
  19. package/sites/museum/components/mu-band.json +92 -0
  20. package/sites/museum/components/mu-cta.json +101 -0
  21. package/sites/museum/components/mu-exhibition-card.json +191 -0
  22. package/sites/museum/components/mu-exhibition-row.json +237 -0
  23. package/sites/museum/components/mu-fact.json +64 -0
  24. package/sites/museum/components/mu-footer.json +256 -0
  25. package/sites/museum/components/mu-hero.json +236 -0
  26. package/sites/museum/components/mu-more.json +63 -0
  27. package/sites/museum/components/mu-oculus.json +44 -0
  28. package/sites/museum/components/mu-pagehead.json +105 -0
  29. package/sites/museum/components/mu-quote.json +49 -0
  30. package/sites/museum/content/exhibitions/ar/clay-salt-thread.md +18 -0
  31. package/sites/museum/content/exhibitions/ar/harbour-and-crane.md +18 -0
  32. package/sites/museum/content/exhibitions/ar/the-cartographers-room.md +18 -0
  33. package/sites/museum/content/exhibitions/en/clay-salt-thread.md +19 -0
  34. package/sites/museum/content/exhibitions/en/harbour-and-crane.md +19 -0
  35. package/sites/museum/content/exhibitions/en/the-cartographers-room.md +19 -0
  36. package/sites/museum/content/exhibitions/fr-CA/clay-salt-thread.md +18 -0
  37. package/sites/museum/content/exhibitions/fr-CA/harbour-and-crane.md +18 -0
  38. package/sites/museum/content/exhibitions/fr-CA/the-cartographers-room.md +18 -0
  39. package/sites/museum/document.schema.json +23513 -0
  40. package/sites/museum/layouts/ar.json +29 -0
  41. package/sites/museum/layouts/base.json +329 -0
  42. package/sites/museum/layouts/fr-ca.json +28 -0
  43. package/sites/museum/package.json +18 -0
  44. package/sites/museum/pages/about.json +378 -0
  45. package/sites/museum/pages/ar/about.json +314 -0
  46. package/sites/museum/pages/ar/exhibitions/[slug].json +211 -0
  47. package/sites/museum/pages/ar/exhibitions/index.json +103 -0
  48. package/sites/museum/pages/ar/index.json +246 -0
  49. package/sites/museum/pages/ar/visit.json +327 -0
  50. package/sites/museum/pages/exhibitions/[slug].json +200 -0
  51. package/sites/museum/pages/exhibitions/index.json +93 -0
  52. package/sites/museum/pages/fr-ca/a-propos.json +313 -0
  53. package/sites/museum/pages/fr-ca/expositions/[slug].json +215 -0
  54. package/sites/museum/pages/fr-ca/expositions/index.json +104 -0
  55. package/sites/museum/pages/fr-ca/index.json +246 -0
  56. package/sites/museum/pages/fr-ca/visite.json +328 -0
  57. package/sites/museum/pages/index.json +236 -0
  58. package/sites/museum/pages/visit.json +317 -0
  59. package/sites/museum/project.json +179 -0
  60. package/sites/museum/project.schema.json +996 -0
  61. package/sites/museum/public/favicon.svg +8 -0
  62. package/sites/nonprofit/document.schema.json +1802 -1153
  63. package/sites/nonprofit/package.json +3 -3
  64. package/sites/nonprofit/project.schema.json +535 -39
  65. package/sites/portfolio/document.schema.json +1802 -1153
  66. package/sites/portfolio/package.json +3 -3
  67. package/sites/portfolio/project.schema.json +535 -39
  68. package/sites/professional-firm/document.schema.json +1802 -1153
  69. package/sites/professional-firm/package.json +3 -3
  70. package/sites/professional-firm/project.schema.json +535 -39
  71. package/sites/real-estate/document.schema.json +1802 -1153
  72. package/sites/real-estate/package.json +3 -3
  73. package/sites/real-estate/project.schema.json +535 -39
  74. package/sites/restaurant/document.schema.json +1802 -1153
  75. package/sites/restaurant/package.json +3 -3
  76. package/sites/restaurant/project.schema.json +535 -39
  77. package/sites/saas/document.schema.json +1802 -1153
  78. package/sites/saas/package.json +3 -3
  79. package/sites/saas/project.schema.json +535 -39
  80. package/sites/shop/document.schema.json +1802 -1153
  81. package/sites/shop/package.json +3 -3
  82. package/sites/shop/project.schema.json +535 -39
@@ -0,0 +1,215 @@
1
+ {
2
+ "$translationKey": "exhibitions/${slug}",
3
+ "$layout": "./layouts/fr-ca.json",
4
+ "$paths": {
5
+ "contentType": "exhibitions",
6
+ "param": "slug",
7
+ "field": "id"
8
+ },
9
+ "title": "${state.entry.data.title} — Atrium",
10
+ "description": "${state.entry.data.description}",
11
+ "$head": [
12
+ {
13
+ "tagName": "meta",
14
+ "attributes": { "name": "description", "content": "${state.entry.data.description}" }
15
+ }
16
+ ],
17
+ "state": {
18
+ "entry": {
19
+ "$prototype": "ContentEntry",
20
+ "$src": "@jxsuite/parser/ContentEntry.class.json",
21
+ "contentType": "exhibitions",
22
+ "field": "id",
23
+ "id": { "$ref": "#/$params/slug" }
24
+ },
25
+ "opens": {
26
+ "$expression": {
27
+ "operator": "call",
28
+ "target": { "$ref": "window#/Intl/formatDate" },
29
+ "value": [
30
+ { "$ref": "#/state/entry/data/date" },
31
+ null,
32
+ { "day": "numeric", "month": "long", "year": "numeric" }
33
+ ]
34
+ }
35
+ },
36
+ "closes": {
37
+ "$expression": {
38
+ "operator": "call",
39
+ "target": { "$ref": "window#/Intl/formatDate" },
40
+ "value": [
41
+ { "$ref": "#/state/entry/data/until" },
42
+ null,
43
+ { "day": "numeric", "month": "long", "year": "numeric" }
44
+ ]
45
+ }
46
+ },
47
+ "works": {
48
+ "$expression": {
49
+ "operator": "call",
50
+ "target": { "$ref": "window#/Intl/formatNumber" },
51
+ "value": [{ "$ref": "#/state/entry/data/works" }]
52
+ }
53
+ }
54
+ },
55
+ "children": [
56
+ {
57
+ "tagName": "article",
58
+ "children": [
59
+ {
60
+ "tagName": "mu-pagehead",
61
+ "$props": {
62
+ "kicker": "${state.entry.data.gallery}",
63
+ "title": "${state.entry.data.title}",
64
+ "standfirst": "${state.entry.data.description}",
65
+ "metaLabel": "Commissariat",
66
+ "metaValue": "${state.entry.data.curator}"
67
+ }
68
+ },
69
+ {
70
+ "tagName": "mu-band",
71
+ "$props": { "index": "01", "label": "L'exposition", "tone": "chalk" },
72
+ "children": [
73
+ {
74
+ "tagName": "div",
75
+ "style": {
76
+ "display": "grid",
77
+ "gridTemplateColumns": "minmax(0, 1.35fr) minmax(0, 0.75fr)",
78
+ "columnGap": "clamp(2rem, 5vw, 4rem)",
79
+ "alignItems": "start",
80
+ "@--md": { "gridTemplateColumns": "minmax(0, 1fr)", "rowGap": "2.5rem" }
81
+ },
82
+ "children": [
83
+ {
84
+ "tagName": "div",
85
+ "style": {
86
+ "maxWidth": "var(--measure)",
87
+ "fontSize": "1.08rem",
88
+ "lineHeight": "1.8"
89
+ },
90
+ "children": {
91
+ "$prototype": "Array",
92
+ "items": { "$ref": "#/state/entry/$children" },
93
+ "map": {
94
+ "tagName": "p",
95
+ "style": { "margin": "0 0 1.35rem" },
96
+ "textContent": "${item.textContent}"
97
+ }
98
+ }
99
+ },
100
+ {
101
+ "tagName": "aside",
102
+ "style": {
103
+ "border": "2px solid var(--color-ink)",
104
+ "backgroundColor": "var(--color-card)",
105
+ "padding": "clamp(1.1rem, 2.5vw, 1.6rem)"
106
+ },
107
+ "children": [
108
+ {
109
+ "tagName": "p",
110
+ "style": {
111
+ "margin": "0 0 0.5rem",
112
+ "fontFamily": "var(--font-label)",
113
+ "fontSize": "0.64rem",
114
+ "letterSpacing": "var(--label-tracking)",
115
+ "textTransform": "var(--label-case)",
116
+ "color": "var(--color-muted)"
117
+ },
118
+ "textContent": "Cartel"
119
+ },
120
+ {
121
+ "tagName": "div",
122
+ "attributes": { "aria-hidden": "true" },
123
+ "style": {
124
+ "aspectRatio": "4 / 3",
125
+ "border": "2px solid var(--color-ink)",
126
+ "marginBlockEnd": "1.1rem",
127
+ "background": "radial-gradient(circle at 62% 40%, hsl(${state.entry.data.hue} 55% 45%) 0 31%, transparent 31.5%), repeating-linear-gradient(${state.entry.data.hue}deg, var(--color-chalk-deep) 0 9px, var(--color-card) 9px 18px)"
128
+ }
129
+ },
130
+ {
131
+ "tagName": "mu-fact",
132
+ "$props": {
133
+ "term": "Ouverture",
134
+ "value": "${state.opens}",
135
+ "layout": "stack"
136
+ }
137
+ },
138
+ {
139
+ "tagName": "mu-fact",
140
+ "$props": { "term": "Clôture", "value": "${state.closes}", "layout": "stack" }
141
+ },
142
+ {
143
+ "tagName": "mu-fact",
144
+ "$props": { "term": "Objets", "value": "${state.works}", "layout": "stack" }
145
+ },
146
+ {
147
+ "tagName": "mu-fact",
148
+ "$props": {
149
+ "term": "Où",
150
+ "value": "${state.entry.data.gallery}",
151
+ "layout": "stack"
152
+ }
153
+ },
154
+ {
155
+ "tagName": "mu-fact",
156
+ "$props": {
157
+ "term": "Commissaire",
158
+ "value": "${state.entry.data.curator}",
159
+ "layout": "stack"
160
+ }
161
+ },
162
+ {
163
+ "tagName": "p",
164
+ "style": {
165
+ "margin": "1.25rem 0 0",
166
+ "paddingBlockStart": "0.9rem",
167
+ "borderBlockStart": "1px solid var(--color-hairline)",
168
+ "fontSize": "0.9rem",
169
+ "lineHeight": "1.6",
170
+ "color": "var(--color-muted)"
171
+ },
172
+ "textContent": "Chaque cartel de cette salle est écrit en trois langues, à longueur égale. Rien n'est abrégé pour le mur le plus court."
173
+ }
174
+ ]
175
+ }
176
+ ]
177
+ }
178
+ ]
179
+ },
180
+ {
181
+ "tagName": "mu-band",
182
+ "$props": { "index": "02", "label": "Aussi à l'affiche", "tone": "card" },
183
+ "children": [
184
+ {
185
+ "tagName": "p",
186
+ "style": {
187
+ "margin": "0 0 1.5rem",
188
+ "lineHeight": "1.75",
189
+ "maxWidth": "var(--measure)"
190
+ },
191
+ "textContent": "Deux autres expositions sont ouvertes en même temps, et le même billet — aucun — donne accès aux trois."
192
+ },
193
+ {
194
+ "tagName": "mu-more",
195
+ "$props": {
196
+ "label": "Toute la programmation",
197
+ "href": "/fr-ca/expositions/"
198
+ }
199
+ }
200
+ ]
201
+ },
202
+ {
203
+ "tagName": "mu-cta",
204
+ "$props": {
205
+ "kicker": "Entrée libre",
206
+ "heading": "C'est au rez-de-chaussée, et c'est ouvert en ce moment.",
207
+ "text": "De dix heures à six heures, du mardi au dimanche. Entrez par le côté du quai et tournez à gauche au mur de la douane.",
208
+ "label": "Préparer sa visite",
209
+ "href": "/fr-ca/visite/"
210
+ }
211
+ }
212
+ ]
213
+ }
214
+ ]
215
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "$translationKey": "exhibitions",
3
+ "$layout": "./layouts/fr-ca.json",
4
+ "title": "Expositions — Atrium",
5
+ "description": "La programmation en cours à Atrium : trois expositions puisées dans la collection de la ville, avec dates, salles et commissaires.",
6
+ "$head": [
7
+ {
8
+ "tagName": "meta",
9
+ "attributes": {
10
+ "name": "description",
11
+ "content": "La programmation en cours à Atrium : trois expositions puisées dans la collection de la ville, avec dates, salles et commissaires."
12
+ }
13
+ }
14
+ ],
15
+ "state": {
16
+ "shows": {
17
+ "$prototype": "ContentCollection",
18
+ "$src": "@jxsuite/parser/ContentCollection.class.json",
19
+ "contentType": "exhibitions",
20
+ "filter": [{ "field": "lang", "op": "==", "value": "fr-CA" }],
21
+ "sort": [{ "field": "order", "order": "asc" }]
22
+ }
23
+ },
24
+ "children": [
25
+ {
26
+ "tagName": "mu-pagehead",
27
+ "$props": {
28
+ "kicker": "Programmation",
29
+ "title": "Ce qui est accroché, et jusqu'à quand",
30
+ "standfirst": "Trois expositions se tiennent en même temps : une longue, une saisonnière, une dans la cour. Toutes sont puisées dans les réserves du musée plutôt qu'empruntées ; ce que vous voyez ici, c'est la ville qui se regarde.",
31
+ "metaLabel": "Entrée",
32
+ "metaValue": "Libre, sans réservation"
33
+ }
34
+ },
35
+ {
36
+ "tagName": "mu-band",
37
+ "$props": { "index": "01", "label": "En ce moment", "tone": "chalk" },
38
+ "children": [
39
+ {
40
+ "tagName": "div",
41
+ "style": { "borderBlockEnd": "1px solid var(--color-hairline)" },
42
+ "children": {
43
+ "$prototype": "Array",
44
+ "items": { "$ref": "#/state/shows" },
45
+ "map": {
46
+ "tagName": "mu-exhibition-row",
47
+ "$props": {
48
+ "index": "0${item.data.order}",
49
+ "title": "${item.data.title}",
50
+ "description": "${item.data.description}",
51
+ "gallery": "${item.data.gallery}",
52
+ "curator": "${item.data.curator}",
53
+ "curatorLabel": "Commissariat",
54
+ "href": "/fr-ca/expositions/${item.id}/",
55
+ "hue": "${item.data.hue}",
56
+ "date": "${item.data.date}",
57
+ "until": "${item.data.until}",
58
+ "locale": "${$page.locale}"
59
+ }
60
+ }
61
+ }
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "tagName": "mu-band",
67
+ "$props": { "index": "02", "label": "Comment fonctionne la programmation", "tone": "card" },
68
+ "children": [
69
+ {
70
+ "tagName": "div",
71
+ "style": {
72
+ "display": "grid",
73
+ "gridTemplateColumns": "minmax(0, 1fr) minmax(0, 1fr)",
74
+ "columnGap": "clamp(2rem, 5vw, 4rem)",
75
+ "rowGap": "1.25rem",
76
+ "@--md": { "gridTemplateColumns": "minmax(0, 1fr)" }
77
+ },
78
+ "children": [
79
+ {
80
+ "tagName": "p",
81
+ "style": { "margin": "0", "lineHeight": "1.75" },
82
+ "textContent": "Une exposition change à chaque saison et deux se tiennent longtemps : il y a donc toujours quelque chose que vous n'avez pas vu et quelque chose sur quoi revenir. Rien n'est billetté séparément et rien ne ferme pour une location privée pendant les heures d'ouverture."
83
+ },
84
+ {
85
+ "tagName": "p",
86
+ "style": { "margin": "0", "lineHeight": "1.75" },
87
+ "textContent": "Chaque exposition est écrite de façon autonome dans chacune des langues que le musée publie : la commissaire qui a rédigé le texte de salle en arabe pour la salle 2 ne traduit pas la version anglaise, et les deux divergent par endroits. Le sélecteur en haut de cette page liste les langues où une page existe, et rien d'autre."
88
+ }
89
+ ]
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "tagName": "mu-cta",
95
+ "$props": {
96
+ "kicker": "Visites guidées",
97
+ "heading": "Quatre-vingt-dix minutes, le samedi, dans celle des trois langues qui vous convient.",
98
+ "text": "Réservez au comptoir le jour même, ou écrivez à l'avance si vous venez en groupe de plus de huit personnes.",
99
+ "label": "Renseignements aux visiteurs",
100
+ "href": "/fr-ca/visite/"
101
+ }
102
+ }
103
+ ]
104
+ }
@@ -0,0 +1,246 @@
1
+ {
2
+ "$layout": "./layouts/fr-ca.json",
3
+ "title": "Atrium — Musée municipal d'art et d'histoire",
4
+ "description": "Un musée municipal sous une halle de verre : quatre siècles de port, de métiers et de cartes. Entrée libre, du mardi au dimanche, en anglais, en français et en arabe.",
5
+ "$head": [
6
+ {
7
+ "tagName": "meta",
8
+ "attributes": {
9
+ "name": "description",
10
+ "content": "Un musée municipal sous une halle de verre : quatre siècles de port, de métiers et de cartes. Entrée libre, du mardi au dimanche, en anglais, en français et en arabe."
11
+ }
12
+ }
13
+ ],
14
+ "state": {
15
+ "objects": {
16
+ "$expression": {
17
+ "operator": "call",
18
+ "target": { "$ref": "window#/Intl/formatNumber" },
19
+ "value": [18400]
20
+ }
21
+ },
22
+ "visitors": {
23
+ "$expression": {
24
+ "operator": "call",
25
+ "target": { "$ref": "window#/Intl/formatNumber" },
26
+ "value": [212000]
27
+ }
28
+ },
29
+ "founded": {
30
+ "$expression": {
31
+ "operator": "call",
32
+ "target": { "$ref": "window#/Intl/formatDate" },
33
+ "value": ["1897-11-04", null, { "day": "numeric", "month": "long", "year": "numeric" }]
34
+ }
35
+ },
36
+ "openDays": {
37
+ "$expression": {
38
+ "operator": "call",
39
+ "target": { "$ref": "window#/Intl/formatList" },
40
+ "value": [["mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"]]
41
+ }
42
+ },
43
+ "shows": {
44
+ "$prototype": "ContentCollection",
45
+ "$src": "@jxsuite/parser/ContentCollection.class.json",
46
+ "contentType": "exhibitions",
47
+ "filter": [{ "field": "lang", "op": "==", "value": "fr-CA" }],
48
+ "sort": [{ "field": "order", "order": "asc" }],
49
+ "limit": 3
50
+ }
51
+ },
52
+ "children": [
53
+ {
54
+ "tagName": "mu-hero",
55
+ "$props": {
56
+ "kicker": "Musée municipal d'art et d'histoire",
57
+ "title": "Quatre siècles, une seule halle de verre",
58
+ "standfirst": "Atrium conserve ce que la ville a fabriqué, acheté, repêché et contesté depuis la pose du premier quai de pierre — et le montre gratuitement, en trois langues, six jours sur sept.",
59
+ "primaryLabel": "Préparer sa visite",
60
+ "primaryHref": "/fr-ca/visite/",
61
+ "secondaryLabel": "À l'affiche",
62
+ "secondaryHref": "/fr-ca/expositions/",
63
+ "noteLabel": "Entrée libre",
64
+ "note": "Du mardi au dimanche, de 10 h à 18 h"
65
+ }
66
+ },
67
+ {
68
+ "tagName": "mu-band",
69
+ "$props": { "index": "01", "label": "En salle en ce moment", "tone": "chalk" },
70
+ "children": [
71
+ {
72
+ "tagName": "h2",
73
+ "style": {
74
+ "margin": "0 0 2.25rem",
75
+ "fontFamily": "var(--font-display)",
76
+ "fontSize": "clamp(1.7rem, 3.6vw, 2.6rem)",
77
+ "fontWeight": "500",
78
+ "lineHeight": "calc(1.08 * var(--leading-scale))",
79
+ "letterSpacing": "var(--display-tracking)",
80
+ "maxWidth": "22ch"
81
+ },
82
+ "textContent": "Trois expositions, et toutes parlent d'ici"
83
+ },
84
+ {
85
+ "tagName": "div",
86
+ "style": {
87
+ "display": "grid",
88
+ "gridTemplateColumns": "repeat(3, minmax(0, 1fr))",
89
+ "gap": "clamp(1rem, 2.5vw, 1.75rem)",
90
+ "@--md": { "gridTemplateColumns": "repeat(2, minmax(0, 1fr))" },
91
+ "@--sm": { "gridTemplateColumns": "minmax(0, 1fr)" }
92
+ },
93
+ "children": {
94
+ "$prototype": "Array",
95
+ "items": { "$ref": "#/state/shows" },
96
+ "map": {
97
+ "tagName": "mu-exhibition-card",
98
+ "$props": {
99
+ "title": "${item.data.title}",
100
+ "description": "${item.data.description}",
101
+ "gallery": "${item.data.gallery}",
102
+ "status": "À l'affiche",
103
+ "href": "/fr-ca/expositions/${item.id}/",
104
+ "hue": "${item.data.hue}",
105
+ "date": "${item.data.date}",
106
+ "until": "${item.data.until}",
107
+ "locale": "${$page.locale}"
108
+ }
109
+ }
110
+ }
111
+ },
112
+ {
113
+ "tagName": "mu-more",
114
+ "$props": {
115
+ "label": "Toute la programmation",
116
+ "href": "/fr-ca/expositions/",
117
+ "space": "2rem"
118
+ }
119
+ }
120
+ ]
121
+ },
122
+ {
123
+ "tagName": "mu-band",
124
+ "$props": { "index": "02", "label": "Le musée en chiffres", "tone": "card" },
125
+ "children": [
126
+ {
127
+ "tagName": "div",
128
+ "style": {
129
+ "display": "grid",
130
+ "gridTemplateColumns": "repeat(2, minmax(0, 1fr))",
131
+ "columnGap": "clamp(2rem, 5vw, 4rem)",
132
+ "@--md": { "gridTemplateColumns": "minmax(0, 1fr)" }
133
+ },
134
+ "children": [
135
+ {
136
+ "tagName": "div",
137
+ "children": [
138
+ {
139
+ "tagName": "mu-fact",
140
+ "$props": {
141
+ "term": "Objets",
142
+ "value": "${state.objects}",
143
+ "note": "Catalogués, dont environ un dixième est exposé à un moment donné."
144
+ }
145
+ },
146
+ {
147
+ "tagName": "mu-fact",
148
+ "$props": {
149
+ "term": "Visites",
150
+ "value": "${state.visitors}",
151
+ "note": "Au cours de la dernière année complète, comptées à la porte."
152
+ }
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "tagName": "div",
158
+ "children": [
159
+ {
160
+ "tagName": "mu-fact",
161
+ "$props": {
162
+ "term": "Fondation",
163
+ "value": "${state.founded}",
164
+ "note": "Par une souscription de 240 ménages, dans une pièce au-dessus de la douane."
165
+ }
166
+ },
167
+ {
168
+ "tagName": "mu-fact",
169
+ "$props": {
170
+ "term": "Ouvert",
171
+ "value": "${state.openDays}",
172
+ "note": "Fermé le lundi, et les deux jours par année où la halle est nettoyée."
173
+ }
174
+ }
175
+ ]
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "tagName": "p",
181
+ "style": {
182
+ "margin": "2rem 0 0",
183
+ "paddingBlockStart": "1.1rem",
184
+ "borderBlockStart": "1px solid var(--color-hairline)",
185
+ "fontSize": "0.95rem",
186
+ "lineHeight": "1.6",
187
+ "color": "var(--color-muted)",
188
+ "maxWidth": "var(--measure)"
189
+ },
190
+ "textContent": "Chaque chiffre est mis en forme par la langue de la page : ce document affiche 18 400 en français, 18,400 en anglais et ١٨٬٤٠٠ en arabe, parce que la route avait déjà dit de quelle langue il s'agit."
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "tagName": "mu-band",
196
+ "$props": { "index": "03", "label": "Depuis la salle de lecture", "tone": "chalk" },
197
+ "children": [
198
+ {
199
+ "tagName": "div",
200
+ "style": {
201
+ "display": "grid",
202
+ "gridTemplateColumns": "minmax(0, 1.05fr) minmax(0, 1fr)",
203
+ "columnGap": "clamp(2rem, 5vw, 4rem)",
204
+ "alignItems": "start",
205
+ "@--md": { "gridTemplateColumns": "minmax(0, 1fr)", "rowGap": "2rem" }
206
+ },
207
+ "children": [
208
+ {
209
+ "tagName": "mu-quote",
210
+ "$props": {
211
+ "quote": "Un musée, c'est la salle où une ville garde ce sur quoi elle n'arrive pas à s'entendre.",
212
+ "attribution": "Hélène Fournier, première conservatrice, 1897"
213
+ }
214
+ },
215
+ {
216
+ "tagName": "div",
217
+ "style": { "maxWidth": "var(--measure)" },
218
+ "children": [
219
+ {
220
+ "tagName": "p",
221
+ "style": { "margin": "0", "lineHeight": "1.75" },
222
+ "textContent": "La salle de lecture du deuxième étage est ouverte à quiconque a une question. Ses rayons portent les registres du port, les carnets d'arpentage, quatre cents boîtes de correspondance d'atelier et les livres de procès-verbaux du musée lui-même — y compris ceux qui consignent des chicanes que le conseil d'administration aurait préféré taire."
223
+ },
224
+ {
225
+ "tagName": "p",
226
+ "style": { "margin": "1.1rem 0 0", "lineHeight": "1.75" },
227
+ "textContent": "Aucun rendez-vous pour lire ; il en faut un pour manipuler. Demandez au comptoir et un membre du personnel montera la boîte dans l'heure."
228
+ }
229
+ ]
230
+ }
231
+ ]
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ "tagName": "mu-cta",
237
+ "$props": {
238
+ "kicker": "Entrée libre",
239
+ "heading": "La halle est ouverte. Venez nous contredire.",
240
+ "text": "Six jours sur sept, de dix heures à six heures, sans billet ni réservation. La cour reste ouverte une heure de plus pendant l'été.",
241
+ "label": "Préparer sa visite",
242
+ "href": "/fr-ca/visite/"
243
+ }
244
+ }
245
+ ]
246
+ }