@fifthbell/brokaw 0.1.50 → 0.1.52

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 (83) hide show
  1. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGD_jZtU.ttf +0 -0
  2. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGFPjZtU.ttf +0 -0
  3. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGGHiZtU.ttf +0 -0
  4. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGGHjZtU.ttf +0 -0
  5. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGIbkZtU.ttf +0 -0
  6. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGL_kZtU.ttf +0 -0
  7. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGMjkZtU.ttf +0 -0
  8. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGOHjZtU.ttf +0 -0
  9. package/dist/fonts/LDIcapOFNxEwR-Bd1O9uYNmnUQomAgE25imKSbHhROjLsZBWTSrQGOHkZtU.ttf +0 -0
  10. package/dist/fonts/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-2fRUAw.ttf +0 -0
  11. package/dist/fonts/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-6_RUAw.ttf +0 -0
  12. package/dist/fonts/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-DPNUAw.ttf +0 -0
  13. package/dist/fonts/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-NfNUAw.ttf +0 -0
  14. package/dist/fonts/SlGDmQSNjdsmc35JDF1K5E55YMjF_7DPuGi-a_NUAw.ttf +0 -0
  15. package/dist/fonts/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7c8R496.ttf +0 -0
  16. package/dist/fonts/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7dbR496.ttf +0 -0
  17. package/dist/fonts/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7diR496.ttf +0 -0
  18. package/dist/fonts/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7e8QI96.ttf +0 -0
  19. package/dist/fonts/SlGFmQSNjdsmc35JDF1K5GRwUjcdlttVFm-rI7eOQI96.ttf +0 -0
  20. package/dist/fonts/TK3_WkUHHAIjg75cFRf3bXL8LICs13FvgUE.ttf +0 -0
  21. package/dist/fonts/TK3_WkUHHAIjg75cFRf3bXL8LICs169vgUE.ttf +0 -0
  22. package/dist/fonts/TK3_WkUHHAIjg75cFRf3bXL8LICs18NvgUE.ttf +0 -0
  23. package/dist/fonts/TK3_WkUHHAIjg75cFRf3bXL8LICs1_FvgUE.ttf +0 -0
  24. package/dist/fonts/TK3_WkUHHAIjg75cFRf3bXL8LICs1xZogUE.ttf +0 -0
  25. package/dist/fonts/TK3_WkUHHAIjg75cFRf3bXL8LICs1y9ogUE.ttf +0 -0
  26. package/dist/fonts/j8_16_LD37rqfuwxyIuaZhE6cRXOLtm2gfTGgQ.ttf +0 -0
  27. package/dist/fonts/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-BYipBw.ttf +0 -0
  28. package/dist/fonts/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-IYmpBw.ttf +0 -0
  29. package/dist/fonts/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-PYqpBw.ttf +0 -0
  30. package/dist/fonts/j8_46_LD37rqfuwxyIuaZhE6cRXOLtm2gfT-WYupBw.ttf +0 -0
  31. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oYiRNDM.ttf +0 -0
  32. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZ8RNDM.ttf +0 -0
  33. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZ8RdDM.ttf +0 -0
  34. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oZORNDM.ttf +0 -0
  35. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oabQ9DM.ttf +0 -0
  36. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05oaiQ9DM.ttf +0 -0
  37. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05ob8Q9DM.ttf +0 -0
  38. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05ob8RNDM.ttf +0 -0
  39. package/dist/fonts/jizMREVItHgc8qDIbSTKq4XkRiUawTk7f45UM9y05obVQ9DM.ttf +0 -0
  40. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduh8MKUBw.ttf +0 -0
  41. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhHMWUBw.ttf +0 -0
  42. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhLsSUBw.ttf +0 -0
  43. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhLsWUBw.ttf +0 -0
  44. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhcMWUBw.ttf +0 -0
  45. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhh8KUBw.ttf +0 -0
  46. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhrsKUBw.ttf +0 -0
  47. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhrsWUBw.ttf +0 -0
  48. package/dist/fonts/jizOREVItHgc8qDIbSTKq4XkRg8T88bjFuXOnduhycKUBw.ttf +0 -0
  49. package/dist/live-program-page/live-program.css +1 -1
  50. package/dist/renderer.core.js +1 -0
  51. package/dist/renderer.d.ts +2 -2
  52. package/dist/renderer.js +1 -1
  53. package/dist/renderer.node.d.ts +6 -0
  54. package/dist/renderer.node.js +33 -0
  55. package/package.json +2 -2
  56. package/src/styles/compiled.css +1 -1
  57. package/src/templates/layouts/link-in-bio.hbs +1 -3
  58. package/src/templates/partials/blocks/key-points.hbs +1 -1
  59. package/src/templates/partials/blocks/live-update.hbs +1 -1
  60. package/src/templates/partials/components/article-main.hbs +2 -2
  61. package/src/templates/partials/components/breaking-news.hbs +1 -1
  62. package/src/templates/partials/components/category/main-grid.hbs +2 -2
  63. package/src/templates/partials/components/category/more-grid.hbs +1 -1
  64. package/src/templates/partials/components/editorial-hero.hbs +5 -5
  65. package/src/templates/partials/components/headline.hbs +5 -5
  66. package/src/templates/partials/components/home/landing.hbs +2 -2
  67. package/src/templates/partials/components/home/must-read.hbs +3 -3
  68. package/src/templates/partials/components/live-story/main.hbs +1 -1
  69. package/src/templates/partials/components/media/main.hbs +4 -4
  70. package/src/templates/partials/components/not-found/main.hbs +2 -2
  71. package/src/templates/partials/components/search/main.hbs +2 -2
  72. package/src/templates/partials/components/snack.hbs +5 -5
  73. package/src/templates/partials/components/spotlight-hero.hbs +3 -3
  74. package/src/templates/partials/components/trending.hbs +1 -1
  75. package/src/templates/partials/components/ui/accordion.hbs +1 -1
  76. package/src/templates/partials/components/ui/breadcrumb.hbs +1 -1
  77. package/src/templates/partials/components/ui/icon-button.hbs +2 -2
  78. package/src/templates/partials/components/ui/loading-spinner.hbs +3 -3
  79. package/src/templates/partials/components/ui/pagination.hbs +4 -4
  80. package/src/templates/partials/headers/header-main.hbs +6 -6
  81. package/src/templates/partials/nav/nav-categories.hbs +1 -1
  82. package/src/templates/partials/shell/doc-start-404.hbs +1 -6
  83. package/src/templates/partials/shell/doc-start-standard.hbs +10 -9
@@ -1,7 +1,7 @@
1
1
  {{#*inline 'snackMetaImageRow'}}
2
2
  {{#if category}}
3
3
  <div class='w-full flex items-center justify-between {{#if metaTextSize}}{{metaTextSize}}{{else}}text-xs{{/if}} mb-2'>
4
- <span class='text-[#b21100] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{category}}</span>
4
+ <span class='text-[#8f0d00] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{category}}</span>
5
5
  {{#if readTime}}
6
6
  <span class='article-time text-slate-500 dark:text-slate-400'>{{readTime}}</span>
7
7
  {{/if}}
@@ -9,7 +9,7 @@
9
9
  {{else if (lookup categories 0)}}
10
10
  {{#with (lookup categories 0)}}
11
11
  <div class='w-full flex items-center justify-between {{#if ../metaTextSize}}{{../metaTextSize}}{{else}}text-xs{{/if}} mb-2'>
12
- <span class='text-[#b21100] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{name}}</span>
12
+ <span class='text-[#8f0d00] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{name}}</span>
13
13
  {{#if ../readTime}}
14
14
  <span class='article-time text-slate-500 dark:text-slate-400'>{{../readTime}}</span>
15
15
  {{/if}}
@@ -25,7 +25,7 @@
25
25
  {{#*inline 'snackMetaInline'}}
26
26
  {{#if category}}
27
27
  <div class='flex items-center {{#if metaTextSize}}{{metaTextSize}}{{else}}text-xs{{/if}} mb-2'>
28
- <span class='text-[#b21100] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{category}}</span>
28
+ <span class='text-[#8f0d00] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{category}}</span>
29
29
  {{#if readTime}}
30
30
  <span class='mx-2 text-slate-400 dark:text-slate-500'>•</span>
31
31
  <span class='article-time text-slate-500 dark:text-slate-400'>{{readTime}}</span>
@@ -34,7 +34,7 @@
34
34
  {{else if (lookup categories 0)}}
35
35
  {{#with (lookup categories 0)}}
36
36
  <div class='flex items-center {{#if ../metaTextSize}}{{../metaTextSize}}{{else}}text-xs{{/if}} mb-2'>
37
- <span class='text-[#b21100] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{name}}</span>
37
+ <span class='text-[#8f0d00] dark:text-[#ff2e1a] uppercase font-bold tracking-wider'>{{name}}</span>
38
38
  {{#if ../readTime}}
39
39
  <span class='mx-2 text-slate-400 dark:text-slate-500'>•</span>
40
40
  <span class='article-time text-slate-500 dark:text-slate-400'>{{../readTime}}</span>
@@ -68,7 +68,7 @@
68
68
  {{/if}}
69
69
 
70
70
  <h3 class='{{#if titleFontWeight}}{{titleFontWeight}}{{else}}font-bold{{/if}} {{#if titleTextSize}}{{titleTextSize}}{{else}}text-lg{{/if}} leading-snug text-slate-900 dark:text-slate-100 {{#if titleClasses}}{{titleClasses}}{{else}}font-encode{{/if}}'>
71
- <a href='{{url}}' class='hover:text-[#b21100] dark:hover:text-[#ff2e1a] transition-colors'>{{title}}</a>
71
+ <a href='{{url}}' class='hover:text-[#8f0d00] dark:hover:text-[#ff2e1a] transition-colors'>{{title}}</a>
72
72
  </h3>
73
73
  {{#unless (eq showExcerpt false)}}
74
74
  {{#if excerpt}}
@@ -17,12 +17,12 @@
17
17
  <div class='absolute right-0 top-20 flex items-center gap-4'>
18
18
  {{#if slides}}
19
19
  {{#each slides}}
20
- <button class='carousel-dot w-3 h-3 rounded-full {{#if @first}}active{{/if}}' data-slide='{{@index}}'></button>
20
+ <button class='carousel-dot w-3 h-3 rounded-full {{#if @first}}active{{/if}}' data-slide='{{@index}}' aria-label='Go to slide {{add @index 1}}'></button>
21
21
  {{/each}}
22
22
  {{else}}
23
- <button class='carousel-dot w-3 h-3 rounded-full active' data-slide='0'></button>
23
+ <button class='carousel-dot w-3 h-3 rounded-full active' data-slide='0' aria-label='Go to slide 1'></button>
24
24
  {{/if}}
25
- <button class='carousel-next w-10 h-10 flex items-center justify-center'>
25
+ <button class='carousel-next w-10 h-10 flex items-center justify-center' aria-label='Next slide'>
26
26
  <svg width='15' height='27' viewBox='0 0 15 27' fill='none'>
27
27
  <path d='M1.5 1.5L13.5 13.5L1.5 25.5' stroke='#FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'></path>
28
28
  </svg>
@@ -3,7 +3,7 @@
3
3
  <article class='gap-1 flex items-center flex-none'>
4
4
  <div class='flex flex-row items-center'>
5
5
  <span class='h-2 w-2 rounded-full bg-[#b21100] mr-2'></span>
6
- <span class='text-[#b21100] font-medium mr-1'>En vivo</span>
6
+ <span class='text-[#8f0d00] font-medium mr-1'>En vivo</span>
7
7
  </div>
8
8
  <span class='text-[#121212]'>Clásico Universitario</span>
9
9
  </article>
@@ -8,7 +8,7 @@
8
8
  <span class='mt-1.5 text-sm text-slate-500 dark:text-slate-400'>{{subtitle}}</span>
9
9
  {{/if}}
10
10
  </span>
11
- <span class='mt-1 shrink-0 text-slate-400 transition-transform duration-200 group-open:rotate-180 group-open:text-[#b21100] dark:group-open:text-[#ff2e1a]' aria-hidden='true'>
11
+ <span class='mt-1 shrink-0 text-slate-400 transition-transform duration-200 group-open:rotate-180 group-open:text-[#8f0d00] dark:group-open:text-[#ff2e1a]' aria-hidden='true'>
12
12
  <svg viewBox='0 0 20 20' fill='currentColor' class='h-5 w-5'>
13
13
  <path fill-rule='evenodd' d='M5.23 7.21a.75.75 0 0 1 1.06.02L10 11.17l3.71-3.94a.75.75 0 1 1 1.08 1.04l-4.25 4.5a.75.75 0 0 1-1.08 0l-4.25-4.5a.75.75 0 0 1 .02-1.06Z' clip-rule='evenodd'></path>
14
14
  </svg>
@@ -5,7 +5,7 @@
5
5
  {{#if @last}}
6
6
  <span aria-current='page' class='font-semibold text-slate-900 dark:text-slate-100 px-1.5'>{{label}}</span>
7
7
  {{else}}
8
- <a href='{{coalesce url href}}' class='px-1.5 text-slate-500 transition-colors hover:text-[#b21100] dark:text-slate-400 dark:hover:text-[#ff2e1a]'>
8
+ <a href='{{coalesce url href}}' class='px-1.5 text-slate-500 transition-colors hover:text-[#8f0d00] dark:text-slate-400 dark:hover:text-[#ff2e1a]'>
9
9
  {{label}}
10
10
  </a>
11
11
  <span class='text-slate-300 dark:text-slate-600 select-none font-light' aria-hidden='true'>/</span>
@@ -1,7 +1,7 @@
1
1
  {{#if href}}
2
2
  <a
3
3
  href='{{href}}'
4
- class='inline-flex items-center justify-center rounded-full w-9 h-9 border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-600 dark:text-slate-300 transition-colors hover:border-[#b21100] hover:text-[#b21100] dark:hover:border-[#ff2e1a] dark:hover:text-[#ff2e1a] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#b21100] {{#if className}}{{className}}{{/if}}'
4
+ class='inline-flex items-center justify-center rounded-full w-9 h-9 border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-600 dark:text-slate-300 transition-colors hover:border-[#b21100] hover:text-[#8f0d00] dark:hover:border-[#ff2e1a] dark:hover:text-[#ff2e1a] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#b21100] {{#if className}}{{className}}{{/if}}'
5
5
  {{#if title}}title='{{title}}'{{/if}}
6
6
  {{#if ariaLabel}}aria-label='{{ariaLabel}}'{{/if}}
7
7
  >
@@ -10,7 +10,7 @@
10
10
  {{else}}
11
11
  <button
12
12
  type='{{coalesce type "button"}}'
13
- class='inline-flex items-center justify-center rounded-full w-9 h-9 border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-600 dark:text-slate-300 transition-colors hover:border-[#b21100] hover:text-[#b21100] dark:hover:border-[#ff2e1a] dark:hover:text-[#ff2e1a] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#b21100] {{#if className}}{{className}}{{/if}}'
13
+ class='inline-flex items-center justify-center rounded-full w-9 h-9 border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-600 dark:text-slate-300 transition-colors hover:border-[#b21100] hover:text-[#8f0d00] dark:hover:border-[#ff2e1a] dark:hover:text-[#ff2e1a] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#b21100] {{#if className}}{{className}}{{/if}}'
14
14
  {{#if title}}title='{{title}}'{{/if}}
15
15
  {{#if ariaLabel}}aria-label='{{ariaLabel}}'{{/if}}
16
16
  >
@@ -1,6 +1,6 @@
1
1
  <div class='inline-flex items-center justify-center gap-2 {{#if className}}{{className}}{{/if}}' role='status' aria-live='polite'>
2
2
  {{#if (eq size "sm")}}
3
- <svg viewBox='0 0 24 24' class='h-4 w-4 text-[#b21100] dark:text-[#ff2e1a]' fill='none' aria-hidden='true'>
3
+ <svg viewBox='0 0 24 24' class='h-4 w-4 text-[#8f0d00] dark:text-[#ff2e1a]' fill='none' aria-hidden='true'>
4
4
  <circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='2' opacity='0.15'/>
5
5
  <circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-dasharray='16 40' fill='none'>
6
6
  <animateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='0.75s' repeatCount='indefinite'/>
@@ -8,14 +8,14 @@
8
8
  </svg>
9
9
  {{else}}
10
10
  {{#if (eq size "lg")}}
11
- <svg viewBox='0 0 24 24' class='h-12 w-12 text-[#b21100] dark:text-[#ff2e1a]' fill='none' aria-hidden='true'>
11
+ <svg viewBox='0 0 24 24' class='h-12 w-12 text-[#8f0d00] dark:text-[#ff2e1a]' fill='none' aria-hidden='true'>
12
12
  <circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='2' opacity='0.15'/>
13
13
  <circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-dasharray='20 36' fill='none'>
14
14
  <animateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='0.75s' repeatCount='indefinite'/>
15
15
  </circle>
16
16
  </svg>
17
17
  {{else}}
18
- <svg viewBox='0 0 24 24' class='h-8 w-8 text-[#b21100] dark:text-[#ff2e1a]' fill='none' aria-hidden='true'>
18
+ <svg viewBox='0 0 24 24' class='h-8 w-8 text-[#8f0d00] dark:text-[#ff2e1a]' fill='none' aria-hidden='true'>
19
19
  <circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='2' opacity='0.15'/>
20
20
  <circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='2.25' stroke-linecap='round' stroke-dasharray='18 38' fill='none'>
21
21
  <animateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='0.75s' repeatCount='indefinite'/>
@@ -2,7 +2,7 @@
2
2
  {{#if prev.url}}
3
3
  <a
4
4
  href='{{prev.url}}'
5
- class='inline-flex items-center gap-1 text-sm font-medium text-slate-500 dark:text-slate-400 transition-colors hover:text-[#b21100] dark:hover:text-[#ff2e1a]'
5
+ class='inline-flex items-center gap-1 text-sm font-medium text-slate-500 dark:text-slate-400 transition-colors hover:text-[#8f0d00] dark:hover:text-[#ff2e1a]'
6
6
  aria-label='Previous page'
7
7
  >
8
8
  <svg viewBox='0 0 20 20' fill='currentColor' class='h-4 w-4' aria-hidden='true'><path fill-rule='evenodd' d='M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z' clip-rule='evenodd'/></svg>
@@ -22,13 +22,13 @@
22
22
  <span class='inline-flex h-9 w-9 items-center justify-center text-sm text-slate-400 dark:text-slate-500'>…</span>
23
23
  {{else}}
24
24
  {{#if current}}
25
- <span aria-current='page' class='inline-flex h-9 w-9 items-center justify-center text-sm font-bold text-[#b21100] dark:text-[#ff2e1a] border-b-2 border-[#b21100] dark:border-[#ff2e1a]'>
25
+ <span aria-current='page' class='inline-flex h-9 w-9 items-center justify-center text-sm font-bold text-[#8f0d00] dark:text-[#ff2e1a] border-b-2 border-[#b21100] dark:border-[#ff2e1a]'>
26
26
  {{label}}
27
27
  </span>
28
28
  {{else}}
29
29
  <a
30
30
  href='{{url}}'
31
- class='inline-flex h-9 w-9 items-center justify-center text-sm font-medium text-slate-600 dark:text-slate-300 transition-colors hover:text-[#b21100] dark:hover:text-[#ff2e1a]'
31
+ class='inline-flex h-9 w-9 items-center justify-center text-sm font-medium text-slate-600 dark:text-slate-300 transition-colors hover:text-[#8f0d00] dark:hover:text-[#ff2e1a]'
32
32
  >
33
33
  {{label}}
34
34
  </a>
@@ -41,7 +41,7 @@
41
41
  {{#if next.url}}
42
42
  <a
43
43
  href='{{next.url}}'
44
- class='inline-flex items-center gap-1 text-sm font-medium text-slate-500 dark:text-slate-400 transition-colors hover:text-[#b21100] dark:hover:text-[#ff2e1a]'
44
+ class='inline-flex items-center gap-1 text-sm font-medium text-slate-500 dark:text-slate-400 transition-colors hover:text-[#8f0d00] dark:hover:text-[#ff2e1a]'
45
45
  aria-label='Next page'
46
46
  >
47
47
  {{coalesce next.label "Next"}}
@@ -34,7 +34,7 @@
34
34
  <div id='sections-links' class='space-y-3'>
35
35
  <a
36
36
  href='{{logoLink}}'
37
- class='block text-lg font-bold text-black dark:text-white hover:text-[#b21100] dark:hover:text-[#ff2e1a] transition-colors'
37
+ class='block text-lg font-bold text-black dark:text-white hover:text-[#8f0d00] dark:hover:text-[#ff2e1a] transition-colors'
38
38
  >TOP STORIES</a>
39
39
  <div id='category-links-container' class='space-y-3'>
40
40
  <p class='text-sm text-slate-400 dark:text-slate-500'>Loading sections...</p>
@@ -300,13 +300,13 @@
300
300
  dark:text-slate-500'>Loading sections...</p>`; } function showCategoryLinksError() { if (!categoryLinksContainer) return; categoryLinksContainer.innerHTML =
301
301
  `<p class='text-sm text-red-500'>Failed to load sections</p>`; } function setActiveCategoryLink(categorySlug) { if (!sectionsLinks) return; activeCategorySlug
302
302
  = categorySlug || ''; const links = sectionsLinks.querySelectorAll('.category-link'); links.forEach((link) => { const isActive =
303
- (link.getAttribute('data-category-slug') || '') === activeCategorySlug; if (isActive) { link.classList.add('text-[#b21100]', 'dark:text-[#ff2e1a]');
304
- link.classList.remove('text-black', 'dark:text-white'); link.setAttribute('aria-current', 'page'); } else { link.classList.remove('text-[#b21100]',
303
+ (link.getAttribute('data-category-slug') || '') === activeCategorySlug; if (isActive) { link.classList.add('text-[#8f0d00]', 'dark:text-[#ff2e1a]');
304
+ link.classList.remove('text-black', 'dark:text-white'); link.setAttribute('aria-current', 'page'); } else { link.classList.remove('text-[#8f0d00]',
305
305
  'dark:text-[#ff2e1a]'); link.classList.add('text-black', 'dark:text-white'); link.setAttribute('aria-current', 'false'); } }); } function
306
306
  renderCategories(categories) { if (!categoryLinksContainer) return; if (!Array.isArray(categories) || categories.length === 0) {
307
307
  categoryLinksContainer.innerHTML = `<p class='text-sm text-slate-400 dark:text-slate-500'>No sections available</p>`; return; }
308
308
  categoryLinksContainer.innerHTML = categories .map( (category) => `<a href="${buildLocalePath(category.slug)}" class="category-link block text-lg font-bold
309
- text-black dark:text-white hover:text-[#b21100] dark:hover:text-[#ff2e1a] transition-colors" data-category-slug="${category.slug}"
309
+ text-black dark:text-white hover:text-[#8f0d00] dark:hover:text-[#ff2e1a] transition-colors" data-category-slug="${category.slug}"
310
310
  aria-current="false">${String(category.name || '').toUpperCase()}</a>` ) .join(''); setActiveCategoryLink(activeCategorySlug); } function
311
311
  showMiniFeaturedLoading() { if (!miniFeatured) return; miniFeatured.innerHTML = ` <div class='flex flex-col items-center justify-center py-20'> <div
312
312
  class='animate-spin rounded-full h-12 w-12 border-b-2 border-slate-300 dark:border-slate-600'></div> <p class='text-slate-400 dark:text-slate-500
@@ -317,12 +317,12 @@
317
317
  <div class='relative mb-5'> <img src='${article?.featuredImage?.url || ''}' alt='${article?.featuredImage?.alt || article?.title || ''}' class='w-full h-50
318
318
  object-cover rounded' /> </div> <div class='flex items-center text-slate-500 dark:text-slate-400 text-sm mb-3'> <span class='uppercase font-bold
319
319
  tracking-wider'>${article?.categories?.[0]?.name || categoryName || 'GENERAL'}</span> <span class='mx-2'>•</span> <span>5 min</span> </div> <h2 class='text-xl
320
- font-bold text-slate-900 dark:text-slate-100 leading-tight'> <a href='${getArticleLeafPath(article)}' class='hover:text-[#b21100] dark:hover:text-[#ff2e1a]
320
+ font-bold text-slate-900 dark:text-slate-100 leading-tight'> <a href='${getArticleLeafPath(article)}' class='hover:text-[#8f0d00] dark:hover:text-[#ff2e1a]
321
321
  transition-colors'>${article?.title || ''}</a> </h2> </div> ` ) .join(''); const rows = []; for (let i = 0; i < grid.length; i += 3) { const row =
322
322
  grid.slice(i, i + 3); if (!row.length) continue; rows.push(` <div class='grid grid-cols-3 gap-6 ${i > 0 ? 'pt-6 border-t border-slate-200 dark:border-slate-800' : ''}'> ${row .map( (article, idx) => ` <div class='${idx === 0 ? 'pr-4 border-r border-slate-200 dark:border-slate-800' : idx === 1 ?
323
323
  'px-4 border-r border-slate-200 dark:border-slate-800' : 'pl-4'}'> <div class='flex items-center text-slate-500 dark:text-slate-400 text-sm mb-3'> <span
324
324
  class='uppercase font-bold'>${article?.categories?.[0]?.name || categoryName || 'GENERAL'}</span> </div> <h3 class='font-medium text-base leading-tight
325
- text-slate-900 dark:text-slate-100'> <a href='${getArticleLeafPath(article)}' class='hover:text-[#b21100] dark:hover:text-[#ff2e1a]
325
+ text-slate-900 dark:text-slate-100'> <a href='${getArticleLeafPath(article)}' class='hover:text-[#8f0d00] dark:hover:text-[#ff2e1a]
326
326
  transition-colors'>${article?.title || ''}</a> </h3> </div> ` ) .join('')} </div> `); } miniFeatured.innerHTML = ` <h3 class='text-xs font-bold text-slate-400
327
327
  dark:text-slate-600 uppercase tracking-wider mb-6 border-b border-slate-200 dark:border-slate-800 pb-2'> ${(categoryName || 'Featured Stories').toUpperCase()}
328
328
  </h3> <div class='grid grid-cols-2 gap-8 mb-10'>${topHtml}</div> <div class='space-y-6'>${rows.join('')}</div> `; } function getCategoryName(payload,
@@ -1,5 +1,5 @@
1
1
  {{#if navigation.categories}}
2
2
  {{#each navigation.categories}}
3
- <a href='/{{slug}}' class='block text-lg font-bold text-black dark:text-white hover:text-[#b21100] dark:hover:text-[#ff2e1a] transition-colors'>{{uppercase name}}</a>
3
+ <a href='/{{slug}}' class='block text-lg font-bold text-black dark:text-white hover:text-[#8f0d00] dark:hover:text-[#ff2e1a] transition-colors'>{{uppercase name}}</a>
4
4
  {{/each}}
5
5
  {{/if}}
@@ -3,12 +3,7 @@
3
3
  <head>
4
4
  <meta charset='UTF-8' />
5
5
  <meta name='viewport' content='width=device-width, initial-scale=1' />
6
- <link rel='preconnect' href='https://fonts.googleapis.com' />
7
- <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin />
8
- <link
9
- href='https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Libre+Franklin:ital,wght@0,100..900;1,100..900&display=swap&family=Encode+Sans:wght@100..900&family=Oswald:wght@200..700&display=swap'
10
- rel='stylesheet'
11
- />
6
+ <link href='https://cdn.fifthbell.com/content/fonts/fonts.css' rel='stylesheet' />
12
7
  <meta name='description' content='{{#if seo.metaDescription}}{{seo.metaDescription}}{{else}}Page not found{{/if}}' />
13
8
  <link rel='canonical' href='{{canonicalUrl}}' />
14
9
  <title>{{#if seo.metaTitle}}{{seo.metaTitle}}{{else}}404 - Page Not Found | fifthbell{{/if}}</title>
@@ -3,16 +3,17 @@
3
3
  <head>
4
4
  <meta charset='UTF-8' />
5
5
  <meta name='viewport' content='width=device-width, initial-scale=1' />
6
- <link rel='preconnect' href='https://fonts.googleapis.com' />
7
- <link rel='preconnect' href='https://fonts.gstatic.com' crossorigin />
8
- <link
9
- href='https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Libre+Franklin:ital,wght@0,100..900;1,100..900&display=swap&family=Encode+Sans:wght@100..900&family=Oswald:wght@200..700&display=swap'
10
- rel='stylesheet'
11
- />
12
- {{#if featuredImage.url}}
13
- <link rel='preload' as='image' href='{{featuredImage.url}}' fetchpriority='high' />
6
+ <link href='https://cdn.fifthbell.com/content/fonts/fonts.css' rel='stylesheet' />
7
+ {{#if (eq layout 'homepage')}}
8
+ {{#if hero.url}}
9
+ <link rel='preload' as='image' href='{{hero.url}}' fetchpriority='high' />
10
+ {{/if}}
11
+ {{else}}
12
+ {{#if featuredImage.url}}
13
+ <link rel='preload' as='image' href='{{featuredImage.url}}' fetchpriority='high' />
14
+ {{/if}}
14
15
  {{/if}}
15
- <meta name='description' content='{{#if seo.metaDescription}}{{seo.metaDescription}}{{else}}{{excerpt}}{{/if}}' />
16
+ <meta name='description' content='{{#if seo.metaDescription}}{{seo.metaDescription}}{{else if excerpt}}{{excerpt}}{{else}}{{resolveHeadTitle this}}{{/if}}' />
16
17
  <link rel='canonical' href='{{canonicalUrl}}' />
17
18
  <meta property='og:title' content='{{resolveHeadTitle this}}' />
18
19
  <meta property='og:description' content='{{#if seo.metaDescription}}{{seo.metaDescription}}{{else}}{{excerpt}}{{/if}}' />