@cogenta/theme-kit 0.5.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/archive.d.ts CHANGED
@@ -17,6 +17,8 @@
17
17
  * A theme that does not implement it is not broken: the host renders a plain
18
18
  * list with that theme's own chrome around it.
19
19
  */
20
+ import type { ImageSource } from './contract.js';
21
+ import { type HtmlElement } from './html.js';
20
22
  export interface TermArchiveLink {
21
23
  readonly label: string;
22
24
  readonly href: string;
@@ -56,6 +58,12 @@ export interface TermArchiveInput {
56
58
  readonly previousHref: string | null;
57
59
  readonly nextHref: string | null;
58
60
  };
61
+ /**
62
+ * `theme@1.8`: what an author's archive says about its author — their bio and
63
+ * portrait, both volunteered on their profile. Absent on a term or date
64
+ * archive, and on an author who wrote neither. `renderArchiveIntro` draws it.
65
+ */
66
+ readonly intro?: TermArchiveIntro;
59
67
  /** Locale of the page, for a theme that formats dates. */
60
68
  readonly locale: string;
61
69
  /**
@@ -70,6 +78,11 @@ export interface TermArchiveInput {
70
78
  */
71
79
  readonly labels: TermArchiveLabels;
72
80
  }
81
+ export interface TermArchiveIntro {
82
+ readonly text?: string;
83
+ /** Already resolved by the host; its `alt` is the author's name. */
84
+ readonly image?: ImageSource;
85
+ }
73
86
  export interface TermArchiveLabels {
74
87
  /** Shown instead of the list when the term classifies nothing published. */
75
88
  readonly empty: string;
@@ -82,4 +95,10 @@ export interface TermArchiveLabels {
82
95
  /** `aria-label` of the sub-term list. */
83
96
  readonly subterms: string;
84
97
  }
98
+ /**
99
+ * The intro of an archive — an author's portrait and bio — or `null` when
100
+ * there is none, so a theme adds one line under its title and a term archive
101
+ * renders exactly as before.
102
+ */
103
+ export declare function renderArchiveIntro(input: TermArchiveInput): HtmlElement | null;
85
104
  //# sourceMappingURL=archive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAChE,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;IAC9C,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;IAC7C,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC7C,QAAQ,CAAC,IAAI,EAAE;QACb,eAAe;QACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACjC,CAAA;IACD,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,KAAK,WAAW,EAAK,MAAM,WAAW,CAAA;AAG/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAChE,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;IAC9C,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAA;IAC7C,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC7C,QAAQ,CAAC,IAAI,EAAE;QACb,eAAe;QACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;QAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACjC,CAAA;IACD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAW9E"}
package/dist/archive.js CHANGED
@@ -17,5 +17,19 @@
17
17
  * A theme that does not implement it is not broken: the host renders a plain
18
18
  * list with that theme's own chrome around it.
19
19
  */
20
- export {};
20
+ import { h } from './html.js';
21
+ import { renderImageSource } from './media.js';
22
+ /**
23
+ * The intro of an archive — an author's portrait and bio — or `null` when
24
+ * there is none, so a theme adds one line under its title and a term archive
25
+ * renders exactly as before.
26
+ */
27
+ export function renderArchiveIntro(input) {
28
+ const intro = input.intro;
29
+ if (intro === undefined || (intro.text === undefined && intro.image === undefined))
30
+ return null;
31
+ return h('div', { class: 'cg-archive__intro' }, intro.image === undefined
32
+ ? null
33
+ : renderImageSource(intro.image, { className: 'cg-archive__portrait', sizes: '6rem' }), intro.text === undefined ? null : h('p', { class: 'cg-archive__bio' }, intro.text));
34
+ }
21
35
  //# sourceMappingURL=archive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../src/archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAoB,CAAC,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAgF9C;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IACzB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/F,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAC9B,KAAK,CAAC,KAAK,KAAK,SAAS;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EACxF,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CACnF,CAAA;AACH,CAAC"}
@@ -18,6 +18,10 @@ import { type HtmlElement } from './html.js';
18
18
  * a structural property of this function rather than a habit to remember —
19
19
  * and, since this module is shared, a property every theme package gets for
20
20
  * free rather than one it has to reimplement correctly on its own.
21
+ *
22
+ * Every word a visitor reads comes from `THEME_STRINGS` in the page's own
23
+ * language, and the date is written the way that language writes it: the
24
+ * section was English on every French site until the L36 audit.
21
25
  */
22
26
  export interface PublicComment {
23
27
  readonly id: string;
@@ -43,7 +47,24 @@ export interface CommentsSectionOptions {
43
47
  readonly honeypotField?: string;
44
48
  /** Server time this page was rendered, ms since epoch — the minimum-fill-delay hidden field. */
45
49
  readonly renderedAt: number;
50
+ /**
51
+ * What happened to the comment this visitor just sent, read from the
52
+ * `?comment=` the comments router redirects back with. Absent: nothing was
53
+ * just sent. A comment held as spam reads `pending`, never a distinct
54
+ * notice — telling a bot what tripped it is what the router avoids too.
55
+ */
56
+ readonly notice?: CommentNotice;
57
+ /** The page's translator, with the theme's own overrides; built from `locale` when absent. */
58
+ readonly t?: (key: string, values?: Readonly<Record<string, string | number>>) => string;
46
59
  }
60
+ export type CommentNotice = 'approved' | 'pending' | 'invalid' | 'rateLimited' | 'closed' | 'error';
61
+ /**
62
+ * The notice for a redirect's `?comment=` and `&reason=`, or `undefined` when
63
+ * the query names nothing this section knows. The reason is an error code of
64
+ * `@cogenta/comments`; a code that would teach a bot something (a tripped
65
+ * honeypot, a form sent too fast) reads as the generic error.
66
+ */
67
+ export declare function commentNoticeFor(outcome: string | null, reason: string | null): CommentNotice | undefined;
47
68
  /**
48
69
  * The whole section: heading, thread, and — only when `open` — the form.
49
70
  * Returned as an `HtmlElement`, appended by the caller after the page's own
@@ -1 +1 @@
1
- {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAW,MAAM,WAAW,CAAA;AAEtE;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;IAC3C,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,6GAA6G;IAC7G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,uJAAuJ;IACvJ,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8IAA8I;IAC9I,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,gGAAgG;IAChG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B;AA2HD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,CAclF"}
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAW,MAAM,WAAW,CAAA;AAGtE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;IAC3C,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,6GAA6G;IAC7G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,uJAAuJ;IACvJ,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8IAA8I;IAC9I,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,gGAAgG;IAChG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAAA;CACzF;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEnG;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,aAAa,GAAG,SAAS,CAsB3B;AAsJD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,CAiClF"}
package/dist/comments.js CHANGED
@@ -1,4 +1,34 @@
1
1
  import { h, text } from './html.js';
2
+ import { createThemeTranslator } from './strings.js';
3
+ /**
4
+ * The notice for a redirect's `?comment=` and `&reason=`, or `undefined` when
5
+ * the query names nothing this section knows. The reason is an error code of
6
+ * `@cogenta/comments`; a code that would teach a bot something (a tripped
7
+ * honeypot, a form sent too fast) reads as the generic error.
8
+ */
9
+ export function commentNoticeFor(outcome, reason) {
10
+ switch (outcome) {
11
+ case 'approved':
12
+ return 'approved';
13
+ case 'pending':
14
+ case 'spam':
15
+ return 'pending';
16
+ case 'error':
17
+ break;
18
+ default:
19
+ return undefined;
20
+ }
21
+ switch (reason) {
22
+ case 'COMMENT_BODY_INVALID':
23
+ return 'invalid';
24
+ case 'COMMENT_RATE_LIMITED':
25
+ return 'rateLimited';
26
+ case 'COMMENT_TARGET_CLOSED':
27
+ return 'closed';
28
+ default:
29
+ return 'error';
30
+ }
31
+ }
2
32
  function buildTree(comments) {
3
33
  const byParent = new Map();
4
34
  for (const comment of comments) {
@@ -14,16 +44,28 @@ function buildTree(comments) {
14
44
  }
15
45
  return attach(null);
16
46
  }
17
- function renderComment(node) {
18
- return h('li', { class: 'cg-comment', id: `comment-${node.id}` }, h('article', {}, h('header', { class: 'cg-comment__meta' }, h('span', { class: 'cg-comment__author' }, text(node.authorName)), h('time', { class: 'cg-comment__date', datetime: node.createdAt }, text(new Date(node.createdAt).toLocaleDateString()))), h('p', { class: 'cg-comment__body' }, text(node.body))), node.replies.length === 0
47
+ function renderComment(node, locale) {
48
+ return h('li', { class: 'cg-comment', id: `comment-${node.id}` }, h('article', {}, h('header', { class: 'cg-comment__meta' }, h('span', { class: 'cg-comment__author' }, text(node.authorName)), h('time', { class: 'cg-comment__date', datetime: node.createdAt }, text(formatDate(node.createdAt, locale)))), h('p', { class: 'cg-comment__body' }, text(node.body))), node.replies.length === 0
19
49
  ? null
20
- : h('ol', { class: 'cg-comment__replies' }, node.replies.map(renderComment)));
50
+ : h('ol', { class: 'cg-comment__replies' }, node.replies.map((reply) => renderComment(reply, locale))));
51
+ }
52
+ /** `12 March 2026` / `12 mars 2026` — a date is read in the page's language, not the server's. */
53
+ function formatDate(iso, locale) {
54
+ const date = new Date(iso);
55
+ if (Number.isNaN(date.getTime()))
56
+ return iso;
57
+ try {
58
+ return date.toLocaleDateString(locale, { day: 'numeric', month: 'long', year: 'numeric' });
59
+ }
60
+ catch {
61
+ return date.toISOString().slice(0, 10);
62
+ }
21
63
  }
22
64
  function hidden(name, value) {
23
65
  return h('input', { type: 'hidden', name, value });
24
66
  }
25
67
  /** The submission form — a plain HTML `<form method="post">`, no JavaScript required (fiche 15 task 6). */
26
- function renderForm(options, parentId) {
68
+ function renderForm(options, t, parentId) {
27
69
  const honeypot = options.honeypotField ?? 'website';
28
70
  const formId = parentId === undefined ? 'cg-comment-form' : `cg-comment-form-${parentId}`;
29
71
  return h('form', {
@@ -36,19 +78,19 @@ function renderForm(options, parentId) {
36
78
  // attribute a theme's own stylesheet never has to know about — the
37
79
  // element is not `type="hidden"` on purpose, so a bot's naive "fill
38
80
  // every input" script still finds and fills it.
39
- h('div', { class: 'cg-comment__honeypot', 'aria-hidden': 'true' }, h('label', { for: `${formId}-hp` }, text('Leave this field empty')), h('input', {
81
+ h('div', { class: 'cg-comment__honeypot', 'aria-hidden': 'true' }, h('label', { for: `${formId}-hp` }, text(t('form.honeypot'))), h('input', {
40
82
  id: `${formId}-hp`,
41
83
  type: 'text',
42
84
  name: honeypot,
43
85
  tabindex: -1,
44
86
  autocomplete: 'off',
45
- })), h('p', {}, h('label', { for: `${formId}-name` }, text('Name')), h('input', {
87
+ })), h('p', {}, h('label', { for: `${formId}-name` }, text(t('comments.name'))), h('input', {
46
88
  id: `${formId}-name`,
47
89
  type: 'text',
48
90
  name: 'name',
49
91
  required: true,
50
92
  maxlength: 200,
51
- })), h('p', {}, h('label', { for: `${formId}-email` }, text('E-mail (not published)')), h('input', { id: `${formId}-email`, type: 'email', name: 'email', required: true })), h('p', {}, h('label', { for: `${formId}-url` }, text('Website (optional)')), h('input', { id: `${formId}-url`, type: 'url', name: 'authorUrl' })), h('p', {}, h('label', { for: `${formId}-body` }, text(parentId === undefined ? 'Comment' : 'Reply')), h('textarea', { id: `${formId}-body`, name: 'body', required: true, rows: 5 })), h('p', {}, h('button', { type: 'submit' }, text(parentId === undefined ? 'Post comment' : 'Post reply'))));
93
+ })), h('p', {}, h('label', { for: `${formId}-email` }, text(t('comments.email'))), h('input', { id: `${formId}-email`, type: 'email', name: 'email', required: true })), h('p', {}, h('label', { for: `${formId}-url` }, text(t('comments.website'))), h('input', { id: `${formId}-url`, type: 'url', name: 'authorUrl' })), h('p', {}, h('label', { for: `${formId}-body` }, text(t(parentId === undefined ? 'comments.body' : 'comments.replyBody'))), h('textarea', { id: `${formId}-body`, name: 'body', required: true, rows: 5 })), h('p', {}, h('button', { type: 'submit' }, text(t(parentId === undefined ? 'comments.submit' : 'comments.submitReply')))));
52
94
  }
53
95
  /**
54
96
  * The whole section: heading, thread, and — only when `open` — the form.
@@ -57,12 +99,23 @@ function renderForm(options, parentId) {
57
99
  * property of the route the same way `/search`'s results are.
58
100
  */
59
101
  export function renderCommentsSection(options) {
102
+ const locale = options.locale ?? 'en';
103
+ const t = options.t ?? createThemeTranslator(locale);
60
104
  const tree = buildTree(options.comments);
61
105
  const headingAttrs = { id: 'cg-comments-heading' };
62
- return h('section', { class: 'cg-comments', 'aria-labelledby': 'cg-comments-heading' }, h('h2', headingAttrs, text(`Comments (${options.comments.length})`)), tree.length === 0
63
- ? h('p', { class: 'cg-comments__empty' }, text('No comments yet.'))
64
- : h('ol', { class: 'cg-comments__list' }, tree.map(renderComment)), options.open
65
- ? renderForm(options)
66
- : h('p', { class: 'cg-comments__closed' }, text('Comments are closed on this page.')));
106
+ const notice = options.notice;
107
+ return h('section',
108
+ // `id` is where the comments router sends a visitor back after sending,
109
+ // so the notice below is on screen rather than a page's length away.
110
+ { id: 'cg-comments', class: 'cg-comments', 'aria-labelledby': 'cg-comments-heading' }, h('h2', headingAttrs, text(t('comments.heading', { count: options.comments.length }))), notice === undefined
111
+ ? null
112
+ : h('p', {
113
+ class: `cg-comments__notice cg-comments__notice--${notice}`,
114
+ role: notice === 'approved' || notice === 'pending' ? 'status' : 'alert',
115
+ }, text(t(`comments.notice.${notice}`))), tree.length === 0
116
+ ? h('p', { class: 'cg-comments__empty' }, text(t('comments.empty')))
117
+ : h('ol', { class: 'cg-comments__list' }, tree.map((node) => renderComment(node, locale))), options.open
118
+ ? renderForm(options, t)
119
+ : h('p', { class: 'cg-comments__closed' }, text(t('comments.closed'))));
67
120
  }
68
121
  //# sourceMappingURL=comments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"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"}
@@ -105,5 +105,22 @@ export interface RenderContext {
105
105
  * promised since L3. `providedBlockNode` is the one line that honours it.
106
106
  */
107
107
  readonly blockNodes?: Readonly<Record<string, HtmlElement>>;
108
+ /**
109
+ * What an embed block's address says about itself (contract D `theme@1.9`,
110
+ * additive): the title and author its provider gave, and a thumbnail the
111
+ * site serves from its own storage — never the provider's image, so showing
112
+ * it before consent sends the visitor nowhere. `undefined` when the host has
113
+ * no preview for the address, or does not offer this at all: the block then
114
+ * renders exactly as it did before `1.9`.
115
+ *
116
+ * Pure and synchronous, like `image`: the host loaded the page's previews
117
+ * before rendering started.
118
+ */
119
+ embedPreview?(url: string): EmbedPreview | undefined;
120
+ }
121
+ export interface EmbedPreview {
122
+ readonly title?: string;
123
+ readonly authorName?: string;
124
+ readonly thumbnail?: ImageSource;
108
125
  }
109
126
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAEhE,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;IACjE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAA;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IACnE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAA;AAE5F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;QACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;KAC/B,CAAA;IACD,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAEjB,0EAA0E;IAC1E,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAA;IAE1E,4FAA4F;IAC5F,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAAA;IAEjE,0EAA0E;IAC1E,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAA;IAErC,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAE/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IAE3D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAA;CACjC"}
@@ -0,0 +1,14 @@
1
+ import type { RenderContext } from './contract.js';
2
+ import { type HtmlElement } from './html.js';
3
+ /**
4
+ * The accessible name of the player: « YouTube : Inspection d'un poste » when
5
+ * the title is known, the generic « Contenu YouTube intégré » otherwise.
6
+ */
7
+ export declare function embedFrameTitle(ctx: RenderContext, provider: string, url: string): string;
8
+ /**
9
+ * The thumbnail, title and author of what the card stands for, or `null` when
10
+ * the host has no preview. Safe before consent: the thumbnail is served by the
11
+ * site, never fetched from the provider.
12
+ */
13
+ export declare function renderEmbedPreview(ctx: RenderContext, url: string, className?: string): HtmlElement | null;
14
+ //# sourceMappingURL=embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,KAAK,WAAW,EAAK,MAAM,WAAW,CAAA;AAa/C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,SAAa,GACrB,WAAW,GAAG,IAAI,CAuBpB"}
package/dist/embed.js ADDED
@@ -0,0 +1,40 @@
1
+ import { h } from './html.js';
2
+ import { renderImageSource } from './media.js';
3
+ /**
4
+ * The shared parts of an embed block that a preview enriches (contract D
5
+ * `theme@1.9`, L38). A theme keeps its own frame and card layout, and calls
6
+ * these for the two things every theme should say the same way.
7
+ */
8
+ function previewOf(ctx, url) {
9
+ return ctx.embedPreview?.(url);
10
+ }
11
+ /**
12
+ * The accessible name of the player: « YouTube : Inspection d'un poste » when
13
+ * the title is known, the generic « Contenu YouTube intégré » otherwise.
14
+ */
15
+ export function embedFrameTitle(ctx, provider, url) {
16
+ const title = previewOf(ctx, url)?.title;
17
+ return title === undefined
18
+ ? ctx.t('embed.title', { provider })
19
+ : ctx.t('embed.titled', { provider, title });
20
+ }
21
+ /**
22
+ * The thumbnail, title and author of what the card stands for, or `null` when
23
+ * the host has no preview. Safe before consent: the thumbnail is served by the
24
+ * site, never fetched from the provider.
25
+ */
26
+ export function renderEmbedPreview(ctx, url, className = 'cg-embed') {
27
+ const preview = previewOf(ctx, url);
28
+ if (preview === undefined || (preview.title === undefined && preview.thumbnail === undefined)) {
29
+ return null;
30
+ }
31
+ return h('div', { class: `${className}__preview` }, preview.thumbnail === undefined
32
+ ? null
33
+ : renderImageSource(preview.thumbnail, {
34
+ className: `${className}__thumbnail`,
35
+ sizes: '(min-width: 48rem) 40rem, 100vw',
36
+ }), preview.title === undefined ? null : h('p', { class: `${className}__title` }, preview.title), preview.authorName === undefined
37
+ ? null
38
+ : h('p', { class: `${className}__author` }, ctx.t('embed.by', { author: preview.authorName })));
39
+ }
40
+ //# sourceMappingURL=embed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,CAAC,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;GAIG;AAEH,SAAS,SAAS,CAAC,GAAkB,EAAE,GAAW;IAChD,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,QAAgB,EAAE,GAAW;IAC/E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAA;IACxC,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC;QACpC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAkB,EAClB,GAAW,EACX,SAAS,GAAG,UAAU;IAEtB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;QAC9F,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,GAAG,SAAS,WAAW,EAAE,EAClC,OAAO,CAAC,SAAS,KAAK,SAAS;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE;YACnC,SAAS,EAAE,GAAG,SAAS,aAAa;YACpC,KAAK,EAAE,iCAAiC;SACzC,CAAC,EACN,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,SAAS,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAC5F,OAAO,CAAC,UAAU,KAAK,SAAS;QAC9B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,GAAG,EACH,EAAE,KAAK,EAAE,GAAG,SAAS,UAAU,EAAE,EACjC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAClD,CACN,CAAA;AACH,CAAC"}
@@ -12,7 +12,15 @@ import { type PageContent } from './page.js';
12
12
  */
13
13
  export interface PageEntryAuthor {
14
14
  readonly name: string;
15
+ /**
16
+ * `theme@1.8`: the author's archive page (`/archive/author/{slug}`), when
17
+ * they have one — a public name and at least one published dated entry.
18
+ * Absent otherwise: a name with no page behind it is not a link.
19
+ */
20
+ readonly href?: string;
15
21
  }
22
+ /** The byline as a link when the author has a page, as text otherwise — one rule for every theme. */
23
+ export declare function authorNode(author: PageEntryAuthor, attributes?: Readonly<Record<string, string>>): HtmlElement;
16
24
  /**
17
25
  * One taxonomy classification, already resolved to a label and a route — the
18
26
  * same shape `TermArchiveLink` uses, so a theme's eyebrow and its archive
@@ -1 +1 @@
1
- {"version":3,"file":"entry-header.d.ts","sourceRoot":"","sources":["../src/entry-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAK,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,WAAW,CAAA;AAE/D;;;;;;;;GAQG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACzC,mHAAmH;IACnH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAA;CAChE;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,CAAA;AAgD/E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,WAAW,GAAG,IAAI,CAyBpB"}
1
+ {"version":3,"file":"entry-header.d.ts","sourceRoot":"","sources":["../src/entry-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAK,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,WAAW,CAAA;AAE/D;;;;;;;;GAQG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,qGAAqG;AACrG,wBAAgB,UAAU,CACxB,MAAM,EAAE,eAAe,EACvB,UAAU,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAChD,WAAW,CAIb;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACzC,mHAAmH;IACnH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAA;CAChE;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,CAAA;AAgD/E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,WAAW,GAAG,IAAI,CAyBpB"}
@@ -1,6 +1,12 @@
1
1
  import { h } from './html.js';
2
2
  import { renderImageSource } from './media.js';
3
3
  import { pageHasOwnHeading } from './page.js';
4
+ /** The byline as a link when the author has a page, as text otherwise — one rule for every theme. */
5
+ export function authorNode(author, attributes = {}) {
6
+ return author.href === undefined
7
+ ? h('span', attributes, author.name)
8
+ : h('a', { ...attributes, href: author.href, rel: 'author' }, author.name);
9
+ }
4
10
  /** `Intl.DateTimeFormat`'s `dateStyle: 'long'`, in the page's own locale — the same formatting every other themed date on this page uses. */
5
11
  function formatDate(iso, locale) {
6
12
  try {
@@ -24,7 +30,7 @@ function renderMeta(entry, ctx) {
24
30
  parts.push(h('time', { datetime: entry.publishedAt }, formatDate(entry.publishedAt, ctx.locale)));
25
31
  }
26
32
  if (entry.author !== undefined) {
27
- parts.push(h('span', { class: 'cg-entry-header__author' }, entry.author.name));
33
+ parts.push(authorNode(entry.author, { class: 'cg-entry-header__author' }));
28
34
  }
29
35
  if (entry.readingMinutes !== undefined) {
30
36
  parts.push(h('span', { class: 'cg-entry-header__reading-time' }, ctx.t('entry.readingTime', { minutes: entry.readingMinutes })));
@@ -1 +1 @@
1
- {"version":3,"file":"entry-header.js","sourceRoot":"","sources":["../src/entry-header.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entry-header.js","sourceRoot":"","sources":["../src/entry-header.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './archive.js';
14
14
  export * from './chrome.js';
15
15
  export * from './comments.js';
16
16
  export * from './contract.js';
17
+ export * from './embed.js';
17
18
  export * from './entry.js';
18
19
  export * from './entry-header.js';
19
20
  export * from './heading.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ export * from './archive.js';
14
14
  export * from './chrome.js';
15
15
  export * from './comments.js';
16
16
  export * from './contract.js';
17
+ export * from './embed.js';
17
18
  export * from './entry.js';
18
19
  export * from './entry-header.js';
19
20
  export * from './heading.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA;AAErC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAkC3D,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAuCrE,CAAA;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAG1D;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,GAC5D,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAM,GACzD,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAmB7E"}
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA;AAErC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAkC3D,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAiFrE,CAAA;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAG1D;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,GAC5D,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAM,GACzD,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,MAAM,CAmB7E"}
package/dist/strings.js CHANGED
@@ -50,10 +50,29 @@ export const THEME_STRINGS = {
50
50
  'collection.empty': 'Nothing to show yet.',
51
51
  'collection.carousel': 'Scrollable list',
52
52
  'collection.featured': 'Featured',
53
+ 'comments.heading': 'Comments ({{count}})',
54
+ 'comments.empty': 'No comments yet.',
55
+ 'comments.closed': 'Comments are closed on this page.',
56
+ 'comments.name': 'Name',
57
+ 'comments.email': 'Email (not published)',
58
+ 'comments.website': 'Website (optional)',
59
+ 'comments.body': 'Comment',
60
+ 'comments.replyBody': 'Reply',
61
+ 'comments.submit': 'Post comment',
62
+ 'comments.submitReply': 'Post reply',
63
+ 'comments.notice.approved': 'Thank you, your comment is published.',
64
+ 'comments.notice.pending': 'Thank you, your comment will appear once it has been reviewed.',
65
+ 'comments.notice.invalid': 'Your comment could not be sent: check your name, email address and message.',
66
+ 'comments.notice.rateLimited': 'Too many comments in a short time: please try again in a few minutes.',
67
+ 'comments.notice.closed': 'Comments are closed on this page.',
68
+ 'comments.notice.error': 'Your comment could not be sent. Please try again in a moment.',
69
+ 'form.honeypot': 'Leave this field empty',
53
70
  'embed.consentRequired': 'This {{provider}} embed loads content from a third party.',
54
71
  'embed.open': 'Open on {{provider}}',
55
72
  'embed.openOther': 'Open the original',
56
73
  'embed.title': '{{provider}} embed',
74
+ 'embed.titled': '{{provider}}: {{title}}',
75
+ 'embed.by': 'by {{author}}',
57
76
  'embed.unsupported': 'This {{provider}} content cannot be embedded here.',
58
77
  'embed.label': 'Embedded content',
59
78
  'entry.untitled': 'Untitled',
@@ -69,10 +88,29 @@ export const THEME_STRINGS = {
69
88
  'collection.empty': 'Rien à afficher pour le moment.',
70
89
  'collection.carousel': 'Liste défilante',
71
90
  'collection.featured': 'À la une',
91
+ 'comments.heading': 'Commentaires ({{count}})',
92
+ 'comments.empty': 'Aucun commentaire pour le moment.',
93
+ 'comments.closed': 'Les commentaires sont fermés sur cette page.',
94
+ 'comments.name': 'Nom',
95
+ 'comments.email': 'Adresse e-mail (non publiée)',
96
+ 'comments.website': 'Site web (facultatif)',
97
+ 'comments.body': 'Commentaire',
98
+ 'comments.replyBody': 'Réponse',
99
+ 'comments.submit': 'Publier le commentaire',
100
+ 'comments.submitReply': 'Publier la réponse',
101
+ 'comments.notice.approved': 'Merci, votre commentaire est publié.',
102
+ 'comments.notice.pending': 'Merci, votre commentaire sera publié après relecture.',
103
+ 'comments.notice.invalid': 'Votre commentaire n’a pas pu être envoyé : vérifiez le nom, l’adresse e-mail et le message.',
104
+ 'comments.notice.rateLimited': 'Trop de commentaires envoyés à la suite : réessayez dans quelques minutes.',
105
+ 'comments.notice.closed': 'Les commentaires sont fermés sur cette page.',
106
+ 'comments.notice.error': 'Votre commentaire n’a pas pu être envoyé. Réessayez dans un instant.',
107
+ 'form.honeypot': 'Laissez ce champ vide',
72
108
  'embed.consentRequired': 'Ce contenu {{provider}} est chargé depuis un service tiers.',
73
109
  'embed.open': 'Ouvrir sur {{provider}}',
74
110
  'embed.openOther': 'Ouvrir l’original',
75
111
  'embed.title': 'Contenu {{provider}} intégré',
112
+ 'embed.titled': '{{provider}} : {{title}}',
113
+ 'embed.by': 'par {{author}}',
76
114
  'embed.unsupported': 'Ce contenu {{provider}} ne peut pas être intégré ici.',
77
115
  'embed.label': 'Contenu intégré',
78
116
  'entry.untitled': 'Sans titre',
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,4GAA4G;AAC5G,MAAM,WAAW,GAAG,gCAAgC,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,eAAe,GAAoE;IACvF,EAAE,EAAE;QACF,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,YAAY;QACxB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,UAAU;KAClB;IACD,EAAE,EAAE;QACF,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,YAAY;QACxB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAgD;IACxE,EAAE,EAAE;QACF,oBAAoB,EAAE,iBAAiB;QACvC,kBAAkB,EAAE,sBAAsB;QAC1C,qBAAqB,EAAE,iBAAiB;QACxC,qBAAqB,EAAE,UAAU;QACjC,kBAAkB,EAAE,sBAAsB;QAC1C,gBAAgB,EAAE,kBAAkB;QACpC,iBAAiB,EAAE,mCAAmC;QACtD,eAAe,EAAE,MAAM;QACvB,gBAAgB,EAAE,uBAAuB;QACzC,kBAAkB,EAAE,oBAAoB;QACxC,eAAe,EAAE,SAAS;QAC1B,oBAAoB,EAAE,OAAO;QAC7B,iBAAiB,EAAE,cAAc;QACjC,sBAAsB,EAAE,YAAY;QACpC,0BAA0B,EAAE,uCAAuC;QACnE,yBAAyB,EAAE,gEAAgE;QAC3F,yBAAyB,EACvB,6EAA6E;QAC/E,6BAA6B,EAC3B,uEAAuE;QACzE,wBAAwB,EAAE,mCAAmC;QAC7D,uBAAuB,EAAE,+DAA+D;QACxF,eAAe,EAAE,wBAAwB;QACzC,uBAAuB,EAAE,2DAA2D;QACpF,YAAY,EAAE,sBAAsB;QACpC,iBAAiB,EAAE,mBAAmB;QACtC,aAAa,EAAE,oBAAoB;QACnC,cAAc,EAAE,yBAAyB;QACzC,UAAU,EAAE,eAAe;QAC3B,mBAAmB,EAAE,oDAAoD;QACzE,aAAa,EAAE,kBAAkB;QACjC,gBAAgB,EAAE,UAAU;QAC5B,mBAAmB,EAAE,sBAAsB;QAC3C,kBAAkB,EAAE,gBAAgB;QACpC,cAAc,EAAE,SAAS;QACzB,4BAA4B,EAAE,uBAAuB;QACrD,2BAA2B,EAAE,sBAAsB;QACnD,6BAA6B,EAAE,kBAAkB;KAClD;IACD,EAAE,EAAE;QACF,oBAAoB,EAAE,kBAAkB;QACxC,kBAAkB,EAAE,iCAAiC;QACrD,qBAAqB,EAAE,iBAAiB;QACxC,qBAAqB,EAAE,UAAU;QACjC,kBAAkB,EAAE,0BAA0B;QAC9C,gBAAgB,EAAE,mCAAmC;QACrD,iBAAiB,EAAE,8CAA8C;QACjE,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,8BAA8B;QAChD,kBAAkB,EAAE,uBAAuB;QAC3C,eAAe,EAAE,aAAa;QAC9B,oBAAoB,EAAE,SAAS;QAC/B,iBAAiB,EAAE,wBAAwB;QAC3C,sBAAsB,EAAE,oBAAoB;QAC5C,0BAA0B,EAAE,sCAAsC;QAClE,yBAAyB,EAAE,uDAAuD;QAClF,yBAAyB,EACvB,6FAA6F;QAC/F,6BAA6B,EAC3B,4EAA4E;QAC9E,wBAAwB,EAAE,8CAA8C;QACxE,uBAAuB,EAAE,sEAAsE;QAC/F,eAAe,EAAE,uBAAuB;QACxC,uBAAuB,EAAE,6DAA6D;QACtF,YAAY,EAAE,yBAAyB;QACvC,iBAAiB,EAAE,mBAAmB;QACtC,aAAa,EAAE,8BAA8B;QAC7C,cAAc,EAAE,0BAA0B;QAC1C,UAAU,EAAE,gBAAgB;QAC5B,mBAAmB,EAAE,uDAAuD;QAC5E,aAAa,EAAE,iBAAiB;QAChC,gBAAgB,EAAE,YAAY;QAC9B,mBAAmB,EAAE,4BAA4B;QACjD,kBAAkB,EAAE,oBAAoB;QACxC,cAAc,EAAE,SAAS;QACzB,4BAA4B,EAAE,uBAAuB;QACrD,2BAA2B,EAAE,wBAAwB;QACrD,6BAA6B,EAAE,8BAA8B;KAC9D;CACF,CAAA;AAED,gEAAgE;AAChE,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,MAA6D;IAE7D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IACzC,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,SAAS,GAA+C,EAAE;IAE1D,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAC1C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACrB,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAA;QACjC,MAAM,cAAc,GAClB,OAAO,QAAQ,KAAK,QAAQ,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS;YAClF,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAW,EAAE;YAC3E,CAAC,CAAC,MAAM,CAAA;QACZ,MAAM,WAAW,GAAG,GAAG,KAAK,YAAY,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAA;QAC1F,MAAM,QAAQ,GACZ,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC;YACrC,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC;YACvC,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;YAC3B,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC;YAC7B,GAAG,CAAA;QACL,OAAO,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAC9C,CAAC,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogenta/theme-kit",
3
- "version": "0.5.4",
3
+ "version": "0.7.0",
4
4
  "description": "The shared contract D primitives every Cogenta theme package implements against: RenderContext, the HTML tree, rich text, comments and the twelve-block page shape.",
5
5
  "license": "MPL-2.0",
6
6
  "type": "module",
@@ -27,8 +27,8 @@
27
27
  "directory": "packages/theme-kit"
28
28
  },
29
29
  "dependencies": {
30
- "@cogenta/render": "0.3.6",
31
- "@cogenta/blocks": "1.1.4"
30
+ "@cogenta/blocks": "1.1.5",
31
+ "@cogenta/render": "0.4.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "typescript": "^7.0.2",