@reuters-graphics/graphics-components 0.1.5 → 0.1.7--canary.99.331bdb0.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 (208) hide show
  1. package/dist/@types/components/@types/global.d.ts +4 -0
  2. package/dist/@types/components/Block/Block.svelte.d.ts +1 -1
  3. package/dist/@types/components/BodyText/BodyText.svelte.d.ts +1 -0
  4. package/dist/@types/components/DocumentCloud/DocumentCloud.svelte.d.ts +1 -1
  5. package/dist/@types/components/FeaturePhoto/FeaturePhoto.svelte.d.ts +8 -0
  6. package/dist/@types/components/GraphicBlock/GraphicBlock.svelte.d.ts +1 -1
  7. package/dist/@types/components/Headline/Headline.svelte.d.ts +5 -0
  8. package/dist/@types/components/PhotoCarousel/PhotoCarousel.svelte.d.ts +1 -1
  9. package/dist/@types/components/PhotoPack/PhotoPack.svelte.d.ts +1 -1
  10. package/dist/@types/components/ReferralBlock/ReferralBlock.svelte.d.ts +1 -1
  11. package/dist/@types/components/Scroller/docProps.d.ts +2 -0
  12. package/dist/@types/components/SimpleTimeline/SimpleTimeline.svelte.d.ts +1 -1
  13. package/dist/@types/components/SiteHeadline/SiteHeadline.svelte.d.ts +6 -1
  14. package/dist/@types/components/Table/Table.svelte.d.ts +1 -1
  15. package/dist/@types/components/Theme/@types/component.d.ts +29 -9
  16. package/dist/@types/components/Theme/Theme.svelte.d.ts +1 -21
  17. package/dist/@types/components/Theme/themes/common.d.ts +2 -0
  18. package/dist/@types/components/Theme/themes/light.d.ts +1 -21
  19. package/dist/@types/components/ToolsHeader/ToolsHeader.svelte.d.ts +1 -1
  20. package/dist/components/Article/Article.svelte +1 -1
  21. package/dist/components/BeforeAfter/BeforeAfter.svelte +23 -41
  22. package/dist/components/Block/Block.svelte +3 -81
  23. package/dist/components/BodyText/BodyText.svelte +4 -179
  24. package/dist/components/DocumentCloud/DocumentCloud.svelte +3 -2
  25. package/dist/components/FeaturePhoto/FeaturePhoto.svelte +26 -28
  26. package/dist/components/Framer/Typeahead/index.svelte +4 -4
  27. package/dist/components/GraphicBlock/GraphicBlock.svelte +18 -148
  28. package/dist/components/GraphicBlock/TextBlock.svelte +1 -1
  29. package/dist/components/Headline/Headline.svelte +54 -43
  30. package/dist/components/NoteText/NoteText.svelte +12 -100
  31. package/dist/components/PhotoCarousel/PhotoCarousel.svelte +18 -39
  32. package/dist/components/PhotoPack/PhotoPack.svelte +20 -43
  33. package/dist/components/ReferralBlock/ReferralBlock.svelte +34 -47
  34. package/dist/components/Scroller/Background.svelte +1 -3
  35. package/dist/components/Scroller/Embedded/Background.svelte +1 -1
  36. package/dist/components/Scroller/Embedded/Foreground.svelte +2 -192
  37. package/dist/components/Scroller/Foreground.svelte +8 -101
  38. package/dist/components/Scroller/Scroller.svelte +11 -43
  39. package/dist/components/Scroller/docProps.js +1 -0
  40. package/dist/components/SearchInput/MagnifyingGlass.svelte +1 -1
  41. package/dist/components/SearchInput/SearchInput.svelte +11 -6
  42. package/dist/components/SearchInput/X.svelte +2 -2
  43. package/dist/components/SimpleTimeline/SimpleTimeline.svelte +36 -46
  44. package/dist/components/SiteFooter/CompanyLinks.svelte +6 -6
  45. package/dist/components/SiteFooter/LegalLinks.svelte +5 -5
  46. package/dist/components/SiteFooter/QuickLinks.svelte +4 -4
  47. package/dist/components/SiteFooter/Referrals/Link.svelte +7 -3
  48. package/dist/components/SiteFooter/SiteFooter.svelte +1 -0
  49. package/dist/components/SiteFooter/svgs/Facebook.svelte +1 -1
  50. package/dist/components/SiteFooter/svgs/Graphics.svelte +1 -1
  51. package/dist/components/SiteFooter/svgs/Instagram.svelte +1 -1
  52. package/dist/components/SiteFooter/svgs/LinkedIn.svelte +1 -1
  53. package/dist/components/SiteFooter/svgs/Pictures.svelte +1 -1
  54. package/dist/components/SiteFooter/svgs/Twitter.svelte +1 -1
  55. package/dist/components/SiteFooter/svgs/Videos.svelte +1 -1
  56. package/dist/components/SiteFooter/svgs/YouTube.svelte +1 -1
  57. package/dist/components/SiteHeader/MobileMenu/index.svelte +3 -3
  58. package/dist/components/SiteHeader/NavBar/DownArrow.svelte +1 -1
  59. package/dist/components/SiteHeader/NavBar/NavDropdown/MoreDropdown.svelte +2 -2
  60. package/dist/components/SiteHeader/NavBar/NavDropdown/SectionDropdown.svelte +3 -3
  61. package/dist/components/SiteHeader/NavBar/NavDropdown/Spinner/index.svelte +1 -1
  62. package/dist/components/SiteHeader/NavBar/NavDropdown/StoryCard/index.svelte +4 -4
  63. package/dist/components/SiteHeader/NavBar/NavDropdown/index.svelte +5 -5
  64. package/dist/components/SiteHeader/NavBar/index.svelte +6 -6
  65. package/dist/components/SiteHeader/SiteHeader.svelte +2 -1
  66. package/dist/components/SiteHeader/svgs/Close.svelte +1 -1
  67. package/dist/components/SiteHeader/svgs/Menu.svelte +1 -1
  68. package/dist/components/SiteHeadline/SiteHeadline.svelte +44 -97
  69. package/dist/components/Spinner/Spinner.svelte +3 -12
  70. package/dist/components/Table/Pagination.svelte +7 -7
  71. package/dist/components/Table/Select.svelte +4 -4
  72. package/dist/components/Table/SortArrow.svelte +2 -2
  73. package/dist/components/Table/Table.svelte +18 -17
  74. package/dist/components/Theme/themes/common.js +28 -0
  75. package/dist/components/Theme/themes/dark.js +4 -12
  76. package/dist/components/Theme/themes/light.js +4 -11
  77. package/dist/components/ToolsHeader/ToolsHeader.svelte +3 -2
  78. package/dist/components/Video/Video.svelte +15 -48
  79. package/dist/scss/_mixins.scss +6 -6
  80. package/dist/scss/colours/_main.scss +3 -0
  81. package/dist/scss/colours/primary/_amber.scss +13 -0
  82. package/dist/scss/colours/primary/_blue.scss +13 -0
  83. package/dist/scss/colours/primary/_cyan.scss +13 -0
  84. package/dist/scss/colours/primary/_emerald.scss +13 -0
  85. package/dist/scss/colours/primary/_fuchsia.scss +13 -0
  86. package/dist/scss/colours/primary/_green.scss +13 -0
  87. package/dist/scss/colours/primary/_grey.scss +13 -0
  88. package/dist/scss/colours/primary/_indigo.scss +13 -0
  89. package/dist/scss/colours/primary/_lime.scss +13 -0
  90. package/dist/scss/colours/primary/_neutral.scss +13 -0
  91. package/dist/scss/colours/primary/_orange.scss +13 -0
  92. package/dist/scss/colours/primary/_pink.scss +13 -0
  93. package/dist/scss/colours/primary/_purple.scss +13 -0
  94. package/dist/scss/colours/primary/_red.scss +13 -0
  95. package/dist/scss/colours/primary/_rose.scss +13 -0
  96. package/dist/scss/colours/primary/_sky.scss +13 -0
  97. package/dist/scss/colours/primary/_slate.scss +13 -0
  98. package/dist/scss/colours/primary/_stone.scss +13 -0
  99. package/dist/scss/colours/primary/_teal.scss +13 -0
  100. package/dist/scss/colours/primary/_violet.scss +13 -0
  101. package/dist/scss/colours/primary/_yellow.scss +13 -0
  102. package/dist/scss/colours/primary/_zinc.scss +13 -0
  103. package/dist/scss/colours/thematic/_grey.scss +13 -0
  104. package/dist/scss/colours/thematic/_nord.scss +42 -40
  105. package/dist/scss/colours/thematic/_tr.scss +27 -25
  106. package/dist/scss/fonts/_font-faces.scss +194 -66
  107. package/dist/scss/main.scss +15 -16
  108. package/dist/scss/mixins/_main.scss +1 -0
  109. package/dist/scss/reset/_main.scss +12 -0
  110. package/dist/scss/reset/_typography.scss +138 -0
  111. package/dist/scss/token-classes.scss +8 -0
  112. package/dist/scss/tokens/accessibility/_main.scss +1 -0
  113. package/dist/scss/tokens/accessibility/_visibility.scss +5 -0
  114. package/dist/scss/tokens/accessibility/mixins/_main.scss +1 -0
  115. package/dist/scss/{mixins/_visually-hidden.scss → tokens/accessibility/mixins/_visibility.scss} +1 -2
  116. package/dist/scss/tokens/backgrounds/_background-color.scss +26 -0
  117. package/dist/scss/tokens/backgrounds/_main.scss +1 -0
  118. package/dist/scss/tokens/backgrounds/mixins/_background-color.scss +24 -0
  119. package/dist/scss/tokens/backgrounds/mixins/_main.scss +1 -0
  120. package/dist/scss/tokens/borders/_border-color.scss +15 -0
  121. package/dist/scss/tokens/borders/_border-radius.scss +279 -0
  122. package/dist/scss/tokens/borders/_border-style.scss +18 -0
  123. package/dist/scss/tokens/borders/_border-width.scss +115 -0
  124. package/dist/scss/tokens/borders/_main.scss +3 -0
  125. package/dist/scss/tokens/interactivity/_cursor.scss +72 -0
  126. package/dist/scss/tokens/interactivity/_main.scss +2 -0
  127. package/dist/scss/tokens/interactivity/_pointer-events.scss +12 -0
  128. package/dist/scss/tokens/layout/_box-sizing.scss +12 -0
  129. package/dist/scss/tokens/layout/_display.scss +126 -0
  130. package/dist/scss/tokens/layout/_floats.scss +18 -0
  131. package/dist/scss/tokens/layout/_main.scss +8 -0
  132. package/dist/scss/tokens/layout/_object-fit.scss +30 -0
  133. package/dist/scss/tokens/layout/_object-position.scss +54 -0
  134. package/dist/scss/tokens/layout/_overflow.scss +90 -0
  135. package/dist/scss/tokens/layout/_position.scss +30 -0
  136. package/dist/scss/tokens/layout/flex/_align-content.scss +54 -0
  137. package/dist/scss/tokens/layout/flex/_align-items.scss +30 -0
  138. package/dist/scss/tokens/layout/flex/_align-self.scss +36 -0
  139. package/dist/scss/tokens/layout/flex/_flex-direction.scss +24 -0
  140. package/dist/scss/tokens/layout/flex/_flex-grow.scss +12 -0
  141. package/dist/scss/tokens/layout/flex/_flex-shrink.scss +12 -0
  142. package/dist/scss/tokens/layout/flex/_flex-wrap.scss +18 -0
  143. package/dist/scss/tokens/layout/flex/_flex.scss +24 -0
  144. package/dist/scss/tokens/layout/flex/_justify-content.scss +48 -0
  145. package/dist/scss/tokens/layout/flex/_justify-items.scss +24 -0
  146. package/dist/scss/tokens/layout/flex/_justify-self.scss +30 -0
  147. package/dist/scss/tokens/layout/flex/_main.scss +11 -0
  148. package/dist/scss/tokens/sizing/_height.scss +168 -0
  149. package/dist/scss/tokens/sizing/_main.scss +6 -0
  150. package/dist/scss/tokens/sizing/_max-height.scss +12 -0
  151. package/dist/scss/tokens/sizing/_max-width.scss +12 -0
  152. package/dist/scss/tokens/sizing/_min-height.scss +12 -0
  153. package/dist/scss/tokens/sizing/_min-width.scss +6 -0
  154. package/dist/scss/tokens/sizing/_width.scss +176 -0
  155. package/dist/scss/tokens/spacers/_fluid-margin.scss +68 -0
  156. package/dist/scss/tokens/spacers/_fluid-padding.scss +49 -0
  157. package/dist/scss/tokens/spacers/_main.scss +4 -0
  158. package/dist/scss/tokens/spacers/_margin.scss +109 -0
  159. package/dist/scss/tokens/spacers/_padding.scss +86 -0
  160. package/dist/scss/tokens/spacers/mixins/_fluid-margin.scss +85 -0
  161. package/dist/scss/tokens/spacers/mixins/_fluid-padding.scss +85 -0
  162. package/dist/scss/tokens/spacers/mixins/_main.scss +2 -0
  163. package/dist/scss/tokens/text/_color.scss +20 -0
  164. package/dist/scss/tokens/text/_font-family.scss +68 -0
  165. package/dist/scss/tokens/text/_font-size.scss +68 -0
  166. package/dist/scss/tokens/text/_font-style.scss +12 -0
  167. package/dist/scss/tokens/text/_font-weight.scss +56 -0
  168. package/dist/scss/tokens/text/_letter-spacing.scss +38 -0
  169. package/dist/scss/tokens/text/_line-height.scss +38 -0
  170. package/dist/scss/tokens/text/_main.scss +14 -0
  171. package/dist/scss/tokens/text/_text-align.scss +36 -0
  172. package/dist/scss/tokens/text/_text-decoration.scss +24 -0
  173. package/dist/scss/tokens/text/_text-stroke.scss +74 -0
  174. package/dist/scss/{typography/_transform.scss → tokens/text/_text-transform.scss} +7 -2
  175. package/dist/scss/tokens/text/_vertical-align.scss +48 -0
  176. package/dist/scss/tokens/text/_white-space.scss +12 -0
  177. package/dist/scss/tokens/text/_word-break.scss +14 -0
  178. package/dist/scss/tokens/text/mixins/_color.scss +18 -0
  179. package/dist/scss/tokens/text/mixins/_font-family.scss +66 -0
  180. package/dist/scss/tokens/text/mixins/_font-size.scss +66 -0
  181. package/dist/scss/tokens/text/mixins/_font-weight.scss +54 -0
  182. package/dist/scss/tokens/text/mixins/_letter-spacing.scss +36 -0
  183. package/dist/scss/tokens/text/mixins/_line-height.scss +36 -0
  184. package/dist/scss/tokens/text/mixins/_main.scss +7 -0
  185. package/dist/scss/tokens/text/mixins/_text-stroke.scss +8 -0
  186. package/dist/scss/tokens/variables/_main.scss +1 -0
  187. package/dist/scss/tokens/variables/_theme.scss +8 -0
  188. package/package.json +154 -43
  189. package/dist/scss/_variables.scss +0 -2
  190. package/dist/scss/bootstrap/_main.scss +0 -34
  191. package/dist/scss/bootstrap/_variables.scss +0 -10
  192. package/dist/scss/components/_hero-title.scss +0 -118
  193. package/dist/scss/fonts/_mixins.scss +0 -25
  194. package/dist/scss/fonts/_rules.scss +0 -19
  195. package/dist/scss/fonts/_variables.scss +0 -26
  196. package/dist/scss/mixins/_body-text.scss +0 -113
  197. package/dist/scss/mixins/_graphic.scss +0 -66
  198. package/dist/scss/mixins/_note-text.scss +0 -34
  199. package/dist/scss/spacers/_rules.scss +0 -65
  200. package/dist/scss/spacers/_variables.scss +0 -19
  201. package/dist/scss/typography/_box-shadow.scss +0 -11
  202. package/dist/scss/typography/_font-size.scss +0 -81
  203. package/dist/scss/typography/_letter-spacing.scss +0 -15
  204. package/dist/scss/typography/_main.scss +0 -5
  205. package/dist/scss/typography/_mixins.scss +0 -26
  206. package/dist/scss/typography/_rules.scss +0 -83
  207. package/dist/scss/typography/_text-shadow.scss +0 -13
  208. package/dist/scss/typography/_variables.scss +0 -39
@@ -79,7 +79,7 @@
79
79
  }
80
80
 
81
81
  .company {
82
- border-top: 1px solid var(--nav-rules, #d0d0d0);
82
+ border-top: 1px solid var(--nav-rules);
83
83
  }
84
84
  .company .content-container {
85
85
  padding-left: 2.2222222222vw;
@@ -122,12 +122,12 @@
122
122
  }
123
123
  .links .symbol .button {
124
124
  border-radius: 8px;
125
- border: 1px solid var(--nav-rules, #d0d0d0);
125
+ border: 1px solid var(--nav-rules);
126
126
  background: var(--nav-background, #fff);
127
127
  color: var(--nav-primary, #666);
128
128
  }
129
129
  .links .symbol .button:hover {
130
- border: 1px solid var(--nav-primary, #404040);
130
+ border: 1px solid var(--nav-primary);
131
131
  }
132
132
  .links .social {
133
133
  width: 40px;
@@ -155,7 +155,7 @@ section.company h2 {
155
155
  margin-bottom: 12px;
156
156
  line-height: 1.333;
157
157
  font-size: 16px;
158
- color: var(--nav-primary, #404040);
158
+ color: var(--nav-primary);
159
159
  font-weight: 400;
160
160
  -webkit-font-smoothing: antialiased;
161
161
  }
@@ -165,9 +165,9 @@ section.company h2 {
165
165
  }
166
166
  }
167
167
  section.company p {
168
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
168
+ font-family: var(--theme-font-family-sans-serif);
169
169
  line-height: 1.43;
170
170
  font-size: 14px;
171
- color: var(--nav-primary, #404040);
171
+ color: var(--nav-primary);
172
172
  font-weight: 400;
173
173
  }</style>
@@ -76,7 +76,7 @@
76
76
  }
77
77
 
78
78
  .legal {
79
- border-top: 1px solid var(--nav-rules, #d0d0d0);
79
+ border-top: 1px solid var(--nav-rules);
80
80
  }
81
81
  .legal .content-container {
82
82
  padding-left: 2.2222222222vw;
@@ -170,8 +170,8 @@
170
170
  align-items: center;
171
171
  }
172
172
  .link-group li a {
173
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
174
- color: var(--nav-primary, #404040);
173
+ font-family: var(--theme-font-family-sans-serif);
174
+ color: var(--nav-primary);
175
175
  font-size: 14px;
176
176
  font-weight: 500;
177
177
  }
@@ -184,9 +184,9 @@ section {
184
184
  p.copyright,
185
185
  p.disclaimer {
186
186
  margin: 0;
187
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
187
+ font-family: var(--theme-font-family-sans-serif);
188
188
  font-size: 14px;
189
- color: var(--nav-primary, #404040);
189
+ color: var(--nav-primary);
190
190
  }
191
191
  p.copyright a,
192
192
  p.disclaimer a {
@@ -157,16 +157,16 @@
157
157
  display: flex;
158
158
  align-items: center;
159
159
  margin: 8px 0;
160
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
160
+ font-family: var(--theme-font-family-sans-serif);
161
161
  }
162
162
  .quick-links ul li a {
163
- color: var(--nav-primary, #404040);
163
+ color: var(--nav-primary);
164
164
  font-weight: 500;
165
165
  font-size: 16px;
166
166
  }
167
167
 
168
168
  section.quick-links {
169
- border-top: 1px solid var(--nav-rules, #d0d0d0);
169
+ border-top: 1px solid var(--nav-rules);
170
170
  max-width: 100%;
171
171
  }
172
172
  section.quick-links .content-container {
@@ -187,7 +187,7 @@ section.quick-links .content-container {
187
187
  }
188
188
  }
189
189
  section.quick-links h3 {
190
- color: var(--nav-primary, #404040);
190
+ color: var(--nav-primary);
191
191
  font-size: 16px;
192
192
  font-weight: 400;
193
193
  margin: 0;
@@ -10,12 +10,16 @@
10
10
  <a href="{url.replace('index.html', '')}">
11
11
  <IntersectionObserver let:intersecting top="{600}" once="{true}">
12
12
  {#if intersecting}
13
- <div class="image" style="{`background-image: url(${image});`}"></div>
13
+ <div
14
+ data-chromatic="ignore"
15
+ class="image"
16
+ style="{`background-image: url(${image});`}"
17
+ ></div>
14
18
  {:else}
15
19
  <div class="image"></div>
16
20
  {/if}
17
21
  </IntersectionObserver>
18
- <p>{title}</p>
22
+ <p data-chromatic="ignore">{title}</p>
19
23
  </a>
20
24
  </div>
21
25
 
@@ -47,7 +51,7 @@
47
51
  text-decoration: underline;
48
52
  }
49
53
  .referral p {
50
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
54
+ font-family: var(--theme-font-family-sans-serif);
51
55
  color: var(--nav-primary, #666);
52
56
  font-size: 0.9rem;
53
57
  line-height: 1.2rem;
@@ -35,6 +35,7 @@ onMount(async () => {
35
35
  --nav-background: var(--theme-colour-background, #fff);
36
36
  --nav-primary: var(--theme-colour-text-primary, #404040);
37
37
  --nav-rules: var(--theme-colour-brand-rules, #d0d0d0);
38
+ --theme-font-family-sans-serif: Knowledge, sans-serif;
38
39
  `}"
39
40
  >
40
41
  <div>
@@ -14,5 +14,5 @@
14
14
  >
15
15
 
16
16
  <style>svg {
17
- fill: var(--nav-primary, #404040);
17
+ fill: var(--nav-primary, var(--tr-dark-grey));
18
18
  }</style>
@@ -14,5 +14,5 @@
14
14
  </svg>
15
15
 
16
16
  <style>svg {
17
- fill: var(--nav-primary, #404040);
17
+ fill: var(--nav-primary, var(--tr-dark-grey));
18
18
  }</style>
@@ -16,5 +16,5 @@
16
16
  >
17
17
 
18
18
  <style>svg {
19
- fill: var(--nav-primary, #404040);
19
+ fill: var(--nav-primary, var(--tr-dark-grey));
20
20
  }</style>
@@ -14,5 +14,5 @@
14
14
  >
15
15
 
16
16
  <style>svg {
17
- fill: var(--nav-primary, #404040);
17
+ fill: var(--nav-primary, var(--tr-dark-grey));
18
18
  }</style>
@@ -10,5 +10,5 @@
10
10
  >
11
11
 
12
12
  <style>svg {
13
- fill: var(--nav-primary, #404040);
13
+ fill: var(--nav-primary, var(--tr-dark-grey));
14
14
  }</style>
@@ -14,5 +14,5 @@
14
14
  >
15
15
 
16
16
  <style>svg {
17
- fill: var(--nav-primary, #404040);
17
+ fill: var(--nav-primary, var(--tr-dark-grey));
18
18
  }</style>
@@ -10,5 +10,5 @@
10
10
  >
11
11
 
12
12
  <style>svg {
13
- fill: var(--nav-primary, #404040);
13
+ fill: var(--nav-primary, var(--tr-dark-grey));
14
14
  }</style>
@@ -14,5 +14,5 @@
14
14
  >
15
15
 
16
16
  <style>svg {
17
- fill: var(--nav-primary, #404040);
17
+ fill: var(--nav-primary, var(--tr-dark-grey));
18
18
  }</style>
@@ -128,7 +128,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
128
128
  .header {
129
129
  padding-left: 2.2222222222vw;
130
130
  padding-right: 2.2222222222vw;
131
- border-bottom: 1px solid var(--nav-rules, #d0d0d0);
131
+ border-bottom: 1px solid var(--nav-rules, var(--tr-muted-grey));
132
132
  }
133
133
  @media (max-width: 1023px) {
134
134
  .header {
@@ -148,7 +148,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
148
148
  padding-right: 2.2222222222vw;
149
149
  padding-top: 16px;
150
150
  padding-bottom: 16px;
151
- border-bottom: 1px solid #d0d0d0;
151
+ border-bottom: 1px solid var(--tr-muted-grey);
152
152
  width: 100%;
153
153
  max-width: 100%;
154
154
  }
@@ -188,7 +188,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
188
188
  }
189
189
  .section .section-link,
190
190
  .section .subsection-link {
191
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
191
+ font-family: var(--theme-font-family-sans-serif);
192
192
  text-decoration: none;
193
193
  line-height: 1.2;
194
194
  color: var(--nav-primary);
@@ -18,7 +18,7 @@
18
18
  <style>svg {
19
19
  margin-left: 4px;
20
20
  width: 10px;
21
- fill: var(--nav-primary, #404040);
21
+ fill: var(--nav-primary, var(--tr-dark-grey));
22
22
  transition: transform 0.15s ease;
23
23
  }
24
24
  svg.rotated {
@@ -82,7 +82,7 @@ a:hover {
82
82
  }
83
83
  .more-section-group .subsections .subsection-link {
84
84
  font-size: 16px;
85
- color: var(--nav-primary, #404040);
85
+ color: var(--nav-primary, var(--tr-dark-grey));
86
86
  line-height: 18px;
87
87
  font-weight: 400;
88
88
  display: inline-block;
@@ -99,7 +99,7 @@ a:hover {
99
99
  line-height: 18px;
100
100
  font-size: 16px;
101
101
  display: inline-block;
102
- color: var(--nav-primary, #404040);
102
+ color: var(--nav-primary, var(--tr-dark-grey));
103
103
  text-decoration: none;
104
104
  }
105
105
  @media (min-width: 1300px) {
@@ -46,7 +46,7 @@
46
46
  text-decoration: none;
47
47
  }
48
48
  a:hover {
49
- color: var(--nav-primary, #404040);
49
+ color: var(--nav-primary, var(--tr-dark-grey));
50
50
  text-decoration: underline !important;
51
51
  }
52
52
 
@@ -94,7 +94,7 @@ span.heading {
94
94
  text-decoration: none;
95
95
  text-transform: none;
96
96
  font-smooth: always;
97
- color: var(--nav-primary, #404040);
97
+ color: var(--nav-primary, var(--tr-dark-grey));
98
98
  -webkit-font-smoothing: antialiased;
99
99
  }
100
100
  @media (min-width: 1300px) {
@@ -111,7 +111,7 @@ li > a {
111
111
  line-height: 1.75;
112
112
  letter-spacing: 0;
113
113
  font-size: 16px;
114
- color: var(--nav-primary, #404040);
114
+ color: var(--nav-primary, var(--tr-dark-grey));
115
115
  font-weight: 400;
116
116
  font-smooth: always;
117
117
  -webkit-font-smoothing: antialiased;
@@ -13,7 +13,7 @@
13
13
  position: relative;
14
14
  height: 0;
15
15
  padding-bottom: 100%;
16
- color: var(--nav-primary, #404040);
16
+ color: var(--nav-primary, var(--tr-dark-grey));
17
17
  }
18
18
 
19
19
  .spinner {
@@ -38,7 +38,7 @@
38
38
  display: flex;
39
39
  flex-direction: row;
40
40
  justify-content: flex-start;
41
- color: var(--nav-primary, #404040);
41
+ color: var(--nav-primary, var(--tr-dark-grey));
42
42
  text-decoration: none;
43
43
  }
44
44
  .story-card a:hover, .story-card a:focus {
@@ -58,10 +58,10 @@
58
58
  width: calc(100% - 84px);
59
59
  }
60
60
  .story-card a .story-text span {
61
- color: var(--nav-primary, #404040);
61
+ color: var(--nav-primary, var(--tr-dark-grey));
62
62
  font-size: 16px;
63
63
  font-weight: 500;
64
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
64
+ font-family: var(--theme-font-family-sans-serif);
65
65
  }
66
66
  @media (min-width: 1300px) {
67
67
  .story-card a .story-text span {
@@ -76,7 +76,7 @@
76
76
  font-weight: 200;
77
77
  }
78
78
  .story-card a .story-text time {
79
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
79
+ font-family: var(--theme-font-family-sans-serif);
80
80
  margin-top: 8px;
81
81
  display: block;
82
82
  font-size: 12px;
@@ -101,7 +101,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
101
101
  }
102
102
 
103
103
  .dropdown-container {
104
- border-top: 1px solid var(--nav-rules, #d0d0d0);
104
+ border-top: 1px solid var(--nav-rules, var(--tr-muted-grey));
105
105
  box-shadow: 0 10px 16px rgba(0, 0, 0, 0.1);
106
106
  overflow: hidden;
107
107
  background: var(--nav-background, #fff);
@@ -174,7 +174,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
174
174
  }
175
175
  .stories-container .inner {
176
176
  padding-left: 2.2222222222vw;
177
- border-left: 1px solid var(--nav-rules, #d0d0d0);
177
+ border-left: 1px solid var(--nav-rules, var(--tr-muted-grey));
178
178
  }
179
179
  @media (max-width: 1023px) {
180
180
  .stories-container .inner {
@@ -226,7 +226,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
226
226
  animation: fadein 0.5s both cubic-bezier(0.19, 1, 0.22, 1);
227
227
  }
228
228
  .story-item:nth-child(1), .story-item:nth-child(2) {
229
- border-bottom: 1px solid var(--nav-rules, #d0d0d0);
229
+ border-bottom: 1px solid var(--nav-rules, var(--tr-muted-grey));
230
230
  }
231
231
  .story-item:nth-child(3), .story-item:nth-child(4) {
232
232
  padding-top: 20px;
@@ -236,7 +236,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
236
236
  padding-top: 20px;
237
237
  }
238
238
  .story-item:nth-child(3) {
239
- border-bottom: 1px solid var(--nav-rules, #d0d0d0);
239
+ border-bottom: 1px solid var(--nav-rules, var(--tr-muted-grey));
240
240
  }
241
241
  }
242
242
 
@@ -258,7 +258,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
258
258
  }
259
259
  span.latest {
260
260
  font-size: 16px;
261
- color: var(--nav-primary, #404040);
261
+ color: var(--nav-primary, var(--tr-dark-grey));
262
262
  }
263
263
  @media (min-width: 1300px) {
264
264
  span.latest {
@@ -144,7 +144,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
144
144
  .nav-item {
145
145
  display: inline-flex;
146
146
  padding: 0 10px;
147
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
147
+ font-family: var(--theme-font-family-sans-serif);
148
148
  font-weight: 500;
149
149
  font-size: 16px;
150
150
  }
@@ -157,7 +157,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
157
157
  }
158
158
  .nav-item .nav-button a,
159
159
  .nav-item .nav-button span {
160
- color: var(--nav-primary, #404040);
160
+ color: var(--nav-primary, var(--tr-dark-grey));
161
161
  text-decoration: none;
162
162
  }
163
163
  .nav-item .nav-button a:hover, .nav-item .nav-button a:active,
@@ -178,7 +178,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
178
178
  bottom: 0;
179
179
  display: block;
180
180
  height: 4px;
181
- background: var(--nav-accent, #fa6400);
181
+ background: var(--nav-accent, var(--tr-orange));
182
182
  opacity: 1 !important;
183
183
  }
184
184
  .nav-item .link {
@@ -193,7 +193,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
193
193
  bottom: 0;
194
194
  display: block;
195
195
  height: 4px;
196
- background: var(--nav-accent, #fa6400);
196
+ background: var(--nav-accent, var(--tr-orange));
197
197
  }
198
198
 
199
199
  .button {
@@ -205,10 +205,10 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
205
205
  -moz-appearance: none;
206
206
  appearance: none;
207
207
  cursor: pointer;
208
- font-family: "Knowledge", "Source Sans Pro", Arial, sans-serif;
208
+ font-family: var(--theme-font-family-sans-serif);
209
209
  font-weight: 500;
210
210
  font-size: 16px;
211
- color: var(--nav-primary, #404040);
211
+ color: var(--nav-primary, var(--tr-dark-grey));
212
212
  }
213
213
  .button:not(.focused) {
214
214
  outline: none;
@@ -36,6 +36,7 @@ onMount(async () => {
36
36
  --nav-rules: var(--theme-colour-brand-rules, #d0d0d0);
37
37
  --nav-accent: var(--theme-colour-brand-logo, #fa6400);
38
38
  --nav-shadow: 0 1px 4px 2px var(--theme-colour-brand-shadow, rgb(255 255 255 / 10%));
39
+ --theme-font-family-sans-serif: Knowledge, sans-serif;
39
40
  `}"
40
41
  >
41
42
  <div class="nav-container show-nav">
@@ -120,7 +121,7 @@ To handle overlapping borders within components (e.g., buttons and inputs in inp
120
121
  top: 0;
121
122
  background: var(--nav-background, #fff);
122
123
  pointer-events: auto;
123
- border-bottom: 1px solid var(--nav-rules, #d0d0d0);
124
+ border-bottom: 1px solid var(--nav-rules, var(--tr-muted-grey));
124
125
  }
125
126
 
126
127
  .main-bar {
@@ -10,5 +10,5 @@
10
10
  >
11
11
 
12
12
  <style>svg {
13
- fill: var(--nav-primary, #404040);
13
+ fill: var(--nav-primary, var(--tr-dark-grey));
14
14
  }</style>
@@ -15,5 +15,5 @@
15
15
  </svg>
16
16
 
17
17
  <style>svg {
18
- fill: var(--nav-primary, #404040);
18
+ fill: var(--nav-primary, var(--tr-dark-grey));
19
19
  }</style>
@@ -4,6 +4,11 @@
4
4
  * @required
5
5
  */
6
6
  export let hed = 'Reuters Graphics Interactive';
7
+ /**
8
+ * Headline size
9
+ * @type {string}
10
+ */
11
+ export let hedSize = 'normal';
7
12
  /**
8
13
  * Section title.
9
14
  * @type {string}
@@ -37,7 +42,8 @@ export let id = '';
37
42
  * Add extra classes to target with custom CSS.
38
43
  * @type {string}
39
44
  */
40
- export let cls = '';
45
+ let cls = '';
46
+ export { cls as class };
41
47
  import Block from '../Block/Block.svelte';
42
48
  import slugify from 'slugify';
43
49
  import { apdate } from 'journalize';
@@ -56,31 +62,57 @@ const formatTime = (datetime) => new Date(datetime).toLocaleTimeString([], {
56
62
  const areSameDay = (first, second) => first.getFullYear() === second.getFullYear() &&
57
63
  first.getMonth() === second.getMonth() &&
58
64
  first.getDate() === second.getDate();
65
+ let hedClass;
66
+ $: {
67
+ switch (hedSize) {
68
+ case 'biggest':
69
+ hedClass = 'text-6xl';
70
+ break;
71
+ case 'bigger':
72
+ hedClass = 'text-5xl';
73
+ break;
74
+ case 'big':
75
+ hedClass = 'text-4xl';
76
+ break;
77
+ case 'small':
78
+ hedClass = 'text-2xl';
79
+ break;
80
+ default:
81
+ hedClass = 'text-3xl';
82
+ }
83
+ }
59
84
  </script>
60
85
 
61
- <Block id="{id}" cls="headline-container {cls}" width="normal">
86
+ <Block id="{id}" class="headline-container !my-16 {cls}" width="normal">
62
87
  <header class="headline">
63
88
  <div class="title">
64
89
  {#if section}
65
- <p class="section-title">
90
+ <p
91
+ class="section-title mb-2 font-subhed text-sm text-secondary font-bold"
92
+ >
66
93
  {#if sectionUrl}
67
- <a href="{sectionUrl}">{section}</a>
94
+ <a class="no-underline !text-secondary" href="{sectionUrl}"
95
+ >{section}</a
96
+ >
68
97
  {:else}
69
98
  {section}
70
99
  {/if}
71
100
  </p>
72
101
  {/if}
73
102
  {#if hed}
74
- <h1>{hed}</h1>
103
+ <h1 class="my-0 font-hed text-primary leading-none {hedClass}">
104
+ {hed}
105
+ </h1>
75
106
  {/if}
76
107
  </div>
77
- <aside class="article-metadata">
108
+ <aside class="article-metadata mt-2 font-subhed">
78
109
  <div class="byline-container">
79
- <div class="byline">
110
+ <div class="byline text-sm text-primary font-bold leading-tight">
80
111
  By
81
112
  {#if authors.length > 0}
82
113
  {#each authors as author, i}
83
114
  <a
115
+ class="no-underline"
84
116
  href="https://www.reuters.com/authors/{slugify(author.trim(), {
85
117
  lower: true,
86
118
  })}/"
@@ -95,7 +127,9 @@ const areSameDay = (first, second) => first.getFullYear() === second.getFullYear
95
127
  {/if}
96
128
  </div>
97
129
  </div>
98
- <div class="dateline-container">
130
+ <div
131
+ class="dateline-container mt-1.5 text-secondary text-xxs uppercase leading-normal tracking-normal"
132
+ >
99
133
  {#if isValidDate(publishTime)}
100
134
  <div>
101
135
  Published
@@ -129,96 +163,9 @@ const areSameDay = (first, second) => first.getFullYear() === second.getFullYear
129
163
  </header>
130
164
  </Block>
131
165
 
132
- <style>:global(div.article-block.headline-container) {
133
- margin: 4rem auto;
134
- }
135
-
136
- header.headline {
137
- text-align: center;
138
- color: var(--theme-colour-text-primary, #404040);
139
- }
140
- header.headline h1 {
141
- text-align: left;
142
- font-size: 3rem;
143
- line-height: 1.14;
144
- margin: 0.6rem 0;
145
- font-family: var(--theme-font-family-hed, "Knowledge", "Source Sans Pro", Arial, sans-serif);
146
- color: var(--theme-colour-text-primary, #404040);
147
- }
148
- @media (max-width: 900px) {
149
- header.headline h1 {
150
- font-size: 2.6rem;
151
- }
152
- }
153
- @media (max-width: 600px) {
154
- header.headline h1 {
155
- font-size: 2.1rem;
156
- font-weight: 500;
157
- }
158
- }
159
- header.headline p {
160
- font-family: var(--theme-font-family-subhed, "Knowledge", "Source Sans Pro", Arial, sans-serif);
161
- color: var(--theme-colour-text-primary, #404040);
162
- margin: 0;
163
- font-weight: 200;
164
- }
165
- header.headline p.section-title {
166
- font-weight: 800;
167
- color: var(--theme-colour-text-secondary, #afafaf);
168
- text-align: left;
169
- font-size: 1.2rem;
170
- opacity: 0.8;
171
- }
172
- @media (max-width: 600px) {
173
- header.headline p.section-title {
174
- font-size: 1rem;
175
- }
176
- }
177
- header.headline p.section-title a {
178
- color: var(--theme-colour-text-secondary, #afafaf);
179
- text-decoration: none;
180
- }
181
- header.headline .article-metadata {
182
- padding: 40px 0 0;
183
- padding-top: 0;
184
- font-family: var(--theme-font-family-note, "Knowledge", "Source Sans Pro", Arial, sans-serif);
185
- color: var(--theme-colour-text-primary, #404040);
186
- text-align: left;
187
- }
188
- header.headline .article-metadata .byline-container {
189
- margin-bottom: 0px;
190
- }
191
- header.headline .article-metadata .byline {
192
- font-weight: bold;
193
- font-weight: 600;
194
- font-size: 1rem;
195
- line-height: 1.4rem;
196
- }
197
- @media (max-width: 600px) {
198
- header.headline .article-metadata .byline {
199
- font-size: 0.9rem;
200
- line-height: 1.2rem;
201
- }
202
- }
203
- header.headline .article-metadata .byline a {
204
- color: var(--theme-colour-text-primary, #404040);
166
+ <style>.byline a {
205
167
  text-decoration: none;
206
- white-space: nowrap;
207
168
  }
208
- header.headline .article-metadata .byline a:hover {
169
+ .byline a:hover {
209
170
  text-decoration: underline;
210
- }
211
- header.headline .article-metadata .dateline-container {
212
- text-transform: uppercase;
213
- color: var(--theme-colour-text-secondary, #666666);
214
- font-size: 0.8rem;
215
- line-height: 1.1rem;
216
- letter-spacing: 0.3px;
217
- margin-top: 0.5rem;
218
- }
219
- @media (max-width: 600px) {
220
- header.headline .article-metadata .dateline-container {
221
- font-size: 0.75rem;
222
- line-height: 1.05rem;
223
- }
224
171
  }</style>