@pagelines/sdk 1.0.462 → 1.0.463

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.
@@ -1,7 +1,7 @@
1
- var B = Object.defineProperty;
2
- var b = (e, l) => B(e, "name", { value: l, configurable: !0 });
3
- import { defineComponent as z, ref as f, onMounted as $, openBlock as s, createElementBlock as r, createElementVNode as i, normalizeClass as d, computed as p, watch as M, onUnmounted as A, createBlock as C, Teleport as V, createVNode as x, Transition as h, withCtx as k, createCommentVNode as n, normalizeProps as S, guardReactiveProps as E, withModifiers as w, toDisplayString as N, renderSlot as T } from "vue";
4
- const j = ["aria-label"], L = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[28px] h-[28px] overflow-hidden" }, P = /* @__PURE__ */ z({
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 = f(!1);
13
- return $(() => {
12
+ const l = y(!1);
13
+ return g(() => {
14
14
  setTimeout(() => {
15
15
  l.value = !0;
16
16
  }, 100);
17
- }), (c, o) => (s(), r("button", {
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] = (u) => c.$emit("click", u))
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", L, [
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
- }), U = { class: "flex h-full overflow-scroll no-scrollbar items-center justify-center text-center p-4 py-8" }, D = {
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__ */ z({
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 c = l, o = f(!1);
62
- function u(t) {
61
+ const u = l, o = y(!1);
62
+ function r(t) {
63
63
  const { reason: a } = t;
64
- c("update:vis", !1), c("close", !0), a === "escape" && c("escape", !0);
64
+ u("update:vis", !1), u("close", !0), a === "escape" && u("escape", !0);
65
65
  }
66
- b(u, "close");
67
- const g = p(() => {
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
- }), m = f(!1), v = [];
80
- $(async () => {
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 = M(
85
+ const t = E(
83
86
  () => e.vis,
84
87
  (a) => {
85
- a ? setTimeout(() => m.value = !0, 300) : m.value = !1;
88
+ a ? setTimeout(() => v.value = !0, 300) : v.value = !1;
86
89
  },
87
90
  { immediate: !0 }
88
91
  );
89
- v.push(t);
92
+ f.push(t), typeof document < "u" && (document.addEventListener("keydown", b), f.push(() => document.removeEventListener("keydown", b)));
90
93
  }), A(() => {
91
- v.forEach((t) => t());
94
+ f.forEach((t) => t());
92
95
  });
93
- const F = p(() => e.transitionMode === "slideUp" ? {
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(), C(V, {
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
- x(h, {
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: k(() => [
128
- e.vis ? (s(), r("div", {
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] = (y) => u({ reason: "escape" }))
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] = (y) => u({ reason: "escape" }))
141
+ onClick: a[3] || (a[3] = (p) => r({ reason: "escape" }))
139
142
  }, [
140
- i("div", U, [
141
- x(h, S(E(F.value)), {
142
- default: k(() => [
143
- e.vis ? (s(), r("div", {
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([g.value, "w-full"]),
146
- onClick: a[2] || (a[2] = w(() => {
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(), r("div", {
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(), r("h2", D, N(e.title), 1)) : n("", !0),
154
- e.hasClose || t.$slots.actions ? (s(), r("div", R, [
155
- T(t.$slots, "actions"),
156
- e.hasClose ? (s(), C(P, {
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] = w((y) => u({ reason: "escape" }), ["stop"]))
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
- T(t.$slots, "default")
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagelines/sdk",
3
- "version": "1.0.462",
3
+ "version": "1.0.463",
4
4
  "description": "PageLines SDK for agent management, auth, and billing",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",