From 5d54ffadfae8c6bf9f90bc7187698677cc8c01eb Mon Sep 17 00:00:00 2001
From: Hunter Johnston <64506580+huntabyte@users.noreply.github.com>
Date: Sun, 7 Jan 2024 01:05:33 -0500
Subject: [PATCH] fix: `Drawer.Close` asChild behavior (#22)
---
.changeset/fluffy-dancers-march.md | 5 ++
.eslintrc.cjs | 2 +-
src/lib/vaul/components/close-wrapper.svelte | 45 ++++++++++++++++
src/lib/vaul/components/close.svelte | 57 ++++++++++++++------
4 files changed, 93 insertions(+), 16 deletions(-)
create mode 100644 .changeset/fluffy-dancers-march.md
create mode 100644 src/lib/vaul/components/close-wrapper.svelte
diff --git a/.changeset/fluffy-dancers-march.md b/.changeset/fluffy-dancers-march.md
new file mode 100644
index 0000000..dd69851
--- /dev/null
+++ b/.changeset/fluffy-dancers-march.md
@@ -0,0 +1,5 @@
+---
+"vaul-svelte": patch
+---
+
+fix: close asChild behavior
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 2d3c2b9..a5e66ed 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -53,7 +53,7 @@ module.exports = {
"warn",
{
argsIgnorePattern: "^_",
- varsIgnorePattern: "^\\$\\$(Props|Events|Slots|Generic)$"
+ varsIgnorePattern: "^(\\$\\$(Props|Events|Slots|Generic)|_*)$"
}
]
}
diff --git a/src/lib/vaul/components/close-wrapper.svelte b/src/lib/vaul/components/close-wrapper.svelte
new file mode 100644
index 0000000..849dc81
--- /dev/null
+++ b/src/lib/vaul/components/close-wrapper.svelte
@@ -0,0 +1,45 @@
+
+
+
diff --git a/src/lib/vaul/components/close.svelte b/src/lib/vaul/components/close.svelte
index 5185f66..1aa9f5b 100644
--- a/src/lib/vaul/components/close.svelte
+++ b/src/lib/vaul/components/close.svelte
@@ -2,29 +2,56 @@
import { Dialog as DialogPrimitive } from "bits-ui";
import type { CloseProps } from "./types.js";
import { getCtx } from "../ctx.js";
+ import CloseWrapper from "./close-wrapper.svelte";
type $$Props = CloseProps;
export let el: $$Props["el"] = undefined;
+ export let asChild = false;
const {
methods: { closeDrawer }
} = getCtx();
- {
- e.preventDefault();
- closeDrawer();
- }}
- on:keydown={(e) => {
- if (e.detail.originalEvent.key === "Enter" || e.detail.originalEvent.key === " ") {
+{#if asChild}
+ {
e.preventDefault();
- closeDrawer(true);
- }
- }}
- {...$$restProps}
->
-
-
+ closeDrawer();
+ }}
+ on:keydown={(e) => {
+ if (e.detail.originalEvent.key === "Enter" || e.detail.originalEvent.key === " ") {
+ e.preventDefault();
+ closeDrawer(true);
+ }
+ }}
+ {...$$restProps}
+ {asChild}
+ let:builder
+ >
+
+
+
+
+{:else}
+ {
+ e.preventDefault();
+ closeDrawer();
+ }}
+ on:keydown={(e) => {
+ if (e.detail.originalEvent.key === "Enter" || e.detail.originalEvent.key === " ") {
+ e.preventDefault();
+ closeDrawer(true);
+ }
+ }}
+ {...$$restProps}
+ {asChild}
+ let:builder
+ >
+
+
+{/if}