@pagelines/sdk 1.0.462 → 1.0.464
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AgentWrap.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/AgentWrap.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/FModal.vue_vue_type_script_setup_true_lang.js +45 -42
- package/dist/FModal.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
import { defineComponent as
|
|
4
|
-
const j = ["aria-label"],
|
|
1
|
+
var M = Object.defineProperty;
|
|
2
|
+
var m = (e, l) => M(e, "name", { value: l, configurable: !0 });
|
|
3
|
+
import { defineComponent as $, ref as y, onMounted as g, openBlock as s, createElementBlock as c, createElementVNode as i, normalizeClass as d, computed as C, watch as E, onUnmounted as A, createBlock as x, Teleport as V, createVNode as h, Transition as k, withCtx as w, createCommentVNode as n, normalizeProps as L, guardReactiveProps as S, withModifiers as T, toDisplayString as N, renderSlot as z } from "vue";
|
|
4
|
+
const j = ["aria-label"], P = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[28px] h-[28px] overflow-hidden" }, U = /* @__PURE__ */ $({
|
|
5
5
|
name: "FClose",
|
|
6
6
|
__name: "FClose",
|
|
7
7
|
props: {
|
|
@@ -9,19 +9,19 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
9
9
|
},
|
|
10
10
|
emits: ["click"],
|
|
11
11
|
setup(e) {
|
|
12
|
-
const l =
|
|
13
|
-
return
|
|
12
|
+
const l = y(!1);
|
|
13
|
+
return g(() => {
|
|
14
14
|
setTimeout(() => {
|
|
15
15
|
l.value = !0;
|
|
16
16
|
}, 100);
|
|
17
|
-
}), (
|
|
17
|
+
}), (u, o) => (s(), c("button", {
|
|
18
18
|
type: "button",
|
|
19
19
|
"aria-label": e.ariaLabel || "Close",
|
|
20
20
|
class: "close block cursor-pointer w-[60px] h-[60px] rounded-full transition-all duration-1000 ease-[cubic-bezier(0.25,1,0.33,1)] hover:scale-110 active:scale-90 hover:rotate-90",
|
|
21
|
-
onClick: o[0] || (o[0] = (
|
|
21
|
+
onClick: o[0] || (o[0] = (r) => u.$emit("click", r))
|
|
22
22
|
}, [
|
|
23
23
|
o[1] || (o[1] = i("span", { class: "absolute inset-0 rounded-full transition-all" }, null, -1)),
|
|
24
|
-
i("span",
|
|
24
|
+
i("span", P, [
|
|
25
25
|
i("span", {
|
|
26
26
|
class: d(["absolute h-full w-[3px] rounded-[5px] left-[13px] transition-all duration-[400ms] ease-[cubic-bezier(0.52,0.01,0.16,1)]", l.value ? "translate-y-0 translate-x-0 rotate-45" : "translate-y-[30px] -translate-x-[30px] rotate-0"]),
|
|
27
27
|
style: { "background-color": "currentColor", "transition-delay": "0.15s" }
|
|
@@ -33,7 +33,7 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
33
33
|
])
|
|
34
34
|
], 8, j));
|
|
35
35
|
}
|
|
36
|
-
}),
|
|
36
|
+
}), D = { class: "flex h-full overflow-scroll no-scrollbar items-center justify-center text-center p-4 py-8" }, K = {
|
|
37
37
|
key: 0,
|
|
38
38
|
class: "text-base p-4 font-semibold"
|
|
39
39
|
}, R = {
|
|
@@ -41,7 +41,7 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
41
41
|
class: "flex items-center gap-2 px-2"
|
|
42
42
|
}, q = {
|
|
43
43
|
inheritAttrs: !1
|
|
44
|
-
}, I = /* @__PURE__ */
|
|
44
|
+
}, I = /* @__PURE__ */ $({
|
|
45
45
|
...q,
|
|
46
46
|
name: "FModal",
|
|
47
47
|
__name: "FModal",
|
|
@@ -58,13 +58,13 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
58
58
|
},
|
|
59
59
|
emits: ["update:vis", "close", "escape"],
|
|
60
60
|
setup(e, { emit: l }) {
|
|
61
|
-
const
|
|
62
|
-
function
|
|
61
|
+
const u = l, o = y(!1);
|
|
62
|
+
function r(t) {
|
|
63
63
|
const { reason: a } = t;
|
|
64
|
-
|
|
64
|
+
u("update:vis", !1), u("close", !0), a === "escape" && u("escape", !0);
|
|
65
65
|
}
|
|
66
|
-
|
|
67
|
-
const
|
|
66
|
+
m(r, "close");
|
|
67
|
+
const F = C(() => {
|
|
68
68
|
const t = e.modalClass ? [e.modalClass] : ["max-w-screen-md p-24"], a = e.styleClass ? [e.styleClass] : ["bg-theme-0", "shadow-xl"];
|
|
69
69
|
return e.fullScreen ? t.push("fixed inset-0") : t.push("rounded-2xl my-6 mx-3"), [
|
|
70
70
|
"relative",
|
|
@@ -76,21 +76,24 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
76
76
|
...t,
|
|
77
77
|
...a
|
|
78
78
|
];
|
|
79
|
-
}),
|
|
80
|
-
|
|
79
|
+
}), v = y(!1), f = [];
|
|
80
|
+
function b(t) {
|
|
81
|
+
t.key === "Escape" && e.vis && r({ reason: "escape" });
|
|
82
|
+
}
|
|
83
|
+
m(b, "onKeydown"), g(async () => {
|
|
81
84
|
o.value = !0;
|
|
82
|
-
const t =
|
|
85
|
+
const t = E(
|
|
83
86
|
() => e.vis,
|
|
84
87
|
(a) => {
|
|
85
|
-
a ? setTimeout(() =>
|
|
88
|
+
a ? setTimeout(() => v.value = !0, 300) : v.value = !1;
|
|
86
89
|
},
|
|
87
90
|
{ immediate: !0 }
|
|
88
91
|
);
|
|
89
|
-
|
|
92
|
+
f.push(t), typeof document < "u" && (document.addEventListener("keydown", b), f.push(() => document.removeEventListener("keydown", b)));
|
|
90
93
|
}), A(() => {
|
|
91
|
-
|
|
94
|
+
f.forEach((t) => t());
|
|
92
95
|
});
|
|
93
|
-
const
|
|
96
|
+
const B = C(() => e.transitionMode === "slideUp" ? {
|
|
94
97
|
enterActiveClass: "ease-[cubic-bezier(0.25,1,0.33,1)] duration-500",
|
|
95
98
|
enterFromClass: "opacity-0 translate-y-full scale-95",
|
|
96
99
|
enterToClass: "opacity-100 translate-y-0 scale-100",
|
|
@@ -105,7 +108,7 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
105
108
|
leaveFromClass: "opacity-100 translate-y-0 scale-100",
|
|
106
109
|
leaveToClass: "opacity-0 scale-75"
|
|
107
110
|
});
|
|
108
|
-
return (t, a) => o.value ? (s(),
|
|
111
|
+
return (t, a) => o.value ? (s(), x(V, {
|
|
109
112
|
key: 0,
|
|
110
113
|
to: e.teleportTo,
|
|
111
114
|
disabled: e.disableTeleport
|
|
@@ -116,7 +119,7 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
116
119
|
role: "dialog",
|
|
117
120
|
"aria-modal": "true"
|
|
118
121
|
}, [
|
|
119
|
-
|
|
122
|
+
h(k, {
|
|
120
123
|
"enter-active-class": "ease-out duration-300",
|
|
121
124
|
"enter-from-class": "opacity-0",
|
|
122
125
|
"enter-to-class": "opacity-100",
|
|
@@ -124,44 +127,44 @@ const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1
|
|
|
124
127
|
"leave-from-class": "opacity-100",
|
|
125
128
|
"leave-to-class": "opacity-0"
|
|
126
129
|
}, {
|
|
127
|
-
default:
|
|
128
|
-
e.vis ? (s(),
|
|
130
|
+
default: w(() => [
|
|
131
|
+
e.vis ? (s(), c("div", {
|
|
129
132
|
key: 0,
|
|
130
133
|
class: "fixed inset-0 bg-theme-800/60 active:bg-theme-800/80 cursor-pointer dark:bg-theme-600/90 backdrop-blur-sm transition-opacity",
|
|
131
|
-
onClick: a[0] || (a[0] = (
|
|
134
|
+
onClick: a[0] || (a[0] = (p) => r({ reason: "escape" }))
|
|
132
135
|
})) : n("", !0)
|
|
133
136
|
]),
|
|
134
137
|
_: 1
|
|
135
138
|
}),
|
|
136
139
|
i("div", {
|
|
137
140
|
class: "fixed inset-0 z-40 overflow-y-auto",
|
|
138
|
-
onClick: a[3] || (a[3] = (
|
|
141
|
+
onClick: a[3] || (a[3] = (p) => r({ reason: "escape" }))
|
|
139
142
|
}, [
|
|
140
|
-
i("div",
|
|
141
|
-
|
|
142
|
-
default:
|
|
143
|
-
e.vis ? (s(),
|
|
143
|
+
i("div", D, [
|
|
144
|
+
h(k, L(S(B.value)), {
|
|
145
|
+
default: w(() => [
|
|
146
|
+
e.vis ? (s(), c("div", {
|
|
144
147
|
key: 0,
|
|
145
|
-
class: d([
|
|
146
|
-
onClick: a[2] || (a[2] =
|
|
148
|
+
class: d([F.value, "w-full"]),
|
|
149
|
+
onClick: a[2] || (a[2] = T(() => {
|
|
147
150
|
}, ["stop"]))
|
|
148
151
|
}, [
|
|
149
|
-
e.hasClose || e.title || t.$slots.actions ? (s(),
|
|
152
|
+
e.hasClose || e.title || t.$slots.actions ? (s(), c("div", {
|
|
150
153
|
key: 0,
|
|
151
154
|
class: d(!e.title && (e.hasClose || t.$slots.actions) ? "absolute top-0 right-0 z-10" : "flex justify-between items-center")
|
|
152
155
|
}, [
|
|
153
|
-
e.title ? (s(),
|
|
154
|
-
e.hasClose || t.$slots.actions ? (s(),
|
|
155
|
-
|
|
156
|
-
e.hasClose ? (s(),
|
|
156
|
+
e.title ? (s(), c("h2", K, N(e.title), 1)) : n("", !0),
|
|
157
|
+
e.hasClose || t.$slots.actions ? (s(), c("div", R, [
|
|
158
|
+
z(t.$slots, "actions"),
|
|
159
|
+
e.hasClose ? (s(), x(U, {
|
|
157
160
|
key: 0,
|
|
158
161
|
class: "relative",
|
|
159
162
|
"data-test-id": "close-modal",
|
|
160
|
-
onClick: a[1] || (a[1] =
|
|
163
|
+
onClick: a[1] || (a[1] = T((p) => r({ reason: "escape" }), ["stop"]))
|
|
161
164
|
})) : n("", !0)
|
|
162
165
|
])) : n("", !0)
|
|
163
166
|
], 2)) : n("", !0),
|
|
164
|
-
|
|
167
|
+
z(t.$slots, "default")
|
|
165
168
|
], 2)) : n("", !0)
|
|
166
169
|
]),
|
|
167
170
|
_: 3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FModal.vue_vue_type_script_setup_true_lang.js","sources":["../../../src/ui/common/FClose.vue","../../../src/ui/common/FModal.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\n\ndefineOptions({ name: 'FClose' })\n\ndefineProps<{\n ariaLabel?: string\n}>()\n\ndefineEmits<{\n click: [event: MouseEvent]\n}>()\n\nconst inView = ref(false)\n\nonMounted(() => {\n setTimeout(() => {\n inView.value = true\n }, 100)\n})\n</script>\n\n<template>\n <button\n type=\"button\"\n :aria-label=\"ariaLabel || 'Close'\"\n class=\"close block cursor-pointer w-[60px] h-[60px] rounded-full transition-all duration-1000 ease-[cubic-bezier(0.25,1,0.33,1)] hover:scale-110 active:scale-90 hover:rotate-90\"\n @click=\"$emit('click', $event)\"\n >\n <!-- Background circle (invisible, for hover area) -->\n <span class=\"absolute inset-0 rounded-full transition-all\" />\n\n <!-- Close lines container -->\n <span class=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[28px] h-[28px] overflow-hidden\">\n <!-- Line 1 - animates from bottom-left to center, rotates 45deg -->\n <span\n class=\"absolute h-full w-[3px] rounded-[5px] left-[13px] transition-all duration-[400ms] ease-[cubic-bezier(0.52,0.01,0.16,1)]\"\n :class=\"inView ? 'translate-y-0 translate-x-0 rotate-45' : 'translate-y-[30px] -translate-x-[30px] rotate-0'\"\n style=\"background-color: currentColor; transition-delay: 0.15s\"\n />\n\n <!-- Line 2 - animates from top-left to center, rotates -45deg -->\n <span\n class=\"absolute h-full w-[3px] rounded-[5px] left-[13px] transition-all duration-[400ms] ease-[cubic-bezier(0.52,0.01,0.16,1)]\"\n :class=\"inView ? 'translate-y-0 translate-x-0 -rotate-45' : '-translate-y-[30px] -translate-x-[30px] rotate-0'\"\n style=\"background-color: currentColor; transition-delay: 0.45s\"\n />\n </span>\n </button>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue'\nimport FClose from './FClose.vue'\n\ndefineOptions({ name: 'FModal' })\n\nconst {\n vis = false,\n modalClass,\n styleClass,\n fullScreen = false,\n hasClose = false,\n title = '',\n transitionMode = 'modal',\n teleportTo = 'body',\n disableTeleport = false,\n} = defineProps<{\n vis?: boolean\n modalClass?: string\n styleClass?: string\n fullScreen?: boolean\n hasClose?: boolean\n title?: string\n transitionMode?: 'modal' | 'slideUp'\n teleportTo?: string | Element\n disableTeleport?: boolean\n}>()\n\nconst emit = defineEmits<{\n 'update:vis': [value: boolean]\n 'close': [value: boolean]\n 'escape': [value: boolean]\n}>()\n\nconst isMounted = ref(false)\n\nfunction close(args: { reason: 'escape' | 'reset' }): void {\n const { reason } = args\n emit('update:vis', false)\n emit('close', true)\n if (reason === 'escape')\n emit('escape', true)\n}\n\nconst classes = computed(() => {\n const cls = modalClass ? [modalClass] : ['max-w-screen-md p-24']\n const style = styleClass ? [styleClass] : ['bg-theme-0', 'shadow-xl']\n\n if (fullScreen)\n cls.push('fixed inset-0')\n else\n cls.push('rounded-2xl my-6 mx-3')\n\n return [\n 'relative',\n 'text-left',\n 'transform',\n 'transition-all',\n 'w-full',\n 'overflow-hidden',\n ...cls,\n ...style,\n ]\n})\n\nconst afterVisible = ref(false)\nconst cleanups: (() => void)[] = []\n\nonMounted(async () => {\n isMounted.value = true\n\n const unwatch = watch(\n () => vis,\n (vis) => {\n if (vis) {\n setTimeout(() => (afterVisible.value = true), 300)\n } else {\n afterVisible.value = false\n }\n },\n { immediate: true },\n )\n\n cleanups.push(unwatch)\n})\n\nonUnmounted(() => {\n cleanups.forEach((c) => c())\n})\n\nconst modalTransition = computed(() => {\n if (transitionMode === 'slideUp') {\n return {\n enterActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n enterFromClass: 'opacity-0 translate-y-full scale-95',\n enterToClass: 'opacity-100 translate-y-0 scale-100',\n leaveActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n leaveFromClass: 'opacity-100 translate-y-0 scale-100',\n leaveToClass: 'opacity-0 translate-y-full scale-95',\n }\n }\n return {\n enterActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n enterFromClass: 'opacity-0 scale-75',\n enterToClass: 'opacity-100 translate-y-0 scale-100',\n leaveActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n leaveFromClass: 'opacity-100 translate-y-0 scale-100',\n leaveToClass: 'opacity-0 scale-75',\n }\n})\n</script>\n\n<script lang=\"ts\">\nexport default {\n inheritAttrs: false,\n}\n</script>\n\n<template>\n <Teleport v-if=\"isMounted\" :to=\"teleportTo\" :disabled=\"disableTeleport\">\n <div\n class=\"fixed inset-0 z-50\"\n aria-labelledby=\"modal-title\"\n role=\"dialog\"\n aria-modal=\"true\"\n :class=\"!vis ? 'pointer-events-none' : ''\"\n >\n <Transition\n enter-active-class=\"ease-out duration-300\"\n enter-from-class=\"opacity-0\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-200\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n v-if=\"vis\"\n class=\"fixed inset-0 bg-theme-800/60 active:bg-theme-800/80 cursor-pointer dark:bg-theme-600/90 backdrop-blur-sm transition-opacity\"\n @click=\"close({ reason: 'escape' })\"\n />\n </Transition>\n <div\n class=\"fixed inset-0 z-40 overflow-y-auto\"\n @click=\"close({ reason: 'escape' })\"\n >\n <div class=\"flex h-full overflow-scroll no-scrollbar items-center justify-center text-center p-4 py-8\">\n <Transition v-bind=\"modalTransition\">\n <div\n v-if=\"vis\"\n :class=\"classes\"\n class=\"w-full\"\n @click.stop\n >\n <div\n v-if=\"hasClose || title || $slots.actions\"\n :class=\"!title && (hasClose || $slots.actions) ? 'absolute top-0 right-0 z-10' : 'flex justify-between items-center'\"\n >\n <h2 v-if=\"title\" class=\"text-base p-4 font-semibold\">\n {{ title }}\n </h2>\n <div v-if=\"hasClose || $slots.actions\" class=\"flex items-center gap-2 px-2\">\n <slot name=\"actions\" />\n <FClose\n v-if=\"hasClose\"\n class=\"relative\"\n data-test-id=\"close-modal\"\n @click.stop=\"close({ reason: 'escape' })\"\n />\n </div>\n </div>\n <slot />\n </div>\n </Transition>\n </div>\n </div>\n </div>\n </Teleport>\n</template>\n"],"names":["inView","ref","onMounted","_createElementBlock","__props","_cache","$event","$emit","_createElementVNode","_hoisted_2","_normalizeClass","__default__","emit","__emit","isMounted","close","args","reason","__name","classes","computed","cls","style","afterVisible","cleanups","unwatch","watch","vis","onUnmounted","c","modalTransition","_createBlock","_Teleport","_createVNode","_Transition","_hoisted_1","$slots","_toDisplayString","_openBlock","_hoisted_3","_renderSlot","_ctx","FClose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FModal.vue_vue_type_script_setup_true_lang.js","sources":["../../../src/ui/common/FClose.vue","../../../src/ui/common/FModal.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted, ref } from 'vue'\n\ndefineOptions({ name: 'FClose' })\n\ndefineProps<{\n ariaLabel?: string\n}>()\n\ndefineEmits<{\n click: [event: MouseEvent]\n}>()\n\nconst inView = ref(false)\n\nonMounted(() => {\n setTimeout(() => {\n inView.value = true\n }, 100)\n})\n</script>\n\n<template>\n <button\n type=\"button\"\n :aria-label=\"ariaLabel || 'Close'\"\n class=\"close block cursor-pointer w-[60px] h-[60px] rounded-full transition-all duration-1000 ease-[cubic-bezier(0.25,1,0.33,1)] hover:scale-110 active:scale-90 hover:rotate-90\"\n @click=\"$emit('click', $event)\"\n >\n <!-- Background circle (invisible, for hover area) -->\n <span class=\"absolute inset-0 rounded-full transition-all\" />\n\n <!-- Close lines container -->\n <span class=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[28px] h-[28px] overflow-hidden\">\n <!-- Line 1 - animates from bottom-left to center, rotates 45deg -->\n <span\n class=\"absolute h-full w-[3px] rounded-[5px] left-[13px] transition-all duration-[400ms] ease-[cubic-bezier(0.52,0.01,0.16,1)]\"\n :class=\"inView ? 'translate-y-0 translate-x-0 rotate-45' : 'translate-y-[30px] -translate-x-[30px] rotate-0'\"\n style=\"background-color: currentColor; transition-delay: 0.15s\"\n />\n\n <!-- Line 2 - animates from top-left to center, rotates -45deg -->\n <span\n class=\"absolute h-full w-[3px] rounded-[5px] left-[13px] transition-all duration-[400ms] ease-[cubic-bezier(0.52,0.01,0.16,1)]\"\n :class=\"inView ? 'translate-y-0 translate-x-0 -rotate-45' : '-translate-y-[30px] -translate-x-[30px] rotate-0'\"\n style=\"background-color: currentColor; transition-delay: 0.45s\"\n />\n </span>\n </button>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue'\nimport FClose from './FClose.vue'\n\ndefineOptions({ name: 'FModal' })\n\nconst {\n vis = false,\n modalClass,\n styleClass,\n fullScreen = false,\n hasClose = false,\n title = '',\n transitionMode = 'modal',\n teleportTo = 'body',\n disableTeleport = false,\n} = defineProps<{\n vis?: boolean\n modalClass?: string\n styleClass?: string\n fullScreen?: boolean\n hasClose?: boolean\n title?: string\n transitionMode?: 'modal' | 'slideUp'\n teleportTo?: string | Element\n disableTeleport?: boolean\n}>()\n\nconst emit = defineEmits<{\n 'update:vis': [value: boolean]\n 'close': [value: boolean]\n 'escape': [value: boolean]\n}>()\n\nconst isMounted = ref(false)\n\nfunction close(args: { reason: 'escape' | 'reset' }): void {\n const { reason } = args\n emit('update:vis', false)\n emit('close', true)\n if (reason === 'escape')\n emit('escape', true)\n}\n\nconst classes = computed(() => {\n const cls = modalClass ? [modalClass] : ['max-w-screen-md p-24']\n const style = styleClass ? [styleClass] : ['bg-theme-0', 'shadow-xl']\n\n if (fullScreen)\n cls.push('fixed inset-0')\n else\n cls.push('rounded-2xl my-6 mx-3')\n\n return [\n 'relative',\n 'text-left',\n 'transform',\n 'transition-all',\n 'w-full',\n 'overflow-hidden',\n ...cls,\n ...style,\n ]\n})\n\nconst afterVisible = ref(false)\nconst cleanups: (() => void)[] = []\n\nfunction onKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape' && vis)\n close({ reason: 'escape' })\n}\n\nonMounted(async () => {\n isMounted.value = true\n\n const unwatch = watch(\n () => vis,\n (vis) => {\n if (vis) {\n setTimeout(() => (afterVisible.value = true), 300)\n } else {\n afterVisible.value = false\n }\n },\n { immediate: true },\n )\n\n cleanups.push(unwatch)\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', onKeydown)\n cleanups.push(() => document.removeEventListener('keydown', onKeydown))\n }\n})\n\nonUnmounted(() => {\n cleanups.forEach((c) => c())\n})\n\nconst modalTransition = computed(() => {\n if (transitionMode === 'slideUp') {\n return {\n enterActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n enterFromClass: 'opacity-0 translate-y-full scale-95',\n enterToClass: 'opacity-100 translate-y-0 scale-100',\n leaveActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n leaveFromClass: 'opacity-100 translate-y-0 scale-100',\n leaveToClass: 'opacity-0 translate-y-full scale-95',\n }\n }\n return {\n enterActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n enterFromClass: 'opacity-0 scale-75',\n enterToClass: 'opacity-100 translate-y-0 scale-100',\n leaveActiveClass: 'ease-[cubic-bezier(0.25,1,0.33,1)] duration-500',\n leaveFromClass: 'opacity-100 translate-y-0 scale-100',\n leaveToClass: 'opacity-0 scale-75',\n }\n})\n</script>\n\n<script lang=\"ts\">\nexport default {\n inheritAttrs: false,\n}\n</script>\n\n<template>\n <Teleport v-if=\"isMounted\" :to=\"teleportTo\" :disabled=\"disableTeleport\">\n <div\n class=\"fixed inset-0 z-50\"\n aria-labelledby=\"modal-title\"\n role=\"dialog\"\n aria-modal=\"true\"\n :class=\"!vis ? 'pointer-events-none' : ''\"\n >\n <Transition\n enter-active-class=\"ease-out duration-300\"\n enter-from-class=\"opacity-0\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-200\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n v-if=\"vis\"\n class=\"fixed inset-0 bg-theme-800/60 active:bg-theme-800/80 cursor-pointer dark:bg-theme-600/90 backdrop-blur-sm transition-opacity\"\n @click=\"close({ reason: 'escape' })\"\n />\n </Transition>\n <div\n class=\"fixed inset-0 z-40 overflow-y-auto\"\n @click=\"close({ reason: 'escape' })\"\n >\n <div class=\"flex h-full overflow-scroll no-scrollbar items-center justify-center text-center p-4 py-8\">\n <Transition v-bind=\"modalTransition\">\n <div\n v-if=\"vis\"\n :class=\"classes\"\n class=\"w-full\"\n @click.stop\n >\n <div\n v-if=\"hasClose || title || $slots.actions\"\n :class=\"!title && (hasClose || $slots.actions) ? 'absolute top-0 right-0 z-10' : 'flex justify-between items-center'\"\n >\n <h2 v-if=\"title\" class=\"text-base p-4 font-semibold\">\n {{ title }}\n </h2>\n <div v-if=\"hasClose || $slots.actions\" class=\"flex items-center gap-2 px-2\">\n <slot name=\"actions\" />\n <FClose\n v-if=\"hasClose\"\n class=\"relative\"\n data-test-id=\"close-modal\"\n @click.stop=\"close({ reason: 'escape' })\"\n />\n </div>\n </div>\n <slot />\n </div>\n </Transition>\n </div>\n </div>\n </div>\n </Teleport>\n</template>\n"],"names":["inView","ref","onMounted","_createElementBlock","__props","_cache","$event","$emit","_createElementVNode","_hoisted_2","_normalizeClass","__default__","emit","__emit","isMounted","close","args","reason","__name","classes","computed","cls","style","afterVisible","cleanups","onKeydown","event","unwatch","watch","vis","onUnmounted","c","modalTransition","_createBlock","_Teleport","_createVNode","_Transition","_hoisted_1","$slots","_toDisplayString","_openBlock","_hoisted_3","_renderSlot","_ctx","FClose"],"mappings":"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"}
|