···51515252 const shortContent = 'This is a test status with short text content.';
5353 const longContent = `<p>This is a test status with long text content. It contains multiple paragraphs and spans several lines to demonstrate how longer content appears.</p>
5454-5454+5555 <p>Second paragraph goes here with more sample text. The Status component will render this appropriately based on the current size setting.</p>
5656-5656+5757 <p>Third paragraph adds even more content to ensure we have a properly long post that might get truncated depending on the view settings.</p>`;
5858 const linksContent = `<p>This is a test status with links. Check out <a href="https://example.com">this website</a> and <a href="https://google.com">Google</a>. Links should be clickable and properly styled.</p>`;
5959 const hashtagsContent = `<p>This is a test status with hashtags. <a href="https://example.social/tags/coding" class="hashtag" rel="tag">#coding</a> <a href="https://example.social/tags/webdev" class="hashtag" rel="tag">#webdev</a> <a href="https://example.social/tags/javascript" class="hashtag" rel="tag">#javascript</a> <a href="https://example.social/tags/reactjs" class="hashtag" rel="tag">#reactjs</a> <a href="https://example.social/tags/preact" class="hashtag" rel="tag">#preact</a></p><p>Hashtags should be formatted and clickable.</p>`;
6060 const mentionsContent = `<p>This is a test status with mentions. Hello <a href="https://example.social/@cheeaun" class="u-url mention">@cheeaun</a> and <a href="https://example.social/@test" class="u-url mention">@test</a>! What do you think about this <a href="https://example.social/@another_user" class="u-url mention">@another_user</a>?</p><p>Mentions should be highlighted and clickable.</p>`;
6161+ const mathContent = `<p>This is a test status with mathematical expressions. Here's an inline formula \\( E = mc^2 \\) and a display formula:</p><p>\\[ \\frac{\\left(n!\\right)^2}{2}\\sum _{k=0}^m\\frac{1}{n-k}{n-k \\choose k}^2 \\]</p><p>The MathBlock component should detect and offer to render these LaTeX expressions.</p>`;
61626263 const base = {
6364 // Random ID to un-memoize Status
···8081 ? hashtagsContent
8182 : contentType === 'mentions'
8283 ? mentionsContent
8383- : shortContent
8484+ : contentType === 'math'
8585+ ? mathContent
8686+ : shortContent
8487 : '',
8588 visibility: toggles.visibility || 'public',
8689 createdAt: new Date().toISOString(),
···764767 class={`sandbox-preview ${toggleState.displayStyle}`}
765768 onClickCapture={(e) => {
766769 const isAllowed = e.target.closest(
767767- '.media, .media-caption, .spoiler-button, .spoiler-media-button',
770770+ '.media, .media-caption, .spoiler-button, .spoiler-media-button, .math-block button',
768771 );
769772 if (isAllowed) return;
770773 e.preventDefault();
···987990 disabled={!toggleState.hasContent}
988991 />
989992 <span>With mentions</span>
993993+ </label>
994994+ </li>
995995+ <li>
996996+ <label>
997997+ <input
998998+ type="radio"
999999+ name="contentType"
10001000+ checked={toggleState.contentType === 'math'}
10011001+ onChange={() => updateToggles({ contentType: 'math' })}
10021002+ disabled={!toggleState.hasContent}
10031003+ />
10041004+ <span>With math</span>
9901005 </label>
9911006 </li>
9921007 </ul>