0.0.25 • Published 1 year ago

@svelte.codes/modal-manager v0.0.25

Weekly downloads
-
License
-
Repository
-
Last release
1 year 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

1 year ago

0.0.24

1 year ago

0.0.25

1 year ago

0.0.22

1 year ago

0.0.20

2 years ago

0.0.21

2 years ago

0.0.10

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.19

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.11

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago

0.0.0

2 years ago