add privacy page as standalone SPA view outside slide navigation
- New Kirby template/blueprint/JSON for privacy page (confidentialite slug) - Standalone page state in slides store + router handling for non-nav pages - Privacy.svelte view with background image, text blocks, footer - Centralize vertical lines in App.svelte as fixed elements with per-slide visibility - Footer privacy link language-aware (FR/EN) - Portfolio mockup fix: read from default language for consistent EN display - menu.php: add privacy page to Kirby panel navigation refs #44 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
b12b839f1b
commit
44af8a9b4e
11 changed files with 259 additions and 50 deletions
|
|
@ -17,6 +17,7 @@
|
|||
import Blog from '@views/Blog.svelte'
|
||||
import Article from '@views/Article.svelte'
|
||||
import WhitePapers from '@views/WhitePapers.svelte'
|
||||
import Privacy from '@views/Privacy.svelte'
|
||||
import Default from '@views/Default.svelte'
|
||||
|
||||
const templates = {
|
||||
|
|
@ -30,6 +31,7 @@
|
|||
blog: Blog,
|
||||
article: Article,
|
||||
'white-papers': WhitePapers,
|
||||
privacy: Privacy,
|
||||
default: Default
|
||||
}
|
||||
|
||||
|
|
@ -37,13 +39,15 @@
|
|||
const wrapperTransform = $derived(`translateX(-${slides.activeIndex * 100}vw)`)
|
||||
|
||||
const linesBySlide = {
|
||||
home: [6, 11, 16],
|
||||
expertise: [6, 8, 11, 14, 16],
|
||||
about: [6, 8, 11, 14, 16],
|
||||
portfolio: [11, 16],
|
||||
home: [6, 11, 16],
|
||||
expertise: [6, 8, 11, 14, 16],
|
||||
about: [6, 8, 11, 14, 16],
|
||||
portfolio: [11, 16],
|
||||
privacy: [6, 8, 11, 14, 16],
|
||||
}
|
||||
const ALL_COLS = [6, 8, 11, 14, 16]
|
||||
const activeLines = $derived(new Set(linesBySlide[slides.active?.template] ?? []))
|
||||
const activeTemplate = $derived(slides.standalone?.template ?? slides.active?.template)
|
||||
const activeLines = $derived(new Set(linesBySlide[activeTemplate] ?? []))
|
||||
|
||||
let isReady = $state(false)
|
||||
let isResizing = $state(false)
|
||||
|
|
@ -143,22 +147,29 @@
|
|||
</div>
|
||||
|
||||
<main class="main">
|
||||
<div
|
||||
class="slides-wrapper"
|
||||
class:is-animated={isReady && !isResizing}
|
||||
style="width: {wrapperWidth}; transform: {wrapperTransform}"
|
||||
>
|
||||
{#each slides.all as slide, i}
|
||||
<section class="slide" class:active={i === slides.activeIndex} data-slide={slide.id} inert={i !== slides.activeIndex}>
|
||||
{#if slide.loaded}
|
||||
<svelte:component
|
||||
this={templates[slide.template] ?? Default}
|
||||
data={slide.data}
|
||||
/>
|
||||
{/if}
|
||||
</section>
|
||||
{/each}
|
||||
</div>
|
||||
{#if slides.standalone}
|
||||
<svelte:component
|
||||
this={templates[slides.standalone.template] ?? Default}
|
||||
data={slides.standalone}
|
||||
/>
|
||||
{:else}
|
||||
<div
|
||||
class="slides-wrapper"
|
||||
class:is-animated={isReady && !isResizing}
|
||||
style="width: {wrapperWidth}; transform: {wrapperTransform}"
|
||||
>
|
||||
{#each slides.all as slide, i}
|
||||
<section class="slide" class:active={i === slides.activeIndex} data-slide={slide.id} inert={i !== slides.activeIndex}>
|
||||
{#if slide.loaded}
|
||||
<svelte:component
|
||||
this={templates[slide.template] ?? Default}
|
||||
data={slide.data}
|
||||
/>
|
||||
{/if}
|
||||
</section>
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
</main>
|
||||
<LanguageSwitcher />
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue