@sarimarcus/content-sites-ui 0.42.0 → 0.42.1
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
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
All packages in the platform release in lockstep; entries are per release version.
|
|
4
4
|
|
|
5
|
+
## 0.42.1 (2026-10-21)
|
|
6
|
+
|
|
7
|
+
- `composed`: `EntityCard` gains `footerDivider` (default `true`, the hairline above the footer row); every existing caller renders identically. `editorial`: `PersonCard` and the featured full-story card of `PersonPage` pass `false`, so the divider above the CTA is gone on person cards (SLA-3303).
|
|
8
|
+
|
|
5
9
|
## 0.42.0 (2026-10-21)
|
|
6
10
|
|
|
7
11
|
- `editorial`: `PersonPage` is rebuilt biography first: a `ContentHero` (warm, editorial overlay, short) with the role badges and `EraChip` in its badges slot, a lifespan line ("Lived c. 1138–1204 (about 66 years)", or "Born"/"Died" with one known year) and a monogram panel when there is no image; a key-facts strip (aliases, optional `contextFact`); the bio with a lead first paragraph at a 65ch measure; a `TableOfContents` only past four bio paragraphs; a featured full-story card (`fullStory.title`, else the old link line); places to see; the era timeline; then read more, capped at `readMoreLimit` (default 4). New optional props: `birthYear`, `deathYear`, `circa`, `lifespan`, `aliases`, `aliasesLabel`, `contextFact`, `monogram`, `fullStoryHeading`, `readMoreLimit`, `tocLabels`; `fullStory` gains `title`, `summary`, `image`, `fallbackSrc`, `imageAlt`. `PersonCard` gains `knownFor` (replaces the description line), `eraLabel` and a monogram tile when there is no image. New `monogram()` helper, internal `PersonSection` and `CardPlaceholder`; `RoleBadge` and `EraChip` gain `onImage`. `composed`: `QuickFacts` gains `variant="strip"`, an optional `icon` and `pagefindIgnore`; its other variants render identically. `layout`: `ContentHero` gains `monogram`, a dark panel with the initials when no image is set; existing heroes render identically. Copy defaults in `LABELS.personPage` (`lifespan`, `born`, `died`, `alsoKnownAs`, `fullStoryHeading`, `tocLabels`) (SLA-3290).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sarimarcus/content-sites-ui",
|
|
3
|
-
"version": "0.42.
|
|
3
|
+
"version": "0.42.1",
|
|
4
4
|
"description": "Universal Astro UI components, layout shell and design tokens shared by the content sites.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -50,6 +50,6 @@
|
|
|
50
50
|
"@lucide/astro": "^1.23.0",
|
|
51
51
|
"astro": "^7.0.6",
|
|
52
52
|
"tailwindcss": "^4.1.18",
|
|
53
|
-
"@sarimarcus/content-sites-core": "0.42.
|
|
53
|
+
"@sarimarcus/content-sites-core": "0.42.1"
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* tone — 'primary' or 'accent': the article border and the focus ring.
|
|
18
18
|
* footer — false drops the footer row (a card whose CTA ends its body).
|
|
19
19
|
* footerJustify — 'between' (meta start, CTA end) or 'end' (CTA only).
|
|
20
|
+
* footerDivider — false drops the hairline above the footer row.
|
|
20
21
|
* Without `image`, `fallbackSrc` renders an <img>; without that too, the `fallback` slot renders (nothing if absent).
|
|
21
22
|
* Under prefers-reduced-motion the hover zoom is cancelled.
|
|
22
23
|
*
|
|
@@ -48,6 +49,7 @@ interface Props {
|
|
|
48
49
|
tone?: 'primary' | 'accent';
|
|
49
50
|
footer?: boolean;
|
|
50
51
|
footerJustify?: 'between' | 'end';
|
|
52
|
+
footerDivider?: boolean;
|
|
51
53
|
class?: string;
|
|
52
54
|
}
|
|
53
55
|
|
|
@@ -64,6 +66,7 @@ const {
|
|
|
64
66
|
tone = 'primary',
|
|
65
67
|
footer = true,
|
|
66
68
|
footerJustify = 'between',
|
|
69
|
+
footerDivider = true,
|
|
67
70
|
class: className,
|
|
68
71
|
} = Astro.props;
|
|
69
72
|
|
|
@@ -81,9 +84,10 @@ const linkClass = poster
|
|
|
81
84
|
const mediaClass = `relative ${media} overflow-hidden img-placeholder shrink-0`;
|
|
82
85
|
const contentClass = poster ? 'p-4 sm:p-5 flex flex-col flex-1' : 'flex-1 p-4 sm:p-5 flex flex-col';
|
|
83
86
|
const justify = footerJustify === 'end' ? 'justify-end' : 'justify-between';
|
|
87
|
+
const divider = footerDivider ? ' border-t border-border' : '';
|
|
84
88
|
const footerClass = poster
|
|
85
|
-
? `flex items-center ${justify} pt-3
|
|
86
|
-
: `flex items-center ${justify} pt-3
|
|
89
|
+
? `flex items-center ${justify} pt-3${divider} mt-auto`
|
|
90
|
+
: `flex items-center ${justify} pt-3${divider}`;
|
|
87
91
|
// motion-reduce:group-hover:scale-100 has group-hover:scale-105's specificity and compiles after it, so it wins.
|
|
88
92
|
const imgClass = 'w-full h-full object-cover transition-transform duration-500 group-hover:scale-105 motion-reduce:group-hover:scale-100';
|
|
89
93
|
const loading = index < eager ? 'eager' : 'lazy';
|
|
@@ -240,6 +240,7 @@ const heroMonogram = image || fallbackSrc ? undefined : (monogram ?? initialsOf(
|
|
|
240
240
|
fallbackSrc={fullStory.fallbackSrc}
|
|
241
241
|
imageAlt={fullStory.imageAlt ?? fullStory.title ?? ''}
|
|
242
242
|
footerJustify="end"
|
|
243
|
+
footerDivider={false}
|
|
243
244
|
>
|
|
244
245
|
<CardPlaceholder slot="fallback"><Icon name="book-open" class="size-10 text-primary/70" /></CardPlaceholder>
|
|
245
246
|
<h3 class="text-xl font-display font-semibold text-foreground">{fullStory.title}</h3>
|