@certrev/cert-block 1.2.0-canary.5 → 1.2.0-canary.7
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 +64 -0
- package/README.md +1 -1
- package/dist/builder/cert-review-card.d.ts +12 -0
- package/dist/builder/cert-review-card.d.ts.map +1 -1
- package/dist/builder/cert-review-card.js +30 -6
- package/dist/builder/cert-review-card.js.map +1 -1
- package/dist/reader/face.d.ts +6 -2
- package/dist/reader/face.d.ts.map +1 -1
- package/dist/reader/face.js +53 -5
- package/dist/reader/face.js.map +1 -1
- package/dist/reader/render.d.ts.map +1 -1
- package/dist/reader/render.js +10 -10
- package/dist/reader/render.js.map +1 -1
- package/package.json +1 -1
- package/src/builder/cert-review-card.tsx +39 -6
- package/src/reader/face.ts +59 -6
- package/src/reader/render.ts +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,70 @@ change the rendered cert output and never break a compiling integration** (regis
|
|
|
5
5
|
exports, types). Anything that would alter what a visitor sees, or require integration changes,
|
|
6
6
|
is announced loudly here first.
|
|
7
7
|
|
|
8
|
+
## 1.2.0-canary.7 · 2026-10-06
|
|
9
|
+
|
|
10
|
+
Still on the `canary` dist-tag. **The reader face's avatar shows the person's initials where it has no photo to
|
|
11
|
+
paint** (Owen's answer to the judge's question d4c7cfe0: "Initials in every reader face without a photo (author and
|
|
12
|
+
reviewer)"). Only a reader face's avatars change. Every other face, the options-only card, a revoked or failed card,
|
|
13
|
+
the stylesheet, the sidebar flow rules, the modal, the design pin, `CERT_FONT_FACE_CSS` and `@certrev/cert-contract`
|
|
14
|
+
are byte for byte as in canary.6. No integration needs a code change.
|
|
15
|
+
|
|
16
|
+
- **The initials.** The silhouette is now the fallback for a name with no initials, not for a missing photo. A photo
|
|
17
|
+
that is missing or unsafe, `display.showExpertPhoto: false`, and a def that hides `reviewerPhoto` (which used to
|
|
18
|
+
remove the avatar altogether, and now removes the photo: its URL is never written) all paint the initials. The
|
|
19
|
+
initials are fixed bytes that the portal's Liquid and PHP twins also print:
|
|
20
|
+
- trim the name, split on single spaces and skip the empty parts (so "Jane Doe", with two spaces, is "JD");
|
|
21
|
+
- drop a leading dr, mr, mrs, ms, prof or mx (with or without the dot);
|
|
22
|
+
- take the first character of each of the first two parts left, and uppercase;
|
|
23
|
+
- paint exactly `<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><text x="20" y="20"
|
|
24
|
+
text-anchor="middle" dominant-baseline="central" font-size="15" font-weight="700">JD</text></svg>`, escaped.
|
|
25
|
+
|
|
26
|
+
This applies to every avatar of the face: the sidebar reviewer, the banner and memo reviewer, and the banner's
|
|
27
|
+
writer under the writer's own name. A photo that is painted is the same `<img>` as before.
|
|
28
|
+
- **Same bytes as 1.2.0.** `src/reader/face.ts` and `src/reader/render.ts` are exactly the stable 1.2.0 re-cut's.
|
|
29
|
+
The two differ in what 1.2.0 adds besides: hydrating from the server's read, stripping hidden fields from the
|
|
30
|
+
payload, and a card stylesheet without the remote font faces. Those are not in this canary.
|
|
31
|
+
- **Tests.** `reader-initials.test.ts` (new) pins the spec cell by cell against the portal's Liquid oracle
|
|
32
|
+
(`oracle-extra.json`, regenerated at portal 2e35e014a5 with the new names cells). `reader-byline.test.ts`,
|
|
33
|
+
`reader-face-avatars.test.tsx` and six reader goldens now expect the initials where they expected a silhouette,
|
|
34
|
+
or no avatar.
|
|
35
|
+
|
|
36
|
+
## 1.2.0-canary.6 · 2026-10-06
|
|
37
|
+
|
|
38
|
+
Still on the `canary` dist-tag. It lets the reader sidebar card's float out of its Builder block, so on a Builder
|
|
39
|
+
page the sidebar sits in the article column the way it does on a WordPress or Shopify page (the judge's round 11:
|
|
40
|
+
all 80 `sidebar.*.desktop` cells failed placement). **Only a reader face's output changes**, by one element. Every
|
|
41
|
+
other face, the options-only card, a revoked or failed card, the stylesheet, the modal, `CERT_FONT_FACE_CSS` and
|
|
42
|
+
`@certrev/cert-contract` are byte for byte as in canary.5. No integration needs a code change.
|
|
43
|
+
|
|
44
|
+
- **Cause.** Builder serves a page's blocks as a flex column (`.builder-blocks`), and each block
|
|
45
|
+
(`.builder-block`) is a flex item, which is a formatting context of its own. A formatting context contains a
|
|
46
|
+
float. So the block around a sidebar card spanned the whole column at the aside's height (at 1280: 1208 px wide,
|
|
47
|
+
the aside plus its 2 px and 18 px margins tall), and no copy could sit beside the aside.
|
|
48
|
+
- **Fix.** A reader face paints one more element, right after its wrapper: `<style data-certrev-builder-flow="">`
|
|
49
|
+
holding `BUILDER_SIDEBAR_FLOW_CSS`. Its three rules apply only above the reader CSS's own stacking breakpoint
|
|
50
|
+
(`@media not all and (max-width: 820px)`, the complement of the reader CSS's `(max-width: 820px)`), and only in a
|
|
51
|
+
Builder column that holds a reader SIDEBAR card as `.builder-blocks > .builder-block > [data-certrev-face="reader"]
|
|
52
|
+
> .certrev-reader > .certrev-r-side`:
|
|
53
|
+
- that column becomes `display: flow-root`, so it lays its blocks out as blocks and still contains the float;
|
|
54
|
+
- the card's block and the face's wrapper become `display: block`, so they take no height, and the aside is
|
|
55
|
+
the box the copy flows around.
|
|
56
|
+
|
|
57
|
+
A column with no reader sidebar (a banner, a floating pill, a legacy face), a card that is not a direct child of
|
|
58
|
+
a Builder block, the stacked widths, and a browser with no `:has()` keep exactly the layout they had. In the
|
|
59
|
+
column the rules do apply, its blocks lay out as blocks rather than flex items: `align-self` on a block there has
|
|
60
|
+
no effect, and vertical margins between blocks collapse.
|
|
61
|
+
- **Export.** `BUILDER_SIDEBAR_FLOW_CSS` from `./builder/cert-review-card` (not re-exported from `.` or `./builder`).
|
|
62
|
+
- **Tests.** `reader-face-sidebar-flow.test.tsx` (new) pins:
|
|
63
|
+
- that every reader face paints the rules once, after its wrapper, unescaped;
|
|
64
|
+
- that no other face and no options-only or revoked card paints them;
|
|
65
|
+
- that the breakpoint is read from the reader CSS;
|
|
66
|
+
- that the rules set only `display`;
|
|
67
|
+
- which elements the rules select in a page shaped as Builder serves it.
|
|
68
|
+
|
|
69
|
+
`reader-face-card.test.tsx` and `reader-face-card-hydrate.test.tsx` now count the second style element. Hydration
|
|
70
|
+
keeps both style nodes in place, with no mismatch, and a revocation removes both.
|
|
71
|
+
|
|
8
72
|
## 1.2.0-canary.5 · 2026-10-06
|
|
9
73
|
|
|
10
74
|
Minor, still on the `canary` dist-tag. It adds a design pin for CertREV's own canary replica (the judge's Part 3,
|
package/README.md
CHANGED
|
@@ -750,7 +750,7 @@ published at `@certrev/cert-block/fixtures`).
|
|
|
750
750
|
|
|
751
751
|
## Version
|
|
752
752
|
|
|
753
|
-
`1.2.0-canary.
|
|
753
|
+
`1.2.0-canary.7`: see [CHANGELOG.md](./CHANGELOG.md) for the release history and the semver contract
|
|
754
754
|
(patch/minor never change the rendered cert output or break a compiling integration). Publishes
|
|
755
755
|
**publicly** to npm as `@certrev/cert-block` (`publishConfig.access: public`) via GitHub Actions
|
|
756
756
|
trusted publishing (OIDC); the internal `@certrev` GitHub-Packages channel mirrors it.
|
|
@@ -72,6 +72,18 @@ export interface CertReviewCardProps extends Partial<BuilderCertChromeData> {
|
|
|
72
72
|
export declare function acceptedDeliveryMarker(value: unknown): {
|
|
73
73
|
readonly baseUrl: string;
|
|
74
74
|
} | null;
|
|
75
|
+
/**
|
|
76
|
+
* 1.2.0-canary.6: the reader sidebar card is a right float that the article's copy flows around, as it does on a
|
|
77
|
+
* WordPress or Shopify page. On a Builder page the card sits in its own block, a flex item of the flex column that holds
|
|
78
|
+
* the page's blocks, and a flex item is a formatting context of its own: it contains the float, so the block spans the
|
|
79
|
+
* whole column at the aside's height and no copy can sit beside the aside. These rules let the float out of its block,
|
|
80
|
+
* and only there: in a column that holds a reader SIDEBAR card, at the widths where the sidebar floats (above the reader
|
|
81
|
+
* CSS's own 820px breakpoint, below which it stacks as a plain block), the column lays its blocks out as blocks and
|
|
82
|
+
* still contains the float (`flow-root`), and the card's block and the face's wrapper become plain blocks, so they take
|
|
83
|
+
* no height and the aside is the box the copy flows around. A column with no reader sidebar, the stacked widths, and a
|
|
84
|
+
* browser with no `:has()` keep exactly what they had.
|
|
85
|
+
*/
|
|
86
|
+
export declare const BUILDER_SIDEBAR_FLOW_CSS: string;
|
|
75
87
|
export declare function CertReviewCard(props: CertReviewCardProps): React.JSX.Element | null;
|
|
76
88
|
/**
|
|
77
89
|
* The subset of the Builder.io input schema this kit emits. Every field below is verified
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-review-card.d.ts","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,oCAAoC,CAAA;AAUxF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAKlE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AAEjD,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IAC1E;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;IACxC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE;QAChB,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;QACnD,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;KACjE,GAAG,IAAI,CAAA;CACR;AAsCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe1F;
|
|
1
|
+
{"version":3,"file":"cert-review-card.d.ts","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,oCAAoC,CAAA;AAUxF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAKlE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AAEjD,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IAC1E;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAA;IACxC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE;QAChB,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;QACnD,QAAQ,CAAC,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,IAAI,CAAA;KACjE,GAAG,IAAI,CAAA;CACR;AAsCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAe1F;AAoBD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,QAKjC,CAAA;AAuHJ,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,4BA6GxD;AAMD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACpE,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC3B;AA6CD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAO5C,CAAA;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EA2BnD,CAAA;AAED,gGAAgG;AAChG,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,cAAc,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IACxC,4FAA4F;IAC5F,QAAQ,CAAC,yBAAyB,EAAE;QAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAA;KAAE,CAAA;CACrE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,4BAKlC,CAAA;AAED;;;;;GAKG;AACH,MAAM,WAAW,iCAAiC;IACjD,SAAS,EAAE,OAAO,cAAc,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB;;;;OAIG;IACH,yBAAyB,EAAE;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE,CAAA;CACtD;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,iCAOlC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* ─────────────────────────────────────────────────────────────────────────────
|
|
4
4
|
* `CertReviewCard` — the ready-to-register Builder.io PUSH cert component (W1)
|
|
@@ -114,6 +114,28 @@ function suspendOn(key, start) {
|
|
|
114
114
|
return use(pending);
|
|
115
115
|
throw pending;
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* 1.2.0-canary.6: the reader sidebar card is a right float that the article's copy flows around, as it does on a
|
|
119
|
+
* WordPress or Shopify page. On a Builder page the card sits in its own block, a flex item of the flex column that holds
|
|
120
|
+
* the page's blocks, and a flex item is a formatting context of its own: it contains the float, so the block spans the
|
|
121
|
+
* whole column at the aside's height and no copy can sit beside the aside. These rules let the float out of its block,
|
|
122
|
+
* and only there: in a column that holds a reader SIDEBAR card, at the widths where the sidebar floats (above the reader
|
|
123
|
+
* CSS's own 820px breakpoint, below which it stacks as a plain block), the column lays its blocks out as blocks and
|
|
124
|
+
* still contains the float (`flow-root`), and the card's block and the face's wrapper become plain blocks, so they take
|
|
125
|
+
* no height and the aside is the box the copy flows around. A column with no reader sidebar, the stacked widths, and a
|
|
126
|
+
* browser with no `:has()` keep exactly what they had.
|
|
127
|
+
*/
|
|
128
|
+
export const BUILDER_SIDEBAR_FLOW_CSS = '@media not all and (max-width: 820px){' +
|
|
129
|
+
'.builder-blocks:has(> .builder-block > [data-certrev-face="reader"] > .certrev-reader > .certrev-r-side){display:flow-root !important}' +
|
|
130
|
+
'.builder-blocks > .builder-block:has(> [data-certrev-face="reader"] > .certrev-reader > .certrev-r-side){display:block !important}' +
|
|
131
|
+
'.builder-blocks > .builder-block > [data-certrev-face="reader"]:has(> .certrev-reader > .certrev-r-side){display:block !important}' +
|
|
132
|
+
'}';
|
|
133
|
+
/** A reader face, with the sidebar flow rules beside it (`BUILDER_SIDEBAR_FLOW_CSS`); any other face, as it is. */
|
|
134
|
+
function withSidebarFlow(reader, face) {
|
|
135
|
+
if (!reader)
|
|
136
|
+
return face;
|
|
137
|
+
return (_jsxs(_Fragment, { children: [face, _jsx("style", { "data-certrev-builder-flow": "", dangerouslySetInnerHTML: { __html: BUILDER_SIDEBAR_FLOW_CSS } })] }));
|
|
138
|
+
}
|
|
117
139
|
/**
|
|
118
140
|
* The painted envelope face, with the phone memo toggle bound. One native click listener on the
|
|
119
141
|
* wrapper (delegated, so it survives a re-render of the HTML) flips the memo box the button sits
|
|
@@ -121,10 +143,12 @@ function suspendOn(key, start) {
|
|
|
121
143
|
* server HTML is the collapsed face, which is also what a reader without JS keeps (the whole memo
|
|
122
144
|
* is still in the text for a screen reader, and the desktop never clamps it).
|
|
123
145
|
*
|
|
124
|
-
* `reader` (1.2.0) is true ONLY for a def whose `face` is `'reader'`; it adds
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* wrapper
|
|
146
|
+
* `reader` (1.2.0) is true ONLY for a def whose `face` is `'reader'`; it adds three things and nothing to any other
|
|
147
|
+
* face: `data-certrev-face="reader"` and `display: flow-root` on the wrapper, and (1.2.0-canary.6) the sidebar flow
|
|
148
|
+
* rules beside it (`BUILDER_SIDEBAR_FLOW_CSS`). The reader sidebar card is a right float. On a Shopify page the
|
|
149
|
+
* placement script and its wrapper contain it. On a Builder page the wrapper contains it wherever the flow rules do not
|
|
150
|
+
* apply (the reader CSS's stacked widths, a browser with no `:has()`); where they do, the float leaves its block and
|
|
151
|
+
* the page's copy flows beside it.
|
|
128
152
|
*/
|
|
129
153
|
function EnvelopeFace(props) {
|
|
130
154
|
const ref = React.useRef(null);
|
|
@@ -140,7 +164,7 @@ function EnvelopeFace(props) {
|
|
|
140
164
|
el.addEventListener('click', onClick);
|
|
141
165
|
return () => el.removeEventListener('click', onClick);
|
|
142
166
|
}, []);
|
|
143
|
-
return (_jsx("div", { ref: ref, "data-certrev-cert-chrome": "", "data-certrev-delivery": "", "data-certrev-strings-version": CERT_STRINGS_VERSION, "data-certrev-def-version": props.defVersion, ...(props.reader ? { 'data-certrev-face': 'reader', style: { display: 'flow-root' } } : {}),
|
|
167
|
+
return withSidebarFlow(props.reader, _jsx("div", { ref: ref, "data-certrev-cert-chrome": "", "data-certrev-delivery": "", "data-certrev-strings-version": CERT_STRINGS_VERSION, "data-certrev-def-version": props.defVersion, ...(props.reader ? { 'data-certrev-face': 'reader', style: { display: 'flow-root' } } : {}),
|
|
144
168
|
// biome-ignore lint/security/noDangerouslySetInnerHtml: renderCertBlock is the escaping-safe SSR string renderer
|
|
145
169
|
dangerouslySetInnerHTML: { __html: props.html } }));
|
|
146
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cert-review-card.js","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cert-review-card.js","sourceRoot":"","sources":["../../src/builder/cert-review-card.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACxE,OAAO,EAAsB,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACxF,OAAO,EAAE,oBAAoB,EAA2B,MAAM,6BAA6B,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAC9D,OAAO,EAEN,mBAAmB,EACnB,cAAc,EACd,oBAAoB,GAEpB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAoCjD;;;;;;;;;GASG;AACH,SAAS,IAAI,CAAC,KAAc;IAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED,yFAAyF;AACzF,SAAS,YAAY,CAAC,KAAc;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAA;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,eAAe,CAAC,IAAiE;IACzF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,OAAO,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACpF,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,KAA2C,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACvD,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAA;IACZ,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtF,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;IACvC,IAAI,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAA;IACzE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqC,CAAA;AAClE,SAAS,SAAS,CAAC,GAAW,EAAE,KAAsC;IACrE,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1D,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC;IACD,MAAM,GAAG,GAAI,KAAsD,CAAC,GAAG,CAAA;IACvE,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,OAAO,CAAA;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,wBAAwB,GACpC,wCAAwC;IACxC,wIAAwI;IACxI,oIAAoI;IACpI,oIAAoI;IACpI,GAAG,CAAA;AAEJ,mHAAmH;AACnH,SAAS,eAAe,CAAC,MAA2B,EAAE,IAAwB;IAC7E,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,CACN,8BACE,IAAI,EAEL,6CAAiC,EAAE,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAI,IACnG,CACH,CAAA;AACF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,YAAY,CAAC,KAIrB;IACA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC9C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAA;QACtB,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,MAAM,OAAO,GAAG,CAAC,CAAa,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACtC,IAAI,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QACtD,CAAC,CAAA;QACD,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,eAAe,CACrB,KAAK,CAAC,MAAM,EACZ,cACC,GAAG,EAAE,GAAG,8BACiB,EAAE,2BAGL,EAAE,kCACM,oBAAoB,8BACxB,KAAK,CAAC,UAAU,KACtC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,iHAAiH;QACjH,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAC9C,CACF,CAAA;AACF,CAAC;AAED,SAAS,sBAAsB,CAAC,KAM/B;IACA,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAChC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IACxB,mGAAmG;IACnG,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAA;IAC9F,MAAM,IAAI,GAAG;QACZ,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO;QACP,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,MAAM;KACN,CAAA;IACD,MAAM,GAAG,GAAG,MAAM;QACjB,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,WAAW,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE;QACvF,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,CAAA;IACzC,MAAM,OAAO,GACZ,oBAAoB,CAAC,IAAI,CAAC;QAC1B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CACnB,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAC/G,CAAA;IACF,qFAAqF;IACrF,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACtD,iHAAiH;IACjH,0GAA0G;IAC1G,IAAI,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3G,kHAAkH;IAClH,iGAAiG;IACjG,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;YACnF,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;SACtC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACxB,OAAO,CACN,KAAC,YAAY,IACZ,MAAM;YACN,oGAAoG;YACpG,IAAI,EAAE,kCAAkC,UAAU,WAAW,MAAM,EAAE,EACrE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAC9D,CACF,CAAA;IACF,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE;QACnF,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;KAChB,CAAC,CAAA;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,KAAC,YAAY,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAI,CAAA;AACvH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA0B;IACxD,0FAA0F;IAC1F,+FAA+F;IAC/F,sDAAsD;IACtD,6GAA6G;IAC7G,gHAAgH;IAChH,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAA;IAC9E,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACpC,OAAO,CACN,KAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI,YACvB,KAAC,sBAAsB,IACtB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,UAAU,EAAE,OAAO,EACnB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,MAAM,EAAE,MAAM,GACb,GACQ,CACX,CAAA;IACF,CAAC;IACD,IAAI,MAAM;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA,CAAC,iDAAiD;IAE9F,2FAA2F;IAC3F,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK,CAAA;IACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEhF,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,MAAM,CAAA;IACtC,MAAM,KAAK,GAA4C,MAAM;QAC5D,CAAC,CAAC;YACA,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;YAC7C,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;YACrC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;YAC/C,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAA+C;YACrF,uEAAuE;YACvE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;SACvC;QACF,CAAC,CAAC,SAAS,CAAA;IAEZ,MAAM,IAAI,GAAG,eAAe,CAAC;QAC5B,wFAAwF;QACxF,sFAAsF;QACtF,EAAE;QACF,0FAA0F;QAC1F,yFAAyF;QACzF,sFAAsF;QACtF,+CAA+C;QAC/C,EAAE;QACF,yFAAyF;QACzF,sFAAsF;QACtF,yFAAyF;QACzF,wFAAwF;QACxF,oFAAoF;QACpF,wFAAwF;QACxF,8EAA8E;QAC9E,EAAE;QACF,uFAAuF;QACvF,wFAAwF;QACxF,yFAAyF;QACzF,uFAAuF;QACvF,qEAAqE;QACrE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,QAAQ;QAC5B,KAAK;QACL,yEAAyE;QACzE,uFAAuF;QACvF,kEAAkE;QAClE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,KAAK,EAAE;YACN,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,WAAW;YACzD,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;YAC5C,YAAY;YACZ,UAAU,EAAE,QAAQ,EAAE,UAAU,IAAI,EAAE;YACtC,oBAAoB,EAAE,QAAQ,EAAE,UAAU,IAAI,EAAE;YAChD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACpC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACtB,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAC1C,cAAc,EAAE,SAAS;YACzB,kFAAkF;YAClF,oFAAoF;YACpF,mFAAmF;YACnF,+EAA+E;YAC/E,gFAAgF;YAChF,iFAAiF;YACjF,sCAAsC;YACtC,eAAe,EAAE,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAClE;KACD,CAAC,CAAA;IAEF,OAAO,CACN,0CAC0B,EAAE,kCAIG,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,8BACtC,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAChG,iHAAiH;QACjH,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GACxC,CACF,CAAA;AACF,CAAC;AAgCD,0FAA0F;AAC1F,MAAM,eAAe,GAA4E;IAChG,kBAAkB,EAAE,QAAQ;IAC5B,sBAAsB,EAAE,QAAQ;IAChC,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,QAAQ;IACtB,GAAG,EAAE,UAAU;IACf,UAAU,EAAE,UAAU;IACtB,IAAI,EAAE,UAAU;IAChB,eAAe,EAAE,QAAQ;IACzB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,kBAAkB,EAAE,QAAQ;IAC5B,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB,iBAAiB,EAAE,QAAQ;IAC3B,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,QAAQ;IACnB,cAAc,EAAE,QAAQ;IACxB,QAAQ,EAAE,QAAQ;CAClB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAuE;IAClG,eAAe,EACd,kPAAkP;IACnP,SAAS,EACR,8IAA8I;IAC/I,QAAQ,EACP,wNAAwN;CACzN,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAA4B,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3F,IAAI;IACJ,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;IAC3B,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,wFAAwF;IACxF,yFAAyF;IACzF,QAAQ,EAAE,IAAI;CACd,CAAC,CAAC,CAAA;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4B;IACxD;QACC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,uCAAuC;QACnD,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE;YACL,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;SACxC;KACD;IACD;QACC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,aAAa;QAC3B,yFAAyF;QACzF,wEAAwE;QACxE,UAAU,EAAE,wDAAwD;QACpE,YAAY,EAAE,MAAM;QACpB,IAAI,EAAE;YACL,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE;YAChD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;YACzC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;SACrC;KACD;CACD,CAAA;AAWD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IACjE,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC;IAC7C,yBAAyB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;CACnD,CAAA;AAqBD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsC;IACtE,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,cAAc;IACzB,WAAW,EACV,4HAA4H;IAC7H,MAAM,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC;IAC7C,yBAAyB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;CACnD,CAAA"}
|
package/dist/reader/face.d.ts
CHANGED
|
@@ -2,11 +2,15 @@ export type ReaderFaceSize = '' | 'sm' | 'lg';
|
|
|
2
2
|
export interface ReaderFaceInput {
|
|
3
3
|
/** The photo URL on the envelope. */
|
|
4
4
|
readonly photo: unknown;
|
|
5
|
-
/** Whether to ATTEMPT the photo: false never reads the URL (the
|
|
5
|
+
/** Whether to ATTEMPT the photo: false never reads the URL (the initials show). */
|
|
6
6
|
readonly show: boolean;
|
|
7
|
+
/** The person's display name, the initials' source; a hostile type reads as no name. */
|
|
8
|
+
readonly name: unknown;
|
|
7
9
|
readonly size: ReaderFaceSize;
|
|
8
10
|
/** The pixel width the resizer is asked for. */
|
|
9
11
|
readonly width: number;
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
/** The initials of a display name by the spec above: '' when the name leaves no first character to take. */
|
|
14
|
+
export declare function initialsOf(name: unknown): string;
|
|
15
|
+
export declare function readerFace({ photo, show, name, size, width }: ReaderFaceInput): string;
|
|
12
16
|
//# sourceMappingURL=face.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../../src/reader/face.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../../src/reader/face.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAE7C,MAAM,WAAW,eAAe;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAoBD,4GAA4G;AAC5G,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAWhD;AAQD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,eAAe,GAAG,MAAM,CAatF"}
|
package/dist/reader/face.js
CHANGED
|
@@ -1,19 +1,67 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `certrev-reader-face`: the round avatar on a reader byline: the person's photo when there is one to
|
|
3
|
-
*
|
|
4
|
-
* `lg` for the memo and sidebar reviewer); the image is requested at `width`
|
|
2
|
+
* `certrev-reader-face`: the round avatar on a reader byline: the person's photo when there is one to paint, else their
|
|
3
|
+
* initials, else (a person with no name to take them from) the silhouette. The span carries a size class (`sm` for the
|
|
4
|
+
* author, none for the banner reviewer, `lg` for the memo and sidebar reviewer); the image is requested at `width`
|
|
5
|
+
* square through the asset resizer.
|
|
6
|
+
*
|
|
7
|
+
* THE INITIALS ARE A BYTE SPEC the portal's Liquid snippets and the WordPress renderer repeat, so all three print the
|
|
8
|
+
* same bytes: trim the name and split it on single spaces (`' '`) SKIPPING empty parts (two spaces in a row are one
|
|
9
|
+
* gap: "Jane Doe" gives "JD"); drop the FIRST part when, lowercased, it is one of the honorifics dr, mr, mrs, ms,
|
|
10
|
+
* prof, mx (each with or without its trailing dot); take the first character, by code point, of each of the first two
|
|
11
|
+
* parts left; uppercase them. Non-empty initials paint exactly
|
|
12
|
+
* `<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><text x="20" y="20" text-anchor="middle"
|
|
13
|
+
* dominant-baseline="central" font-size="15" font-weight="700">JD</text></svg>` (one line, the initials escaped);
|
|
14
|
+
* empty ones paint the silhouette as before.
|
|
15
|
+
*
|
|
16
|
+
* "A photo to paint" is `show` with a URL that passes `safeUrl`. A def that hides `reviewerPhoto`, or
|
|
17
|
+
* `display.showExpertPhoto: false`, passes `show: false`: the URL is never read, so it never reaches the page, and the
|
|
18
|
+
* avatar is the initials (a hidden photo used to remove the avatar altogether; it removes the photo now).
|
|
5
19
|
*/
|
|
20
|
+
import { asText } from '../components/escape.js';
|
|
6
21
|
import { avatarUrl, cleaned, esc, safeUrl } from './helpers.js';
|
|
7
22
|
const SILHOUETTE = '<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><circle cx="20" cy="14.8" r="7"/><path d="M20 23.4c-6.9 0-12.6 4.8-13.8 11.2a20 20 0 0 0 27.6 0C32.6 28.2 26.9 23.4 20 23.4Z"/></svg>';
|
|
23
|
+
const HONORIFICS = new Set([
|
|
24
|
+
'dr',
|
|
25
|
+
'dr.',
|
|
26
|
+
'mr',
|
|
27
|
+
'mr.',
|
|
28
|
+
'mrs',
|
|
29
|
+
'mrs.',
|
|
30
|
+
'ms',
|
|
31
|
+
'ms.',
|
|
32
|
+
'prof',
|
|
33
|
+
'prof.',
|
|
34
|
+
'mx',
|
|
35
|
+
'mx.',
|
|
36
|
+
]);
|
|
37
|
+
/** The initials of a display name by the spec above: '' when the name leaves no first character to take. */
|
|
38
|
+
export function initialsOf(name) {
|
|
39
|
+
const parts = asText(name)
|
|
40
|
+
.trim()
|
|
41
|
+
.split(' ')
|
|
42
|
+
.filter((part) => part !== '');
|
|
43
|
+
if (HONORIFICS.has((parts[0] ?? '').toLowerCase()))
|
|
44
|
+
parts.shift();
|
|
45
|
+
return parts
|
|
46
|
+
.slice(0, 2)
|
|
47
|
+
.map((part) => Array.from(part)[0] ?? '')
|
|
48
|
+
.join('')
|
|
49
|
+
.toUpperCase();
|
|
50
|
+
}
|
|
51
|
+
const initialsSvg = (initials) => '<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><text x="20" y="20" text-anchor="middle" ' +
|
|
52
|
+
`dominant-baseline="central" font-size="15" font-weight="700">${esc(initials)}</text></svg>`;
|
|
8
53
|
const DIMENSION = { '': 42, sm: 36, lg: 46 };
|
|
9
|
-
export function readerFace({ photo, show, size, width }) {
|
|
54
|
+
export function readerFace({ photo, show, name, size, width }) {
|
|
10
55
|
const safe = show ? cleaned(safeUrl(photo)) : '';
|
|
11
56
|
const src = cleaned(avatarUrl(safe, width));
|
|
12
57
|
const dim = DIMENSION[size];
|
|
13
58
|
const cls = size === '' ? 'certrev-r-face' : `certrev-r-face ${esc(size)}`;
|
|
59
|
+
const initials = src !== '' ? '' : initialsOf(name);
|
|
14
60
|
const inner = src !== ''
|
|
15
61
|
? `<img src="${esc(src)}" alt="" width="${dim}" height="${dim}" loading="lazy" decoding="async">`
|
|
16
|
-
:
|
|
62
|
+
: initials !== ''
|
|
63
|
+
? initialsSvg(initials)
|
|
64
|
+
: SILHOUETTE;
|
|
17
65
|
return `<span class="${cls}">${inner}</span>`;
|
|
18
66
|
}
|
|
19
67
|
//# sourceMappingURL=face.js.map
|
package/dist/reader/face.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face.js","sourceRoot":"","sources":["../../src/reader/face.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"face.js","sourceRoot":"","sources":["../../src/reader/face.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAgB/D,MAAM,UAAU,GACf,qMAAqM,CAAA;AAEtM,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC;IAC/C,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,MAAM;IACN,OAAO;IACP,IAAI;IACJ,KAAK;CACL,CAAC,CAAA;AAEF,4GAA4G;AAC5G,MAAM,UAAU,UAAU,CAAC,IAAa;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;SACxB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;IAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAAE,KAAK,CAAC,KAAK,EAAE,CAAA;IACjE,OAAO,KAAK;SACV,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACxC,IAAI,CAAC,EAAE,CAAC;SACR,WAAW,EAAE,CAAA;AAChB,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAU,EAAE,CAChD,yGAAyG;IACzG,gEAAgE,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAA;AAE7F,MAAM,SAAS,GAA6C,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;AAEtF,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAmB;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;IAC1E,MAAM,QAAQ,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,KAAK,GACV,GAAG,KAAK,EAAE;QACT,CAAC,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,mBAAmB,GAAG,aAAa,GAAG,oCAAoC;QACjG,CAAC,CAAC,QAAQ,KAAK,EAAE;YAChB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,UAAU,CAAA;IACf,OAAO,gBAAgB,GAAG,KAAK,KAAK,SAAS,CAAA;AAC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/reader/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/reader/render.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAmBxD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;AAE5D,wHAAwH;AACxH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEnD,MAAM,WAAW,eAAe;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;IAC7B,sGAAsG;IACtG,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,2GAA2G;IAC3G,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,8FAA8F;IAC9F,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAC/B;AA+PD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAQ/D"}
|
package/dist/reader/render.js
CHANGED
|
@@ -27,8 +27,10 @@
|
|
|
27
27
|
* sentence is direct text of the scope element, which carries `data-ftc-line` itself (after the cue's " · " there
|
|
28
28
|
* is a `<!-- -->`, so the cue separator and the sentence are two text nodes). The `<!-- -->` marks between
|
|
29
29
|
* adjacent leaves are React's, kept so the bytes equal the Liquid snippets' and the portal's goldens;
|
|
30
|
-
* - the
|
|
31
|
-
* silhouette
|
|
30
|
+
* - the avatars: a photo when there is one to paint, else the person's initials (`face.ts` is the byte spec), else the
|
|
31
|
+
* silhouette for a name with none. The def's `hidden` set holding `reviewerPhoto`, and `display.showExpertPhoto ===
|
|
32
|
+
* false`, keep the photo URL out of the page entirely (the avatar is the initials); neither removes the avatar.
|
|
33
|
+
* `display.showAuthor === false` drops the author column.
|
|
32
34
|
*
|
|
33
35
|
* Every interpolated field is escaped and every URL passes `safeUrl`. A hostile type (a number, an object) renders as
|
|
34
36
|
* nothing, never as a throw: see `helpers.ts`.
|
|
@@ -46,8 +48,7 @@ function readFacts(input) {
|
|
|
46
48
|
const disp = rec(content.display);
|
|
47
49
|
const def = input.def;
|
|
48
50
|
const rd = rec(def);
|
|
49
|
-
const
|
|
50
|
-
const showPhoto = disp.showExpertPhoto !== false && !hideAvatar;
|
|
51
|
+
const showPhoto = disp.showExpertPhoto !== false && !contains(rd.hidden, 'reviewerPhoto');
|
|
51
52
|
// POR-9738: each credential's cardLabel over its bare abbreviation, joined with ', ' (labels are not trimmed).
|
|
52
53
|
const labels = [];
|
|
53
54
|
if (Array.isArray(expert.credentials)) {
|
|
@@ -67,7 +68,6 @@ function readFacts(input) {
|
|
|
67
68
|
def,
|
|
68
69
|
certId: asText(input.certId),
|
|
69
70
|
ename: textOr(expert.displayName),
|
|
70
|
-
hideAvatar,
|
|
71
71
|
showPhoto,
|
|
72
72
|
creds: labels.join(', '),
|
|
73
73
|
hasCue,
|
|
@@ -144,12 +144,12 @@ function bannerCard(f) {
|
|
|
144
144
|
const authorName = textOr(author.name);
|
|
145
145
|
const authorTitle = textOr(author.title);
|
|
146
146
|
const hasAuthor = f.disp.showAuthor !== false && authorName !== '' && authorName !== f.ename;
|
|
147
|
-
const avatar = (photo, size) =>
|
|
147
|
+
const avatar = (photo, name, size) => readerFace({ photo, show: f.showPhoto, name, size, width: 84 });
|
|
148
148
|
const authorBy = hasAuthor
|
|
149
|
-
? `<div class="certrev-r-by">${avatar(author.photoUrl, 'sm')}<div>\n <b>${esc(authorName)}</b>` +
|
|
149
|
+
? `<div class="certrev-r-by">${avatar(author.photoUrl, authorName, 'sm')}<div>\n <b>${esc(authorName)}</b>` +
|
|
150
150
|
`${authorTitle !== '' ? `<em>${esc(authorTitle)}</em>` : ''}<span class="certrev-r-role">Written by</span>\n </div>\n </div>`
|
|
151
151
|
: '';
|
|
152
|
-
const expertBy = `<div class="certrev-r-by">${avatar(f.expert.photoUrl, '')}<div>\n <b>${esc(f.ename)}</b>` +
|
|
152
|
+
const expertBy = `<div class="certrev-r-by">${avatar(f.expert.photoUrl, f.ename, '')}<div>\n <b>${esc(f.ename)}</b>` +
|
|
153
153
|
`${verifiedLine(f, true)}<span class="certrev-r-role on">Reviewed by</span>\n </div>\n </div>`;
|
|
154
154
|
const certifiedAt = f.content.certifiedAt;
|
|
155
155
|
const certified = isBlank(certifiedAt) ? '' : cleaned(longDate(certifiedAt));
|
|
@@ -196,7 +196,7 @@ function bannerMemo(f) {
|
|
|
196
196
|
(f.vurl !== '' ? anchor(f.vurl, '', 'View certificate') : '') +
|
|
197
197
|
'</div>'
|
|
198
198
|
: '';
|
|
199
|
-
const avatar =
|
|
199
|
+
const avatar = readerFace({ photo: f.expert.photoUrl, show: f.showPhoto, name: f.ename, size: 'lg', width: 112 });
|
|
200
200
|
return (`${sectionOpen(f, false, `Expert memo by ${f.ename}`)}\n <div class="certrev-r-card pad">\n` +
|
|
201
201
|
' <div class="certrev-r-kick">Expert memo</div>\n' +
|
|
202
202
|
` <div class="certrev-r-memo">${avatar}<div>\n` +
|
|
@@ -213,7 +213,7 @@ function sidebar(f) {
|
|
|
213
213
|
if (f.ename === '')
|
|
214
214
|
return '';
|
|
215
215
|
const bio = f.disp.showBio !== false && !isBlank(f.expert.bio) ? asText(f.expert.bio) : '';
|
|
216
|
-
const avatar =
|
|
216
|
+
const avatar = readerFace({ photo: f.expert.photoUrl, show: f.showPhoto, name: f.ename, size: 'lg', width: 112 });
|
|
217
217
|
const both = f.purl !== '' && f.vurl !== '';
|
|
218
218
|
const links = f.purl !== '' || f.vurl !== ''
|
|
219
219
|
? `<div class="certrev-r-side-links${both ? '' : ' single'}">` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/reader/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/reader/render.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@certrev/cert-block",
|
|
3
|
-
"version": "1.2.0-canary.
|
|
3
|
+
"version": "1.2.0-canary.7",
|
|
4
4
|
"description": "Headless render edge for the CertREV CertDeliveryEnvelope: SSR-safe React cert components, a framework-agnostic <certrev-badge> Web Component, a schema.org JSON-LD projector, and a fail-closed verify layer over the shared VerdictKernel.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -154,6 +154,36 @@ function suspendOn(key: string, start: () => Promise<VerifiedDelivery>): Verifie
|
|
|
154
154
|
throw pending
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
+
/**
|
|
158
|
+
* 1.2.0-canary.6: the reader sidebar card is a right float that the article's copy flows around, as it does on a
|
|
159
|
+
* WordPress or Shopify page. On a Builder page the card sits in its own block, a flex item of the flex column that holds
|
|
160
|
+
* the page's blocks, and a flex item is a formatting context of its own: it contains the float, so the block spans the
|
|
161
|
+
* whole column at the aside's height and no copy can sit beside the aside. These rules let the float out of its block,
|
|
162
|
+
* and only there: in a column that holds a reader SIDEBAR card, at the widths where the sidebar floats (above the reader
|
|
163
|
+
* CSS's own 820px breakpoint, below which it stacks as a plain block), the column lays its blocks out as blocks and
|
|
164
|
+
* still contains the float (`flow-root`), and the card's block and the face's wrapper become plain blocks, so they take
|
|
165
|
+
* no height and the aside is the box the copy flows around. A column with no reader sidebar, the stacked widths, and a
|
|
166
|
+
* browser with no `:has()` keep exactly what they had.
|
|
167
|
+
*/
|
|
168
|
+
export const BUILDER_SIDEBAR_FLOW_CSS =
|
|
169
|
+
'@media not all and (max-width: 820px){' +
|
|
170
|
+
'.builder-blocks:has(> .builder-block > [data-certrev-face="reader"] > .certrev-reader > .certrev-r-side){display:flow-root !important}' +
|
|
171
|
+
'.builder-blocks > .builder-block:has(> [data-certrev-face="reader"] > .certrev-reader > .certrev-r-side){display:block !important}' +
|
|
172
|
+
'.builder-blocks > .builder-block > [data-certrev-face="reader"]:has(> .certrev-reader > .certrev-r-side){display:block !important}' +
|
|
173
|
+
'}'
|
|
174
|
+
|
|
175
|
+
/** A reader face, with the sidebar flow rules beside it (`BUILDER_SIDEBAR_FLOW_CSS`); any other face, as it is. */
|
|
176
|
+
function withSidebarFlow(reader: boolean | undefined, face: React.ReactElement): React.ReactElement {
|
|
177
|
+
if (!reader) return face
|
|
178
|
+
return (
|
|
179
|
+
<>
|
|
180
|
+
{face}
|
|
181
|
+
{/* biome-ignore lint/security/noDangerouslySetInnerHtml: a package constant; React would escape the `>` and `"` of its selectors */}
|
|
182
|
+
<style data-certrev-builder-flow="" dangerouslySetInnerHTML={{ __html: BUILDER_SIDEBAR_FLOW_CSS }} />
|
|
183
|
+
</>
|
|
184
|
+
)
|
|
185
|
+
}
|
|
186
|
+
|
|
157
187
|
/**
|
|
158
188
|
* The painted envelope face, with the phone memo toggle bound. One native click listener on the
|
|
159
189
|
* wrapper (delegated, so it survives a re-render of the HTML) flips the memo box the button sits
|
|
@@ -161,10 +191,12 @@ function suspendOn(key: string, start: () => Promise<VerifiedDelivery>): Verifie
|
|
|
161
191
|
* server HTML is the collapsed face, which is also what a reader without JS keeps (the whole memo
|
|
162
192
|
* is still in the text for a screen reader, and the desktop never clamps it).
|
|
163
193
|
*
|
|
164
|
-
* `reader` (1.2.0) is true ONLY for a def whose `face` is `'reader'`; it adds
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* wrapper
|
|
194
|
+
* `reader` (1.2.0) is true ONLY for a def whose `face` is `'reader'`; it adds three things and nothing to any other
|
|
195
|
+
* face: `data-certrev-face="reader"` and `display: flow-root` on the wrapper, and (1.2.0-canary.6) the sidebar flow
|
|
196
|
+
* rules beside it (`BUILDER_SIDEBAR_FLOW_CSS`). The reader sidebar card is a right float. On a Shopify page the
|
|
197
|
+
* placement script and its wrapper contain it. On a Builder page the wrapper contains it wherever the flow rules do not
|
|
198
|
+
* apply (the reader CSS's stacked widths, a browser with no `:has()`); where they do, the float leaves its block and
|
|
199
|
+
* the page's copy flows beside it.
|
|
168
200
|
*/
|
|
169
201
|
function EnvelopeFace(props: {
|
|
170
202
|
readonly html: string
|
|
@@ -182,7 +214,8 @@ function EnvelopeFace(props: {
|
|
|
182
214
|
el.addEventListener('click', onClick)
|
|
183
215
|
return () => el.removeEventListener('click', onClick)
|
|
184
216
|
}, [])
|
|
185
|
-
return (
|
|
217
|
+
return withSidebarFlow(
|
|
218
|
+
props.reader,
|
|
186
219
|
<div
|
|
187
220
|
ref={ref}
|
|
188
221
|
data-certrev-cert-chrome=""
|
|
@@ -194,7 +227,7 @@ function EnvelopeFace(props: {
|
|
|
194
227
|
{...(props.reader ? { 'data-certrev-face': 'reader', style: { display: 'flow-root' } } : {})}
|
|
195
228
|
// biome-ignore lint/security/noDangerouslySetInnerHtml: renderCertBlock is the escaping-safe SSR string renderer
|
|
196
229
|
dangerouslySetInnerHTML={{ __html: props.html }}
|
|
197
|
-
|
|
230
|
+
/>,
|
|
198
231
|
)
|
|
199
232
|
}
|
|
200
233
|
|
package/src/reader/face.ts
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `certrev-reader-face`: the round avatar on a reader byline: the person's photo when there is one to
|
|
3
|
-
*
|
|
4
|
-
* `lg` for the memo and sidebar reviewer); the image is requested at `width`
|
|
2
|
+
* `certrev-reader-face`: the round avatar on a reader byline: the person's photo when there is one to paint, else their
|
|
3
|
+
* initials, else (a person with no name to take them from) the silhouette. The span carries a size class (`sm` for the
|
|
4
|
+
* author, none for the banner reviewer, `lg` for the memo and sidebar reviewer); the image is requested at `width`
|
|
5
|
+
* square through the asset resizer.
|
|
6
|
+
*
|
|
7
|
+
* THE INITIALS ARE A BYTE SPEC the portal's Liquid snippets and the WordPress renderer repeat, so all three print the
|
|
8
|
+
* same bytes: trim the name and split it on single spaces (`' '`) SKIPPING empty parts (two spaces in a row are one
|
|
9
|
+
* gap: "Jane Doe" gives "JD"); drop the FIRST part when, lowercased, it is one of the honorifics dr, mr, mrs, ms,
|
|
10
|
+
* prof, mx (each with or without its trailing dot); take the first character, by code point, of each of the first two
|
|
11
|
+
* parts left; uppercase them. Non-empty initials paint exactly
|
|
12
|
+
* `<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><text x="20" y="20" text-anchor="middle"
|
|
13
|
+
* dominant-baseline="central" font-size="15" font-weight="700">JD</text></svg>` (one line, the initials escaped);
|
|
14
|
+
* empty ones paint the silhouette as before.
|
|
15
|
+
*
|
|
16
|
+
* "A photo to paint" is `show` with a URL that passes `safeUrl`. A def that hides `reviewerPhoto`, or
|
|
17
|
+
* `display.showExpertPhoto: false`, passes `show: false`: the URL is never read, so it never reaches the page, and the
|
|
18
|
+
* avatar is the initials (a hidden photo used to remove the avatar altogether; it removes the photo now).
|
|
5
19
|
*/
|
|
20
|
+
import { asText } from '../components/escape.js'
|
|
6
21
|
import { avatarUrl, cleaned, esc, safeUrl } from './helpers.js'
|
|
7
22
|
|
|
8
23
|
export type ReaderFaceSize = '' | 'sm' | 'lg'
|
|
@@ -10,8 +25,10 @@ export type ReaderFaceSize = '' | 'sm' | 'lg'
|
|
|
10
25
|
export interface ReaderFaceInput {
|
|
11
26
|
/** The photo URL on the envelope. */
|
|
12
27
|
readonly photo: unknown
|
|
13
|
-
/** Whether to ATTEMPT the photo: false never reads the URL (the
|
|
28
|
+
/** Whether to ATTEMPT the photo: false never reads the URL (the initials show). */
|
|
14
29
|
readonly show: boolean
|
|
30
|
+
/** The person's display name, the initials' source; a hostile type reads as no name. */
|
|
31
|
+
readonly name: unknown
|
|
15
32
|
readonly size: ReaderFaceSize
|
|
16
33
|
/** The pixel width the resizer is asked for. */
|
|
17
34
|
readonly width: number
|
|
@@ -20,16 +37,52 @@ export interface ReaderFaceInput {
|
|
|
20
37
|
const SILHOUETTE =
|
|
21
38
|
'<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><circle cx="20" cy="14.8" r="7"/><path d="M20 23.4c-6.9 0-12.6 4.8-13.8 11.2a20 20 0 0 0 27.6 0C32.6 28.2 26.9 23.4 20 23.4Z"/></svg>'
|
|
22
39
|
|
|
40
|
+
const HONORIFICS: ReadonlySet<string> = new Set([
|
|
41
|
+
'dr',
|
|
42
|
+
'dr.',
|
|
43
|
+
'mr',
|
|
44
|
+
'mr.',
|
|
45
|
+
'mrs',
|
|
46
|
+
'mrs.',
|
|
47
|
+
'ms',
|
|
48
|
+
'ms.',
|
|
49
|
+
'prof',
|
|
50
|
+
'prof.',
|
|
51
|
+
'mx',
|
|
52
|
+
'mx.',
|
|
53
|
+
])
|
|
54
|
+
|
|
55
|
+
/** The initials of a display name by the spec above: '' when the name leaves no first character to take. */
|
|
56
|
+
export function initialsOf(name: unknown): string {
|
|
57
|
+
const parts = asText(name)
|
|
58
|
+
.trim()
|
|
59
|
+
.split(' ')
|
|
60
|
+
.filter((part) => part !== '')
|
|
61
|
+
if (HONORIFICS.has((parts[0] ?? '').toLowerCase())) parts.shift()
|
|
62
|
+
return parts
|
|
63
|
+
.slice(0, 2)
|
|
64
|
+
.map((part) => Array.from(part)[0] ?? '')
|
|
65
|
+
.join('')
|
|
66
|
+
.toUpperCase()
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const initialsSvg = (initials: string): string =>
|
|
70
|
+
'<svg viewBox="0 0 40 40" aria-hidden="true" focusable="false"><text x="20" y="20" text-anchor="middle" ' +
|
|
71
|
+
`dominant-baseline="central" font-size="15" font-weight="700">${esc(initials)}</text></svg>`
|
|
72
|
+
|
|
23
73
|
const DIMENSION: Readonly<Record<ReaderFaceSize, number>> = { '': 42, sm: 36, lg: 46 }
|
|
24
74
|
|
|
25
|
-
export function readerFace({ photo, show, size, width }: ReaderFaceInput): string {
|
|
75
|
+
export function readerFace({ photo, show, name, size, width }: ReaderFaceInput): string {
|
|
26
76
|
const safe = show ? cleaned(safeUrl(photo)) : ''
|
|
27
77
|
const src = cleaned(avatarUrl(safe, width))
|
|
28
78
|
const dim = DIMENSION[size]
|
|
29
79
|
const cls = size === '' ? 'certrev-r-face' : `certrev-r-face ${esc(size)}`
|
|
80
|
+
const initials = src !== '' ? '' : initialsOf(name)
|
|
30
81
|
const inner =
|
|
31
82
|
src !== ''
|
|
32
83
|
? `<img src="${esc(src)}" alt="" width="${dim}" height="${dim}" loading="lazy" decoding="async">`
|
|
33
|
-
:
|
|
84
|
+
: initials !== ''
|
|
85
|
+
? initialsSvg(initials)
|
|
86
|
+
: SILHOUETTE
|
|
34
87
|
return `<span class="${cls}">${inner}</span>`
|
|
35
88
|
}
|
package/src/reader/render.ts
CHANGED
|
@@ -27,8 +27,10 @@
|
|
|
27
27
|
* sentence is direct text of the scope element, which carries `data-ftc-line` itself (after the cue's " · " there
|
|
28
28
|
* is a `<!-- -->`, so the cue separator and the sentence are two text nodes). The `<!-- -->` marks between
|
|
29
29
|
* adjacent leaves are React's, kept so the bytes equal the Liquid snippets' and the portal's goldens;
|
|
30
|
-
* - the
|
|
31
|
-
* silhouette
|
|
30
|
+
* - the avatars: a photo when there is one to paint, else the person's initials (`face.ts` is the byte spec), else the
|
|
31
|
+
* silhouette for a name with none. The def's `hidden` set holding `reviewerPhoto`, and `display.showExpertPhoto ===
|
|
32
|
+
* false`, keep the photo URL out of the page entirely (the avatar is the initials); neither removes the avatar.
|
|
33
|
+
* `display.showAuthor === false` drops the author column.
|
|
32
34
|
*
|
|
33
35
|
* Every interpolated field is escaped and every URL passes `safeUrl`. A hostile type (a number, an object) renders as
|
|
34
36
|
* nothing, never as a throw: see `helpers.ts`.
|
|
@@ -90,7 +92,7 @@ interface Facts {
|
|
|
90
92
|
readonly def: unknown
|
|
91
93
|
readonly certId: string
|
|
92
94
|
readonly ename: string
|
|
93
|
-
|
|
95
|
+
/** Whether a photo may be painted: neither `reviewerPhoto` hidden nor `showExpertPhoto: false`. */
|
|
94
96
|
readonly showPhoto: boolean
|
|
95
97
|
/** The joined credential labels, '' when there are none. */
|
|
96
98
|
readonly creds: string
|
|
@@ -110,8 +112,7 @@ function readFacts(input: ReaderFaceInput): Facts {
|
|
|
110
112
|
const def = input.def
|
|
111
113
|
const rd = rec(def)
|
|
112
114
|
|
|
113
|
-
const
|
|
114
|
-
const showPhoto = disp.showExpertPhoto !== false && !hideAvatar
|
|
115
|
+
const showPhoto = disp.showExpertPhoto !== false && !contains(rd.hidden, 'reviewerPhoto')
|
|
115
116
|
|
|
116
117
|
// POR-9738: each credential's cardLabel over its bare abbreviation, joined with ', ' (labels are not trimmed).
|
|
117
118
|
const labels: string[] = []
|
|
@@ -132,7 +133,6 @@ function readFacts(input: ReaderFaceInput): Facts {
|
|
|
132
133
|
def,
|
|
133
134
|
certId: asText(input.certId),
|
|
134
135
|
ename: textOr(expert.displayName),
|
|
135
|
-
hideAvatar,
|
|
136
136
|
showPhoto,
|
|
137
137
|
creds: labels.join(', '),
|
|
138
138
|
hasCue,
|
|
@@ -216,15 +216,15 @@ function bannerCard(f: Facts): string {
|
|
|
216
216
|
const authorName = textOr(author.name)
|
|
217
217
|
const authorTitle = textOr(author.title)
|
|
218
218
|
const hasAuthor = f.disp.showAuthor !== false && authorName !== '' && authorName !== f.ename
|
|
219
|
-
const avatar = (photo: unknown, size: 'sm' | ''): string =>
|
|
220
|
-
|
|
219
|
+
const avatar = (photo: unknown, name: string, size: 'sm' | ''): string =>
|
|
220
|
+
readerFace({ photo, show: f.showPhoto, name, size, width: 84 })
|
|
221
221
|
|
|
222
222
|
const authorBy = hasAuthor
|
|
223
|
-
? `<div class="certrev-r-by">${avatar(author.photoUrl, 'sm')}<div>\n <b>${esc(authorName)}</b>` +
|
|
223
|
+
? `<div class="certrev-r-by">${avatar(author.photoUrl, authorName, 'sm')}<div>\n <b>${esc(authorName)}</b>` +
|
|
224
224
|
`${authorTitle !== '' ? `<em>${esc(authorTitle)}</em>` : ''}<span class="certrev-r-role">Written by</span>\n </div>\n </div>`
|
|
225
225
|
: ''
|
|
226
226
|
const expertBy =
|
|
227
|
-
`<div class="certrev-r-by">${avatar(f.expert.photoUrl, '')}<div>\n <b>${esc(f.ename)}</b>` +
|
|
227
|
+
`<div class="certrev-r-by">${avatar(f.expert.photoUrl, f.ename, '')}<div>\n <b>${esc(f.ename)}</b>` +
|
|
228
228
|
`${verifiedLine(f, true)}<span class="certrev-r-role on">Reviewed by</span>\n </div>\n </div>`
|
|
229
229
|
|
|
230
230
|
const certifiedAt = f.content.certifiedAt
|
|
@@ -279,7 +279,7 @@ function bannerMemo(f: Facts): string {
|
|
|
279
279
|
(f.vurl !== '' ? anchor(f.vurl, '', 'View certificate') : '') +
|
|
280
280
|
'</div>'
|
|
281
281
|
: ''
|
|
282
|
-
const avatar =
|
|
282
|
+
const avatar = readerFace({ photo: f.expert.photoUrl, show: f.showPhoto, name: f.ename, size: 'lg', width: 112 })
|
|
283
283
|
return (
|
|
284
284
|
`${sectionOpen(f, false, `Expert memo by ${f.ename}`)}\n <div class="certrev-r-card pad">\n` +
|
|
285
285
|
' <div class="certrev-r-kick">Expert memo</div>\n' +
|
|
@@ -299,7 +299,7 @@ function bannerMemo(f: Facts): string {
|
|
|
299
299
|
function sidebar(f: Facts): string {
|
|
300
300
|
if (f.ename === '') return ''
|
|
301
301
|
const bio = f.disp.showBio !== false && !isBlank(f.expert.bio) ? asText(f.expert.bio) : ''
|
|
302
|
-
const avatar =
|
|
302
|
+
const avatar = readerFace({ photo: f.expert.photoUrl, show: f.showPhoto, name: f.ename, size: 'lg', width: 112 })
|
|
303
303
|
const both = f.purl !== '' && f.vurl !== ''
|
|
304
304
|
const links =
|
|
305
305
|
f.purl !== '' || f.vurl !== ''
|