@certrev/cert-block 0.5.5 → 1.0.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/CHANGELOG.md +164 -26
- package/LICENSE +21 -0
- package/README.md +415 -54
- package/dist/builder/cert-chrome-data.d.ts +26 -8
- package/dist/builder/cert-chrome-data.d.ts.map +1 -1
- package/dist/builder/cert-chrome-data.js +5 -5
- package/dist/builder/cert-chrome-data.js.map +1 -1
- package/dist/builder/cert-review-card.d.ts +35 -5
- package/dist/builder/cert-review-card.d.ts.map +1 -1
- package/dist/builder/cert-review-card.js +115 -34
- package/dist/builder/cert-review-card.js.map +1 -1
- package/dist/builder/index.d.ts +33 -16
- package/dist/builder/index.d.ts.map +1 -1
- package/dist/builder/index.js +33 -16
- package/dist/builder/index.js.map +1 -1
- package/dist/components/CertBadge.d.ts +2 -2
- package/dist/components/CertBadge.d.ts.map +1 -1
- package/dist/components/CertBadge.js +11 -5
- package/dist/components/CertBadge.js.map +1 -1
- package/dist/components/CertJsonLd.d.ts.map +1 -1
- package/dist/components/CertJsonLd.js.map +1 -1
- package/dist/components/CertRevBacklink.d.ts.map +1 -1
- package/dist/components/CertRevBacklink.js +3 -2
- package/dist/components/CertRevBacklink.js.map +1 -1
- package/dist/components/CertReview.d.ts +1 -1
- package/dist/components/ExpertBio.d.ts.map +1 -1
- package/dist/components/ExpertBio.js +12 -4
- package/dist/components/ExpertBio.js.map +1 -1
- package/dist/components/escape.d.ts +28 -1
- package/dist/components/escape.d.ts.map +1 -1
- package/dist/components/escape.js +37 -8
- package/dist/components/escape.js.map +1 -1
- package/dist/components/format.d.ts +51 -2
- package/dist/components/format.d.ts.map +1 -1
- package/dist/components/format.js +103 -6
- package/dist/components/format.js.map +1 -1
- package/dist/components/preview-block.d.ts +1 -1
- package/dist/components/preview-block.js +3 -3
- package/dist/components/preview-block.js.map +1 -1
- package/dist/components/rel.d.ts +24 -0
- package/dist/components/rel.d.ts.map +1 -0
- package/dist/components/rel.js +24 -0
- package/dist/components/rel.js.map +1 -0
- package/dist/components/render-cert-block.d.ts +50 -22
- package/dist/components/render-cert-block.d.ts.map +1 -1
- package/dist/components/render-cert-block.js +146 -80
- package/dist/components/render-cert-block.js.map +1 -1
- package/dist/components/render-def.d.ts +13 -14
- package/dist/components/render-def.d.ts.map +1 -1
- package/dist/components/render-def.js +14 -15
- package/dist/components/render-def.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/jsonld/project.d.ts +46 -13
- package/dist/jsonld/project.d.ts.map +1 -1
- package/dist/jsonld/project.js +139 -56
- package/dist/jsonld/project.js.map +1 -1
- package/dist/modal/avatar-resize.d.ts +10 -10
- package/dist/modal/avatar-resize.js +14 -14
- package/dist/modal/avatar-resize.js.map +1 -1
- package/dist/modal/cert-modal-view.d.ts +27 -7
- package/dist/modal/cert-modal-view.d.ts.map +1 -1
- package/dist/modal/cert-modal-view.js +49 -25
- package/dist/modal/cert-modal-view.js.map +1 -1
- package/dist/modal/certrev-cert-modal.d.ts +5 -5
- package/dist/modal/certrev-cert-modal.js +9 -9
- package/dist/modal/certrev-cert-modal.js.map +1 -1
- package/dist/modal/certrev-cert-modal.styles.d.ts +6 -6
- package/dist/modal/certrev-cert-modal.styles.d.ts.map +1 -1
- package/dist/modal/certrev-cert-modal.styles.js +8 -8
- package/dist/modal/certrev-cert-modal.styles.js.map +1 -1
- package/dist/modal/certrev-cert.entry.d.ts +8 -6
- package/dist/modal/certrev-cert.entry.d.ts.map +1 -1
- package/dist/modal/certrev-cert.entry.js +9 -7
- package/dist/modal/certrev-cert.entry.js.map +1 -1
- package/dist/modal/certrev-cert.js +6 -6
- package/dist/modal/display-strings.d.ts +25 -5
- package/dist/modal/display-strings.d.ts.map +1 -1
- package/dist/modal/display-strings.js +27 -5
- package/dist/modal/display-strings.js.map +1 -1
- package/dist/modal/escape.d.ts +26 -3
- package/dist/modal/escape.d.ts.map +1 -1
- package/dist/modal/escape.js +32 -3
- package/dist/modal/escape.js.map +1 -1
- package/dist/modal/font-face.d.ts.map +1 -1
- package/dist/modal/font-face.js +8 -11
- package/dist/modal/font-face.js.map +1 -1
- package/dist/modal/ftc-disclosure.d.ts +2 -2
- package/dist/modal/ftc-disclosure.js +2 -2
- package/dist/modal/ftc-guard.d.ts +44 -9
- package/dist/modal/ftc-guard.d.ts.map +1 -1
- package/dist/modal/ftc-guard.js +50 -17
- package/dist/modal/ftc-guard.js.map +1 -1
- package/dist/modal/index.d.ts +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/modal/interactions.d.ts +2 -2
- package/dist/modal/interactions.js +2 -2
- package/dist/modal/logo-paths.js +2 -2
- package/dist/modal/logo-paths.js.map +1 -1
- package/dist/modal/placement.d.ts +4 -3
- package/dist/modal/placement.d.ts.map +1 -1
- package/dist/modal/placement.js +7 -6
- package/dist/modal/placement.js.map +1 -1
- package/dist/modal/revalidate.d.ts +2 -3
- package/dist/modal/revalidate.d.ts.map +1 -1
- package/dist/modal/revalidate.js +2 -3
- package/dist/modal/revalidate.js.map +1 -1
- package/dist/modal/verify-client.d.ts +2 -2
- package/dist/modal/verify-client.js +2 -2
- package/dist/verify/cache.d.ts +21 -6
- package/dist/verify/cache.d.ts.map +1 -1
- package/dist/verify/cache.js +29 -8
- package/dist/verify/cache.js.map +1 -1
- package/dist/verify/fetch-with-deadline.d.ts +35 -0
- package/dist/verify/fetch-with-deadline.d.ts.map +1 -0
- package/dist/verify/fetch-with-deadline.js +55 -0
- package/dist/verify/fetch-with-deadline.js.map +1 -0
- package/dist/verify/get-verified-envelope.d.ts +23 -9
- package/dist/verify/get-verified-envelope.d.ts.map +1 -1
- package/dist/verify/get-verified-envelope.js +89 -40
- package/dist/verify/get-verified-envelope.js.map +1 -1
- package/dist/verify/resolve-kid.d.ts +3 -0
- package/dist/verify/resolve-kid.d.ts.map +1 -1
- package/dist/verify/resolve-kid.js +17 -8
- package/dist/verify/resolve-kid.js.map +1 -1
- package/dist/webcomponent/certrev-badge.d.ts.map +1 -1
- package/dist/webcomponent/certrev-badge.js +24 -2
- package/dist/webcomponent/certrev-badge.js.map +1 -1
- package/dist/webcomponent/render-badge-html.d.ts +1 -1
- package/dist/webcomponent/render-badge-html.d.ts.map +1 -1
- package/dist/webcomponent/render-badge-html.js +36 -17
- package/dist/webcomponent/render-badge-html.js.map +1 -1
- package/package.json +5 -2
- package/src/builder/cert-chrome-data.ts +26 -8
- package/src/builder/cert-review-card.tsx +147 -38
- package/src/builder/index.tsx +34 -17
- package/src/components/CertBadge.tsx +14 -9
- package/src/components/CertJsonLd.tsx +1 -1
- package/src/components/CertRevBacklink.tsx +10 -3
- package/src/components/CertReview.tsx +1 -1
- package/src/components/ExpertBio.tsx +12 -7
- package/src/components/escape.ts +37 -7
- package/src/components/format.ts +102 -6
- package/src/components/preview-block.ts +3 -3
- package/src/components/rel.ts +23 -0
- package/src/components/render-cert-block.ts +192 -109
- package/src/components/render-def.ts +14 -15
- package/src/index.ts +4 -2
- package/src/jsonld/project.ts +155 -59
- package/src/modal/avatar-resize.ts +14 -14
- package/src/modal/cert-modal-view.ts +52 -27
- package/src/modal/certrev-cert-modal.styles.ts +8 -8
- package/src/modal/certrev-cert-modal.ts +9 -9
- package/src/modal/certrev-cert.entry.ts +9 -7
- package/src/modal/display-strings.ts +26 -5
- package/src/modal/escape.ts +32 -4
- package/src/modal/font-face.ts +8 -11
- package/src/modal/ftc-disclosure.ts +2 -2
- package/src/modal/ftc-guard.ts +73 -18
- package/src/modal/index.ts +1 -1
- package/src/modal/interactions.ts +2 -2
- package/src/modal/logo-paths.ts +2 -2
- package/src/modal/placement.ts +7 -6
- package/src/modal/revalidate.ts +2 -3
- package/src/modal/verify-client.ts +2 -2
- package/src/verify/cache.ts +34 -8
- package/src/verify/fetch-with-deadline.ts +60 -0
- package/src/verify/get-verified-envelope.ts +131 -48
- package/src/verify/resolve-kid.ts +22 -6
- package/src/webcomponent/certrev-badge.ts +24 -2
- package/src/webcomponent/render-badge-html.ts +66 -19
- package/src/__tests__/__snapshots__/render-cert-block.test.ts.snap +0 -17
- package/src/__tests__/components.test.tsx +0 -206
- package/src/__tests__/preview-block.test.ts +0 -84
- package/src/__tests__/project.test.ts +0 -128
- package/src/__tests__/readme-version.test.ts +0 -51
- package/src/__tests__/render-cert-block.test.ts +0 -657
- package/src/__tests__/render-def.test.tsx +0 -295
- package/src/__tests__/verify.test.ts +0 -239
- package/src/__tests__/webcomponent.test.tsx +0 -116
- package/src/builder/__tests__/builder.test.tsx +0 -158
- package/src/modal/cert-modal-view.test.ts +0 -175
- package/src/modal/certrev-cert-modal.test.ts +0 -125
- package/src/modal/ftc-guard.test.ts +0 -153
- package/src/modal/interactions.test.ts +0 -250
- package/src/modal/placement.test.ts +0 -398
- package/src/modal/revalidate.test.ts +0 -111
- package/src/modal/verify-client.test.ts +0 -164
|
@@ -4,10 +4,20 @@
|
|
|
4
4
|
* ─────────────────────────────────────────────────────────────────────────────
|
|
5
5
|
*
|
|
6
6
|
* Paints the owner-approved cert render (decision 2026-07-17) in one of three
|
|
7
|
-
* placement modes — `
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* enhancement, wired by the shared
|
|
7
|
+
* placement modes — `sidebar` (the DEFAULT), `banner`, `floating` — plus the engine's
|
|
8
|
+
* free-composition `custom` face, from RESOLVED theme tokens + the cert facts. It
|
|
9
|
+
* returns a self-contained HTML string that renders with ZERO JavaScript (the CertREV
|
|
10
|
+
* modal + the reviewer-bio accordion are progressive enhancement, wired by the shared
|
|
11
|
+
* embed script via the `data-certrev-*` hooks).
|
|
12
|
+
*
|
|
13
|
+
* THE DEFAULT PLACEMENT IS `sidebar`, AND IT IS NAMED IN EXACTLY ONE PLACE — the
|
|
14
|
+
* `case 'sidebar':` that falls into `default:` at the bottom of this file. Nothing
|
|
15
|
+
* else in the package (this renderer, the Builder card, the preview) may name a
|
|
16
|
+
* placement fallback of its own: the switch previously had no `default:` at all, so
|
|
17
|
+
* an untyped `mode` off CMS JSON returned `undefined` from a `: string` function and
|
|
18
|
+
* landed in `dangerouslySetInnerHTML` as an empty div — a 200 with the card silently
|
|
19
|
+
* gone. Declared default and runtime fallback are now physically the same line and
|
|
20
|
+
* cannot drift.
|
|
11
21
|
*
|
|
12
22
|
* WHY A STRING (not a React component): the block is emitted into storefront HTML
|
|
13
23
|
* across every render surface (Shopify Liquid, WordPress PHP, the JS engine, and
|
|
@@ -54,7 +64,8 @@
|
|
|
54
64
|
* grandfathers the 0.3.0 full-facts render byte-for-byte.
|
|
55
65
|
*/
|
|
56
66
|
import { escapeAttribute, escapeHtml, safeHttpUrl } from './escape.js';
|
|
57
|
-
import { formatDate } from './format.js';
|
|
67
|
+
import { dedupeCredential, formatDate } from './format.js';
|
|
68
|
+
import { CERTREV_LINK_REL } from './rel.js';
|
|
58
69
|
import { CERT_SCOPE_LINE, CERT_STRINGS_VERSION, COMPENSATED_EXPERT_CUE, CREDENTIAL_VERIFIED_ATTRIBUTION, RENDER_BLOCK_FONT_STACKS, resolveBlockTheme, } from './render-def.js';
|
|
59
70
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
60
71
|
// The CertREV logo — the fixed 4-chevron mark (owner decision 2026-07-17: the logo
|
|
@@ -107,15 +118,6 @@ function firstNameOf(name) {
|
|
|
107
118
|
const clean = stripHonorific(name);
|
|
108
119
|
return clean.split(/\s+/)[0] || clean;
|
|
109
120
|
}
|
|
110
|
-
/**
|
|
111
|
-
* A LOCKED display string: use the caller's value ONLY when it is a non-blank
|
|
112
|
-
* string, else the byte-verbatim constant. The three compliance strings
|
|
113
|
-
* (compensation cue, scope line, credential attribution) are undroppable — an
|
|
114
|
-
* omitted OR empty/whitespace override must never blank the disclosure.
|
|
115
|
-
*/
|
|
116
|
-
function locked(supplied, constant) {
|
|
117
|
-
return supplied?.trim() ? supplied : constant;
|
|
118
|
-
}
|
|
119
121
|
/**
|
|
120
122
|
* Absent face ⇒ constant-true (the grandfather path: every conditional collapses to
|
|
121
123
|
* today's markup, guaranteeing byte-identity with 0.3.0). Present ⇒ Set membership.
|
|
@@ -126,9 +128,23 @@ function placedTester(face) {
|
|
|
126
128
|
const set = new Set(face.placedFields);
|
|
127
129
|
return (id) => set.has(id);
|
|
128
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Is there actually a bio to expand? The banner's accordion affordance — role=button,
|
|
133
|
+
* tabindex, aria-expanded, the caret, the pointer cursor — is gated on THIS, not on the
|
|
134
|
+
* reviewer row being non-empty. Gating on the row announced "Read more about Dr. X,
|
|
135
|
+
* button, collapsed" over nothing whenever the reviewer had no bio (WCAG 2.1 4.1.2 name/
|
|
136
|
+
* role/value, and 2.1.1 keyboard: a focus stop that does nothing).
|
|
137
|
+
*/
|
|
138
|
+
function hasExpandableBio(facts, placed) {
|
|
139
|
+
return placed('bio') && !!facts.bio;
|
|
140
|
+
}
|
|
141
|
+
/** Whether the material-connection cue renders: placed by the engine AND not the pro-bono `null`. */
|
|
142
|
+
function showsCompensationCue(facts, placed) {
|
|
143
|
+
return placed('compensationCue') && facts.compensationCue !== null;
|
|
144
|
+
}
|
|
129
145
|
/**
|
|
130
146
|
* The memo/custom action-link stamp style — the JetBrains-mono uppercase lockup that
|
|
131
|
-
* matches the badge footer
|
|
147
|
+
* matches the badge footer; navy so it still reads as an action.
|
|
132
148
|
*/
|
|
133
149
|
const STAMP_LINK_STYLE = 'font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);text-decoration:none;cursor:pointer;';
|
|
134
150
|
/** A round avatar tile with the given initials. */
|
|
@@ -137,20 +153,27 @@ function avatar(text, size, fontSize) {
|
|
|
137
153
|
`display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:${fontSize}px;flex-shrink:0;">` +
|
|
138
154
|
`${escapeHtml(text)}</div>`);
|
|
139
155
|
}
|
|
140
|
-
/**
|
|
156
|
+
/**
|
|
157
|
+
* "Jane Doe, MD" (or just the name when there is no credential) — escaped, and never the
|
|
158
|
+
* same credential twice. A display name that arrives already carrying its own post-nominal
|
|
159
|
+
* ("Dr. Erik Schraga, MD") used to have the credential appended regardless, which put
|
|
160
|
+
* "Dr. Erik Schraga, MD, MD, EM" on a live customer page — see `dedupeCredential` in
|
|
161
|
+
* format.ts for the rule, and for why the stored data is still the real repair.
|
|
162
|
+
*/
|
|
141
163
|
function nameWithCredential(name, credential) {
|
|
142
164
|
const n = escapeHtml(name);
|
|
143
|
-
|
|
165
|
+
const tail = dedupeCredential(name, credential);
|
|
166
|
+
return tail ? `${n}, ${escapeHtml(tail)}` : n;
|
|
144
167
|
}
|
|
145
168
|
/** The reviewer profile link (carries the modal `expert` hook + a real href fallback). */
|
|
146
169
|
function profileLink(url, inner, style) {
|
|
147
170
|
const href = safeHttpUrl(url) ?? '#';
|
|
148
|
-
return `<a href="${escapeAttribute(href)}" data-certrev-modal-open="expert" rel="
|
|
171
|
+
return `<a href="${escapeAttribute(href)}" data-certrev-modal-open="expert" rel="${CERTREV_LINK_REL}" style="${style}">${inner}</a>`;
|
|
149
172
|
}
|
|
150
173
|
/** The certificate link (carries the modal hook + a real href fallback). */
|
|
151
174
|
function certificateLink(url, inner, style) {
|
|
152
175
|
const href = safeHttpUrl(url) ?? '#';
|
|
153
|
-
return `<a href="${escapeAttribute(href)}" data-certrev-modal-open rel="
|
|
176
|
+
return `<a href="${escapeAttribute(href)}" data-certrev-modal-open rel="${CERTREV_LINK_REL}" style="${style}">${inner}</a>`;
|
|
154
177
|
}
|
|
155
178
|
/**
|
|
156
179
|
* The GROUPED dated credential verification (LOCKED requirement): the credentialed
|
|
@@ -163,14 +186,21 @@ function verificationBlock(facts, withAccordion, placed) {
|
|
|
163
186
|
// Nothing placed ⇒ empty (the caller drops the wrapping toggle div).
|
|
164
187
|
if (!showName)
|
|
165
188
|
return '';
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
189
|
+
// An UNPARSEABLE or blank verification date is dropped, not echoed. The old
|
|
190
|
+
// `formatDate(x) ?? escapeHtml(x)` asserted "Credential verified by CertREV on
|
|
191
|
+
// not-a-date", and left "on " dangling when blank — a disclosure that names a date
|
|
192
|
+
// it cannot stand behind is worse than one that names none. The attribution itself
|
|
193
|
+
// survives: it is true independently of when the credential was checked.
|
|
194
|
+
const verified = formatDate(facts.credentialVerifiedAt);
|
|
195
|
+
const showBio = withAccordion && hasExpandableBio(facts, placed);
|
|
169
196
|
const caret = showBio ? CARET : '';
|
|
170
197
|
const nameSize = withAccordion ? '15px' : '16px';
|
|
171
198
|
const muteSize = withAccordion ? '13px' : '12.5px';
|
|
199
|
+
// `hidden` alone, NOT an inline `display:none` — the accordion is revealed by an author
|
|
200
|
+
// rule on the toggled `.open` class (see modal/interactions.ts), and an inline declaration
|
|
201
|
+
// is the one thing such a rule can never beat.
|
|
172
202
|
const bio = showBio
|
|
173
|
-
? `<div class="
|
|
203
|
+
? `<div class="acc-bio" hidden style="margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--cr-ink-soft);">${escapeHtml(facts.bio ?? '')}</div>`
|
|
174
204
|
: '';
|
|
175
205
|
// The credential suffix + the GROUPED attribution/date lines are all-or-nothing on
|
|
176
206
|
// `bylineCredentialed`; a plain byline shows the name only.
|
|
@@ -178,8 +208,8 @@ function verificationBlock(facts, withAccordion, placed) {
|
|
|
178
208
|
? nameWithCredential(facts.reviewerName, facts.credential)
|
|
179
209
|
: escapeHtml(facts.reviewerName);
|
|
180
210
|
const attribution = showCredentialed
|
|
181
|
-
? `<div style="font-size:${muteSize};color:var(--navy-55);line-height:1.45;margin-top:3px;">${escapeHtml(
|
|
182
|
-
`<div style="font-size:${muteSize};color:var(--navy-55);line-height:1.35;">on ${verified}</div>`
|
|
211
|
+
? `<div style="font-size:${muteSize};color:var(--navy-55);line-height:1.45;margin-top:3px;">${escapeHtml(CREDENTIAL_VERIFIED_ATTRIBUTION)}</div>` +
|
|
212
|
+
(verified ? `<div style="font-size:${muteSize};color:var(--navy-55);line-height:1.35;">on ${verified}</div>` : '')
|
|
183
213
|
: '';
|
|
184
214
|
return (`<div>` +
|
|
185
215
|
`<div style="font-size:${nameSize};font-weight:700;color:var(--cr-ink);">${nameInner}${caret}</div>` +
|
|
@@ -199,7 +229,7 @@ function rootStyle(theme) {
|
|
|
199
229
|
`--ba:${theme.accentColor}`,
|
|
200
230
|
`--ba-fg:${theme.accentFg}`,
|
|
201
231
|
`--br:${theme.cornerRadius}`,
|
|
202
|
-
// The body font is a host-overridable HOOK
|
|
232
|
+
// The body font is a host-overridable HOOK: `--cr-bf` resolves a host-page
|
|
203
233
|
// `--bf` (set on any ancestor) with the fontSlot stack as the FALLBACK — so a storefront
|
|
204
234
|
// can theme the card font via plain CSS, no `!important` (the old inline `--bf:<stack>`
|
|
205
235
|
// declaration shadowed a host `--bf`). Unset ⇒ resolves to the stack ⇒ byte-identical render.
|
|
@@ -242,18 +272,17 @@ function root(mode, theme, inner, face) {
|
|
|
242
272
|
`data-certrev-strings-version="${CERT_STRINGS_VERSION}"${rungAttr} style="${rootStyle(theme)}">${inner}</div>`);
|
|
243
273
|
}
|
|
244
274
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
245
|
-
//
|
|
275
|
+
// Face — BANNER: a certification header card + a separate expert-memo card
|
|
246
276
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
247
277
|
function bannerHeaderCard(facts, placed) {
|
|
248
|
-
const
|
|
249
|
-
const certified = formatDate(facts.certifiedAt) ?? escapeHtml(facts.certifiedAt);
|
|
278
|
+
const certified = formatDate(facts.certifiedAt);
|
|
250
279
|
const subtitle = placed('authorTitle') && facts.authorTitle
|
|
251
280
|
? `<div style="font-size:13px;color:var(--cr-ink-sub);">${escapeHtml(facts.authorTitle)}</div>`
|
|
252
281
|
: '';
|
|
253
282
|
// A subtle right-aligned arrow opens the certificate: the whole navy bar is the mouse
|
|
254
283
|
// target (data-certrev-modal-open); this focusable <a> is the keyboard / SR / no-JS control.
|
|
255
284
|
const certHref = safeHttpUrl(facts.certificateUrl) ?? '#';
|
|
256
|
-
const headerArrow = `<a href="${escapeAttribute(certHref)}" data-certrev-modal-open rel="
|
|
285
|
+
const headerArrow = `<a href="${escapeAttribute(certHref)}" data-certrev-modal-open rel="${CERTREV_LINK_REL}" aria-label="View certificate" ` +
|
|
257
286
|
`style="display:inline-flex;align-items:center;flex-shrink:0;color:inherit;opacity:.72;text-decoration:none;">` +
|
|
258
287
|
`<svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a>`;
|
|
259
288
|
// navy header — the trust bar stays fixed navy (accent theming is Phase B); mark + eyebrow + cert arrow
|
|
@@ -277,13 +306,32 @@ function bannerHeaderCard(facts, placed) {
|
|
|
277
306
|
// reviewed by — emphasized label (navy, 700): the certification's authority voice
|
|
278
307
|
const reviewerAvatar = placed('reviewerPhoto') ? avatar(initials(facts.reviewerName), 42, 12) : '';
|
|
279
308
|
const reviewerBlock = verificationBlock(facts, true, placed);
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
309
|
+
// The interactive affordance is gated on there being a bio to expand — NOT on the
|
|
310
|
+
// reviewer row existing. `data-certrev-acc` is the hook modal/interactions.ts actually
|
|
311
|
+
// binds (click + Enter/Space); the old `data-certrev-bio-toggle` had zero consumers
|
|
312
|
+
// repo-wide, so the row was focusable, announced as a collapsed button, and inert.
|
|
313
|
+
const revRow = reviewerBlock
|
|
314
|
+
? hasExpandableBio(facts, placed)
|
|
315
|
+
? `<div class="certrev-cert__rev" data-certrev-acc role="button" tabindex="0" aria-expanded="false" aria-label="Read more about ${escapeAttribute(facts.reviewerName)}" style="display:flex;align-items:flex-start;gap:12px;cursor:pointer;border-radius:8px;transition:opacity .15s;">` +
|
|
316
|
+
`${reviewerAvatar}${reviewerBlock}` +
|
|
317
|
+
`</div>`
|
|
318
|
+
: `<div class="certrev-cert__rev" style="display:flex;align-items:flex-start;gap:12px;">` +
|
|
319
|
+
`${reviewerAvatar}${reviewerBlock}` +
|
|
320
|
+
`</div>`
|
|
321
|
+
: '';
|
|
322
|
+
// The mono footer row: "Certified <date>" is card chrome, but an unusable `certifiedAt`
|
|
323
|
+
// used to emit the bare word "Certified" followed by nothing — so it is gated on the date
|
|
324
|
+
// PARSING, the same family as the memo/verification-date gates. The cue is engine-placed
|
|
325
|
+
// AND dropped for the pro-bono (`null`) reviewer. Neither ⇒ the hairline + row go too.
|
|
326
|
+
const certifiedSpan = certified ? `<span>Certified <span style="margin-left:8px;">${certified}</span></span>` : '';
|
|
327
|
+
const cueSpan = showsCompensationCue(facts, placed) ? `<span>${escapeHtml(COMPENSATED_EXPERT_CUE)}</span>` : '';
|
|
328
|
+
const footer = certifiedSpan || cueSpan
|
|
329
|
+
? `<div style="height:1px;background:var(--navy-10);margin:16px 0 14px;"></div>` +
|
|
330
|
+
`<div style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--navy-55);">` +
|
|
331
|
+
certifiedSpan +
|
|
332
|
+
cueSpan +
|
|
283
333
|
`</div>`
|
|
284
334
|
: '';
|
|
285
|
-
// "Certified <date>" is card chrome (renders with the card); the cue is engine-placed
|
|
286
|
-
const cueSpan = placed('compensationCue') ? `<span>${escapeHtml(compensationCue)}</span>` : '';
|
|
287
335
|
return (`<div style="border:1px solid var(--navy-10);border-radius:calc(var(--br,14px) * 0.7);overflow:hidden;font-family:var(--cr-bf);">` +
|
|
288
336
|
header +
|
|
289
337
|
`<div style="padding:22px 24px 18px;">` +
|
|
@@ -291,40 +339,40 @@ function bannerHeaderCard(facts, placed) {
|
|
|
291
339
|
authorColumn +
|
|
292
340
|
`<div>` +
|
|
293
341
|
`<div style="font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:11px;">Reviewed by</div>` +
|
|
294
|
-
|
|
342
|
+
revRow +
|
|
295
343
|
`</div>` +
|
|
296
344
|
`</div>` +
|
|
297
345
|
// hairline + mono footer — "Certified <date>" + "Compensated expert", UNIFORM navy-55
|
|
298
|
-
|
|
299
|
-
`<div style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--navy-55);">` +
|
|
300
|
-
`<span>Certified <span style="margin-left:8px;">${certified}</span></span>` +
|
|
301
|
-
cueSpan +
|
|
302
|
-
`</div>` +
|
|
346
|
+
footer +
|
|
303
347
|
`</div>` +
|
|
304
348
|
`</div>`);
|
|
305
349
|
}
|
|
306
350
|
function bannerMemoCard(facts, placed) {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
351
|
+
// The memo card composes `<name><, credential>` as two spans rather than through
|
|
352
|
+
// `nameWithCredential`, so it needs the SAME duplicate guard — the doubled "MD, MD" was
|
|
353
|
+
// visible on this card too. Gated on what SURVIVES the dedupe, not on the raw field: a
|
|
354
|
+
// credential the name already carries must drop the tail span whole, comma and all.
|
|
355
|
+
const credential = placed('bylineCredentialed') ? dedupeCredential(facts.reviewerName, facts.credential) : '';
|
|
356
|
+
const credTail = credential ? `<span style="color:var(--cr-ink-sub);">, ${escapeHtml(credential)}</span>` : '';
|
|
311
357
|
const first = firstNameOf(facts.reviewerName);
|
|
312
358
|
// The eyebrow + reviewer name row + memo quote are grouped under `memo`; the avatar
|
|
313
|
-
// inside it is gated on `reviewerPhoto`.
|
|
359
|
+
// inside it is gated on `reviewerPhoto`. Gated on the memo's CONTENT as well as its
|
|
360
|
+
// placement (the pattern `bio` already follows): placement alone painted an "Expert
|
|
361
|
+
// memo" heading over an empty `<p>` for a contract-legal empty memo.
|
|
314
362
|
const memoAvatar = placed('reviewerPhoto') ? avatar(initials(facts.reviewerName), 46, 13) : '';
|
|
315
|
-
const memoSection = placed('memo')
|
|
363
|
+
const memoSection = placed('memo') && facts.memo
|
|
316
364
|
? `<div style="font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy-55);margin-bottom:14px;">Expert memo</div>` +
|
|
317
365
|
`<div style="display:flex;gap:15px;">${memoAvatar}` +
|
|
318
366
|
`<div style="flex:1;min-width:0;">` +
|
|
319
367
|
`<div style="font-size:16px;line-height:1.2;color:var(--cr-ink);"><span style="font-weight:700;">${escapeHtml(facts.reviewerName)}</span>${credTail}</div>` +
|
|
320
|
-
// Readable, UPRIGHT DM Sans quote (
|
|
368
|
+
// Readable, UPRIGHT DM Sans quote (the display-serif italic hurt legibility);
|
|
321
369
|
// pre-line preserves the reviewer's paragraph breaks. No left accent bar (matches the guide).
|
|
322
370
|
`<p style="margin:11px 0 14px;font-size:15.5px;line-height:1.6;color:var(--cr-ink-soft);white-space:pre-line;">${escapeHtml(facts.memo)}</p>` +
|
|
323
371
|
`</div>` +
|
|
324
372
|
`</div>`
|
|
325
373
|
: '';
|
|
326
374
|
// The memo footer's profile/certificate actions read as the JetBrains-mono uppercase stamp
|
|
327
|
-
// that matches the badge footer lockup
|
|
375
|
+
// that matches the badge footer lockup — navy, so they still read as actions.
|
|
328
376
|
const profile = placed('profileLink')
|
|
329
377
|
? profileLink(facts.profileUrl, `${escapeHtml(first)}'s Profile`, STAMP_LINK_STYLE)
|
|
330
378
|
: '';
|
|
@@ -332,7 +380,7 @@ function bannerMemoCard(facts, placed) {
|
|
|
332
380
|
? certificateLink(facts.certificateUrl, 'Certificate', STAMP_LINK_STYLE)
|
|
333
381
|
: '';
|
|
334
382
|
const scope = placed('scopeLine')
|
|
335
|
-
? `<div style="font-size:13px;color:var(--navy-55);margin-top:8px;line-height:1.5;">${escapeHtml(
|
|
383
|
+
? `<div style="font-size:13px;color:var(--navy-55);margin-top:8px;line-height:1.5;">${escapeHtml(CERT_SCOPE_LINE)}</div>`
|
|
336
384
|
: '';
|
|
337
385
|
return (`<div style="border:1px solid var(--navy-10);border-radius:calc(var(--br,14px) * 0.7);padding:24px;font-family:var(--cr-bf);">` +
|
|
338
386
|
memoSection +
|
|
@@ -352,11 +400,9 @@ function bannerMemoCard(facts, placed) {
|
|
|
352
400
|
`</div>`);
|
|
353
401
|
}
|
|
354
402
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
355
|
-
//
|
|
403
|
+
// Face — SIDEBAR (the DEFAULT): a reviewer card pinned beside the article body
|
|
356
404
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
357
405
|
function sidebarCard(facts, placed) {
|
|
358
|
-
const compensationCue = locked(facts.compensationCue, COMPENSATED_EXPERT_CUE);
|
|
359
|
-
const scopeLine = locked(facts.scopeLine, CERT_SCOPE_LINE);
|
|
360
406
|
const header = placed('label')
|
|
361
407
|
? `<div style="display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;background:var(--certrev-bar-bg,#0a1b3f);color:var(--certrev-bar-fg,#fff);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;">${logo(18)} Expert reviewed</div>`
|
|
362
408
|
: '';
|
|
@@ -364,14 +410,16 @@ function sidebarCard(facts, placed) {
|
|
|
364
410
|
const bioPara = placed('bio') && facts.bio
|
|
365
411
|
? `<p style="font-size:14px;line-height:1.55;color:var(--cr-ink-soft);margin:16px 0 0;">${escapeHtml(facts.bio)}</p>`
|
|
366
412
|
: '';
|
|
367
|
-
|
|
413
|
+
// Gated on CONTENT as well as placement (like `bioPara` above) — placement alone rendered
|
|
414
|
+
// an empty accent-bordered blockquote for a contract-legal empty memo.
|
|
415
|
+
const blockquote = placed('memo') && facts.memo
|
|
368
416
|
? `<blockquote style="margin:16px 0 0;padding-left:16px;border-left:3px solid var(--ba,#0a1b3f);font-size:15px;line-height:1.5;color:var(--cr-ink-soft);white-space:pre-line;">${escapeHtml(facts.memo)}</blockquote>`
|
|
369
417
|
: '';
|
|
370
418
|
// Disclosure row: cue + ` · ` + scope; the separator only when BOTH land, the row only when either does.
|
|
371
|
-
const cueEl = placed
|
|
372
|
-
? `<span style="font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;">${escapeHtml(
|
|
419
|
+
const cueEl = showsCompensationCue(facts, placed)
|
|
420
|
+
? `<span style="font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;">${escapeHtml(COMPENSATED_EXPERT_CUE)}</span>`
|
|
373
421
|
: '';
|
|
374
|
-
const scopeEl = placed('scopeLine') ? escapeHtml(
|
|
422
|
+
const scopeEl = placed('scopeLine') ? escapeHtml(CERT_SCOPE_LINE) : '';
|
|
375
423
|
const disclosure = cueEl || scopeEl
|
|
376
424
|
? `<div style="font-size:12.5px;line-height:1.5;color:var(--navy-55);margin-top:16px;">${cueEl}${cueEl && scopeEl ? ' · ' : ''}${scopeEl}</div>`
|
|
377
425
|
: '';
|
|
@@ -403,7 +451,7 @@ function sidebarCard(facts, placed) {
|
|
|
403
451
|
`</div>`);
|
|
404
452
|
}
|
|
405
453
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
406
|
-
//
|
|
454
|
+
// Face — FLOATING: a compact pinned pill (a modal pointer, NOT a claim face)
|
|
407
455
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
408
456
|
function floatingPill(facts, placed) {
|
|
409
457
|
const label = placed('label')
|
|
@@ -430,10 +478,17 @@ function floatingPill(facts, placed) {
|
|
|
430
478
|
`</div>`);
|
|
431
479
|
}
|
|
432
480
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
433
|
-
//
|
|
434
|
-
// EXACTLY the placed fields, in canonical order, from the SAME escaped
|
|
435
|
-
// data-certrev
|
|
436
|
-
//
|
|
481
|
+
// Face — CUSTOM: the engine's free-composition face — ONE vertical stack of
|
|
482
|
+
// EXACTLY the placed fields, in canonical order, from the SAME escaped, constant-fed,
|
|
483
|
+
// `data-certrev-*`-hooked building blocks the locked layouts use, so the custom face
|
|
484
|
+
// carries the same markers as banner/sidebar and the crawl monitor reads them alike.
|
|
485
|
+
//
|
|
486
|
+
// NOT the ftc-guard, though — and the comment here claimed otherwise for as long as the
|
|
487
|
+
// face has existed. `modal/ftc-guard.ts` looks for `data-ftc-line` / `data-ftc-disclosure`
|
|
488
|
+
// hooks, which `CertBadge.tsx` and `render-badge-html.ts` emit and this renderer emits at
|
|
489
|
+
// NONE of its three scope-line sites. The kill switch therefore cannot see anything
|
|
490
|
+
// renderCertBlock produces, on ANY face. Whether it should is a live design question
|
|
491
|
+
// (which surfaces the switch covers) — not something to settle by quietly adding hooks.
|
|
437
492
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
438
493
|
function renderCustomFace(facts, placed) {
|
|
439
494
|
const parts = [];
|
|
@@ -462,15 +517,15 @@ function renderCustomFace(facts, placed) {
|
|
|
462
517
|
if (placed('bio') && facts.bio) {
|
|
463
518
|
parts.push(`<p style="font-size:14px;line-height:1.55;color:var(--cr-ink-soft);margin:16px 0 0;">${escapeHtml(facts.bio)}</p>`);
|
|
464
519
|
}
|
|
465
|
-
// 5. memo (sidebar's blockquote)
|
|
466
|
-
if (placed('memo')) {
|
|
520
|
+
// 5. memo (sidebar's blockquote) — placement AND content, like `bio` directly above
|
|
521
|
+
if (placed('memo') && facts.memo) {
|
|
467
522
|
parts.push(`<blockquote style="margin:16px 0 0;padding-left:16px;border-left:3px solid var(--ba,#0a1b3f);font-size:15px;line-height:1.5;color:var(--cr-ink-soft);white-space:pre-line;">${escapeHtml(facts.memo)}</blockquote>`);
|
|
468
523
|
}
|
|
469
524
|
// 6. disclosures (sidebar's cue · scope row; separator only when BOTH land)
|
|
470
|
-
const cueEl = placed
|
|
471
|
-
? `<span style="font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;">${escapeHtml(
|
|
525
|
+
const cueEl = showsCompensationCue(facts, placed)
|
|
526
|
+
? `<span style="font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;">${escapeHtml(COMPENSATED_EXPERT_CUE)}</span>`
|
|
472
527
|
: '';
|
|
473
|
-
const scopeEl = placed('scopeLine') ? escapeHtml(
|
|
528
|
+
const scopeEl = placed('scopeLine') ? escapeHtml(CERT_SCOPE_LINE) : '';
|
|
474
529
|
if (cueEl || scopeEl) {
|
|
475
530
|
parts.push(`<div style="font-size:12.5px;line-height:1.5;color:var(--navy-55);margin-top:16px;">${cueEl}${cueEl && scopeEl ? ' · ' : ''}${scopeEl}</div>`);
|
|
476
531
|
}
|
|
@@ -493,38 +548,49 @@ function renderCustomFace(facts, placed) {
|
|
|
493
548
|
// Entry point
|
|
494
549
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
495
550
|
/**
|
|
496
|
-
* Render the LOCKED CertREV cert design as an SSR-safe HTML string for one
|
|
497
|
-
*
|
|
498
|
-
*
|
|
551
|
+
* Render the LOCKED CertREV cert design as an SSR-safe HTML string for one placement
|
|
552
|
+
* face. Returns a self-contained `<div class="certrev-cert …">` that needs no JS to
|
|
553
|
+
* render (the modal + bio accordion progressively enhance).
|
|
554
|
+
*
|
|
555
|
+
* `mode` absent or unrecognised ⇒ `sidebar`. Each arm passes its own LITERAL to
|
|
556
|
+
* `root()` — never `input.mode` — so an untyped `mode` can reach neither the root class
|
|
557
|
+
* name nor the `data-certrev-mode` attribute.
|
|
499
558
|
*/
|
|
500
559
|
export function renderCertBlock(input) {
|
|
501
560
|
const theme = resolveBlockTheme(input.theme);
|
|
502
|
-
const { facts,
|
|
561
|
+
const { facts, face } = input;
|
|
503
562
|
const placed = placedTester(face);
|
|
504
|
-
switch (mode) {
|
|
563
|
+
switch (input.mode) {
|
|
505
564
|
case 'banner': {
|
|
506
565
|
// Suppress the memo card entirely when the engine placed none of its fields
|
|
507
566
|
// (avoids an empty bordered shell). Grandfather: all placed ⇒ card renders.
|
|
508
567
|
const memoCard = placed('memo') || placed('profileLink') || placed('certificateLink') || placed('scopeLine')
|
|
509
568
|
? bannerMemoCard(facts, placed)
|
|
510
569
|
: '';
|
|
511
|
-
// First-class memo split
|
|
570
|
+
// First-class memo split: default 'full' is byte-identical to the prior
|
|
512
571
|
// header+memo render; 'header'/'memo' emit only that card so the exporter can place
|
|
513
|
-
// the memo as its own block (retires the CertReviewCard string-split shim).
|
|
514
|
-
|
|
572
|
+
// the memo as its own block (retires the CertReviewCard string-split shim). An
|
|
573
|
+
// unknown `part` falls back to 'full' by this written rule, not by a catch-all arm.
|
|
574
|
+
const part = input.part === 'header' || input.part === 'memo' ? input.part : 'full';
|
|
515
575
|
const inner = part === 'header'
|
|
516
576
|
? bannerHeaderCard(facts, placed)
|
|
517
577
|
: part === 'memo'
|
|
518
578
|
? memoCard
|
|
519
579
|
: bannerHeaderCard(facts, placed) + memoCard;
|
|
520
|
-
return root(
|
|
580
|
+
return root('banner', theme, inner, face);
|
|
521
581
|
}
|
|
522
|
-
case 'sidebar':
|
|
523
|
-
return root(mode, theme, sidebarCard(facts, placed), face);
|
|
524
582
|
case 'floating':
|
|
525
|
-
return root(
|
|
583
|
+
return root('floating', theme, floatingPill(facts, placed), face);
|
|
526
584
|
case 'custom':
|
|
527
|
-
return root(
|
|
585
|
+
return root('custom', theme, renderCustomFace(facts, placed), face);
|
|
586
|
+
// THE default placement, named here and nowhere else: the declared default and the
|
|
587
|
+
// runtime fallback are the same line, so they cannot drift apart. Naming `sidebar` as a
|
|
588
|
+
// real case also keeps the exhaustiveness read over CertBlockLayout honest — a reader
|
|
589
|
+
// sees all four faces handled — while the shared `default:` catches untyped input.
|
|
590
|
+
// biome-ignore lint/complexity/noUselessSwitchCase: the redundancy IS the mechanism (see above)
|
|
591
|
+
case 'sidebar':
|
|
592
|
+
default:
|
|
593
|
+
return root('sidebar', theme, sidebarCard(facts, placed), face);
|
|
528
594
|
}
|
|
529
595
|
}
|
|
530
596
|
//# sourceMappingURL=render-cert-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-cert-block.js","sourceRoot":"","sources":["../../src/components/render-cert-block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-cert-block.js","sourceRoot":"","sources":["../../src/components/render-cert-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,19 +4,18 @@
|
|
|
4
4
|
* layer) + the two always-on COMPLIANCE strings.
|
|
5
5
|
* ─────────────────────────────────────────────────────────────────────────────
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* that must paint the SAME compliant, optionally-themed badge from the SAME facts.
|
|
7
|
+
* This is the Builder / headless projection twin's half of the "law-as-code"
|
|
8
|
+
* contract: cert-block is one of the four render surfaces (Shopify Liquid,
|
|
9
|
+
* WordPress PHP, JS engine, and this) that must paint the SAME compliant,
|
|
10
|
+
* optionally-themed badge from the SAME facts.
|
|
12
11
|
*
|
|
13
12
|
* cert-block is a self-contained npm package — it does NOT import the portal's
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* design-guide enforcement core. Instead it mirrors, at the RENDER edge, the
|
|
14
|
+
* small subset that shape the projection carries:
|
|
16
15
|
*
|
|
17
16
|
* 1. The four allowlisted THEMEABLE tokens `{accentColor, surface, cornerRadius,
|
|
18
17
|
* fontSlot}`, emitted as the exact `--certrev-*` CSS custom properties the
|
|
19
|
-
* Shopify/WordPress engines emit and the
|
|
18
|
+
* Shopify/WordPress engines emit and the crawl monitor asserts
|
|
20
19
|
* (`--certrev-accent` / `--certrev-surface` / `--certrev-radius` /
|
|
21
20
|
* `--certrev-font`). Each is RE-VALIDATED here at render time (defense in
|
|
22
21
|
* depth over the write-path fail-closed gate) against the SAME strict
|
|
@@ -46,9 +45,9 @@ export type FontSlot = (typeof FONT_SLOTS)[number];
|
|
|
46
45
|
/**
|
|
47
46
|
* The `fontSlot` → fixed font-stack literal — the render-def theme map the webcomponent MODAL
|
|
48
47
|
* (`resolveRenderTheme` → `renderBadgeHtml`) and the legacy `<CertBadge>` resolve. The three original
|
|
49
|
-
* slots (sans/serif/system) stay BYTE-IDENTICAL to the Shopify Liquid engine's
|
|
50
|
-
*
|
|
51
|
-
*
|
|
48
|
+
* slots (sans/serif/system) stay BYTE-IDENTICAL to the Shopify Liquid engine's badge-snippet
|
|
49
|
+
* stacks, so a themed brand's popup modal and its inline Liquid card paint the same
|
|
50
|
+
* typography — the load-bearing card==modal invariant.
|
|
52
51
|
* grotesk (Plus Jakarta Sans) + mono (JetBrains Mono) are ADDED at the shared guide values —
|
|
53
52
|
* byte-identical to portal `FONT_SLOT_STACKS`, this package's `RENDER_BLOCK_FONT_STACKS`, and the
|
|
54
53
|
* Liquid twin's added branches — so card == modal holds for them too. A raw family string in a
|
|
@@ -126,8 +125,8 @@ export declare function resolveRenderTheme(def?: CertRenderDef): ResolvedRenderT
|
|
|
126
125
|
/** Is a brand-toggleable field hidden by this render-def's subtractive hide-set? */
|
|
127
126
|
export declare function isFieldHidden(def: CertRenderDef | undefined, id: BadgeVisibilityFieldId): boolean;
|
|
128
127
|
/**
|
|
129
|
-
* The full portal font-slot enum (mirrors portal
|
|
130
|
-
* `
|
|
128
|
+
* The full portal font-slot enum (mirrors the portal design-guide's `FONT_SLOTS`).
|
|
129
|
+
* `grotesk` ⇐ the guide's wordmark slot; `mono` ⇐ the label slot.
|
|
131
130
|
*/
|
|
132
131
|
export declare const RENDER_BLOCK_FONT_SLOTS: readonly ["sans", "serif", "system", "grotesk", "mono"];
|
|
133
132
|
export type RenderBlockFontSlot = (typeof RENDER_BLOCK_FONT_SLOTS)[number];
|
|
@@ -143,7 +142,7 @@ export declare const RENDER_BLOCK_FONT_STACKS: Readonly<Record<RenderBlockFontSl
|
|
|
143
142
|
export declare function isRenderBlockFontSlot(value: string): value is RenderBlockFontSlot;
|
|
144
143
|
/**
|
|
145
144
|
* AUTO-CONTRAST PICKER — the ink painted over an opaque fill. BYTE-FAITHFUL to the portal's
|
|
146
|
-
*
|
|
145
|
+
* design-guide `accentFg`: Rec.601 perceptual luma with a strict `> 0.62`
|
|
147
146
|
* cutoff, returning EXACTLY `#141414` (near-black) or `#ffffff`; an unparseable value falls back
|
|
148
147
|
* to the dark ink (safe default). Used at the render edge to DERIVE `barInkFg` from a themed
|
|
149
148
|
* `barInk` (v2 Phase 1), so the bar foreground always clears its own fill with no separate stored
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-def.d.ts","sourceRoot":"","sources":["../../src/components/render-def.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"render-def.d.ts","sourceRoot":"","sources":["../../src/components/render-def.ts"],"names":[],"mappings":"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"}
|