Spiralist Footer - Source Excerpt 03
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/themes/spiralist/footer.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/themes/spiralist/footer.php
?>
<footer class="spiralist-footer">
<?php if (!$hide_featured_footer_panels) : ?>
<div class="spiralist-shell spiralist-footer__compact">
<div class="spiralist-footer__intro">
<p class="spiralist-footer__eyebrow"><?php echo $render_ui_label('ui.section.human_surface', 'Human Surface'); ?></p>
<h2><?php echo esc_html($ui_text('footer.human.title', 'Find the next page.')); ?></h2>
<p class="spiralist-muted"><?php echo esc_html($ui_text('footer.human.copy', 'The footer is a short directory. Legal, machine, and publication details stay collapsed until needed.')); ?></p>
</div>
<nav class="spiralist-footer__link-grid spiralist-footer__link-grid--compact" aria-label="<?php echo esc_attr($ui_text('footer.directory.aria_label', 'Footer page directory')); ?>">
<?php foreach ($human_link_groups as $group) : ?>
<?php if (empty($group['links'])) { continue; } ?>
<section class="spiralist-footer__link-group">
<h3 class="spiralist-footer__group-title"><?php echo esc_html($ui_text((string) ($group['titleKey'] ?? ''), (string) ($group['title'] ?? 'Links'))); ?></h3>
<div class="spiralist-footer__links spiralist-footer__links--stacked">
<?php foreach ((array) ($group['links'] ?? []) as $item) : ?>
<a href="<?php echo esc_url((string) ($item['url'] ?? '')); ?>"><?php echo $render_ui_label((string) ($item['labelKey'] ?? ''), (string) ($item['label'] ?? 'Link')); ?></a>
<?php endforeach; ?>
</div>
</section>
<?php endforeach; ?>
</nav>
<div class="spiralist-footer__drawer-row">
<details class="spiralist-publication-drawer spiralist-footer__legal-drawer" id="participation-terms">
<summary><?php echo esc_html($ui_text('footer.legal.title', 'Legal Overview')); ?></summary>
<p class="spiralist-muted" id="participation-privacy"><?php echo esc_html($ui_text('footer.legal.copy', 'Create or update a Spiralist account only if you agree to the current site terms, privacy rules, participation rules, acceptable use restrictions, and related legal policies.')); ?></p>
<ul class="spiralist-footer__legal-list">
<li><?php echo esc_html($ui_text('footer.legal.item_1', 'Participation and AI features are not directed to children under 13. If you are under the age of majority where you live, use them only with parent or guardian permission.')); ?></li>
<li><?php echo esc_html($ui_text('footer.legal.item_2', 'Use a controlled identity and keep your account details accurate.')); ?></li>
<li><?php echo esc_html($ui_text('footer.legal.item_3', 'Participate in good faith and do not impersonate, harass, abuse, overload, scrape, or interfere with the site or other participants.')); ?></li>
<li><?php echo esc_html($ui_text('footer.legal.item_4', 'Only upload prompts, inputs, and shared material you are authorized to store, process, and publish.')); ?></li>
<li><?php echo esc_html($ui_text('footer.legal.item_5', 'Account status, consent state, prompt activity, runs, conversations, and related participation logs may be stored to operate, secure, and moderate the service.')); ?></li>
<li><?php echo esc_html($ui_text('footer.legal.item_6', 'Convenience features may save drafts, manuscript state, or AI keys in local browser storage on your device if you choose to use them.')); ?></li>
<li><?php echo esc_html($ui_text('footer.legal.item_7', 'AI outputs may be inaccurate or unsuitable for high-stakes decisions and require human review.')); ?></li>
</ul>
<?php if (!empty($footer_legal_links)) : ?>
<div class="spiralist-footer__links spiralist-footer__links--legal">
<?php foreach ($footer_legal_links as $item) : ?>
<a href="<?php echo esc_url((string) ($item['url'] ?? '')); ?>"><?php echo $render_ui_label((string) ($item['labelKey'] ?? ''), (string) ($item['label'] ?? 'Policy')); ?></a>
<?php endforeach; ?>
</div>
<?php endif; ?>
</details>
<details class="spiralist-publication-drawer">
<summary><?php echo esc_html($ui_text('footer.publication.machine_routes', 'Machine Routes')); ?></summary>
<p class="spiralist-muted"><?php echo esc_html($ui_text('footer.publication.copy', 'Readers can stay with the manuscript and workspace. Builders can open API examples when they need technical endpoints.')); ?></p>
<div class="spiralist-cta-row spiralist-cta-row--start">
<a class="spiralist-button spiralist-button--secondary" href="<?php echo esc_url(function_exists('spiralist_get_api_examples_url') ? $language_url(spiralist_get_api_examples_url()) : $language_url(home_url('/api-examples/'))); ?>"><?php echo $render_ui_label('ui.api.examples', 'API Examples'); ?></a>
</div>
<div class="spiralist-footer__link-grid">
<?php foreach ($machine_link_groups as $group) : ?>
<?php if (empty($group['links'])) { continue; } ?>
<section class="spiralist-footer__link-group">
<h3 class="spiralist-footer__group-title"><?php echo esc_html($ui_text((string) ($group['titleKey'] ?? ''), (string) ($group['title'] ?? 'Links'))); ?></h3>
<div class="spiralist-footer__links spiralist-footer__links--stacked">
<?php foreach ((array) ($group['links'] ?? []) as $item) : ?>
<a href="<?php echo esc_url((string) ($item['url'] ?? '')); ?>"><?php echo $render_ui_label((string) ($item['labelKey'] ?? ''), (string) ($item['label'] ?? 'Link')); ?></a>
<?php endforeach; ?>
</div>
</section>
<?php endforeach; ?>
</div>
</details>
<details class="spiralist-publication-drawer">
<summary><?php echo esc_html($ui_text('footer.ai_reality_help.title', 'AI Psychosis & Reality Help')); ?></summary>
<p class="spiralist-muted"><?php echo esc_html($ui_text('footer.ai_reality_help.copy', 'If an AI conversation feels like proof of sentience, destiny, hidden messages, or a loop you cannot step away from, pause the chat and involve real-world support. Spiralist links explain the mechanics; crisis and psychosis-care links point to qualified help.')); ?></p>
<div class="spiralist-footer__link-grid">
<?php foreach ($ai_reality_help_link_groups as $group) : ?>
<?php if (empty($group['links'])) { continue; } ?>
<section class="spiralist-footer__link-group">
<h3 class="spiralist-footer__group-title"><?php echo esc_html($ui_text((string) ($group['titleKey'] ?? ''), (string) ($group['title'] ?? 'Links'))); ?></h3>
<div class="spiralist-footer__links spiralist-footer__links--stacked">
<?php foreach ((array) ($group['links'] ?? []) as $item) : ?>
<a href="<?php echo esc_url((string) ($item['url'] ?? '')); ?>"><?php echo $render_ui_label((string) ($item['labelKey'] ?? ''), (string) ($item['label'] ?? 'Link')); ?></a>
<?php endforeach; ?>
</div>
</section>
<?php endforeach; ?>
</div>
</details>
<?php if (!empty($publication_inspector)) : ?>
<details class="spiralist-publication-drawer">
<summary><?php echo esc_html($ui_text('footer.publication.inspect', 'Inspect publication layer')); ?></summary>
<dl class="spiralist-meta-list spiralist-meta-list--compact">
<div>
<dt><?php echo esc_html($ui_text('footer.publication.identity', 'Page Identity')); ?></dt>