Skip to content

Commit 7b39dbe

Browse files
committed
feat: add on_close prop for passing in a callback to perform when ResponsiveSlideover close is triggered
1 parent de2e445 commit 7b39dbe

File tree

4 files changed

+30
-48
lines changed

4 files changed

+30
-48
lines changed

src/index.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
1-
<script lang="ts">
2-
import Button from '$lib/ui/Button.svelte';
3-
import { toast } from '$lib/ui/Toasts.svelte';
4-
</script>
5-
61
# Svelte Pieces
72

83
Install with `npm i -D svelte-pieces`.
94

10-
Built using Kitbook, Windicss, and Iconify icons - you don't need Tailwind nor Windi installed for these components to work properly as the classes get generated at packaging time.
11-
12-
## Smoke Test
13-
<Button onclick={() => toast('hello')}>Push Toast</Button>
5+
Built using Kitbook, UnoCSS, and Iconify icons - you don't need UnoCSS installed for these components to work properly as the classes get generated at packaging time thanks to `@unocss/svelte-scoped`'s [preprocessor](https://unocss.dev/integrations/svelte-scoped#svelte-preprocessor).
146

15-
{#await import('$lib/ui/Toasts.svelte') then { default: Toasts }}
16-
<Toasts />
17-
{/await}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<script lang="ts">
2+
import ShowHide from '$lib/functions/ShowHide.svelte';
3+
import Button from './Button.svelte';
4+
import ResponsiveSlideover from './ResponsiveSlideover.svelte';
5+
6+
let size: 'sm' | 'md' | 'lg' | 'xl' = 'xl';
7+
</script>
8+
9+
<ShowHide let:show let:toggle>
10+
<Button color="primary" onclick={toggle}>Show Slideover</Button>
11+
<Button form="menu" active={size === 'sm'} onclick={() => size = 'sm'}>Size: sm</Button>
12+
<Button form="menu" active={size === 'md'} onclick={() => size = 'md'}>Size: md</Button>
13+
<Button form="menu" active={size === 'lg'} onclick={() => size = 'lg'}>Size: lg</Button>
14+
<Button form="menu" active={size === 'xl'} onclick={() => size = 'xl'}>Size: xl</Button>
15+
16+
<ResponsiveSlideover showWidth={size} open={show} on_close={toggle}>
17+
<div slot="title">Universal Title</div>
18+
<div class="p-3 border-b font-semibold" slot="heading">Universal Heading</div>
19+
<div class="p-3 border-b font-semibold" slot="desktopHeading">Desktop Heading</div>
20+
<div class="p-3 border-b font-semibold" slot="mobileHeading">Mobile Heading</div>
21+
<div class="p-3 hover:bg-gray-100">Menu Item</div>
22+
<div class="p-3 hover:bg-gray-100">Menu Item</div>
23+
<div class="p-3 hover:bg-gray-100">Menu Item</div>
24+
<div class="p-3 hover:bg-gray-100">Menu Item</div>
25+
</ResponsiveSlideover>
26+
</ShowHide>

src/lib/ui/ResponsiveSlideover.md

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/lib/ui/ResponsiveSlideover.svelte

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
export let mobileClasses = '';
1414
1515
export let open = false;
16+
export let on_close: () => void = undefined
1617
</script>
1718

1819
<div
@@ -47,7 +48,7 @@
4748
{side}
4849
{widthRem}
4950
{maxWidthPercentage}
50-
on:close={() => (open = false)}
51+
on:close={on_close}
5152
>
5253
<svelte:fragment slot="heading">
5354
{#if $$slots.mobileTitle}
@@ -56,7 +57,7 @@
5657
<slot name="mobileTitle" />
5758
</h3>
5859
<button
59-
on:click={() => (open = false)}
60+
on:click={on_close}
6061
type="button"
6162
class="text-gray-400 px-3 py-4 flex hover:text-gray-500 focus:outline-none
6263
focus:text-gray-500 transition ease-in-out duration-150"

0 commit comments

Comments
 (0)