@cogenta/theme-association 0.3.3 → 0.5.3

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 (148) hide show
  1. package/dist/src/index.d.ts +6 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +9 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/render/blocks/accordion.d.ts.map +1 -1
  6. package/dist/src/render/blocks/accordion.js +13 -10
  7. package/dist/src/render/blocks/accordion.js.map +1 -1
  8. package/dist/src/render/blocks/breakdown.d.ts +14 -0
  9. package/dist/src/render/blocks/breakdown.d.ts.map +1 -0
  10. package/dist/src/render/blocks/breakdown.js +17 -0
  11. package/dist/src/render/blocks/breakdown.js.map +1 -0
  12. package/dist/src/render/blocks/collection-list.d.ts +4 -10
  13. package/dist/src/render/blocks/collection-list.d.ts.map +1 -1
  14. package/dist/src/render/blocks/collection-list.js +89 -58
  15. package/dist/src/render/blocks/collection-list.js.map +1 -1
  16. package/dist/src/render/blocks/cta.d.ts +0 -5
  17. package/dist/src/render/blocks/cta.d.ts.map +1 -1
  18. package/dist/src/render/blocks/cta.js +22 -10
  19. package/dist/src/render/blocks/cta.js.map +1 -1
  20. package/dist/src/render/blocks/embed.d.ts.map +1 -1
  21. package/dist/src/render/blocks/embed.js +30 -22
  22. package/dist/src/render/blocks/embed.js.map +1 -1
  23. package/dist/src/render/blocks/faq.d.ts.map +1 -1
  24. package/dist/src/render/blocks/faq.js +11 -15
  25. package/dist/src/render/blocks/faq.js.map +1 -1
  26. package/dist/src/render/blocks/feature-grid.d.ts +6 -0
  27. package/dist/src/render/blocks/feature-grid.d.ts.map +1 -1
  28. package/dist/src/render/blocks/feature-grid.js +42 -20
  29. package/dist/src/render/blocks/feature-grid.js.map +1 -1
  30. package/dist/src/render/blocks/gallery.d.ts +9 -7
  31. package/dist/src/render/blocks/gallery.d.ts.map +1 -1
  32. package/dist/src/render/blocks/gallery.js +22 -16
  33. package/dist/src/render/blocks/gallery.js.map +1 -1
  34. package/dist/src/render/blocks/hero.d.ts +23 -9
  35. package/dist/src/render/blocks/hero.d.ts.map +1 -1
  36. package/dist/src/render/blocks/hero.js +40 -23
  37. package/dist/src/render/blocks/hero.js.map +1 -1
  38. package/dist/src/render/blocks/logo-strip.d.ts +6 -0
  39. package/dist/src/render/blocks/logo-strip.d.ts.map +1 -1
  40. package/dist/src/render/blocks/logo-strip.js +7 -9
  41. package/dist/src/render/blocks/logo-strip.js.map +1 -1
  42. package/dist/src/render/blocks/logos.d.ts +14 -0
  43. package/dist/src/render/blocks/logos.d.ts.map +1 -1
  44. package/dist/src/render/blocks/logos.js +30 -16
  45. package/dist/src/render/blocks/logos.js.map +1 -1
  46. package/dist/src/render/blocks/media-figure.d.ts +12 -5
  47. package/dist/src/render/blocks/media-figure.d.ts.map +1 -1
  48. package/dist/src/render/blocks/media-figure.js +32 -18
  49. package/dist/src/render/blocks/media-figure.js.map +1 -1
  50. package/dist/src/render/blocks/pricing-table.d.ts.map +1 -1
  51. package/dist/src/render/blocks/pricing-table.js +18 -20
  52. package/dist/src/render/blocks/pricing-table.js.map +1 -1
  53. package/dist/src/render/blocks/prose.d.ts +9 -3
  54. package/dist/src/render/blocks/prose.d.ts.map +1 -1
  55. package/dist/src/render/blocks/prose.js +11 -4
  56. package/dist/src/render/blocks/prose.js.map +1 -1
  57. package/dist/src/render/blocks/quote.d.ts +4 -7
  58. package/dist/src/render/blocks/quote.d.ts.map +1 -1
  59. package/dist/src/render/blocks/quote.js +12 -17
  60. package/dist/src/render/blocks/quote.js.map +1 -1
  61. package/dist/src/render/blocks/stat-counter.d.ts +8 -1
  62. package/dist/src/render/blocks/stat-counter.d.ts.map +1 -1
  63. package/dist/src/render/blocks/stat-counter.js +18 -10
  64. package/dist/src/render/blocks/stat-counter.js.map +1 -1
  65. package/dist/src/render/blocks/stats.d.ts +12 -1
  66. package/dist/src/render/blocks/stats.d.ts.map +1 -1
  67. package/dist/src/render/blocks/stats.js +24 -14
  68. package/dist/src/render/blocks/stats.js.map +1 -1
  69. package/dist/src/render/blocks/testimonial.d.ts +6 -5
  70. package/dist/src/render/blocks/testimonial.d.ts.map +1 -1
  71. package/dist/src/render/blocks/testimonial.js +13 -11
  72. package/dist/src/render/blocks/testimonial.js.map +1 -1
  73. package/dist/src/render/chrome.d.ts +38 -1
  74. package/dist/src/render/chrome.d.ts.map +1 -1
  75. package/dist/src/render/chrome.js +117 -91
  76. package/dist/src/render/chrome.js.map +1 -1
  77. package/dist/src/render/details.d.ts +79 -0
  78. package/dist/src/render/details.d.ts.map +1 -0
  79. package/dist/src/render/details.js +221 -0
  80. package/dist/src/render/details.js.map +1 -0
  81. package/dist/src/render/figures.d.ts +29 -0
  82. package/dist/src/render/figures.d.ts.map +1 -0
  83. package/dist/src/render/figures.js +59 -0
  84. package/dist/src/render/figures.js.map +1 -0
  85. package/dist/src/render/layout.d.ts +31 -0
  86. package/dist/src/render/layout.d.ts.map +1 -0
  87. package/dist/src/render/layout.js +46 -0
  88. package/dist/src/render/layout.js.map +1 -0
  89. package/dist/src/render/page-head.d.ts +7 -0
  90. package/dist/src/render/page-head.d.ts.map +1 -0
  91. package/dist/src/render/page-head.js +95 -0
  92. package/dist/src/render/page-head.js.map +1 -0
  93. package/dist/src/render/render-block.d.ts +8 -12
  94. package/dist/src/render/render-block.d.ts.map +1 -1
  95. package/dist/src/render/render-block.js +40 -29
  96. package/dist/src/render/render-block.js.map +1 -1
  97. package/dist/src/render/strings.d.ts +15 -0
  98. package/dist/src/render/strings.d.ts.map +1 -0
  99. package/dist/src/render/strings.js +39 -0
  100. package/dist/src/render/strings.js.map +1 -0
  101. package/dist/src/render/term-archive.d.ts.map +1 -1
  102. package/dist/src/render/term-archive.js +33 -25
  103. package/dist/src/render/term-archive.js.map +1 -1
  104. package/dist/src/render/widget-areas.d.ts +14 -0
  105. package/dist/src/render/widget-areas.d.ts.map +1 -0
  106. package/dist/src/render/widget-areas.js +21 -0
  107. package/dist/src/render/widget-areas.js.map +1 -0
  108. package/dist/theme.config.d.ts +1 -1
  109. package/dist/theme.config.js +3 -3
  110. package/dist/theme.config.js.map +1 -1
  111. package/package.json +5 -5
  112. package/src/index.ts +9 -0
  113. package/src/render/blocks/accordion.ts +28 -22
  114. package/src/render/blocks/breakdown.ts +42 -0
  115. package/src/render/blocks/collection-list.ts +234 -103
  116. package/src/render/blocks/cta.ts +48 -19
  117. package/src/render/blocks/embed.ts +47 -29
  118. package/src/render/blocks/faq.ts +22 -31
  119. package/src/render/blocks/feature-grid.ts +73 -41
  120. package/src/render/blocks/gallery.ts +32 -26
  121. package/src/render/blocks/hero.ts +56 -43
  122. package/src/render/blocks/logo-strip.ts +23 -21
  123. package/src/render/blocks/logos.ts +45 -40
  124. package/src/render/blocks/media-figure.ts +49 -24
  125. package/src/render/blocks/pricing-table.ts +31 -40
  126. package/src/render/blocks/prose.ts +16 -6
  127. package/src/render/blocks/quote.ts +34 -27
  128. package/src/render/blocks/stat-counter.ts +35 -29
  129. package/src/render/blocks/stats.ts +46 -38
  130. package/src/render/blocks/testimonial.ts +29 -20
  131. package/src/render/chrome.ts +165 -91
  132. package/src/render/details.ts +276 -0
  133. package/src/render/figures.ts +68 -0
  134. package/src/render/layout.ts +78 -0
  135. package/src/render/page-head.ts +193 -0
  136. package/src/render/render-block.ts +45 -32
  137. package/src/render/strings.ts +74 -0
  138. package/src/render/term-archive.ts +94 -58
  139. package/src/render/widget-areas.ts +24 -0
  140. package/src/styles/archive.css +38 -102
  141. package/src/styles/base.css +503 -554
  142. package/src/styles/blocks.css +913 -666
  143. package/src/styles/chrome.css +506 -0
  144. package/src/styles/listings.css +591 -0
  145. package/src/styles/theme.css +25 -19
  146. package/src/styles/tokens.css +284 -234
  147. package/src/styles/widgets.css +1059 -0
  148. package/tokens.json +18 -18
@@ -1,4 +1,6 @@
1
+ export * from '@cogenta/theme-kit';
1
2
  export * from './render/blocks/accordion.js';
3
+ export * from './render/blocks/breakdown.js';
2
4
  export * from './render/blocks/collection-list.js';
3
5
  export * from './render/blocks/cta.js';
4
6
  export * from './render/blocks/embed.js';
@@ -16,6 +18,10 @@ export * from './render/blocks/stat-counter.js';
16
18
  export * from './render/blocks/stats.js';
17
19
  export * from './render/blocks/testimonial.js';
18
20
  export * from './render/chrome.js';
21
+ export * from './render/details.js';
22
+ export * from './render/figures.js';
23
+ export * from './render/page-head.js';
19
24
  export * from './render/render-block.js';
20
25
  export * from './render/term-archive.js';
26
+ export * from './render/widget-areas.js';
21
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAA;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,9 @@
1
+ // The shared contract D primitives every theme package implements against —
2
+ // re-exported so a consumer of this package never has to know they live in
3
+ // `@cogenta/theme-kit` to use them alongside this theme's own blocks.
4
+ export * from '@cogenta/theme-kit';
1
5
  export * from './render/blocks/accordion.js';
6
+ export * from './render/blocks/breakdown.js';
2
7
  export * from './render/blocks/collection-list.js';
3
8
  export * from './render/blocks/cta.js';
4
9
  export * from './render/blocks/embed.js';
@@ -16,6 +21,10 @@ export * from './render/blocks/stat-counter.js';
16
21
  export * from './render/blocks/stats.js';
17
22
  export * from './render/blocks/testimonial.js';
18
23
  export * from './render/chrome.js';
24
+ export * from './render/details.js';
25
+ export * from './render/figures.js';
26
+ export * from './render/page-head.js';
19
27
  export * from './render/render-block.js';
20
28
  export * from './render/term-archive.js';
29
+ export * from './render/widget-areas.js';
21
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,sEAAsE;AACtE,cAAc,oBAAoB,CAAA;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/accordion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAEL,KAAK,WAAW,EAGhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAqB3B,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAiBtF"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/accordion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,iBAAiB,CAAA;AACpE,OAAO,EACL,KAAK,WAAW,EAGhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AA8B3B,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAetF"}
@@ -1,16 +1,19 @@
1
- import { blockHeadingTag, h, heading, renderRichText, } from '@cogenta/theme-kit';
1
+ import { h, nestedHeadingTag, renderRichText, } from '@cogenta/theme-kit';
2
+ import { section, sectionHead } from '../layout.js';
2
3
  /**
3
- * `blocks@2.0` (RFC 0001). Shares `faq`'s `<details>`/`<summary>` mechanics —
4
- * the same zero-JavaScript disclosure this theme's own mobile nav toggle
5
- * uses — but is its own block, since "accordion" and "frequently asked
6
- * question" are different editorial intents even when the shape coincides.
4
+ * Notes a visitor opens when they need them: what to bring, parking, the
5
+ * safeguarding check. The title on the first four columns and the rows on the
6
+ * last eight, each row a `<details>` under a hairline. It opens without a
7
+ * script and is found by the browser's own search. The question sits in a
8
+ * real heading inside the summary, so a screen reader's heading list still
9
+ * reaches every one. The plus that becomes a minus is two bars drawn by the
10
+ * stylesheet, not a glyph.
7
11
  */
8
- function renderItem(item, ctx) {
9
- return h('li', { class: 'cg-accordion__item' }, h('details', { class: 'cg-accordion__details' }, h('summary', { class: 'cg-accordion__question' }, item.question), h('div', { class: 'cg-accordion__answer' }, renderRichText(ctx, item.answer))));
12
+ function row(item, ctx, titled) {
13
+ return h('li', { class: 'ca-notes__item' }, h('details', { class: 'ca-notes__details' }, h('summary', { class: 'ca-notes__summary' }, h(nestedHeadingTag('accordion', titled), { class: 'ca-notes__question' }, item.question), h('span', { class: 'ca-notes__mark', 'aria-hidden': 'true' })), h('div', { class: 'ca-notes__answer' }, renderRichText(ctx, item.answer))));
10
14
  }
11
15
  export function renderAccordion(block, ctx) {
12
- return h('section', { class: 'cg-block cg-accordion', 'data-block': 'accordion' }, block.title === undefined
13
- ? null
14
- : heading(blockHeadingTag('accordion') ?? 'h2', { class: 'cg-accordion__title', 'data-field': 'title' }, block.title), h('ul', { class: 'cg-accordion__items' }, block.items.map((item) => renderItem(item, ctx))));
16
+ const titled = block.title !== undefined;
17
+ return section('section', 'accordion', 'ca-notes', { 'data-titled': String(titled) }, 'div', sectionHead('accordion', block.title), h('ul', { class: 'ca-notes__items' }, block.items.map((item) => row(item, ctx, titled))));
15
18
  }
16
19
  //# sourceMappingURL=accordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../../src/render/blocks/accordion.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAEf,CAAC,EACD,OAAO,EAEP,cAAc,GACf,MAAM,oBAAoB,CAAA;AAE3B;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAmB,EAAE,GAAkB;IACzD,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAClC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAChE,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAC9E,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,GAAkB;IACvE,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,WAAW,EAAE,EAC7D,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,WAAW,CAAC,IAAI,IAAI,EACpC,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,OAAO,EAAE,EACvD,KAAK,CAAC,KAAK,CACZ,EACL,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAChC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACjD,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../../src/render/blocks/accordion.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,CAAC,EACD,gBAAgB,EAEhB,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAEnD;;;;;;;;GAQG;AACH,SAAS,GAAG,CAAC,IAAmB,EAAE,GAAkB,EAAE,MAAe;IACnE,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAC3B,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAC9B,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAC9B,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EACxF,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAC9D,EACD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAC1E,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,GAAkB;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;IACxC,OAAO,OAAO,CACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACjC,KAAK,EACL,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,EACrC,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAClD,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type HtmlElement, type RenderContext } from '@cogenta/theme-kit';
2
+ /**
3
+ * Where the money goes, as shares of one total: one row per share, the
4
+ * percentage in tabular figures, what it pays for, and a bar under it as long
5
+ * as the share. The bar is a presentational `<span>` whose length is the
6
+ * number beside it, so nothing is said twice to a screen reader; the figure
7
+ * itself is a `<data>` element carrying the exact value.
8
+ */
9
+ export declare function renderBreakdown(items: readonly {
10
+ readonly value: string;
11
+ readonly unit?: string | undefined;
12
+ readonly label: string;
13
+ }[], ctx: RenderContext): HtmlElement;
14
+ //# sourceMappingURL=breakdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakdown.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/breakdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAK,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAI5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,EAAE,EACH,GAAG,EAAE,aAAa,GACjB,WAAW,CAuBb"}
@@ -0,0 +1,17 @@
1
+ import { h } from '@cogenta/theme-kit';
2
+ import { shareOf } from '../figures.js';
3
+ import { associationString } from '../strings.js';
4
+ /**
5
+ * Where the money goes, as shares of one total: one row per share, the
6
+ * percentage in tabular figures, what it pays for, and a bar under it as long
7
+ * as the share. The bar is a presentational `<span>` whose length is the
8
+ * number beside it, so nothing is said twice to a screen reader; the figure
9
+ * itself is a `<data>` element carrying the exact value.
10
+ */
11
+ export function renderBreakdown(items, ctx) {
12
+ return h('dl', { class: 'ca-shares', 'aria-label': associationString(ctx.locale, 'share') }, items.map((item) => {
13
+ const share = shareOf(item.value, item.unit) ?? 0;
14
+ return h('div', { class: 'ca-shares__item' }, h('dt', { class: 'ca-shares__label' }, item.label), h('dd', { class: 'ca-shares__value' }, h('data', { value: String(share) }, `${item.value}${item.unit ?? ''}`)), h('dd', { class: 'ca-shares__track', 'aria-hidden': 'true' }, h('span', { class: 'ca-shares__bar', style: `inline-size:${share}%` })));
15
+ }));
16
+ }
17
+ //# sourceMappingURL=breakdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakdown.js","sourceRoot":"","sources":["../../../../src/render/blocks/breakdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,CAAC,EAAsB,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAIG,EACH,GAAkB;IAElB,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjD,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAClD,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAC7B,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CACvE,EACD,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,EACpD,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,KAAK,GAAG,EAAE,CAAC,CACvE,CACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
@@ -1,12 +1,6 @@
1
1
  import type { CollectionListBlock } from '@cogenta/blocks';
2
- import { buildCollectionListQuery, type ContentEntry, type HtmlElement, type RenderContext } from '@cogenta/theme-kit';
3
- /**
4
- * The only block of the seventeen that reads data at render time — contract
5
- * B marks it `runtime: 'server'` for that reason. The read is *not* done
6
- * here: `query` builds the request from the block's own fields, the caller
7
- * awaits `ctx.content.list(...)` before rendering starts, and this function
8
- * stays a pure function of the entries handed to it.
9
- */
10
- export { buildCollectionListQuery as query };
11
- export declare function renderCollectionList(block: CollectionListBlock, ctx: RenderContext, entries: readonly ContentEntry[]): HtmlElement;
2
+ import { type ContentEntry, type HtmlElement, type QueryRequest, type RenderContext } from '@cogenta/theme-kit';
3
+ export declare function renderCollectionList(block: CollectionListBlock, ctx: RenderContext, fetched: readonly ContentEntry[]): HtmlElement;
4
+ /** The query this block needs, fetched by the host before any markup is built. */
5
+ export declare function query(block: CollectionListBlock): QueryRequest;
12
6
  //# sourceMappingURL=collection-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-list.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/collection-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAEL,wBAAwB,EACxB,KAAK,YAAY,EAMjB,KAAK,WAAW,EAIhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;GAMG;AACH,OAAO,EAAE,wBAAwB,IAAI,KAAK,EAAE,CAAA;AA2E5C,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,WAAW,CAuCb"}
1
+ {"version":3,"file":"collection-list.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/collection-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAEL,KAAK,YAAY,EAMjB,KAAK,WAAW,EAIhB,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AA8N3B,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,WAAW,CA2Bb;AAED,kFAAkF;AAClF,wBAAgB,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAE9D"}
@@ -1,64 +1,95 @@
1
- import { blockHeadingTag, buildCollectionListQuery, entryExcerpt, entryHref, entryImage, entryTitle, h, heading, nestedHeadingTag, renderImageSource, } from '@cogenta/theme-kit';
2
- /**
3
- * The only block of the seventeen that reads data at render time — contract
4
- * B marks it `runtime: 'server'` for that reason. The read is *not* done
5
- * here: `query` builds the request from the block's own fields, the caller
6
- * awaits `ctx.content.list(...)` before rendering starts, and this function
7
- * stays a pure function of the entries handed to it.
8
- */
9
- export { buildCollectionListQuery as query };
10
- /** A string field, read straight off the raw entry — never invented. */
11
- function stringField(entry, field) {
12
- const value = entry[field];
13
- return typeof value === 'string' && value.trim() !== '' ? value : undefined;
1
+ import { buildCollectionListQuery, entryExcerpt, entryHref, entryImage, entryTitle, h, heading, nestedHeadingTag, renderImageSource, } from '@cogenta/theme-kit';
2
+ import { eventTimeOf, factsOf, hoursOf, placeOf, renderDateBlock, renderFacts, textOf, } from '../details.js';
3
+ import { section, sectionHead } from '../layout.js';
4
+ function shapeOf(entries, ctx, layout) {
5
+ if (entries.every((entry) => eventTimeOf(entry) !== undefined))
6
+ return 'events';
7
+ if (entries.every((entry) => entryImage(entry, ctx) !== undefined)) {
8
+ return layout === 'list' ? 'rows' : 'photos';
9
+ }
10
+ return 'index';
14
11
  }
15
- /**
16
- * "Upcoming events" cards are what this block is built around: a rounded,
17
- * shadowed card whose left edge carries a big day/month badge, built
18
- * straight from the entry's own `date` field when it has one — never from
19
- * `entryDate` (which reads `publishedAt`/`createdAt`, a system field with a
20
- * different meaning for an event than the date it actually happens on).
21
- * `location` is read the same direct way, since it too is a schema field no
22
- * shared helper names.
23
- *
24
- * An entry from a collection with neither `date` nor `location` — any other
25
- * collection a site points a `collectionList` at — falls back to the same
26
- * title/excerpt/cover row every other theme's list block shows, so this
27
- * block stays generically usable, not association-only.
28
- */
29
- function renderEntry(entry, ctx, tag) {
30
- const rawDate = stringField(entry, 'date');
31
- const parsed = rawDate === undefined ? null : new Date(rawDate);
32
- const hasDate = parsed !== null && !Number.isNaN(parsed.getTime());
33
- const location = stringField(entry, 'location');
12
+ function mediaLink(entry, ctx, className, sizes) {
13
+ const source = entryImage(entry, ctx);
14
+ if (source === undefined)
15
+ return null;
16
+ return h('a', {
17
+ class: `${className}__media`,
18
+ href: entryHref(entry, ctx),
19
+ tabindex: '-1',
20
+ 'aria-hidden': 'true',
21
+ }, renderImageSource(source, { className: `${className}__image`, sizes }));
22
+ }
23
+ function titleLink(entry, ctx, tag, className) {
24
+ return heading(tag, { class: `${className}__title` }, h('a', { class: `${className}__link`, href: entryHref(entry, ctx) }, entryTitle(entry, ctx)));
25
+ }
26
+ function event(entry, time, ctx, tag) {
27
+ const hours = hoursOf(time, ctx.locale);
28
+ const place = placeOf(entry);
34
29
  const excerpt = entryExcerpt(entry);
35
- const cover = entryImage(entry, ctx, { width: 320, height: 320, fit: 'cover' });
36
- const badge = !hasDate
30
+ const cost = textOf(entry.cost);
31
+ return h('li', { class: 'ca-events__item' }, renderDateBlock(time, ctx.locale, 'ca-date'), h('div', { class: 'ca-events__body' }, titleLink(entry, ctx, tag, 'ca-events'), hours === undefined && place === undefined
37
32
  ? null
38
- : h('time', { class: 'cg-event-card__date', datetime: rawDate }, h('span', { class: 'cg-event-card__day' }, String(parsed.getDate())), h('span', { class: 'cg-event-card__month' }, new Intl.DateTimeFormat(ctx.locale, { month: 'short' }).format(parsed)), h('span', { class: 'cg-event-card__time' }, new Intl.DateTimeFormat(ctx.locale, { hour: 'numeric', minute: '2-digit' }).format(parsed)));
39
- return h('li', { class: 'cg-event-card' }, badge, cover === undefined
40
- ? null
41
- : h('div', { class: 'cg-event-card__cover' }, renderImageSource(cover, { loading: 'lazy' })), h('div', { class: 'cg-event-card__body' }, location === undefined ? null : h('p', { class: 'cg-event-card__location' }, location), heading(tag, { class: 'cg-event-card__title' }, h('a', { class: 'cg-event-card__link', href: entryHref(entry, ctx) }, entryTitle(entry, ctx))), excerpt === undefined ? null : h('p', { class: 'cg-event-card__excerpt' }, excerpt)));
33
+ : h('p', { class: 'ca-events__meta' }, hours === undefined ? null : h('span', { class: 'ca-events__hours' }, hours), place === undefined ? null : h('span', { class: 'ca-events__place' }, place)), excerpt === undefined ? null : h('p', { class: 'ca-events__text' }, excerpt)), cost === undefined ? null : h('p', { class: 'ca-events__cost' }, cost));
34
+ }
35
+ function row(entry, ctx, tag) {
36
+ const excerpt = entryExcerpt(entry);
37
+ const facts = factsOf(entry, ctx.locale);
38
+ const when = facts.find((fact) => fact.key === 'when');
39
+ const rest = facts.filter((fact) => fact.key === 'where' || fact.key === 'audience');
40
+ return h('li', { class: 'ca-rows__item' }, mediaLink(entry, ctx, 'ca-rows', '(min-width: 64rem) 30vw, 100vw'), h('div', { class: 'ca-rows__body' }, when === undefined ? null : h('p', { class: 'ca-kicker ca-rows__when' }, when.value), titleLink(entry, ctx, tag, 'ca-rows'), excerpt === undefined ? null : h('p', { class: 'ca-rows__text' }, excerpt), renderFacts(rest, 'ca-rows__facts')));
41
+ }
42
+ function photo(entry, ctx, tag) {
43
+ const excerpt = entryExcerpt(entry);
44
+ return h('li', { class: 'ca-photos__item' }, mediaLink(entry, ctx, 'ca-photos', '(min-width: 64rem) 26vw, 80vw'), titleLink(entry, ctx, tag, 'ca-photos'), excerpt === undefined ? null : h('p', { class: 'ca-photos__text' }, excerpt));
45
+ }
46
+ function indexItem(entry, ctx, tag) {
47
+ const excerpt = entryExcerpt(entry);
48
+ return h('li', { class: 'ca-index__item' }, titleLink(entry, ctx, tag, 'ca-index'), excerpt === undefined ? null : h('p', { class: 'ca-index__text' }, excerpt));
49
+ }
50
+ /** The entries that are not the page being rendered. */
51
+ function othersThanThisPage(entries, ctx) {
52
+ return entries.filter((entry) => entryHref(entry, ctx) !== ctx.url.pathname);
53
+ }
54
+ function scroller(block, ctx, list) {
55
+ return h('div', {
56
+ class: 'ca-list__viewport',
57
+ role: 'region',
58
+ 'aria-label': block.title ?? ctx.t('collection.carousel'),
59
+ tabindex: '0',
60
+ }, list);
61
+ }
62
+ function body(shape, shown, block, ctx, tag) {
63
+ switch (shape) {
64
+ case 'events': {
65
+ const dated = shown
66
+ .map((entry) => ({ entry, time: eventTimeOf(entry) }))
67
+ .sort((a, b) => a.time.start.date.getTime() - b.time.start.date.getTime());
68
+ const list = h('ul', { class: 'ca-list__items ca-events' }, dated.map(({ entry, time }) => event(entry, time, ctx, tag)));
69
+ return block.layout === 'carousel' ? scroller(block, ctx, list) : list;
70
+ }
71
+ case 'rows':
72
+ return h('ul', { class: 'ca-list__items ca-rows' }, shown.map((entry) => row(entry, ctx, tag)));
73
+ case 'photos': {
74
+ const list = h('ul', { class: 'ca-list__items ca-photos' }, shown.map((entry) => photo(entry, ctx, tag)));
75
+ return block.layout === 'carousel' ? scroller(block, ctx, list) : list;
76
+ }
77
+ case 'index':
78
+ return h('ul', { class: 'ca-list__items ca-index' }, shown.map((entry) => indexItem(entry, ctx, tag)));
79
+ }
80
+ }
81
+ export function renderCollectionList(block, ctx, fetched) {
82
+ const titled = block.title !== undefined;
83
+ const shown = othersThanThisPage(fetched, ctx);
84
+ const tag = nestedHeadingTag('collectionList', titled);
85
+ if (shown.length === 0) {
86
+ return section('section', 'collectionList', 'ca-list', { 'data-layout': block.layout, 'data-shape': 'empty' }, 'div', sectionHead('collectionList', block.title), h('p', { class: 'ca-empty' }, ctx.t('collection.empty')));
87
+ }
88
+ const shape = shapeOf(shown, ctx, block.layout);
89
+ return section('section', 'collectionList', 'ca-list', { 'data-layout': block.layout, 'data-shape': shape }, 'div', sectionHead('collectionList', block.title), body(shape, shown, block, ctx, tag));
42
90
  }
43
- export function renderCollectionList(block, ctx, entries) {
44
- const hasTitle = block.title !== undefined;
45
- const entryTag = nestedHeadingTag('collectionList', hasTitle);
46
- const items = entries.length === 0
47
- ? h('p', { class: 'cg-list__empty' }, ctx.t('collection.empty'))
48
- : h('ul', { class: 'cg-list__items cg-event-cards' }, entries.map((entry) => renderEntry(entry, ctx, entryTag)));
49
- return h('section', {
50
- class: 'cg-block cg-list',
51
- 'data-block': 'collectionList',
52
- 'data-layout': block.layout,
53
- }, hasTitle
54
- ? heading(blockHeadingTag('collectionList') ?? 'h2', { class: 'cg-list__title-heading', 'data-field': 'title' }, block.title ?? '')
55
- : null, block.layout === 'carousel'
56
- ? h('div', {
57
- class: 'cg-list__viewport',
58
- role: 'region',
59
- 'aria-label': block.title ?? ctx.t('collection.carousel'),
60
- tabindex: '0',
61
- }, items)
62
- : items);
91
+ /** The query this block needs, fetched by the host before any markup is built. */
92
+ export function query(block) {
93
+ return buildCollectionListQuery(block);
63
94
  }
64
95
  //# sourceMappingURL=collection-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../../src/render/blocks/collection-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../../src/render/blocks/collection-list.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,4 @@
1
1
  import type { CtaBlock } from '@cogenta/blocks';
2
2
  import { type HtmlElement, type RenderContext } from '@cogenta/theme-kit';
3
- /**
4
- * The "Every gift counts" donate band — a full-width, tinted panel (the
5
- * skin's own accent, softened) rather than a plain section, so the one block
6
- * whose entire job is a call to act reads as the loudest thing on the page.
7
- */
8
3
  export declare function renderCta(block: CtaBlock, ctx: RenderContext): HtmlElement;
9
4
  //# sourceMappingURL=cta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cta.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/cta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAGL,KAAK,WAAW,EAGhB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAA;AAE3B;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAqB1E"}
1
+ {"version":3,"file":"cta.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/cta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAGL,KAAK,WAAW,EAGhB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAA;AA2C3B,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAc1E"}
@@ -1,16 +1,28 @@
1
1
  import { actionList, blockHeadingTag, h, heading, } from '@cogenta/theme-kit';
2
+ import { giftsOf } from '../figures.js';
3
+ import { optionalText, section } from '../layout.js';
2
4
  /**
3
- * The "Every gift counts" donate band — a full-width, tinted panel (the
4
- * skin's own accent, softened) rather than a plain section, so the one block
5
- * whose entire job is a call to act reads as the loudest thing on the page.
5
+ * The ask. On a charity's site the band that asks is the donation ask, so
6
+ * this theme gives it the signal yellow, across the whole width of the
7
+ * window: the title large on the first six columns, and on the other six the
8
+ * sentence and the actions, the first one a filled ink button.
9
+ *
10
+ * When the text says what a gift pays for, sentence by sentence, each
11
+ * sentence starting with an amount, the amounts are set large beside what
12
+ * they buy (`giftsOf`); any other text stays one paragraph.
13
+ *
14
+ * An invitation that is not a donation ask (a volunteer evening, a
15
+ * newsletter) asks for the quieter band with the `background` variant, which
16
+ * lays the same layout on the paper's darker stock.
6
17
  */
18
+ function body(block) {
19
+ const gifts = giftsOf(block.text);
20
+ if (gifts === undefined) {
21
+ return optionalText('p', 'ca-cta__text', block.text, { 'data-field': 'text' });
22
+ }
23
+ return h('div', { class: 'ca-cta__gifts' }, gifts.lead === undefined ? null : h('p', { class: 'ca-cta__text' }, gifts.lead), h('dl', { class: 'ca-cta__ladder' }, gifts.gifts.map((gift) => h('div', { class: 'ca-cta__gift' }, h('dt', { class: 'ca-cta__amount' }, gift.amount), h('dd', { class: 'ca-cta__buys' }, gift.text)))), gifts.tail === undefined ? null : h('p', { class: 'ca-cta__text' }, gifts.tail));
24
+ }
7
25
  export function renderCta(block, ctx) {
8
- return h('section', { class: 'cg-block cg-cta', 'data-block': 'cta' }, h('div', { class: 'cg-cta__inner' }, heading(blockHeadingTag('cta') ?? 'h2', { class: 'cg-cta__title', 'data-field': 'title' }, block.title), block.text === undefined
9
- ? null
10
- : h('p', { class: 'cg-cta__text', 'data-field': 'text' }, block.text),
11
- // `actions` is required and non-empty for a `cta`, so the list is
12
- // always rendered; the null branch stays reachable only through
13
- // invalid data.
14
- actionList(ctx, block.actions, block.title)));
26
+ return section('section', 'cta', 'ca-cta', { 'data-band': 'signal' }, 'div', heading(blockHeadingTag('cta') ?? 'h2', { class: 'ca-cta__title', 'data-field': 'title' }, block.title), h('div', { class: 'ca-cta__body' }, body(block), actionList(ctx, block.actions, block.title)));
15
27
  }
16
28
  //# sourceMappingURL=cta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cta.js","sourceRoot":"","sources":["../../../../src/render/blocks/cta.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,eAAe,EAEf,CAAC,EACD,OAAO,GAER,MAAM,oBAAoB,CAAA;AAE3B;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,GAAkB;IAC3D,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,EACjD,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,OAAO,CACL,eAAe,CAAC,KAAK,CAAC,IAAI,IAAI,EAC9B,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EACjD,KAAK,CAAC,KAAK,CACZ,EACD,KAAK,CAAC,IAAI,KAAK,SAAS;QACtB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;IACvE,kEAAkE;IAClE,gEAAgE;IAChE,gBAAgB;IAChB,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAC5C,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"cta.js","sourceRoot":"","sources":["../../../../src/render/blocks/cta.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,eAAe,EAEf,CAAC,EACD,OAAO,GAER,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AACH,SAAS,IAAI,CAAC,KAAe;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAC/E,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,cAAc,EAAE,EACzB,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EACjD,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9C,CACF,CACF,EACD,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAChF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,GAAkB;IAC3D,OAAO,OAAO,CACZ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,EAAE,WAAW,EAAE,QAAQ,EAAE,EACzB,KAAK,EACL,OAAO,CACL,eAAe,CAAC,KAAK,CAAC,IAAI,IAAI,EAC9B,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EACjD,KAAK,CAAC,KAAK,CACZ,EACD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAC9F,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAe,KAAK,WAAW,EAAK,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiEzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CA+B9E"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAe,KAAK,WAAW,EAAK,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AA0EzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAwC9E"}
@@ -1,14 +1,18 @@
1
1
  import { aspectRatio, h } from '@cogenta/theme-kit';
2
+ import { arrowWords, section } from '../layout.js';
2
3
  /**
3
- * Nothing here contacts a third party before the visitor has consented.
4
+ * A film about the food bank, a recording of the annual meeting, a post from
5
+ * a partner: eight columns of the reading width.
4
6
  *
5
- * When `consentRequired` is true the block renders a self-contained card and
6
- * an outbound link — no `<iframe>`, no `<script>`, no preconnect. The theme
7
- * ships no consent *button*, because it ships no JavaScript at all: granting
8
- * consent is a site-wide decision that belongs to the consent layer, not to
9
- * a block.
7
+ * Nothing here contacts a third party before the visitor consents: when
8
+ * `consentRequired` is set, or the provider has no cookie-free frame (a map,
9
+ * a post), a notice takes the frame's place. The notice is a short card
10
+ * inside a hairline, not an empty frame kept at the video's ratio: without a
11
+ * script there is nothing to load into that frame later, and a large blank
12
+ * rectangle on a page is a hole. A label, one sentence, and one arrow link to
13
+ * the original. No preconnect, no poster fetched from the provider, no
14
+ * consent button (this theme ships no script).
10
15
  */
11
- /** `null` means "this provider has no embeddable frame we trust". */
12
16
  function frameSource(provider, rawUrl) {
13
17
  const url = URL.parse(rawUrl);
14
18
  if (url === null)
@@ -38,39 +42,43 @@ function frameSource(provider, rawUrl) {
38
42
  case 'soundcloud':
39
43
  return `https://w.soundcloud.com/player/?url=${encodeURIComponent(rawUrl)}`;
40
44
  default:
41
- // bluesky, mastodon, other: a post embed is a script tag, which this
42
- // theme does not load. The link card is the rendering.
45
+ // bluesky, mastodon, other: a post embed is a script tag and a map is
46
+ // a third-party page, neither of which this theme loads. The notice is
47
+ // the rendering.
43
48
  return null;
44
49
  }
45
50
  }
46
- function consentCard(block, ctx, reason) {
47
- return h('div', { class: 'cg-embed__placeholder' }, h('p', { class: 'cg-embed__notice' }, reason), h('a', {
48
- class: 'cg-embed__link',
51
+ function notice(block, ctx, reason) {
52
+ return h('div', { class: 'ca-embed__notice' }, h('p', { class: 'ca-embed__label' }, ctx.t('embed.label')), h('p', { class: 'ca-embed__reason' }, reason), h('a', {
53
+ class: 'ca-arrow-link ca-embed__link',
49
54
  href: ctx.link(block.url),
50
55
  rel: 'noopener noreferrer nofollow',
51
- }, ctx.t('embed.open', { provider: block.provider })));
56
+ }, arrowWords(block.provider === 'other'
57
+ ? ctx.t('embed.openOther')
58
+ : ctx.t('embed.open', { provider: block.provider }))));
52
59
  }
53
60
  export function renderEmbed(block, ctx) {
54
61
  const source = block.consentRequired ? null : frameSource(block.provider, block.url);
62
+ // Without a ratio the frame would collapse and shift the layout as it loads.
55
63
  const ratio = aspectRatio(block.ratio) ?? '16 / 9';
56
- return h('div', {
57
- class: 'cg-block cg-embed',
58
- 'data-block': 'embed',
64
+ return section('div', 'embed', 'ca-embed', {
59
65
  'data-provider': block.provider,
60
66
  'data-consent': block.consentRequired ? 'required' : 'not-required',
61
- style: `--cg-ratio:${ratio}`,
62
- }, source === null
63
- ? consentCard(block, ctx, block.consentRequired
67
+ 'data-frame': source === null ? 'notice' : 'player',
68
+ }, 'div', source === null
69
+ ? notice(block, ctx, block.consentRequired
64
70
  ? ctx.t('embed.consentRequired', { provider: block.provider })
65
71
  : ctx.t('embed.unsupported', { provider: block.provider }))
66
- : h('iframe', {
67
- class: 'cg-embed__frame',
72
+ : h('div', { class: 'ca-embed__frame', style: `aspect-ratio:${ratio}` }, h('iframe', {
73
+ class: 'ca-embed__player',
68
74
  src: source,
75
+ // A frame with no accessible name is announced as "frame" and
76
+ // nothing else (WCAG 4.1.2).
69
77
  title: ctx.t('embed.title', { provider: block.provider }),
70
78
  loading: 'lazy',
71
79
  referrerpolicy: 'strict-origin-when-cross-origin',
72
80
  allow: 'accelerometer; clipboard-write; encrypted-media; picture-in-picture; fullscreen',
73
81
  allowfullscreen: true,
74
- }));
82
+ })));
75
83
  }
76
84
  //# sourceMappingURL=embed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../../src/render/blocks/embed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,CAAC,EAAsB,MAAM,oBAAoB,CAAA;AAEzF;;;;;;;;GAQG;AAEH,qEAAqE;AACrE,SAAS,WAAW,CAAC,QAAgC,EAAE,MAAc;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAA;IAE5E,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC1C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9C,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C,EAAE,EAAE,CAAA;QAChG,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YAC5D,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,EAAE,EAAE,CAAA;QACzE,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACxF,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iDAAiD,EAAE,EAAE,CAAA;QACxF,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAA;YAC3B,OAAO,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;gBAC3C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,kCAAkC,IAAI,IAAI,EAAE,EAAE,CAAA;QACpD,CAAC;QACD,KAAK,YAAY;YACf,OAAO,wCAAwC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAA;QAC7E;YACE,qEAAqE;YACrE,uDAAuD;YACvD,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB,EAAE,GAAkB,EAAE,MAAc;IACxE,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAClC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,MAAM,CAAC,EAC7C,CAAC,CACC,GAAG,EACH;QACE,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACzB,GAAG,EAAE,8BAA8B;KACpC,EACD,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAClD,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,GAAkB;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACpF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAA;IAElD,OAAO,CAAC,CACN,KAAK,EACL;QACE,KAAK,EAAE,mBAAmB;QAC1B,YAAY,EAAE,OAAO;QACrB,eAAe,EAAE,KAAK,CAAC,QAAQ;QAC/B,cAAc,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc;QACnE,KAAK,EAAE,cAAc,KAAK,EAAE;KAC7B,EACD,MAAM,KAAK,IAAI;QACb,CAAC,CAAC,WAAW,CACT,KAAK,EACL,GAAG,EACH,KAAK,CAAC,eAAe;YACnB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9D,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAC7D;QACH,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACV,KAAK,EAAE,iBAAiB;YACxB,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzD,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,iCAAiC;YACjD,KAAK,EAAE,iFAAiF;YACxF,eAAe,EAAE,IAAI;SACtB,CAAC,CACP,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../../src/render/blocks/embed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"faq.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/faq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAW,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAEL,KAAK,WAAW,EAGhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AA0B3B,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAiB1E"}
1
+ {"version":3,"file":"faq.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/faq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAW,MAAM,iBAAiB,CAAA;AACxD,OAAO,EACL,KAAK,WAAW,EAIhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAmB3B,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAe1E"}