0.0.25 • Published 2 months ago

@svelte.codes/modal-manager v0.0.25

Weekly downloads
-
License
-
Repository
-
Last release
2 months ago

Svelte Modal Manager

Manage modals like a boss 🚀

No wrapper components, no extra markup, no dependencies, just modals.

  • Comes with a backdrop overlay.
  • Handles multiple modals at once.
  • Handles multiple instances of the same modal at once.
  • Access the modal manager from within your modal component.

Installation

npm install @svelte.codes/modal-manager

Usage

Manager component

ModalConfig Properties

namedefaultdescription
namerequiredThe name of the modal.
classesoptionalExtra css classes to add.
componentrequiredSvelte component reference.
closeIconoptionalShow a close icon, top right.
closeOnEscapeoptionalClose modal on escape key.
closeOnExternalClickoptionalClose modal on outside click.

Opening a modal

The manager.open() method takes a ModalConfig object as an argument (see above):

<script lang="ts">
  import { ModalManager } from "@svelte.codes/modal-manager";
  import TestComponent from "../../lib/components/test-component.svelte";

  const manager = new ModalManager();

  manager.open({
    name: "test-modal-1",
    component: TestComponent,
    classes: "bg-slate-300/50 p-10"
  });
</script>

I'm inside a modal via modal manager!

When the modal manager instantiates your component, it will pass in a ModalInstance object as a prop so you can interact with the manager from within your component.

Client component

From inside your client component you can interact with the manager via the instance prop.

<script lang="ts">
  import { ModalInstance } from "@svelte.codes/modal-manager";

  export let instance: ModalInstance;
</script>

<div class="bg-slate-300 p-10">
  <h1 class="text-3xl font-bold underline">this is inside a modal</h1>
  <button on:click={() => instance.manager.close(instance.config.name)}>close</button>
</div>
0.0.23

2 months ago

0.0.24

2 months ago

0.0.25

2 months ago

0.0.22

3 months ago

0.0.20

5 months ago

0.0.21

5 months ago

0.0.10

5 months ago

0.0.12

5 months ago

0.0.13

5 months ago

0.0.14

5 months ago

0.0.15

5 months ago

0.0.16

5 months ago

0.0.17

5 months ago

0.0.18

5 months ago

0.0.19

5 months ago

0.0.9

5 months ago

0.0.8

5 months ago

0.0.5

5 months ago

0.0.4

5 months ago

0.0.7

5 months ago

0.0.6

5 months ago

0.0.11

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago

0.0.0

5 months ago