Skip to content

Commit 1506192

Browse files
wip v26
1 parent 3fe7e93 commit 1506192

3 files changed

Lines changed: 31 additions & 8 deletions

File tree

uapi/app/(root)/components/landing/MarketingLandingGuideCard.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,25 @@ function renderMicroBlogBody(body: string, highlights: readonly string[]) {
2727
});
2828
}
2929

30+
function renderMicroBlogMeta(meta: string) {
31+
const parts = meta.split(/\s+\*\s+|\s+\s+/);
32+
if (parts.length !== 2) return <span>{meta}</span>;
33+
34+
return (
35+
<span aria-hidden="true" className="inline-flex items-center gap-2.5">
36+
<span>{parts[0]}</span>
37+
<span
38+
className="mt-px size-1 rounded-full"
39+
style={{
40+
backgroundColor: 'rgba(255,255,255,0.88)',
41+
boxShadow: '0 0 10px rgba(255,255,255,0.32), 0 0 16px rgba(101,254,183,0.35)',
42+
}}
43+
/>
44+
<span>{parts[1]}</span>
45+
</span>
46+
);
47+
}
48+
3049
export const MarketingLandingGuideCard = memo(function MarketingLandingGuideCard() {
3150
const posts = BITCODE_PUBLIC_COPY.guide.posts;
3251
const [activePostId, setActivePostId] = useState<string>(posts[0].id);
@@ -71,8 +90,12 @@ export const MarketingLandingGuideCard = memo(function MarketingLandingGuideCard
7190
{activePost.title}
7291
</p>
7392
</div>
74-
<div className="mt-3 inline-flex max-w-full flex-wrap items-center gap-2 rounded-full border border-emerald-300/10 bg-emerald-400/[0.05] px-2.5 py-1 text-[9px] uppercase leading-4 tracking-[0.18em] text-emerald-100/58 phone:text-[10px] laptop:mt-0 laptop:justify-self-start">
75-
<span>{activePost.meta}</span>
93+
<div
94+
aria-label={activePost.meta}
95+
data-testid="micro-blog-meta"
96+
className="mt-3 inline-flex max-w-full flex-wrap items-center rounded-full border border-emerald-300/10 bg-emerald-400/[0.05] px-2.5 py-1 text-[9px] uppercase leading-4 tracking-[0.18em] text-emerald-100/58 phone:text-[10px] laptop:mt-0 laptop:justify-self-start"
97+
>
98+
{renderMicroBlogMeta(activePost.meta)}
7699
</div>
77100
</div>
78101

uapi/components/base/bitcode/layout/bitcode-public-copy.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ export const BITCODE_PUBLIC_COPY = {
2222
{
2323
id: 'april-2026',
2424
tab: 'April',
25-
title: 'April micro-blog',
26-
meta: 'April 2026 * Garrett Maring',
25+
title: '$BTD: Shares of Source Technical Knowledge',
26+
meta: '2026 April * Garrett Maring',
2727
body:
28-
"This month's Bitcode micro-blog will live here: Source Shares, the Terminal, public docs, and launch-mode readiness as Bitcode becomes easier to understand and operate.",
29-
highlights: ['Source Shares', 'Terminal'],
28+
"April launched the Bitcode Protocol. It is available at our open-source repository which includes a commercially-ready whole-system specification (auditable, reproducible). The website now includes the first pieces of the $BTD Terminal along with documentation on the internals and interfaces of the ecosystem.",
29+
highlights: ['$BTD', 'Bitcode Protocol', 'Terminal'],
3030
},
3131
{
3232
id: 'march-2026',

uapi/tests/marketingLandingPage.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ describe('MarketingLandingPage', () => {
9191
);
9292
expect(screen.getByRole('button', { name: 'April' })).toHaveAttribute('aria-pressed', 'true');
9393
expect(screen.getByRole('button', { name: 'March' })).toBeInTheDocument();
94-
expect(screen.getByText('April micro-blog')).toBeInTheDocument();
95-
expect(screen.getByText('April 2026 * Garrett Maring')).toBeInTheDocument();
94+
expect(screen.getByText('$BTD: Shares of Source Technical Knowledge')).toBeInTheDocument();
95+
expect(screen.getByTestId('micro-blog-meta')).toHaveAttribute('aria-label', 'April 2026 * Garrett Maring');
9696
expect(screen.getByText('Data Depot')).toBeInTheDocument();
9797
expect(screen.getByText('Depot Surface')).toBeInTheDocument();
9898
expect(screen.getByText('Measurement vector')).toBeInTheDocument();

0 commit comments

Comments
 (0)