@pagelines/sdk 1.0.272 → 1.0.274

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
1
  var h = Object.defineProperty;
2
2
  var l = (t, o) => h(t, "name", { value: o, configurable: !0 });
3
3
  import { defineComponent as g, ref as v, onMounted as b, nextTick as C, openBlock as k, createBlock as y, withCtx as B, createVNode as T, unref as n } from "vue";
4
- import { _ } from "./FModal.vue_vue_type_script_setup_true_lang-CBdM5ubv.js";
4
+ import { _ } from "./FModal.vue_vue_type_script_setup_true_lang-DcdpaApF.js";
5
5
  import { _ as M } from "./AgentProvider.vue_vue_type_script_setup_true_lang-DmWkSIQQ.js";
6
6
  import { u as w } from "./useWidgetState-BGtx6NKD.js";
7
7
  const $ = /* @__PURE__ */ g({
@@ -62,4 +62,4 @@ const $ = /* @__PURE__ */ g({
62
62
  export {
63
63
  $ as default
64
64
  };
65
- //# sourceMappingURL=AgentWidgetModal-Uj4O0Puj.js.map
65
+ //# sourceMappingURL=AgentWidgetModal-DeP_KWDO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentWidgetModal-Uj4O0Puj.js","sources":["../widget/ui/AgentWidgetModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PageLinesSDK } from '../../sdkClient'\nimport type { AgentConfig } from '../../agent/schema'\nimport type { ButtonIconPreset } from '../PLWidget'\nimport { nextTick, onMounted, ref } from 'vue'\nimport FModal from '@/ui/common/FModal.vue'\nimport AgentProvider from '../../agent/ui/AgentProvider.vue'\nimport { useWidgetState } from '../composables/useWidgetState'\n\nconst props = defineProps<{\n sdk?: PageLinesSDK\n handle?: string\n agent?: AgentConfig\n context?: string\n firstMessage?: string\n buttonText?: string\n buttonIcon?: ButtonIconPreset\n chatOnly?: boolean\n onClose?: () => void\n}>()\n\nconst { currentAgent, currentContext, currentFirstMessage, currentButtonText, currentButtonIcon, update } = useWidgetState(props)\nconst isVisible = ref(false)\n\n// Trigger transition after mount\nonMounted(async () => {\n await nextTick()\n // Small delay to ensure DOM is ready and transition fires\n setTimeout(() => {\n isVisible.value = true\n }, 10)\n})\n\nfunction close() {\n isVisible.value = false\n // Wait for transition to complete before calling onClose\n setTimeout(() => {\n if (props.onClose) {\n props.onClose()\n }\n }, 300) // Match FModal transition duration\n}\n\nfunction open() {\n isVisible.value = true\n}\n\ndefineExpose({ update, close, open })\n</script>\n\n<template>\n <FModal\n :vis=\"isVisible\"\n :disable-teleport=\"true\"\n modal-class=\"max-w-4xl h-[80vh] md:h-[600px]\"\n :has-close=\"false\"\n @update:vis=\"isVisible = $event\"\n @close=\"close\"\n >\n <AgentProvider\n :sdk=\"sdk\"\n :handle=\"handle\"\n :agent=\"currentAgent\"\n :context=\"currentContext\"\n :first-message=\"currentFirstMessage\"\n :button-text=\"currentButtonText\"\n :button-icon=\"currentButtonIcon\"\n :chat-only=\"chatOnly\"\n :has-close=\"true\"\n @close=\"close\"\n />\n </FModal>\n</template>\n"],"names":["props","__props","currentAgent","currentContext","currentFirstMessage","currentButtonText","currentButtonIcon","update","useWidgetState","isVisible","ref","onMounted","nextTick","close","__name","open","__expose","_createBlock","FModal","_cache","$event","_createVNode","AgentProvider","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAYR,EAAE,cAAAC,GAAc,gBAAAC,GAAgB,qBAAAC,GAAqB,mBAAAC,GAAmB,mBAAAC,GAAmB,QAAAC,EAAA,IAAWC,EAAeR,CAAK,GAC1HS,IAAYC,EAAI,EAAK;AAG3B,IAAAC,EAAU,YAAY;AACpB,YAAMC,EAAA,GAEN,WAAW,MAAM;AACf,QAAAH,EAAU,QAAQ;AAAA,MACpB,GAAG,EAAE;AAAA,IACP,CAAC;AAED,aAASI,IAAQ;AACf,MAAAJ,EAAU,QAAQ,IAElB,WAAW,MAAM;AACf,QAAIT,EAAM,WACRA,EAAM,QAAA;AAAA,MAEV,GAAG,GAAG;AAAA,IACR;AARS,IAAAc,EAAAD,GAAA;AAUT,aAASE,IAAO;AACd,MAAAN,EAAU,QAAQ;AAAA,IACpB;AAFS,WAAAK,EAAAC,GAAA,SAITC,EAAa,EAAE,QAAAT,GAAQ,OAAAM,GAAO,MAAAE,EAAA,CAAM,mBAIlCE,EAoBSC,GAAA;AAAA,MAnBN,KAAKT,EAAA;AAAA,MACL,oBAAkB;AAAA,MACnB,eAAY;AAAA,MACX,aAAW;AAAA,MACX,gBAAUU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEX,EAAA,QAAYW;AAAA,MACxB,SAAOP;AAAA,IAAA;iBAER,MAWE;AAAA,QAXFQ,EAWEC,GAAA;AAAA,UAVC,KAAKrB,EAAA;AAAA,UACL,QAAQA,EAAA;AAAA,UACR,OAAOsB,EAAArB,CAAA;AAAA,UACP,SAASqB,EAAApB,CAAA;AAAA,UACT,iBAAeoB,EAAAnB,CAAA;AAAA,UACf,eAAamB,EAAAlB,CAAA;AAAA,UACb,eAAakB,EAAAjB,CAAA;AAAA,UACb,aAAWL,EAAA;AAAA,UACX,aAAW;AAAA,UACX,SAAOY;AAAA,QAAA;;;;;;"}
1
+ {"version":3,"file":"AgentWidgetModal-DeP_KWDO.js","sources":["../widget/ui/AgentWidgetModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PageLinesSDK } from '../../sdkClient'\nimport type { AgentConfig } from '../../agent/schema'\nimport type { ButtonIconPreset } from '../PLWidget'\nimport { nextTick, onMounted, ref } from 'vue'\nimport FModal from '@/ui/common/FModal.vue'\nimport AgentProvider from '../../agent/ui/AgentProvider.vue'\nimport { useWidgetState } from '../composables/useWidgetState'\n\nconst props = defineProps<{\n sdk?: PageLinesSDK\n handle?: string\n agent?: AgentConfig\n context?: string\n firstMessage?: string\n buttonText?: string\n buttonIcon?: ButtonIconPreset\n chatOnly?: boolean\n onClose?: () => void\n}>()\n\nconst { currentAgent, currentContext, currentFirstMessage, currentButtonText, currentButtonIcon, update } = useWidgetState(props)\nconst isVisible = ref(false)\n\n// Trigger transition after mount\nonMounted(async () => {\n await nextTick()\n // Small delay to ensure DOM is ready and transition fires\n setTimeout(() => {\n isVisible.value = true\n }, 10)\n})\n\nfunction close() {\n isVisible.value = false\n // Wait for transition to complete before calling onClose\n setTimeout(() => {\n if (props.onClose) {\n props.onClose()\n }\n }, 300) // Match FModal transition duration\n}\n\nfunction open() {\n isVisible.value = true\n}\n\ndefineExpose({ update, close, open })\n</script>\n\n<template>\n <FModal\n :vis=\"isVisible\"\n :disable-teleport=\"true\"\n modal-class=\"max-w-4xl h-[80vh] md:h-[600px]\"\n :has-close=\"false\"\n @update:vis=\"isVisible = $event\"\n @close=\"close\"\n >\n <AgentProvider\n :sdk=\"sdk\"\n :handle=\"handle\"\n :agent=\"currentAgent\"\n :context=\"currentContext\"\n :first-message=\"currentFirstMessage\"\n :button-text=\"currentButtonText\"\n :button-icon=\"currentButtonIcon\"\n :chat-only=\"chatOnly\"\n :has-close=\"true\"\n @close=\"close\"\n />\n </FModal>\n</template>\n"],"names":["props","__props","currentAgent","currentContext","currentFirstMessage","currentButtonText","currentButtonIcon","update","useWidgetState","isVisible","ref","onMounted","nextTick","close","__name","open","__expose","_createBlock","FModal","_cache","$event","_createVNode","AgentProvider","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAYR,EAAE,cAAAC,GAAc,gBAAAC,GAAgB,qBAAAC,GAAqB,mBAAAC,GAAmB,mBAAAC,GAAmB,QAAAC,EAAA,IAAWC,EAAeR,CAAK,GAC1HS,IAAYC,EAAI,EAAK;AAG3B,IAAAC,EAAU,YAAY;AACpB,YAAMC,EAAA,GAEN,WAAW,MAAM;AACf,QAAAH,EAAU,QAAQ;AAAA,MACpB,GAAG,EAAE;AAAA,IACP,CAAC;AAED,aAASI,IAAQ;AACf,MAAAJ,EAAU,QAAQ,IAElB,WAAW,MAAM;AACf,QAAIT,EAAM,WACRA,EAAM,QAAA;AAAA,MAEV,GAAG,GAAG;AAAA,IACR;AARS,IAAAc,EAAAD,GAAA;AAUT,aAASE,IAAO;AACd,MAAAN,EAAU,QAAQ;AAAA,IACpB;AAFS,WAAAK,EAAAC,GAAA,SAITC,EAAa,EAAE,QAAAT,GAAQ,OAAAM,GAAO,MAAAE,EAAA,CAAM,mBAIlCE,EAoBSC,GAAA;AAAA,MAnBN,KAAKT,EAAA;AAAA,MACL,oBAAkB;AAAA,MACnB,eAAY;AAAA,MACX,aAAW;AAAA,MACX,gBAAUU,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEX,EAAA,QAAYW;AAAA,MACxB,SAAOP;AAAA,IAAA;iBAER,MAWE;AAAA,QAXFQ,EAWEC,GAAA;AAAA,UAVC,KAAKrB,EAAA;AAAA,UACL,QAAQA,EAAA;AAAA,UACR,OAAOsB,EAAArB,CAAA;AAAA,UACP,SAASqB,EAAApB,CAAA;AAAA,UACT,iBAAeoB,EAAAnB,CAAA;AAAA,UACf,eAAamB,EAAAlB,CAAA;AAAA,UACb,eAAakB,EAAAjB,CAAA;AAAA,UACb,aAAWL,EAAA;AAAA,UACX,aAAW;AAAA,UACX,SAAOY;AAAA,QAAA;;;;;;"}
@@ -1,17 +1,22 @@
1
1
  var M = Object.defineProperty;
2
- var b = (e, l) => M(e, "name", { value: l, configurable: !0 });
3
- import { defineComponent as z, ref as m, onMounted as g, openBlock as s, createElementBlock as r, createElementVNode as i, normalizeClass as d, watch as A, onUnmounted as S, computed as V, createBlock as C, Teleport as E, createVNode as x, Transition as h, withCtx as k, createCommentVNode as n, normalizeProps as N, guardReactiveProps as j, withModifiers as w, toDisplayString as P, renderSlot as T } from "vue";
4
- const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[28px] h-[28px] overflow-hidden" }, D = /* @__PURE__ */ z({
2
+ var p = (e, l) => M(e, "name", { value: l, configurable: !0 });
3
+ import { defineComponent as z, ref as m, onMounted as $, openBlock as s, createElementBlock as r, createElementVNode as i, normalizeClass as d, watch as A, onUnmounted as S, computed as V, createBlock as C, Teleport as E, createVNode as x, Transition as h, withCtx as k, createCommentVNode as n, normalizeProps as N, guardReactiveProps as j, withModifiers as w, toDisplayString as L, renderSlot as T } from "vue";
4
+ const P = ["aria-label"], U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[28px] h-[28px] overflow-hidden" }, D = /* @__PURE__ */ z({
5
5
  name: "FClose",
6
6
  __name: "FClose",
7
+ props: {
8
+ ariaLabel: {}
9
+ },
7
10
  emits: ["click"],
8
11
  setup(e) {
9
12
  const l = m(!1);
10
- return g(() => {
13
+ return $(() => {
11
14
  setTimeout(() => {
12
15
  l.value = !0;
13
16
  }, 100);
14
- }), (c, o) => (s(), r("a", {
17
+ }), (c, o) => (s(), r("button", {
18
+ type: "button",
19
+ "aria-label": e.ariaLabel || "Close",
15
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",
16
21
  onClick: o[0] || (o[0] = (u) => c.$emit("click", u))
17
22
  }, [
@@ -26,7 +31,7 @@ const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
26
31
  style: { "background-color": "currentColor", "transition-delay": "0.45s" }
27
32
  }, null, 2)
28
33
  ])
29
- ]));
34
+ ], 8, P));
30
35
  }
31
36
  }), R = { class: "flex h-full overflow-scroll no-scrollbar items-center justify-center text-center p-4 py-8" }, q = {
32
37
  key: 0,
@@ -58,8 +63,8 @@ const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
58
63
  const { reason: t } = a;
59
64
  c("update:vis", !1), c("close", !0), t === "escape" && c("escape", !0);
60
65
  }
61
- b(u, "close");
62
- const f = e.modalClass ? [e.modalClass] : ["max-w-screen-md p-24"], $ = e.styleClass ? [e.styleClass] : ["bg-theme-0 text-theme-900", "shadow-xl"];
66
+ p(u, "close");
67
+ const f = e.modalClass ? [e.modalClass] : ["max-w-screen-md p-24"], g = e.styleClass ? [e.styleClass] : ["bg-theme-0 text-theme-900", "shadow-xl"];
63
68
  e.fullScreen ? f.push("fixed inset-0") : f.push("rounded-2xl my-6 mx-3");
64
69
  const F = [
65
70
  "relative",
@@ -69,20 +74,20 @@ const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
69
74
  "w-full",
70
75
  "overflow-hidden",
71
76
  ...f,
72
- ...$
73
- ], v = m(!1), y = [];
74
- g(async () => {
77
+ ...g
78
+ ], y = m(!1), v = [];
79
+ $(async () => {
75
80
  o.value = !0;
76
81
  const a = A(
77
82
  () => e.vis,
78
83
  (t) => {
79
- t ? setTimeout(() => v.value = !0, 300) : v.value = !1;
84
+ t ? setTimeout(() => y.value = !0, 300) : y.value = !1;
80
85
  },
81
86
  { immediate: !0 }
82
87
  );
83
- y.push(a);
88
+ v.push(a);
84
89
  }), S(() => {
85
- y.forEach((a) => a());
90
+ v.forEach((a) => a());
86
91
  });
87
92
  const B = V(() => e.transitionMode === "slideUp" ? {
88
93
  enterActiveClass: "ease-[cubic-bezier(0.25,1,0.33,1)] duration-500",
@@ -122,14 +127,14 @@ const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
122
127
  e.vis ? (s(), r("div", {
123
128
  key: 0,
124
129
  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",
125
- onClick: t[0] || (t[0] = (p) => u({ reason: "escape" }))
130
+ onClick: t[0] || (t[0] = (b) => u({ reason: "escape" }))
126
131
  })) : n("", !0)
127
132
  ]),
128
133
  _: 1
129
134
  }),
130
135
  i("div", {
131
136
  class: "fixed inset-0 z-40 overflow-y-auto",
132
- onClick: t[3] || (t[3] = (p) => u({ reason: "escape" }))
137
+ onClick: t[3] || (t[3] = (b) => u({ reason: "escape" }))
133
138
  }, [
134
139
  i("div", R, [
135
140
  x(h, N(j(B.value)), {
@@ -144,14 +149,14 @@ const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
144
149
  key: 0,
145
150
  class: d(!e.title && (e.hasClose || a.$slots.actions) ? "absolute top-0 right-0 z-10" : "flex justify-between items-center")
146
151
  }, [
147
- e.title ? (s(), r("h2", q, P(e.title), 1)) : n("", !0),
152
+ e.title ? (s(), r("h2", q, L(e.title), 1)) : n("", !0),
148
153
  e.hasClose || a.$slots.actions ? (s(), r("div", G, [
149
154
  T(a.$slots, "actions"),
150
155
  e.hasClose ? (s(), C(D, {
151
156
  key: 0,
152
157
  class: "relative",
153
158
  "data-test-id": "close-modal",
154
- onClick: t[1] || (t[1] = w((p) => u({ reason: "escape" }), ["stop"]))
159
+ onClick: t[1] || (t[1] = w((b) => u({ reason: "escape" }), ["stop"]))
155
160
  })) : n("", !0)
156
161
  ])) : n("", !0)
157
162
  ], 2)) : n("", !0),
@@ -169,4 +174,4 @@ const U = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
169
174
  export {
170
175
  K as _
171
176
  };
172
- //# sourceMappingURL=FModal.vue_vue_type_script_setup_true_lang-CBdM5ubv.js.map
177
+ //# sourceMappingURL=FModal.vue_vue_type_script_setup_true_lang-DcdpaApF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FModal.vue_vue_type_script_setup_true_lang-DcdpaApF.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 cls = modalClass ? [modalClass] : ['max-w-screen-md p-24']\nconst defaultStyleClass = styleClass ? [styleClass] : ['bg-theme-0 text-theme-900', 'shadow-xl']\n\nif (fullScreen)\n cls.push('fixed inset-0')\nelse\n cls.push('rounded-2xl my-6 mx-3')\n\nconst classes = [\n 'relative',\n 'text-left',\n 'transform',\n 'transition-all',\n 'w-full',\n 'overflow-hidden',\n ...cls,\n ...defaultStyleClass,\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","cls","defaultStyleClass","classes","afterVisible","cleanups","unwatch","watch","vis","onUnmounted","c","modalTransition","computed","_createBlock","_Teleport","_createVNode","_Transition","_hoisted_1","$slots","_toDisplayString","_openBlock","_hoisted_3","_renderSlot","_ctx","FClose"],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -3,7 +3,7 @@ var c = (e, r) => A(e, "name", { value: r, configurable: !0 });
3
3
  import { _ as C, a as M } from "./AgentWrap.vue_vue_type_script_setup_true_lang-ClwAQWXO.js";
4
4
  import { A as K, b as L, b as Q, E as R } from "./AgentWrap.vue_vue_type_script_setup_true_lang-ClwAQWXO.js";
5
5
  import { defineComponent as x, openBlock as l, createBlock as g, withCtx as b, createElementVNode as o, createVNode as $, ref as h, watch as z, nextTick as E, createElementBlock as f, normalizeClass as p, normalizeStyle as N, createCommentVNode as u } from "vue";
6
- import { _ as B } from "./FModal.vue_vue_type_script_setup_true_lang-CBdM5ubv.js";
6
+ import { _ as B } from "./FModal.vue_vue_type_script_setup_true_lang-DcdpaApF.js";
7
7
  import { _ } from "./AgentProvider.vue_vue_type_script_setup_true_lang-DmWkSIQQ.js";
8
8
  import { Agent as Y } from "@pagelines/core";
9
9
  const T = { class: "relative w-full h-[80vh] md:h-[600px]" }, F = /* @__PURE__ */ x({
package/dist/widget.js CHANGED
@@ -117,7 +117,7 @@ const B = `@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-
117
117
  chatOnly: this.config.chatOnly
118
118
  }), this.widgetInstance = this.app.mount(t);
119
119
  } else if (e === "modal") {
120
- const { default: a } = await import("./AgentWidgetModal-Uj4O0Puj.js");
120
+ const { default: a } = await import("./AgentWidgetModal-DeP_KWDO.js");
121
121
  this.app = k(a, {
122
122
  sdk: this.sdk,
123
123
  handle: this.config.handle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pagelines/sdk",
3
- "version": "1.0.272",
3
+ "version": "1.0.274",
4
4
  "description": "PageLines SDK for agent management, auth, and billing",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"FModal.vue_vue_type_script_setup_true_lang-CBdM5ubv.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\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 <a\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 </a>\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 cls = modalClass ? [modalClass] : ['max-w-screen-md p-24']\nconst defaultStyleClass = styleClass ? [styleClass] : ['bg-theme-0 text-theme-900', 'shadow-xl']\n\nif (fullScreen)\n cls.push('fixed inset-0')\nelse\n cls.push('rounded-2xl my-6 mx-3')\n\nconst classes = [\n 'relative',\n 'text-left',\n 'transform',\n 'transition-all',\n 'w-full',\n 'overflow-hidden',\n ...cls,\n ...defaultStyleClass,\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","_cache","$event","$emit","_createElementVNode","_hoisted_1","_normalizeClass","__default__","emit","__emit","isMounted","close","args","reason","__name","cls","__props","defaultStyleClass","classes","afterVisible","cleanups","unwatch","watch","vis","onUnmounted","c","modalTransition","computed","_createBlock","_Teleport","_createVNode","_Transition","$slots","_hoisted_2","_toDisplayString","_openBlock","_hoisted_3","_renderSlot","_ctx","FClose"],"mappings":"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"}