release: sync main with dev (about editor, journal template, icon cleanup) (#449)

Brings `main` up to `dev` after #448 realigned the two branches.

`main` had #431 (portfolio features) but was missing everything that
landed on `dev` since:

- #443 — journal sample story ships as a template, not a live entry
- #445 — last emojis in the public frontend replaced with SVG icons
- #446 — About page toggle + content editor in the admin (@lancetm714's
work, rebased)
- #448 — the merge of `main` into `dev`, resolving the `Icons.tsx` split
and porting `IconEyeOff` into the shared icon file

After this merge both branches carry the same tree. CI on #448
(type-check + tests) passed on the merged state.

---------

Co-authored-by: ralksta <ralksta@users.noreply.github.com>
Co-authored-by: lancetm714 <108419425+lancetm714@users.noreply.github.com>
This commit is contained in:
Ralksta
2026-08-14 21:19:54 +02:00
committed by GitHub
parent 84c7eeef40
commit 6eda34cc50
18 changed files with 943 additions and 526 deletions

View File

@@ -2,6 +2,7 @@
import React, { useState } from 'react';
import { useProofing } from './ProofingContext';
import { IconCheck, IconCopy, IconLink } from './Icons';
export function ProofingModal() {
const proofing = useProofing();
@@ -125,7 +126,15 @@ export function ProofingModal() {
cursor: 'pointer',
}}
>
{copiedState === 'link' ? '✓ Link Copied!' : '🔗 Copy Shareable Link'}
{copiedState === 'link' ? (
<>
<IconCheck size={15} aria-hidden="true" /> Link Copied!
</>
) : (
<>
<IconLink size={15} aria-hidden="true" /> Copy Shareable Link
</>
)}
</button>
<button
@@ -145,7 +154,15 @@ export function ProofingModal() {
cursor: 'pointer',
}}
>
{copiedState === 'list' ? '✓ List Copied!' : '📋 Copy Text List (#1, #2...)'}
{copiedState === 'list' ? (
<>
<IconCheck size={15} aria-hidden="true" /> List Copied!
</>
) : (
<>
<IconCopy size={15} aria-hidden="true" /> Copy Text List (#1, #2...)
</>
)}
</button>
{allowMailto && (