/ src / lib / components / step-layout / step-layout.svelte
step-layout.svelte
 1  <script lang="ts">
 2    interface Props {
 3      center?: boolean;
 4      children?: import('svelte').Snippet;
 5      left_actions?: import('svelte').Snippet;
 6      actions?: import('svelte').Snippet;
 7    }
 8  
 9    let { center = false, children, left_actions, actions }: Props = $props();
10  </script>
11  
12  <div class="step-layout" class:center>
13    <div class="content">
14      {@render children?.()}
15    </div>
16    {#if left_actions || actions}
17      <footer class="flex justify-between gap-4">
18        <div class="flex gap-2">
19          {@render left_actions?.()}
20        </div>
21        <div class="flex gap-2">
22          {@render actions?.()}
23        </div>
24      </footer>
25    {/if}
26  </div>
27  
28  <style>
29    .step-layout {
30      display: flex;
31      flex-direction: column;
32      gap: 2rem;
33    }
34    .content {
35      display: flex;
36      flex-direction: column;
37      width: 100%;
38      gap: 1.5rem;
39    }
40  
41    .center > .content {
42      align-items: center;
43      text-align: center;
44    }
45  </style>