@cogenta/theme-docs 0.3.2 → 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 +2 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/render/blocks/accordion.d.ts +8 -0
  6. package/dist/src/render/blocks/accordion.d.ts.map +1 -1
  7. package/dist/src/render/blocks/accordion.js +10 -10
  8. package/dist/src/render/blocks/accordion.js.map +1 -1
  9. package/dist/src/render/blocks/collection-list.d.ts +3 -11
  10. package/dist/src/render/blocks/collection-list.d.ts.map +1 -1
  11. package/dist/src/render/blocks/collection-list.js +69 -68
  12. package/dist/src/render/blocks/collection-list.js.map +1 -1
  13. package/dist/src/render/blocks/cta.d.ts +6 -0
  14. package/dist/src/render/blocks/cta.d.ts.map +1 -1
  15. package/dist/src/render/blocks/cta.js +9 -4
  16. package/dist/src/render/blocks/cta.js.map +1 -1
  17. package/dist/src/render/blocks/embed.d.ts.map +1 -1
  18. package/dist/src/render/blocks/embed.js +14 -13
  19. package/dist/src/render/blocks/embed.js.map +1 -1
  20. package/dist/src/render/blocks/faq.d.ts +7 -0
  21. package/dist/src/render/blocks/faq.d.ts.map +1 -1
  22. package/dist/src/render/blocks/faq.js +10 -10
  23. package/dist/src/render/blocks/faq.js.map +1 -1
  24. package/dist/src/render/blocks/feature-grid.d.ts.map +1 -1
  25. package/dist/src/render/blocks/feature-grid.js +19 -19
  26. package/dist/src/render/blocks/feature-grid.js.map +1 -1
  27. package/dist/src/render/blocks/gallery.d.ts +8 -4
  28. package/dist/src/render/blocks/gallery.d.ts.map +1 -1
  29. package/dist/src/render/blocks/gallery.js +19 -13
  30. package/dist/src/render/blocks/gallery.js.map +1 -1
  31. package/dist/src/render/blocks/hero.d.ts +12 -9
  32. package/dist/src/render/blocks/hero.d.ts.map +1 -1
  33. package/dist/src/render/blocks/hero.js +22 -20
  34. package/dist/src/render/blocks/hero.js.map +1 -1
  35. package/dist/src/render/blocks/logo-strip.d.ts +6 -0
  36. package/dist/src/render/blocks/logo-strip.d.ts.map +1 -1
  37. package/dist/src/render/blocks/logo-strip.js +6 -10
  38. package/dist/src/render/blocks/logo-strip.js.map +1 -1
  39. package/dist/src/render/blocks/logos.d.ts +10 -0
  40. package/dist/src/render/blocks/logos.d.ts.map +1 -1
  41. package/dist/src/render/blocks/logos.js +20 -17
  42. package/dist/src/render/blocks/logos.js.map +1 -1
  43. package/dist/src/render/blocks/media-figure.d.ts +0 -6
  44. package/dist/src/render/blocks/media-figure.d.ts.map +1 -1
  45. package/dist/src/render/blocks/media-figure.js +28 -16
  46. package/dist/src/render/blocks/media-figure.js.map +1 -1
  47. package/dist/src/render/blocks/pricing-table.d.ts.map +1 -1
  48. package/dist/src/render/blocks/pricing-table.js +16 -20
  49. package/dist/src/render/blocks/pricing-table.js.map +1 -1
  50. package/dist/src/render/blocks/prose.d.ts +13 -1
  51. package/dist/src/render/blocks/prose.d.ts.map +1 -1
  52. package/dist/src/render/blocks/prose.js +12 -31
  53. package/dist/src/render/blocks/prose.js.map +1 -1
  54. package/dist/src/render/blocks/quote.d.ts +5 -3
  55. package/dist/src/render/blocks/quote.d.ts.map +1 -1
  56. package/dist/src/render/blocks/quote.js +10 -14
  57. package/dist/src/render/blocks/quote.js.map +1 -1
  58. package/dist/src/render/blocks/stat-counter.d.ts +5 -0
  59. package/dist/src/render/blocks/stat-counter.d.ts.map +1 -1
  60. package/dist/src/render/blocks/stat-counter.js +6 -10
  61. package/dist/src/render/blocks/stat-counter.js.map +1 -1
  62. package/dist/src/render/blocks/stats.d.ts +10 -0
  63. package/dist/src/render/blocks/stats.d.ts.map +1 -1
  64. package/dist/src/render/blocks/stats.js +13 -8
  65. package/dist/src/render/blocks/stats.js.map +1 -1
  66. package/dist/src/render/blocks/testimonial.d.ts +4 -5
  67. package/dist/src/render/blocks/testimonial.d.ts.map +1 -1
  68. package/dist/src/render/blocks/testimonial.js +9 -13
  69. package/dist/src/render/blocks/testimonial.js.map +1 -1
  70. package/dist/src/render/chrome.d.ts +36 -1
  71. package/dist/src/render/chrome.d.ts.map +1 -1
  72. package/dist/src/render/chrome.js +122 -80
  73. package/dist/src/render/chrome.js.map +1 -1
  74. package/dist/src/render/doc-index.d.ts +25 -0
  75. package/dist/src/render/doc-index.d.ts.map +1 -0
  76. package/dist/src/render/doc-index.js +49 -0
  77. package/dist/src/render/doc-index.js.map +1 -0
  78. package/dist/src/render/doc-page.d.ts +6 -0
  79. package/dist/src/render/doc-page.d.ts.map +1 -0
  80. package/dist/src/render/doc-page.js +127 -0
  81. package/dist/src/render/doc-page.js.map +1 -0
  82. package/dist/src/render/layout.d.ts +23 -0
  83. package/dist/src/render/layout.d.ts.map +1 -0
  84. package/dist/src/render/layout.js +40 -0
  85. package/dist/src/render/layout.js.map +1 -0
  86. package/dist/src/render/render-block.d.ts +9 -6
  87. package/dist/src/render/render-block.d.ts.map +1 -1
  88. package/dist/src/render/render-block.js +47 -100
  89. package/dist/src/render/render-block.js.map +1 -1
  90. package/dist/src/render/rich-text.d.ts +26 -0
  91. package/dist/src/render/rich-text.d.ts.map +1 -0
  92. package/dist/src/render/rich-text.js +325 -0
  93. package/dist/src/render/rich-text.js.map +1 -0
  94. package/dist/src/render/search.d.ts +15 -0
  95. package/dist/src/render/search.d.ts.map +1 -0
  96. package/dist/src/render/search.js +31 -0
  97. package/dist/src/render/search.js.map +1 -0
  98. package/dist/src/render/strings.d.ts +51 -0
  99. package/dist/src/render/strings.d.ts.map +1 -0
  100. package/dist/src/render/strings.js +60 -0
  101. package/dist/src/render/strings.js.map +1 -0
  102. package/dist/src/render/term-archive.d.ts +5 -5
  103. package/dist/src/render/term-archive.d.ts.map +1 -1
  104. package/dist/src/render/term-archive.js +27 -16
  105. package/dist/src/render/term-archive.js.map +1 -1
  106. package/dist/src/render/widget-areas.d.ts +22 -0
  107. package/dist/src/render/widget-areas.d.ts.map +1 -0
  108. package/dist/src/render/widget-areas.js +29 -0
  109. package/dist/src/render/widget-areas.js.map +1 -0
  110. package/package.json +4 -4
  111. package/src/index.ts +2 -0
  112. package/src/render/blocks/accordion.ts +31 -42
  113. package/src/render/blocks/collection-list.ts +132 -123
  114. package/src/render/blocks/cta.ts +23 -18
  115. package/src/render/blocks/embed.ts +37 -28
  116. package/src/render/blocks/faq.ts +26 -37
  117. package/src/render/blocks/feature-grid.ts +34 -42
  118. package/src/render/blocks/gallery.ts +33 -29
  119. package/src/render/blocks/hero.ts +41 -45
  120. package/src/render/blocks/logo-strip.ts +21 -21
  121. package/src/render/blocks/logos.ts +32 -42
  122. package/src/render/blocks/media-figure.ts +47 -25
  123. package/src/render/blocks/pricing-table.ts +34 -41
  124. package/src/render/blocks/prose.ts +25 -40
  125. package/src/render/blocks/quote.ts +25 -19
  126. package/src/render/blocks/stat-counter.ts +27 -29
  127. package/src/render/blocks/stats.ts +35 -32
  128. package/src/render/blocks/testimonial.ts +18 -19
  129. package/src/render/chrome.ts +170 -83
  130. package/src/render/doc-index.ts +65 -0
  131. package/src/render/doc-page.ts +303 -0
  132. package/src/render/layout.ts +73 -0
  133. package/src/render/render-block.ts +67 -191
  134. package/src/render/rich-text.ts +446 -0
  135. package/src/render/search.ts +41 -0
  136. package/src/render/strings.ts +67 -0
  137. package/src/render/term-archive.ts +62 -38
  138. package/src/render/widget-areas.ts +33 -0
  139. package/src/styles/archive.css +21 -27
  140. package/src/styles/base.css +438 -838
  141. package/src/styles/blocks.css +658 -916
  142. package/src/styles/chrome.css +439 -0
  143. package/src/styles/docs.css +404 -0
  144. package/src/styles/rich.css +337 -0
  145. package/src/styles/theme.css +28 -23
  146. package/src/styles/tokens.css +209 -215
  147. package/src/styles/widgets.css +890 -0
  148. package/tokens.json +15 -15
@@ -17,5 +17,7 @@ export * from './render/blocks/stats.js';
17
17
  export * from './render/blocks/testimonial.js';
18
18
  export * from './render/chrome.js';
19
19
  export * from './render/render-block.js';
20
+ export { headingAnchors, keyChord, slugify } from './render/rich-text.js';
20
21
  export * from './render/term-archive.js';
22
+ export * from './render/widget-areas.js';
21
23
  //# 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":"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,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACzE,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
package/dist/src/index.js CHANGED
@@ -17,5 +17,7 @@ export * from './render/blocks/stats.js';
17
17
  export * from './render/blocks/testimonial.js';
18
18
  export * from './render/chrome.js';
19
19
  export * from './render/render-block.js';
20
+ export { headingAnchors, keyChord, slugify } from './render/rich-text.js';
20
21
  export * from './render/term-archive.js';
22
+ export * from './render/widget-areas.js';
21
23
  //# 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,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,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACzE,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
@@ -1,4 +1,12 @@
1
1
  import type { AccordionBlock } from '@cogenta/blocks';
2
2
  import { type HtmlElement, type RenderContext } from '@cogenta/theme-kit';
3
+ /**
4
+ * Detail a reader opens when they need it (every error code, the fields of a
5
+ * response) as ruled rows on the reading measure.
6
+ *
7
+ * Every row is a `<details>`: it opens without a script, and the browser's
8
+ * own find-in-page still reaches a closed answer. The plus that turns into a
9
+ * minus is two hairlines drawn by the stylesheet, not a glyph.
10
+ */
3
11
  export declare function renderAccordion(block: AccordionBlock, ctx: RenderContext): HtmlElement;
4
12
  //# sourceMappingURL=accordion.d.ts.map
@@ -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;AAyB3B,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,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,KAAK,WAAW,EAAK,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAI5E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CA0BtF"}
@@ -1,15 +1,15 @@
1
- import { blockHeadingTag, h, heading, renderRichText, } from '@cogenta/theme-kit';
1
+ import { h } from '@cogenta/theme-kit';
2
+ import { section, sectionHead } from '../layout.js';
3
+ import { renderDocsRichText } from '../rich-text.js';
2
4
  /**
3
- * `blocks@2.0` (RFC 0001). Reuses `faq`'s zero-JS `<details>`/`<summary>`
4
- * mechanics with a markup vocabulary of its own (`cg-panels`, not
5
- * `cg-faq`), a rotating chevron mark rather than a numbered row.
5
+ * Detail a reader opens when they need it (every error code, the fields of a
6
+ * response) as ruled rows on the reading measure.
7
+ *
8
+ * Every row is a `<details>`: it opens without a script, and the browser's
9
+ * own find-in-page still reaches a closed answer. The plus that turns into a
10
+ * minus is two hairlines drawn by the stylesheet, not a glyph.
6
11
  */
7
- function renderItem(item, ctx) {
8
- return h('li', { class: 'cg-panels__item' }, h('details', { class: 'cg-panels__details' }, h('summary', { class: 'cg-panels__question' }, h('span', { class: 'cg-panels__question-text' }, item.question), h('span', { class: 'cg-panels__chevron', 'aria-hidden': 'true' })), h('div', { class: 'cg-panels__answer' }, renderRichText(ctx, item.answer))));
9
- }
10
12
  export function renderAccordion(block, ctx) {
11
- return h('section', { class: 'cg-block cg-panels', 'data-block': 'accordion' }, block.title === undefined
12
- ? null
13
- : heading(blockHeadingTag('accordion') ?? 'h2', { class: 'cg-panels__title', 'data-field': 'title' }, block.title), h('ul', { class: 'cg-panels__items' }, block.items.map((item) => renderItem(item, ctx))));
13
+ return section('section', 'accordion', 'cd-accordion', {}, 'div', sectionHead('accordion', block.title), h('div', { class: 'cd-accordion__items' }, block.items.map((item) => h('details', { class: 'cd-accordion__item' }, h('summary', { class: 'cd-accordion__summary' }, h('span', { class: 'cd-accordion__question' }, item.question), h('span', { class: 'cd-accordion__sign', 'aria-hidden': 'true' })), h('div', { class: 'cd-accordion__answer cd-rich' }, renderDocsRichText(ctx, item.answer))))));
14
14
  }
15
15
  //# 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;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAmB,EAAE,GAAkB;IACzD,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAChC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAC/D,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAClE,EACD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAC3E,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,GAAkB;IACvE,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,EAC1D,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,WAAW,CAAC,IAAI,IAAI,EACpC,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,OAAO,EAAE,EACpD,KAAK,CAAC,KAAK,CACZ,EACL,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAC7B,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,EAAoB,CAAC,EAAsB,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,GAAkB;IACvE,OAAO,OAAO,CACZ,SAAS,EACT,WAAW,EACX,cAAc,EACd,EAAE,EACF,KAAK,EACL,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,EACrC,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAChC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAClC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAC7D,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAClE,EACD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAC1F,CACF,CACF,CACF,CAAA;AACH,CAAC"}
@@ -1,14 +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
7
- * (`@cogenta/theme-kit`'s `buildCollectionListQuery`, shared across every
8
- * theme), the caller awaits `ctx.content.list(...)` before rendering
9
- * starts, and this function stays a pure function of the entries handed to
10
- * it.
11
- */
12
- export { buildCollectionListQuery as query };
2
+ import { type ContentEntry, type HtmlElement, type QueryRequest, type RenderContext } from '@cogenta/theme-kit';
13
3
  export declare function renderCollectionList(block: CollectionListBlock, ctx: RenderContext, entries: 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;
14
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,EAOjB,KAAK,WAAW,EAIhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;GAQG;AACH,OAAO,EAAE,wBAAwB,IAAI,KAAK,EAAE,CAAA;AAkG5C,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,EAGhB,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAiH3B,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,WAAW,CAyCb;AAED,kFAAkF;AAClF,wBAAgB,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAE9D"}
@@ -1,77 +1,78 @@
1
- import { blockHeadingTag, buildCollectionListQuery, entryDate, entryExcerpt, entryHref, entryImage, entryTitle, h, heading, nestedHeadingTag, renderImageSource, } from '@cogenta/theme-kit';
1
+ import { buildCollectionListQuery, entryDate, entryExcerpt, entryHref, entryImage, entryTitle, h, nestedHeadingTag, renderImageSource, } from '@cogenta/theme-kit';
2
+ import { DOC_PAGE_COLLECTION, groupDocPages } from '../doc-index.js';
3
+ import { longDate, section, sectionHead } from '../layout.js';
2
4
  /**
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
6
- * (`@cogenta/theme-kit`'s `buildCollectionListQuery`, shared across every
7
- * theme), the caller awaits `ctx.content.list(...)` before rendering
8
- * starts, and this function stays a pure function of the entries handed to
9
- * it.
5
+ * A list of entries, read by what they are as much as by the layout chosen.
6
+ *
7
+ * - **Doc pages: the documentation, by section.** The home page's "Browse"
8
+ * block. One column per section (sections in the order the documentation
9
+ * reads, pages by their own `order`), the section named in a small heading
10
+ * over a hairline, its pages as a plain column of links. Up to four columns
11
+ * on a desk, two on a tablet, one on a phone. The layout an editor picked
12
+ * is ignored on purpose: a table of contents is not a carousel.
13
+ * - **`list`: an index.** Ruled rows: the title, the summary under it, and a
14
+ * date on the right when the entry has one, in tabular numerals.
15
+ * - **`grid`**: three columns without cards. A picture, when there is one,
16
+ * in the hairline frame at 16:10, then the title, the summary and the date.
17
+ * - **`carousel`**: the same items in one row that scrolls sideways.
18
+ *
19
+ * Each picture repeats the link of its title, so it is taken out of the tab
20
+ * order and hidden from assistive technology: one link per entry.
10
21
  */
11
- export { buildCollectionListQuery as query };
12
- /**
13
- * The general-purpose row: a cover image (`entryImage`, contract D
14
- * `theme@1.4`) when the collection carries one, title, excerpt and date —
15
- * this is what a non-docs collection placed in this block gets.
16
- */
17
- function renderRow(entry, ctx, tag) {
22
+ function renderDocIndex(entries, ctx, tag) {
23
+ const groups = groupDocPages(entries, ctx);
24
+ return h('div', { class: 'cd-browse', 'data-count': String(Math.min(groups.length, 4)) }, groups.map((group) => h('div', { class: 'cd-browse__group' }, h(tag, { class: 'cd-browse__heading' }, group.section), h('ul', { class: 'cd-browse__links' }, group.entries.map((entry) => h('li', { class: 'cd-browse__item' }, h('a', { class: 'cd-browse__link', href: entryHref(entry, ctx) }, entryTitle(entry, ctx))))))));
25
+ }
26
+ function dateOf(entry, ctx, className) {
18
27
  const date = entryDate(entry);
28
+ if (date === undefined)
29
+ return null;
30
+ return h('time', { class: className, datetime: date }, longDate(date, ctx.locale));
31
+ }
32
+ function indexRow(entry, ctx, tag) {
19
33
  const excerpt = entryExcerpt(entry);
20
- const image = entryImage(entry, ctx);
21
- return h('li', { class: 'cg-list__row' }, image === undefined
22
- ? null
23
- : h('div', { class: 'cg-list__thumb' }, renderImageSource(image, { loading: 'lazy', className: 'cg-list__thumb-image' })), h('div', { class: 'cg-list__body' }, heading(tag, { class: 'cg-list__title' }, h('a', { class: 'cg-list__link', href: entryHref(entry, ctx) }, entryTitle(entry, ctx))), date === undefined
24
- ? null
25
- : h('time', { class: 'cg-list__date', datetime: date }, new Intl.DateTimeFormat(ctx.locale, { dateStyle: 'long' }).format(new Date(date))), excerpt === undefined ? null : h('p', { class: 'cg-list__excerpt' }, excerpt)));
34
+ return h('li', { class: 'cd-index__item' }, h('div', { class: 'cd-index__words' }, h(tag, { class: 'cd-index__title' }, h('a', { class: 'cd-index__link', href: entryHref(entry, ctx) }, entryTitle(entry, ctx))), excerpt === undefined ? null : h('p', { class: 'cd-index__text' }, excerpt)), dateOf(entry, ctx, 'cd-index__date'));
26
35
  }
27
- /**
28
- * `doc_page`'s own layout: a compact, multi-column index grouped by the
29
- * entry's own `section` field and ordered by its own `order` field within
30
- * each group — neither is a valid `collectionList.sort.field` (contract B
31
- * fixes that union to `id`/`createdAt`/`updatedAt`), so the theme re-groups
32
- * and re-sorts the already-fetched slice itself rather than asking for a
33
- * sort the contract does not offer. Sections are ordered alphabetically for
34
- * a deterministic page; entries within a section fall back to the order
35
- * they were fetched in when `order` is absent or not a number.
36
- */
37
- function renderGuidesIndex(entries, ctx) {
38
- const groups = new Map();
39
- entries.forEach((entry) => {
40
- const section = typeof entry.section === 'string' && entry.section !== ''
41
- ? entry.section
42
- : ctx.t('entry.untitled');
43
- const list = groups.get(section) ?? [];
44
- list.push(entry);
45
- groups.set(section, list);
46
- });
47
- const sortedSections = [...groups.entries()].sort(([a], [b]) => a.localeCompare(b));
48
- return h('div', { class: 'cg-guides' }, sortedSections.map(([section, sectionEntries]) => {
49
- const ordered = [...sectionEntries].sort((a, b) => {
50
- const orderA = typeof a.order === 'number' ? a.order : Number.POSITIVE_INFINITY;
51
- const orderB = typeof b.order === 'number' ? b.order : Number.POSITIVE_INFINITY;
52
- return orderA - orderB;
53
- });
54
- return h('div', { class: 'cg-guides__section' }, h('h3', { class: 'cg-guides__heading' }, section), h('ul', { class: 'cg-guides__items' }, ordered.map((entry) => h('li', { class: 'cg-guides__item' }, h('a', { class: 'cg-guides__link', href: entryHref(entry, ctx) }, entryTitle(entry, ctx))))));
55
- }));
36
+ function card(entry, ctx, tag) {
37
+ const excerpt = entryExcerpt(entry);
38
+ const source = entryImage(entry, ctx);
39
+ return h('li', { class: 'cd-cards__item' }, source === undefined
40
+ ? null
41
+ : h('a', {
42
+ class: 'cd-cards__media cd-frame',
43
+ href: entryHref(entry, ctx),
44
+ tabindex: -1,
45
+ 'aria-hidden': 'true',
46
+ }, renderImageSource(source, {
47
+ className: 'cd-frame__image',
48
+ sizes: '(min-width: 64rem) 24rem, (min-width: 40rem) 50vw, 100vw',
49
+ })), h(tag, { class: 'cd-cards__title' }, h('a', { class: 'cd-cards__link', href: entryHref(entry, ctx) }, entryTitle(entry, ctx))), excerpt === undefined ? null : h('p', { class: 'cd-cards__text' }, excerpt), dateOf(entry, ctx, 'cd-cards__date'));
56
50
  }
57
51
  export function renderCollectionList(block, ctx, entries) {
58
- const hasTitle = block.title !== undefined;
59
- const entryTag = nestedHeadingTag('collectionList', hasTitle);
60
- const isGuidesIndex = block.collection === 'doc_page';
61
- const body = entries.length === 0
62
- ? h('p', { class: 'cg-list__empty' }, ctx.t('collection.empty'))
63
- : isGuidesIndex
64
- ? renderGuidesIndex(entries, ctx)
65
- : h('ul', { class: 'cg-list__items' }, entries.map((entry) => renderRow(entry, ctx, entryTag)));
66
- return h('section', { class: 'cg-block cg-list', 'data-block': 'collectionList', 'data-layout': block.layout }, hasTitle
67
- ? heading(blockHeadingTag('collectionList') ?? 'h2', { class: 'cg-list__title-heading', 'data-field': 'title' }, block.title ?? '')
68
- : null, block.layout === 'carousel' && !isGuidesIndex
69
- ? h('div', {
70
- class: 'cg-list__viewport',
71
- role: 'region',
72
- 'aria-label': block.title ?? ctx.t('collection.carousel'),
73
- tabindex: '0',
74
- }, body)
75
- : body);
52
+ const tag = nestedHeadingTag('collectionList', block.title !== undefined);
53
+ const docs = block.collection === DOC_PAGE_COLLECTION;
54
+ const shape = entries.length === 0 ? 'empty' : docs ? 'docs' : block.layout;
55
+ const body = shape === 'empty'
56
+ ? h('p', { class: 'cd-empty' }, ctx.t('collection.empty'))
57
+ : shape === 'docs'
58
+ ? renderDocIndex(entries, ctx, tag)
59
+ : shape === 'list'
60
+ ? h('ul', { class: 'cd-index' }, entries.map((entry) => indexRow(entry, ctx, tag)))
61
+ : h('ul', {
62
+ class: 'cd-cards',
63
+ 'data-carousel': shape === 'carousel' ? 'true' : 'false',
64
+ ...(shape === 'carousel'
65
+ ? {
66
+ role: 'region',
67
+ 'aria-label': block.title ?? ctx.t('collection.carousel'),
68
+ tabindex: 0,
69
+ }
70
+ : {}),
71
+ }, entries.map((entry) => card(entry, ctx, tag)));
72
+ return section('section', 'collectionList', 'cd-list', { 'data-layout': block.layout, 'data-shape': shape }, 'div', sectionHead('collectionList', block.title), body);
73
+ }
74
+ /** The query this block needs, fetched by the host before any markup is built. */
75
+ export function query(block) {
76
+ return buildCollectionListQuery(block);
76
77
  }
77
78
  //# sourceMappingURL=collection-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../../src/render/blocks/collection-list.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,wBAAwB,EAExB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EAGV,CAAC,EACD,OAAO,EACP,gBAAgB,EAEhB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;GAQG;AACH,OAAO,EAAE,wBAAwB,IAAI,KAAK,EAAE,CAAA;AAE5C;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAmB,EAAE,GAAkB,EAAE,GAAe;IACzE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACpC,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,cAAc,EAAE,EACzB,KAAK,KAAK,SAAS;QACjB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAC3B,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CACjF,EACL,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,OAAO,CACL,GAAG,EACH,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAC3B,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CACxF,EACD,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,MAAM,EACN,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAClF,EACL,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAC9E,CACF,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,OAAgC,EAAE,GAAkB;IAC7E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE;YACvD,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnF,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,WAAW,EAAE,EACtB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAA;YAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAA;YAC/E,OAAO,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,EACjD,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACpB,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,CAAC,CACC,GAAG,EACH,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EACzD,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CACvB,CACF,CACF,CACF,CACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAA0B,EAC1B,GAAkB,EAClB,OAAgC;IAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;IAC1C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,UAAU,CAAA;IAErD,MAAM,IAAI,GACR,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC,CAAC,aAAa;YACb,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC;YACjC,CAAC,CAAC,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CACxD,CAAA;IAET,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,EAC1F,QAAQ;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,gBAAgB,CAAC,IAAI,IAAI,EACzC,EAAE,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,OAAO,EAAE,EAC1D,KAAK,CAAC,KAAK,IAAI,EAAE,CAClB;QACH,CAAC,CAAC,IAAI,EACR,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,aAAa;QAC3C,CAAC,CAAC,CAAC,CACC,KAAK,EACL;YACE,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACzD,QAAQ,EAAE,GAAG;SACd,EACD,IAAI,CACL;QACH,CAAC,CAAC,IAAI,CACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"collection-list.js","sourceRoot":"","sources":["../../../../src/render/blocks/collection-list.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { CtaBlock } from '@cogenta/blocks';
2
2
  import { type HtmlElement, type RenderContext } from '@cogenta/theme-kit';
3
+ /**
4
+ * A closing line: "Stuck on something", "Upgrading from an older version".
5
+ * Between two hairlines held to the width of the content (never a coloured
6
+ * band, never a rule across the gutters): the title and a sentence on the
7
+ * first seven columns, the actions after them on a wide screen.
8
+ */
3
9
  export declare function renderCta(block: CtaBlock, ctx: RenderContext): HtmlElement;
4
10
  //# 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,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAc1E"}
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,EAAc,KAAK,WAAW,EAAK,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGxF;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAmB1E"}
@@ -1,7 +1,12 @@
1
- import { actionList, blockHeadingTag, h, heading, } from '@cogenta/theme-kit';
1
+ import { actionList, h } from '@cogenta/theme-kit';
2
+ import { optionalText, section } from '../layout.js';
3
+ /**
4
+ * A closing line: "Stuck on something", "Upgrading from an older version".
5
+ * Between two hairlines held to the width of the content (never a coloured
6
+ * band, never a rule across the gutters): the title and a sentence on the
7
+ * first seven columns, the actions after them on a wide screen.
8
+ */
2
9
  export function renderCta(block, ctx) {
3
- return h('section', { class: 'cg-block cg-cta', 'data-block': 'cta' }, heading(blockHeadingTag('cta') ?? 'h2', { class: 'cg-cta__title', 'data-field': 'title' }, block.title), block.text === undefined
4
- ? null
5
- : h('p', { class: 'cg-cta__text', 'data-field': 'text' }, block.text), actionList(ctx, block.actions, block.title));
10
+ return section('section', 'cta', 'cd-cta', {}, 'div', h('div', { class: 'cd-cta__panel' }, h('div', { class: 'cd-cta__words' }, h('h2', { class: 'cd-cta__title', 'data-field': 'title' }, block.title), optionalText('p', 'cd-cta__text', block.text, { 'data-field': 'text' })), h('div', { class: 'cd-cta__actions' }, actionList(ctx, block.actions, block.title))));
6
11
  }
7
12
  //# 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,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,GAAkB;IAC3D,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,EACjD,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,EACvE,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAC5C,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"cta.js","sourceRoot":"","sources":["../../../../src/render/blocks/cta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAoB,CAAC,EAAsB,MAAM,oBAAoB,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,GAAkB;IAC3D,OAAO,OAAO,CACZ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,EAAE,EACF,KAAK,EACL,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EACvE,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CACxE,EACD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CACpF,CACF,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;AA6DzF,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;AA8DzF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAuC9E"}
@@ -1,10 +1,12 @@
1
1
  import { aspectRatio, h } from '@cogenta/theme-kit';
2
2
  /**
3
- * Nothing here contacts a third party before the visitor has consented.
3
+ * A recorded walkthrough, a talk, a post: embedded in the hairline frame.
4
4
  *
5
- * When `consentRequired` is true the block renders a self-contained card and
6
- * an outbound link — no `<iframe>`, no `<script>`, no preconnect, no poster
7
- * image fetched from the provider.
5
+ * Nothing here contacts a third party before the visitor has consented. When
6
+ * `consentRequired` is true (and for a provider this theme cannot embed) the
7
+ * frame holds a short notice and a link to the original instead: no
8
+ * `<iframe>`, no `<script>`, no preconnect, no poster fetched from the
9
+ * provider.
8
10
  */
9
11
  function frameSource(provider, rawUrl) {
10
12
  const url = URL.parse(rawUrl);
@@ -38,9 +40,9 @@ function frameSource(provider, rawUrl) {
38
40
  return null;
39
41
  }
40
42
  }
41
- function consentCard(block, ctx, reason) {
42
- return h('div', { class: 'cg-embed__placeholder' }, h('p', { class: 'cg-embed__provider', 'aria-hidden': 'true' }, block.provider), h('p', { class: 'cg-embed__notice' }, reason), h('a', {
43
- class: 'cg-embed__link',
43
+ function notice(block, ctx, reason) {
44
+ return h('div', { class: 'cd-embed__notice' }, h('p', { class: 'cd-embed__reason' }, reason), h('a', {
45
+ class: 'cd-arrow-link cd-embed__link',
44
46
  href: ctx.link(block.url),
45
47
  rel: 'noopener noreferrer nofollow',
46
48
  }, ctx.t('embed.open', { provider: block.provider })));
@@ -49,23 +51,22 @@ export function renderEmbed(block, ctx) {
49
51
  const source = block.consentRequired ? null : frameSource(block.provider, block.url);
50
52
  const ratio = aspectRatio(block.ratio) ?? '16 / 9';
51
53
  return h('div', {
52
- class: 'cg-block cg-embed',
54
+ class: 'cd-section cd-embed',
53
55
  'data-block': 'embed',
54
56
  'data-provider': block.provider,
55
57
  'data-consent': block.consentRequired ? 'required' : 'not-required',
56
- style: `--cg-ratio:${ratio}`,
57
- }, source === null
58
- ? consentCard(block, ctx, block.consentRequired
58
+ }, h('div', { class: 'cd-container cd-embed__inner' }, h('div', { class: 'cd-embed__frame cd-frame', style: `aspect-ratio:${ratio}` }, source === null
59
+ ? notice(block, ctx, block.consentRequired
59
60
  ? ctx.t('embed.consentRequired', { provider: block.provider })
60
61
  : ctx.t('embed.unsupported', { provider: block.provider }))
61
62
  : h('iframe', {
62
- class: 'cg-embed__frame',
63
+ class: 'cd-embed__iframe',
63
64
  src: source,
64
65
  title: ctx.t('embed.title', { provider: block.provider }),
65
66
  loading: 'lazy',
66
67
  referrerpolicy: 'strict-origin-when-cross-origin',
67
68
  allow: 'accelerometer; clipboard-write; encrypted-media; picture-in-picture; fullscreen',
68
69
  allowfullscreen: true,
69
- }));
70
+ }))));
70
71
  }
71
72
  //# sourceMappingURL=embed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../../src/render/blocks/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../../src/render/blocks/embed.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import type { FaqBlock } from '@cogenta/blocks';
2
2
  import { type HtmlElement, type RenderContext } from '@cogenta/theme-kit';
3
+ /**
4
+ * Questions a reader asks before reading further ("Which databases are
5
+ * supported"), answered in the open: no disclosure to click. The title on
6
+ * the first four columns, the questions and answers on the last eight in two
7
+ * columns of ruled items on a wide screen, each question a real heading so a
8
+ * screen reader's heading list reaches it.
9
+ */
3
10
  export declare function renderFaq(block: FaqBlock, ctx: RenderContext): HtmlElement;
4
11
  //# sourceMappingURL=faq.d.ts.map
@@ -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;AAoB3B,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,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAuB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAI9F;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAsB1E"}
@@ -1,15 +1,15 @@
1
- import { blockHeadingTag, h, heading, renderRichText, } from '@cogenta/theme-kit';
1
+ import { h, nestedHeadingTag } from '@cogenta/theme-kit';
2
+ import { section, sectionHead } from '../layout.js';
3
+ import { renderDocsRichText } from '../rich-text.js';
2
4
  /**
3
- * `<details>`/`<summary>` rather than a scripted accordion: expanding,
4
- * keyboard operation, and the expanded state announced to assistive
5
- * technology all come from the browser, at zero bytes of JavaScript.
5
+ * Questions a reader asks before reading further ("Which databases are
6
+ * supported"), answered in the open: no disclosure to click. The title on
7
+ * the first four columns, the questions and answers on the last eight in two
8
+ * columns of ruled items on a wide screen, each question a real heading so a
9
+ * screen reader's heading list reaches it.
6
10
  */
7
- function renderItem(item, ctx) {
8
- return h('li', { class: 'cg-faq__item' }, h('details', { class: 'cg-faq__details' }, h('summary', { class: 'cg-faq__question' }, item.question), h('div', { class: 'cg-faq__answer' }, renderRichText(ctx, item.answer))));
9
- }
10
11
  export function renderFaq(block, ctx) {
11
- return h('section', { class: 'cg-block cg-faq', 'data-block': 'faq' }, block.title === undefined
12
- ? null
13
- : heading(blockHeadingTag('faq') ?? 'h2', { class: 'cg-faq__title', 'data-field': 'title' }, block.title), h('ul', { class: 'cg-faq__items' }, block.items.map((item) => renderItem(item, ctx))));
12
+ const tag = nestedHeadingTag('faq', block.title !== undefined);
13
+ return section('section', 'faq', 'cd-faq', { 'data-titled': block.title === undefined ? 'false' : 'true' }, 'div', sectionHead('faq', block.title), h('div', { class: 'cd-faq__items' }, block.items.map((item) => h('div', { class: 'cd-faq__item' }, h(tag, { class: 'cd-faq__question' }, item.question), h('div', { class: 'cd-faq__answer cd-rich' }, renderDocsRichText(ctx, item.answer))))));
14
14
  }
15
15
  //# sourceMappingURL=faq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"faq.js","sourceRoot":"","sources":["../../../../src/render/blocks/faq.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAEf,CAAC,EACD,OAAO,EAEP,cAAc,GACf,MAAM,oBAAoB,CAAA;AAE3B;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAa,EAAE,GAAkB;IACnD,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,cAAc,EAAE,EACzB,CAAC,CACC,SAAS,EACT,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC5B,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAC1D,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CACxE,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,GAAkB;IAC3D,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,EAAE,EACjD,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,KAAK,CAAC,IAAI,IAAI,EAC9B,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,EACjD,KAAK,CAAC,KAAK,CACZ,EACL,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,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":"faq.js","sourceRoot":"","sources":["../../../../src/render/blocks/faq.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,CAAC,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAA;AAC9F,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,GAAkB;IAC3D,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;IAC9D,OAAO,OAAO,CACZ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAC/D,KAAK,EACL,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAC/B,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,eAAe,EAAE,EAC1B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,CAAC,CACC,KAAK,EACL,EAAE,KAAK,EAAE,cAAc,EAAE,EACzB,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CACpF,CACF,CACF,CACF,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"feature-grid.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/feature-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAGL,KAAK,WAAW,EAKhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAoC3B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAmB1F"}
1
+ {"version":3,"file":"feature-grid.d.ts","sourceRoot":"","sources":["../../../../src/render/blocks/feature-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,iBAAiB,CAAA;AACpE,OAAO,EACL,KAAK,WAAW,EAIhB,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAA;AAkC3B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,aAAa,GAAG,WAAW,CAgB1F"}
@@ -1,27 +1,27 @@
1
- import { blockHeadingTag, h, heading, href, nestedHeadingTag, renderIcon, } from '@cogenta/theme-kit';
1
+ import { h, href, nestedHeadingTag, renderIcon, } from '@cogenta/theme-kit';
2
+ import { optionalText, section, sectionHead } from '../layout.js';
2
3
  /**
3
- * The item's title is the link, so the link's accessible name is the
4
- * feature's own name (WCAG 2.4.4) — the block carries no separate label
5
- * field to write a "learn more" with anyway.
4
+ * Short entries in three columns: "Start here", "Get help". No card, no tile,
5
+ * no background: each entry hangs from a hairline, its title is the link (an
6
+ * underlined arrow link when there is one), and one or two lines under it say
7
+ * what the reader will find. An icon, when the item names one this theme
8
+ * knows, is a small stroke drawing inline before the title in the secondary
9
+ * ink, the size of the text it sits beside.
6
10
  *
7
- * `icon` names a symbol, never markup: when the name is one `renderIcon`
8
- * recognises it becomes a real inline glyph, `aria-hidden` since the title
9
- * already names the card. An unrecognised name keeps the bare, empty
10
- * `data-icon` span for a skin/plugin to key off.
11
+ * Three columns on a desk, two on a tablet, one on a phone; four items make
12
+ * a row of four on a wide screen, so no row is left with an empty cell.
11
13
  */
12
- function renderItem(item, ctx, tag) {
13
- const title = item.link === undefined
14
- ? heading(tag, { class: 'cg-feature__title' }, item.title)
15
- : heading(tag, { class: 'cg-feature__title' }, h('a', { class: 'cg-feature__link', href: href(ctx, item.link) }, item.title));
16
- return h('li', { class: 'cg-feature' }, item.icon === undefined
14
+ function entry(item, ctx, tag) {
15
+ const icon = item.icon === undefined
17
16
  ? null
18
- : h('span', { class: 'cg-feature__icon', 'data-icon': item.icon, 'aria-hidden': 'true' }, renderIcon(item.icon)), title, item.text === undefined ? null : h('p', { class: 'cg-feature__text' }, item.text));
17
+ : renderIcon(item.icon, { className: 'cd-features__icon', size: 18 });
18
+ return h('li', { class: 'cd-features__item' }, h(tag, { class: 'cd-features__title' }, icon, item.link === undefined
19
+ ? h('span', {}, item.title)
20
+ : h('a', { class: 'cd-arrow-link', href: href(ctx, item.link) }, item.title)), optionalText('p', 'cd-features__text', item.text));
19
21
  }
20
22
  export function renderFeatureGrid(block, ctx) {
21
- const hasTitle = block.title !== undefined;
22
- const itemTag = nestedHeadingTag('featureGrid', hasTitle);
23
- return h('section', { class: 'cg-block cg-features', 'data-block': 'featureGrid' }, hasTitle
24
- ? heading(blockHeadingTag('featureGrid') ?? 'h2', { class: 'cg-features__title', 'data-field': 'title' }, block.title ?? '')
25
- : null, h('ul', { class: 'cg-features__items' }, block.items.map((item) => renderItem(item, ctx, itemTag))));
23
+ const tag = nestedHeadingTag('featureGrid', block.title !== undefined);
24
+ const count = block.items.length;
25
+ return section('section', 'featureGrid', 'cd-features', { 'data-count': String(count % 4 === 0 ? 4 : Math.min(count, 3)) }, 'div', sectionHead('featureGrid', block.title), h('ul', { class: 'cd-features__items' }, block.items.map((item) => entry(item, ctx, tag))));
26
26
  }
27
27
  //# sourceMappingURL=feature-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-grid.js","sourceRoot":"","sources":["../../../../src/render/blocks/feature-grid.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAGf,CAAC,EACD,OAAO,EACP,IAAI,EACJ,gBAAgB,EAEhB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;GASG;AACH,SAAS,UAAU,CAAC,IAAiB,EAAE,GAAkB,EAAE,GAAe;IACxE,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,SAAS;QACrB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;QAC1D,CAAC,CAAC,OAAO,CACL,GAAG,EACH,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAC9B,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAC9E,CAAA;IACP,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,YAAY,EAAE,EACvB,IAAI,CAAC,IAAI,KAAK,SAAS;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,MAAM,EACN,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAC5E,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CACtB,EACL,KAAK,EACL,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAClF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuB,EAAE,GAAkB;IAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;IAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACzD,OAAO,CAAC,CACN,SAAS,EACT,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,aAAa,EAAE,EAC9D,QAAQ;QACN,CAAC,CAAC,OAAO,CACL,eAAe,CAAC,aAAa,CAAC,IAAI,IAAI,EACtC,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,OAAO,EAAE,EACtD,KAAK,CAAC,KAAK,IAAI,EAAE,CAClB;QACH,CAAC,CAAC,IAAI,EACR,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAC1D,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"feature-grid.js","sourceRoot":"","sources":["../../../../src/render/blocks/feature-grid.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,CAAC,EACD,IAAI,EACJ,gBAAgB,EAEhB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAEjE;;;;;;;;;;GAUG;AACH,SAAS,KAAK,CAAC,IAAiB,EAAE,GAAkB,EAAE,GAAW;IAC/D,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,KAAK,SAAS;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACzE,OAAO,CAAC,CACN,IAAI,EACJ,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAC9B,CAAC,CACC,GAAG,EACH,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,IAAI,EACJ,IAAI,CAAC,IAAI,KAAK,SAAS;QACrB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAC/E,EACD,YAAY,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,CAClD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuB,EAAE,GAAkB;IAC3E,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAA;IAChC,OAAO,OAAO,CACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAClE,KAAK,EACL,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,EACvC,CAAC,CACC,IAAI,EACJ,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CACjD,CACF,CAAA;AACH,CAAC"}