dialog update

This commit is contained in:
relaxed 2024-09-03 15:36:14 +05:00
parent c5aaead7d0
commit 8ff467ea4e
2 changed files with 37 additions and 13 deletions

View File

@ -9,12 +9,6 @@
* { * {
-webkit-tap-highlight-color: transparent; -webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
outline: none !important; outline: none !important;
font-family: JetBrainsMono; font-family: JetBrainsMono;

View File

@ -5,15 +5,46 @@
export let name = ""; export let name = "";
export let class_name = ""; export let class_name = "";
export let on_close = () => {}; export let on_close = () => {};
let dialog;
let local_open = false;
function toggle_dialog(_) {
if (is_open && local_open) {
dialog.showModal();
document.addEventListener("keydown", (event) => {
if (event.key === "Escape") {
is_open = false;
}
});
} else if (local_open === true) {
dialog.close();
document.removeEventListener(
"keydown",
(event) => {
if (event.key === "Escape") {
is_open = false;
}
},
true,
);
} else if (!local_open) {
local_open = true;
}
}
$: _ = toggle_dialog(is_open);
</script> </script>
<div <dialog
class="fixed top-0 left-0 w-full h-svh z-20 bind:this={dialog}
class="top-0 left-0 w-full h-svh z-20
fixed overflow-hidden
max-w-full max-h-full max-w-full max-h-full
flex justify-center items-center flex justify-center items-center
{is_open ? 'visible opacity-100' : 'invisible opacity-0'}
backdrop-blur-sm backdrop-blur-sm
bg-[#00000022] bg-[#00000022]
{is_open ? 'opacity-100 visible' : 'invisible opacity-0'}
transition-all duration-300" transition-all duration-300"
> >
<div <div
@ -21,9 +52,8 @@
border-[var(--w-border)] dark:border-[var(--b-border)] border-2 rounded-xl border-[var(--w-border)] dark:border-[var(--b-border)] border-2 rounded-xl
bg-[var(--w-bg)] dark:bg-[var(--b-bg)] bg-[var(--w-bg)] dark:bg-[var(--b-bg)]
text-[var(--w-text)] dark:text-[var(--b-text)] text-2xl text-[var(--w-text)] dark:text-[var(--b-text)] text-2xl
overflow-auto overflow-hidden
{class_name} {class_name}"
"
> >
<div <div
class="ml-2 relative flex flex-initial justify-between items-center" class="ml-2 relative flex flex-initial justify-between items-center"
@ -55,4 +85,4 @@
</div> </div>
<slot></slot> <slot></slot>
</div> </div>
</div> </dialog>