@pagelines/sdk 1.0.148

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.
Files changed (70) hide show
  1. package/README.md +542 -0
  2. package/dist/AgentProvider.vue_vue_type_script_setup_true_lang-BGCgpGEW.js +42 -0
  3. package/dist/AgentProvider.vue_vue_type_script_setup_true_lang-BGCgpGEW.js.map +1 -0
  4. package/dist/AgentWidgetInline-pTCUPNqY.js +35 -0
  5. package/dist/AgentWidgetInline-pTCUPNqY.js.map +1 -0
  6. package/dist/AgentWidgetModal-BA74AH8E.js +66 -0
  7. package/dist/AgentWidgetModal-BA74AH8E.js.map +1 -0
  8. package/dist/AgentWidgetPopup-pe5CmJfa.js +117 -0
  9. package/dist/AgentWidgetPopup-pe5CmJfa.js.map +1 -0
  10. package/dist/AgentWrap.vue_vue_type_script_setup_true_lang-Bvik7Wdb.js +5139 -0
  11. package/dist/AgentWrap.vue_vue_type_script_setup_true_lang-Bvik7Wdb.js.map +1 -0
  12. package/dist/FModal.vue_vue_type_script_setup_true_lang-cL0BFEkZ.js +172 -0
  13. package/dist/FModal.vue_vue_type_script_setup_true_lang-cL0BFEkZ.js.map +1 -0
  14. package/dist/agent/AgentController.d.ts +81 -0
  15. package/dist/agent/ClientAudio.d.ts +102 -0
  16. package/dist/agent/constants.d.ts +16 -0
  17. package/dist/agent/index.d.ts +10 -0
  18. package/dist/agent/schema.d.ts +46 -0
  19. package/dist/agent/test/AgentController.test.d.ts +1 -0
  20. package/dist/agent/test/utils.test.d.ts +1 -0
  21. package/dist/agent/ui/AgentChat.vue.d.ts +27 -0
  22. package/dist/agent/ui/AgentInputEmail.vue.d.ts +9 -0
  23. package/dist/agent/ui/AgentInputOneTimeCode.vue.d.ts +13 -0
  24. package/dist/agent/ui/AgentModal.vue.d.ts +16 -0
  25. package/dist/agent/ui/AgentProvider.vue.d.ts +22 -0
  26. package/dist/agent/ui/AgentSidebarClose.vue.d.ts +6 -0
  27. package/dist/agent/ui/AgentWidget.vue.d.ts +17 -0
  28. package/dist/agent/ui/AgentWrap.vue.d.ts +128 -0
  29. package/dist/agent/ui/ElAgentAbout.vue.d.ts +6 -0
  30. package/dist/agent/ui/ElAgentButton.vue.d.ts +26 -0
  31. package/dist/agent/ui/ElAgentChat.vue.d.ts +11 -0
  32. package/dist/agent/ui/ElAgentHeader.vue.d.ts +6 -0
  33. package/dist/agent/ui/ElAgentModeSidebar.vue.d.ts +11 -0
  34. package/dist/agent/ui/ElAgentSidebar.vue.d.ts +14 -0
  35. package/dist/agent/ui/ElAuthGate.vue.d.ts +6 -0
  36. package/dist/agent/ui/ElModeHeader.vue.d.ts +9 -0
  37. package/dist/agent/ui/ElSidebar.vue.d.ts +30 -0
  38. package/dist/agent/utils.d.ts +34 -0
  39. package/dist/agent.js +162 -0
  40. package/dist/agent.js.map +1 -0
  41. package/dist/api.d.ts +23 -0
  42. package/dist/constants/socialPlatforms.d.ts +10 -0
  43. package/dist/demo/index.d.ts +105 -0
  44. package/dist/demo.js +264 -0
  45. package/dist/demo.js.map +1 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/sdk.css +1 -0
  48. package/dist/sdk.js +9 -0
  49. package/dist/sdk.js.map +1 -0
  50. package/dist/sdkClient-BmWhfelO.js +939 -0
  51. package/dist/sdkClient-BmWhfelO.js.map +1 -0
  52. package/dist/sdkClient.d.ts +762 -0
  53. package/dist/sdkStorage.d.ts +39 -0
  54. package/dist/socialPlatforms-Ck-b3SnQ.js +82 -0
  55. package/dist/socialPlatforms-Ck-b3SnQ.js.map +1 -0
  56. package/dist/test/api.test.d.ts +1 -0
  57. package/dist/test/build.test.d.ts +1 -0
  58. package/dist/types/SDKAppType.stub.d.ts +6 -0
  59. package/dist/vite-env.d.ts +13 -0
  60. package/dist/vite.config.sdk.d.ts +2 -0
  61. package/dist/vitest.config.d.ts +2 -0
  62. package/dist/widget/PLWidget.d.ts +55 -0
  63. package/dist/widget/composables/usePLWidget.d.ts +57 -0
  64. package/dist/widget/index.d.ts +4 -0
  65. package/dist/widget/ui/AgentWidgetInline.vue.d.ts +17 -0
  66. package/dist/widget/ui/AgentWidgetModal.vue.d.ts +22 -0
  67. package/dist/widget/ui/AgentWidgetPopup.vue.d.ts +24 -0
  68. package/dist/widget.js +188 -0
  69. package/dist/widget.js.map +1 -0
  70. package/package.json +94 -0
package/dist/widget.js ADDED
@@ -0,0 +1,188 @@
1
+ var f = Object.defineProperty;
2
+ var z = (e, t, a) => t in e ? f(e, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[t] = a;
3
+ var s = (e, t) => f(e, "name", { value: t, configurable: !0 });
4
+ var l = (e, t, a) => z(e, typeof t != "symbol" ? t + "" : t, a);
5
+ import { P as E } from "./sdkClient-BmWhfelO.js";
6
+ import { createApp as k, ref as g, computed as p, unref as b, watch as x, onUnmounted as M } from "vue";
7
+ const j = `@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"DM Mono","SF Mono",SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--blur-sm:8px;--blur-lg:16px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-theme-400:var(--theme-400,#6b7280);--color-theme-500:var(--theme-500,#4b5563);--color-theme-600:var(--theme-600,#374151);--color-theme-800:var(--theme-800,#111827);--color-theme-900:var(--theme-900,#0c0a13);--color-theme-950:var(--theme-950,#030712);--color-primary-300:var(--primary-300,#60a5fa);--color-primary-400:var(--primary-400,#3b82f6);--color-primary-500:var(--primary-500,#2563eb);--color-primary-600:var(--primary-600,#1d4ed8)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\\@container\\/agent{container:agent/inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0\\.5{top:calc(var(--spacing)*.5)}.top-1{top:calc(var(--spacing)*1)}.top-1\\.5{top:calc(var(--spacing)*1.5)}.top-1\\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-6{top:calc(var(--spacing)*6)}.-right-16{right:calc(var(--spacing)*-16)}.right-0\\.5{right:calc(var(--spacing)*.5)}.right-1{right:calc(var(--spacing)*1)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-6{right:calc(var(--spacing)*6)}.bottom-6{bottom:calc(var(--spacing)*6)}.-left-16{left:calc(var(--spacing)*-16)}.left-1\\/2{left:50%}.left-6{left:calc(var(--spacing)*6)}.left-\\[13px\\]{left:13px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[999999\\]{z-index:999999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.i-heroicons-calendar{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-heroicons-chat-bubble-left-right{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193q-.51.041-1.02.072v3.091l-3-3q-2.031 0-4.02-.163a2.1 2.1 0 0 1-.825-.242m9.345-8.334a2 2 0 0 0-.476-.095a48.6 48.6 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.5 48.5 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402c-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235q.865.113 1.74.194V21l4.155-4.155'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-heroicons-cloud-arrow-down{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12 9.75v6.75m0 0l-3-3m3 3l3-3m-8.25 6a4.5 4.5 0 0 1-1.41-8.775a5.25 5.25 0 0 1 10.233-2.33a3 3 0 0 1 3.758 3.848A3.752 3.752 0 0 1 18 19.5z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-heroicons-envelope{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-heroicons-phone{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.04 12.04 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-heroicons-question-mark-circle{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9.879 7.519c1.172-1.025 3.071-1.025 4.243 0c1.171 1.025 1.171 2.687 0 3.712q-.308.268-.67.442c-.746.361-1.452.999-1.452 1.827v.75M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9 5.25h.008v.008H12z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-heroicons-sparkles{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9.813 15.904L9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09m8.445-7.188L18 9.75l-.259-1.035a3.38 3.38 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.38 3.38 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.38 3.38 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.38 3.38 0 0 0-2.456 2.456m-1.365 11.852L16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183l.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394l-1.183.394a2.25 2.25 0 0 0-1.423 1.423'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-simple-icons-facebook{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978c.401 0 .955.042 1.468.103a9 9 0 0 1 1.141.195v3.325a9 9 0 0 0-.653-.036a27 27 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.7 1.7 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103l-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-simple-icons-instagram{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.9 5.9 0 0 0-2.124 1.388a5.9 5.9 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076s-.069 1.688-.063 4.947s.021 3.667.083 4.947c.061 1.277.264 2.149.563 2.911c.308.789.72 1.457 1.388 2.123a5.9 5.9 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552c1.278.056 1.689.069 4.947.063s3.668-.021 4.947-.082c1.28-.06 2.147-.265 2.91-.563a5.9 5.9 0 0 0 2.123-1.388a5.9 5.9 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912c.056-1.28.07-1.69.063-4.948c-.006-3.258-.02-3.667-.081-4.947c-.06-1.28-.264-2.148-.564-2.911a5.9 5.9 0 0 0-1.387-2.123a5.9 5.9 0 0 0-2.128-1.38c-.764-.294-1.636-.496-2.914-.55C15.647.009 15.236-.006 11.977 0S8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.7 3.7 0 0 1-1.382-.895a3.7 3.7 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228c-.06-1.264-.072-1.644-.08-4.848c-.006-3.204.006-3.583.061-4.848c.05-1.169.246-1.805.408-2.228c.216-.561.477-.96.895-1.382a3.7 3.7 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417c1.265-.06 1.644-.072 4.848-.08c3.203-.006 3.583.006 4.85.062c1.168.05 1.804.244 2.227.408c.56.216.96.475 1.382.895s.681.817.9 1.378c.165.422.362 1.056.417 2.227c.06 1.265.074 1.645.08 4.848c.005 3.203-.006 3.583-.061 4.848c-.051 1.17-.245 1.805-.408 2.23c-.216.56-.477.96-.896 1.38a3.7 3.7 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418c-1.266.06-1.645.072-4.85.079s-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442a1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024a6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16A4 4 0 0 1 8 12.008'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-simple-icons-linkedin{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-simple-icons-threads{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098c1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015c-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164c1.43 1.783 3.631 2.698 6.54 2.717c2.623-.02 4.358-.631 5.8-2.045c1.647-1.613 1.618-3.593 1.09-4.798c-.31-.71-.873-1.3-1.634-1.75c-.192 1.352-.622 2.446-1.284 3.272c-.886 1.102-2.14 1.704-3.73 1.79c-1.202.065-2.361-.218-3.259-.801c-1.063-.689-1.685-1.74-1.752-2.964c-.065-1.19.408-2.285 1.33-3.082c.88-.76 2.119-1.207 3.583-1.291a14 14 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757c-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32l-1.757-1.18c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388q.163.07.321.142c1.49.7 2.58 1.761 3.154 3.07c.797 1.82.871 4.79-1.548 7.158c-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69q-.362 0-.739.021c-1.836.103-2.98.946-2.916 2.143c.067 1.256 1.452 1.839 2.784 1.767c1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-simple-icons-tiktok{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12.525.02c1.31-.02 2.61-.01 3.91-.02c.08 1.53.63 3.09 1.75 4.17c1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97c-.57-.26-1.1-.59-1.62-.93c-.01 2.92.01 5.84-.02 8.75c-.08 1.4-.54 2.79-1.35 3.94c-1.31 1.92-3.58 3.17-5.91 3.21c-1.43.08-2.86-.31-4.08-1.03c-2.02-1.19-3.44-3.37-3.65-5.71c-.02-.5-.03-1-.01-1.49c.18-1.9 1.12-3.72 2.58-4.96c1.66-1.44 3.98-2.13 6.15-1.72c.02 1.48-.04 2.96-.04 4.44c-.99-.32-2.15-.23-3.02.37c-.63.41-1.11 1.04-1.36 1.75c-.21.51-.15 1.07-.14 1.61c.24 1.64 1.82 3.02 3.5 2.87c1.12-.01 2.19-.66 2.77-1.61c.19-.33.4-.67.41-1.06c.1-1.79.06-3.57.07-5.36c.01-4.03-.01-8.05.02-12.07'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-simple-icons-x{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-svg-spinners-3-dots-fade{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Ccircle cx='4' cy='12' r='3' fill='black'%3E%3Canimate id='SVG7x14Dcom' fill='freeze' attributeName='opacity' begin='0;SVGqSjG0dUp.end-0.25s' dur='0.75s' values='1;.2'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3' fill='black' opacity='.4'%3E%3Canimate fill='freeze' attributeName='opacity' begin='SVG7x14Dcom.begin+0.15s' dur='0.75s' values='1;.2'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3' fill='black' opacity='.3'%3E%3Canimate id='SVGqSjG0dUp' fill='freeze' attributeName='opacity' begin='SVG7x14Dcom.begin+0.3s' dur='0.75s' values='1;.2'/%3E%3C/circle%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-svg-spinners-90-ring-with-bg{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z' opacity='.25'/%3E%3Cpath fill='black' d='M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z'%3E%3CanimateTransform attributeName='transform' dur='0.75s' repeatCount='indefinite' type='rotate' values='0 12 12;360 12 12'/%3E%3C/path%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-alert-circle{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m9-4v4m0 4h.01'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-brand-github{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-brand-youtube{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M2 8a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4z'/%3E%3Cpath d='m10 9l5 3l-5 3z'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-calendar{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-chevron-down{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9l6 6l6-6'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-logout{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M14 8V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2-2v-2'/%3E%3Cpath d='M9 12h12l-3-3m0 6l3-3'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-mail{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='m3 7l9 6l9-6'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-menu{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h16M4 16h16'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-message-circle{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501S11.659 20.922 7.7 19z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-phone{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-share{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a3 3 0 1 0 6 0a3 3 0 1 0-6 0m12-6a3 3 0 1 0 6 0a3 3 0 1 0-6 0m0 12a3 3 0 1 0 6 0a3 3 0 1 0-6 0m-6.3-7.3l6.6-3.4m-6.6 6l6.6 3.4'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-sparkles{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2m0-12a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2M9 18a6 6 0 0 1 6-6a6 6 0 0 1-6-6a6 6 0 0 1-6 6a6 6 0 0 1 6 6'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-user{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-user-circle{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0'/%3E%3Cpath d='M9 10a3 3 0 1 0 6 0a3 3 0 1 0-6 0m-2.832 8.849A4 4 0 0 1 10 16h4a4 4 0 0 1 3.834 2.855'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-user-square-rounded{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 13a3 3 0 1 0 0-6a3 3 0 0 0 0 6'/%3E%3Cpath d='M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9s-9-1.8-9-9s1.8-9 9-9'/%3E%3Cpath d='M6 20.05V20a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v.05'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-world{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m.6-3h16.8M3.6 15h16.8'/%3E%3Cpath d='M11.5 3a17 17 0 0 0 0 18m1-18a17 17 0 0 1 0 18'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.i-tabler-x{width:1em;height:1em;-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-11{width:calc(var(--spacing)*11);height:calc(var(--spacing)*11)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-full{width:100%;height:100%}.h-10{height:calc(var(--spacing)*10)}.h-20{height:calc(var(--spacing)*20)}.h-\\[28px\\]{height:28px}.h-\\[60px\\]{height:60px}.h-\\[80px\\]{height:80px}.h-\\[80vh\\]{height:80vh}.h-\\[600px\\]{height:600px}.h-full{height:100%}.max-h-\\[calc\\(100vh-48px\\)\\]{max-height:calc(100vh - 48px)}.min-h-0{min-height:calc(var(--spacing)*0)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-96{width:calc(var(--spacing)*96)}.w-\\[3px\\]{width:3px}.w-\\[28px\\]{width:28px}.w-\\[60px\\]{width:60px}.w-\\[80\\%\\]{width:80%}.w-\\[80px\\]{width:80px}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\\[70\\%\\]{max-width:70%}.max-w-\\[255px\\]{max-width:255px}.max-w-\\[300px\\]{max-width:300px}.max-w-\\[calc\\(100vw-48px\\)\\]{max-width:calc(100vw - 48px)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-grow-0{flex-grow:0}.basis-0{flex-basis:calc(var(--spacing)*0)}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-4{--tw-translate-x:calc(var(--spacing)*-4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-\\[30px\\]{--tw-translate-x: -30px ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\\[30px\\]{--tw-translate-y: -30px ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[30px\\]{--tw-translate-y:30px;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-45{rotate:-45deg}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.transform-gpu{transform:translateZ(0)var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-7{gap:calc(var(--spacing)*7)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[5px\\]{border-radius:5px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-green-400{border-color:var(--color-green-400)}.border-primary-400{border-color:var(--color-primary-400)}.border-primary-500\\/40{border-color:var(--color-primary-500)}@supports (color:color-mix(in lab,red,red)){.border-primary-500\\/40{border-color:color-mix(in oklab,var(--color-primary-500)40%,transparent)}}.border-red-400{border-color:var(--color-red-400)}.border-white{border-color:var(--color-white)}.border-white\\/0{border-color:#0000}@supports (color:color-mix(in lab,red,red)){.border-white\\/0{border-color:color-mix(in oklab,var(--color-white)0%,transparent)}}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-primary-500\\/20{background-color:var(--color-primary-500)}@supports (color:color-mix(in lab,red,red)){.bg-primary-500\\/20{background-color:color-mix(in oklab,var(--color-primary-500)20%,transparent)}}.bg-primary-500\\/80{background-color:var(--color-primary-500)}@supports (color:color-mix(in lab,red,red)){.bg-primary-500\\/80{background-color:color-mix(in oklab,var(--color-primary-500)80%,transparent)}}.bg-primary-600{background-color:var(--color-primary-600)}.bg-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\\/15{background-color:#ffffff26}@supports (color:color-mix(in lab,red,red)){.bg-white\\/15{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\\/70{--tw-gradient-from:#000000b3}@supports (color:color-mix(in lab,red,red)){.from-black\\/70{--tw-gradient-from:color-mix(in oklab,var(--color-black)70%,transparent)}}.from-black\\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\\/80{--tw-gradient-from:#000c}@supports (color:color-mix(in lab,red,red)){.from-black\\/80{--tw-gradient-from:color-mix(in oklab,var(--color-black)80%,transparent)}}.from-black\\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\\/90{--tw-gradient-from:#000000e6}@supports (color:color-mix(in lab,red,red)){.from-black\\/90{--tw-gradient-from:color-mix(in oklab,var(--color-black)90%,transparent)}}.from-black\\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-theme-800{--tw-gradient-from:var(--color-theme-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-black\\/10{--tw-gradient-via:#0000001a}@supports (color:color-mix(in lab,red,red)){.via-black\\/10{--tw-gradient-via:color-mix(in oklab,var(--color-black)10%,transparent)}}.via-black\\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\\/50{--tw-gradient-via:#00000080}@supports (color:color-mix(in lab,red,red)){.via-black\\/50{--tw-gradient-via:color-mix(in oklab,var(--color-black)50%,transparent)}}.via-black\\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\\/60{--tw-gradient-via:#0009}@supports (color:color-mix(in lab,red,red)){.via-black\\/60{--tw-gradient-via:color-mix(in oklab,var(--color-black)60%,transparent)}}.via-black\\/60{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\\/90{--tw-gradient-via:#000000e6}@supports (color:color-mix(in lab,red,red)){.via-black\\/90{--tw-gradient-via:color-mix(in oklab,var(--color-black)90%,transparent)}}.via-black\\/90{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-black\\/40{--tw-gradient-to:#0006}@supports (color:color-mix(in lab,red,red)){.to-black\\/40{--tw-gradient-to:color-mix(in oklab,var(--color-black)40%,transparent)}}.to-black\\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-black\\/80{--tw-gradient-to:#000c}@supports (color:color-mix(in lab,red,red)){.to-black\\/80{--tw-gradient-to:color-mix(in oklab,var(--color-black)80%,transparent)}}.to-black\\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-black\\/100{--tw-gradient-to:var(--color-black);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-theme-950{--tw-gradient-to:var(--color-theme-950);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-3\\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-9{padding-inline:calc(var(--spacing)*9)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-12{padding-top:calc(var(--spacing)*12)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[10px\\]{font-size:10px}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-primary-300{color:var(--color-primary-300)}.text-primary-400{color:var(--color-primary-400)}.text-red-400{color:var(--color-red-400)}.text-theme-400{color:var(--color-theme-400)}.text-theme-600{color:var(--color-theme-600)}.text-theme-900{color:var(--color-theme-900)}.text-white{color:var(--color-white)}.text-white\\/20{color:#fff3}@supports (color:color-mix(in lab,red,red)){.text-white\\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\\/40{color:#fff6}@supports (color:color-mix(in lab,red,red)){.text-white\\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.placeholder-theme-500::-moz-placeholder{color:var(--color-theme-500)}.placeholder-theme-500::placeholder{color:var(--color-theme-500)}.placeholder-white\\/50::-moz-placeholder{color:#ffffff80}.placeholder-white\\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.placeholder-white\\/50::-moz-placeholder{color:color-mix(in oklab,var(--color-white)50%,transparent)}.placeholder-white\\/50::placeholder{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-white{--tw-ring-color:var(--color-white)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-1000{--tw-duration:1s;transition-duration:1s}.duration-\\[400ms\\]{--tw-duration:.4s;transition-duration:.4s}.ease-\\[cubic-bezier\\(0\\.25\\,1\\,0\\.33\\,1\\)\\]{--tw-ease:cubic-bezier(.25,1,.33,1);transition-timing-function:cubic-bezier(.25,1,.33,1)}.ease-\\[cubic-bezier\\(0\\.52\\,0\\.01\\,0\\.16\\,1\\)\\]{--tw-ease:cubic-bezier(.52,.01,.16,1);transition-timing-function:cubic-bezier(.52,.01,.16,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.\\[-ms-overflow-style\\:none\\]{-ms-overflow-style:none}.\\[scrollbar-width\\:none\\]{scrollbar-width:none}@media(hover:hover){.group-hover\\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\\:opacity-40:is(:where(.group):hover *){opacity:.4}.hover\\:translate-y-\\[-1px\\]:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:rotate-90:hover{rotate:90deg}.hover\\:border-green-300:hover{border-color:var(--color-green-300)}.hover\\:border-primary-300:hover{border-color:var(--color-primary-300)}.hover\\:border-red-300:hover{border-color:var(--color-red-300)}.hover\\:border-white\\/10:hover{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\\:border-white\\/10:hover{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:border-white\\/40:hover{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.hover\\:border-white\\/40:hover{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.hover\\:bg-green-500:hover{background-color:var(--color-green-500)}.hover\\:bg-primary-500:hover{background-color:var(--color-primary-500)}.hover\\:bg-red-500:hover{background-color:var(--color-red-500)}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:text-white\\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.hover\\:text-white\\/70:hover{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.hover\\:text-white\\/80:hover{color:#fffc}@supports (color:color-mix(in lab,red,red)){.hover\\:text-white\\/80:hover{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\\:border-white\\/40:focus{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.focus\\:border-white\\/40:focus{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:-translate-y-0\\.5:active{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.active\\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:scale-\\[1\\.06\\]:active{scale:1.06}.active\\:opacity-80:active{opacity:.8}.active\\:duration-100:active{--tw-duration:.1s;transition-duration:.1s}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.sm\\:h-24{height:calc(var(--spacing)*24)}.sm\\:w-24{width:calc(var(--spacing)*24)}.sm\\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}@media(min-width:48rem){.md\\:h-\\[600px\\]{height:600px}}@container agent (min-width:480px){.\\@\\[480px\\]\\/agent\\:px-6{padding-inline:calc(var(--spacing)*6)}}.\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}`, n = {
8
+ info: /* @__PURE__ */ s((e) => console.log(`[PageLines Widget] ${e}`), "info"),
9
+ error: /* @__PURE__ */ s((e) => console.error(`[PageLines Widget] ${e}`), "error"),
10
+ warn: /* @__PURE__ */ s((e) => console.warn(`[PageLines Widget] ${e}`), "warn")
11
+ }, c = class c {
12
+ constructor(t) {
13
+ l(this, "app", null);
14
+ l(this, "shadowRoot", null);
15
+ l(this, "widgetInstance", null);
16
+ l(this, "config");
17
+ l(this, "sdk");
18
+ l(this, "container", null);
19
+ if (this.config = t, !t.mode)
20
+ throw new Error("PLWidget: mode is required");
21
+ if (!t.handle && !t.agent)
22
+ throw new Error("PLWidget: either handle or agent is required");
23
+ if (t.mode !== "modal" && t.mode !== "button" && !t.el)
24
+ throw new Error(`PLWidget: el (HTMLElement) is required for ${t.mode} mode`);
25
+ if (t.mode === "modal") {
26
+ const r = t.handle || t.agent?.agentId || "default", o = c.modalInstances.get(r);
27
+ o && (n.warn(`Destroying existing modal widget for: ${r}`), o.destroy()), c.modalInstances.set(r, this);
28
+ }
29
+ const a = typeof window < "u" ? window.location.hostname === "localhost" || window.location.hostname.includes("127.0.0.1") : !1;
30
+ this.sdk = E.getInstance({
31
+ isDev: a,
32
+ ...t.apiBase && { apiBase: t.apiBase }
33
+ }), n.info(`Initializing ${t.mode} mode for @${t.handle || t.agent?.handle} (isDev: ${a})`), this.init();
34
+ }
35
+ async init() {
36
+ if (this.config.mode === "button") {
37
+ await this.mountMode(this.config.el);
38
+ return;
39
+ }
40
+ this.config.mode === "modal" ? (this.container = document.createElement("div"), this.container.id = `pagelines-modal-${this.config.handle || this.config.agent?.agentId || "widget"}`, this.container.style.cssText = "position: fixed; inset: 0; z-index: 9999;", document.body.appendChild(this.container), this.shadowRoot = this.container.attachShadow({ mode: "open" })) : this.shadowRoot = this.config.el.attachShadow({ mode: "open" });
41
+ const t = document.createElement("style");
42
+ t.textContent = j, this.shadowRoot.appendChild(t);
43
+ const a = document.createElement("div");
44
+ a.id = "pagelines-widget-root", a.style.cssText = "width: 100%; height: 100%;", this.shadowRoot.appendChild(a), await this.mountMode(a);
45
+ }
46
+ async mountMode(t) {
47
+ const { mode: a } = this.config;
48
+ if (a === "inline") {
49
+ const { default: r } = await import("./AgentWidgetInline-pTCUPNqY.js");
50
+ this.app = k(r, {
51
+ sdk: this.sdk,
52
+ handle: this.config.handle,
53
+ agent: this.config.agent,
54
+ context: this.config.context,
55
+ firstMessage: this.config.firstMessage,
56
+ buttonText: this.config.buttonText,
57
+ buttonIcon: this.config.buttonIcon
58
+ }), this.widgetInstance = this.app.mount(t);
59
+ } else if (a === "button") {
60
+ if (!this.config.el)
61
+ throw new Error("PLWidget: el is required for button mode");
62
+ const r = this.config.el;
63
+ r.style.cursor = "pointer";
64
+ const o = /* @__PURE__ */ s(() => {
65
+ new c({
66
+ mode: "modal",
67
+ handle: this.config.handle,
68
+ agent: this.config.agent,
69
+ context: this.config.context,
70
+ firstMessage: this.config.firstMessage,
71
+ buttonText: this.config.buttonText,
72
+ buttonIcon: this.config.buttonIcon,
73
+ onClose: this.config.onClose
74
+ });
75
+ }, "handleClick");
76
+ r.addEventListener("click", o), this.destroy = () => {
77
+ r.removeEventListener("click", o), n.info(`Button mode widget destroyed for handle: ${this.config.handle}`);
78
+ };
79
+ } else if (a === "popup") {
80
+ const { default: r } = await import("./AgentWidgetPopup-pe5CmJfa.js");
81
+ this.app = k(r, {
82
+ sdk: this.sdk,
83
+ handle: this.config.handle,
84
+ agent: this.config.agent,
85
+ context: this.config.context,
86
+ firstMessage: this.config.firstMessage,
87
+ buttonText: this.config.buttonText,
88
+ buttonIcon: this.config.buttonIcon,
89
+ position: this.config.position || "bottom-right"
90
+ }), this.widgetInstance = this.app.mount(t);
91
+ } else if (a === "modal") {
92
+ const { default: r } = await import("./AgentWidgetModal-BA74AH8E.js");
93
+ this.app = k(r, {
94
+ sdk: this.sdk,
95
+ handle: this.config.handle,
96
+ agent: this.config.agent,
97
+ context: this.config.context,
98
+ firstMessage: this.config.firstMessage,
99
+ buttonText: this.config.buttonText,
100
+ buttonIcon: this.config.buttonIcon,
101
+ onClose: /* @__PURE__ */ s(() => {
102
+ this.config.onClose && this.config.onClose(), this.destroy();
103
+ }, "onClose")
104
+ }), this.widgetInstance = this.app.mount(t);
105
+ } else
106
+ throw new Error(`PLWidget: unsupported mode "${a}"`);
107
+ }
108
+ /**
109
+ * Update widget with new configuration without re-mounting
110
+ */
111
+ update(t) {
112
+ this.widgetInstance?.update ? (this.widgetInstance.update(t), n.info(`Widget updated: ${Object.keys(t).join(", ")}`)) : n.warn("Widget instance does not support update()");
113
+ }
114
+ /**
115
+ * Toggle widget visibility (popup mode only)
116
+ */
117
+ toggle() {
118
+ this.widgetInstance?.toggle ? this.widgetInstance.toggle() : n.warn("Widget mode does not support toggle()");
119
+ }
120
+ /**
121
+ * Open widget (popup mode only)
122
+ */
123
+ open() {
124
+ this.widgetInstance?.open ? this.widgetInstance.open() : n.warn("Widget mode does not support open()");
125
+ }
126
+ /**
127
+ * Close widget (popup mode only)
128
+ */
129
+ close() {
130
+ this.widgetInstance?.close ? this.widgetInstance.close() : n.warn("Widget mode does not support close()");
131
+ }
132
+ /**
133
+ * Destroy widget and cleanup
134
+ */
135
+ destroy() {
136
+ if (this.app && (this.app.unmount(), this.app = null), this.shadowRoot && (this.shadowRoot.innerHTML = "", this.shadowRoot = null), this.config.mode === "modal") {
137
+ this.container && (this.container.remove(), this.container = null);
138
+ const t = this.config.handle || this.config.agent?.agentId || "default";
139
+ c.modalInstances.delete(t);
140
+ }
141
+ this.widgetInstance = null, n.info(`Widget destroyed for handle: ${this.config.handle || this.config.agent?.handle}`);
142
+ }
143
+ };
144
+ s(c, "PLWidget"), l(c, "modalInstances", /* @__PURE__ */ new Map());
145
+ let u = c;
146
+ function A(e) {
147
+ const t = g(null), a = g(null), r = g(!0), o = g(null), w = g(!1), h = p(() => b(e.handle)), d = p(() => b(e.agent)), v = p(() => b(e.context)), m = p(() => b(e.firstMessage)), y = p(() => e.mode === "modal" ? !!(h.value || d.value) : !!(t.value && (h.value || d.value)));
148
+ return x([t, d, h], async () => {
149
+ if (!(w.value || !y.value)) {
150
+ r.value = !0, o.value = null;
151
+ try {
152
+ await new Promise((C) => setTimeout(C, 0));
153
+ const i = {
154
+ mode: e.mode,
155
+ handle: h.value,
156
+ agent: d.value || void 0,
157
+ context: v.value,
158
+ firstMessage: m.value,
159
+ apiBase: e.apiBase,
160
+ onClose: e.onClose
161
+ };
162
+ e.mode !== "modal" && (i.el = t.value), a.value = new u(i), w.value = !0;
163
+ } catch (i) {
164
+ o.value = i instanceof Error ? i.message : "Failed to initialize widget", console.error("[usePLWidget] Initialization error:", i);
165
+ } finally {
166
+ r.value = !1;
167
+ }
168
+ }
169
+ }, { immediate: !0 }), x([d, v, m], () => {
170
+ if (!a.value || !w.value)
171
+ return;
172
+ const i = {};
173
+ d.value !== void 0 && (i.agent = d.value || void 0), v.value !== void 0 && (i.context = v.value), m.value !== void 0 && (i.firstMessage = m.value), Object.keys(i).length > 0 && a.value.update(i);
174
+ }), M(() => {
175
+ a.value && (a.value.destroy(), a.value = null), w.value = !1;
176
+ }), {
177
+ containerRef: t,
178
+ widget: a,
179
+ loading: r,
180
+ error: o
181
+ };
182
+ }
183
+ s(A, "usePLWidget");
184
+ export {
185
+ u as PLWidget,
186
+ A as usePLWidget
187
+ };
188
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sources":["../widget/PLWidget.ts","../widget/composables/usePLWidget.ts"],"sourcesContent":["import type { App, ComponentPublicInstance } from 'vue'\nimport type { Agent } from '@pagelines/types'\nimport { PageLinesSDK } from '../sdkClient'\nimport sdkCSS from '../agent/ui/styles.css?inline'\nimport { createApp } from 'vue'\n\nexport type WidgetMode = 'inline' | 'button' | 'popup' | 'modal'\nexport type ButtonIconPreset = 'phone' | 'calendar' | 'question' | 'message' | 'sparkles'\n\nexport interface WidgetConfig {\n el?: HTMLElement // Optional for modal/button modes (creates and appends to body for modal)\n mode: WidgetMode\n handle?: string\n agent?: Agent\n context?: string\n firstMessage?: string\n buttonText?: string // Custom button text with template vars: {name}, {title}, {handle}, {orgName}\n buttonIcon?: ButtonIconPreset // Icon preset: phone | calendar | question | message | sparkles\n position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' // Popup mode only\n apiBase?: string\n onClose?: () => void // Callback when widget is closed (modal/popup/button modes)\n}\n\nexport interface WidgetUpdate {\n agent?: Agent\n context?: string\n firstMessage?: string\n buttonText?: string\n buttonIcon?: ButtonIconPreset\n}\n\ntype WidgetInstance = {\n toggle?: () => void\n open?: () => void\n close?: () => void\n update?: (config: WidgetUpdate) => void\n} & ComponentPublicInstance\n\nconst logger = {\n info: (message: string) => console.log(`[PageLines Widget] ${message}`),\n error: (message: string) => console.error(`[PageLines Widget] ${message}`),\n warn: (message: string) => console.warn(`[PageLines Widget] ${message}`),\n}\n\nexport class PLWidget {\n private app: App | null = null\n private shadowRoot: ShadowRoot | null = null\n private widgetInstance: WidgetInstance | null = null\n private config: WidgetConfig\n private sdk: PageLinesSDK\n private container: HTMLElement | null = null\n private static modalInstances = new Map<string, PLWidget>()\n\n constructor(config: WidgetConfig) {\n this.config = config\n\n // Validate required config\n if (!config.mode)\n throw new Error('PLWidget: mode is required')\n if (!config.handle && !config.agent)\n throw new Error('PLWidget: either handle or agent is required')\n\n // For non-modal/button modes, el is required\n if (config.mode !== 'modal' && config.mode !== 'button' && !config.el)\n throw new Error(`PLWidget: el (HTMLElement) is required for ${config.mode} mode`)\n\n // For modal mode, handle singleton pattern\n if (config.mode === 'modal') {\n const instanceKey = config.handle || config.agent?.agentId || 'default'\n const existing = PLWidget.modalInstances.get(instanceKey)\n if (existing) {\n logger.warn(`Destroying existing modal widget for: ${instanceKey}`)\n existing.destroy()\n }\n PLWidget.modalInstances.set(instanceKey, this)\n }\n\n // Create SDK instance (singleton)\n const isDev = typeof window !== 'undefined'\n ? window.location.hostname === 'localhost' || window.location.hostname.includes('127.0.0.1')\n : false\n\n this.sdk = PageLinesSDK.getInstance({\n isDev,\n ...(config.apiBase && { apiBase: config.apiBase }),\n })\n\n logger.info(`Initializing ${config.mode} mode for @${config.handle || config.agent?.handle} (isDev: ${isDev})`)\n\n this.init()\n }\n\n private async init() {\n // Button mode doesn't need shadow DOM - just set up click handler\n if (this.config.mode === 'button') {\n await this.mountMode(this.config.el!)\n return\n }\n\n // For modal mode, create container and append to body\n if (this.config.mode === 'modal') {\n this.container = document.createElement('div')\n this.container.id = `pagelines-modal-${this.config.handle || this.config.agent?.agentId || 'widget'}`\n // Position container to cover viewport for proper modal centering\n this.container.style.cssText = 'position: fixed; inset: 0; z-index: 9999;'\n document.body.appendChild(this.container)\n\n // Create shadow root in modal container\n this.shadowRoot = this.container.attachShadow({ mode: 'open' })\n }\n else {\n // For other modes, use provided element\n this.shadowRoot = this.config.el!.attachShadow({ mode: 'open' })\n }\n\n // Inject SDK CSS into shadow DOM\n const styleElement = document.createElement('style')\n styleElement.textContent = sdkCSS\n this.shadowRoot.appendChild(styleElement)\n\n // Create mount point\n const mountPoint = document.createElement('div')\n mountPoint.id = 'pagelines-widget-root'\n mountPoint.style.cssText = 'width: 100%; height: 100%;'\n this.shadowRoot.appendChild(mountPoint)\n\n // Import and mount mode-specific component\n await this.mountMode(mountPoint)\n }\n\n private async mountMode(mountPoint: HTMLElement) {\n const { mode } = this.config\n\n if (mode === 'inline') {\n const { default: AgentWidgetInline } = await import('./ui/AgentWidgetInline.vue')\n\n this.app = createApp(AgentWidgetInline, {\n sdk: this.sdk,\n handle: this.config.handle,\n agent: this.config.agent,\n context: this.config.context,\n firstMessage: this.config.firstMessage,\n buttonText: this.config.buttonText,\n buttonIcon: this.config.buttonIcon,\n })\n\n this.widgetInstance = this.app.mount(mountPoint) as WidgetInstance\n }\n else if (mode === 'button') {\n // Button mode - element is the button itself, no Vue component\n // Just set up click handler to open modal\n if (!this.config.el)\n throw new Error('PLWidget: el is required for button mode')\n\n const buttonEl = this.config.el\n buttonEl.style.cursor = 'pointer'\n\n const handleClick = () => {\n // Create modal widget on click\n new PLWidget({\n mode: 'modal',\n handle: this.config.handle,\n agent: this.config.agent,\n context: this.config.context,\n firstMessage: this.config.firstMessage,\n buttonText: this.config.buttonText,\n buttonIcon: this.config.buttonIcon,\n onClose: this.config.onClose,\n })\n }\n\n buttonEl.addEventListener('click', handleClick)\n\n // Store cleanup function\n this.destroy = () => {\n buttonEl.removeEventListener('click', handleClick)\n logger.info(`Button mode widget destroyed for handle: ${this.config.handle}`)\n }\n }\n else if (mode === 'popup') {\n const { default: AgentWidgetPopup } = await import('./ui/AgentWidgetPopup.vue')\n\n this.app = createApp(AgentWidgetPopup, {\n sdk: this.sdk,\n handle: this.config.handle,\n agent: this.config.agent,\n context: this.config.context,\n firstMessage: this.config.firstMessage,\n buttonText: this.config.buttonText,\n buttonIcon: this.config.buttonIcon,\n position: this.config.position || 'bottom-right',\n })\n\n this.widgetInstance = this.app.mount(mountPoint) as WidgetInstance\n }\n else if (mode === 'modal') {\n const { default: AgentWidgetModal } = await import('./ui/AgentWidgetModal.vue')\n\n this.app = createApp(AgentWidgetModal, {\n sdk: this.sdk,\n handle: this.config.handle,\n agent: this.config.agent,\n context: this.config.context,\n firstMessage: this.config.firstMessage,\n buttonText: this.config.buttonText,\n buttonIcon: this.config.buttonIcon,\n onClose: () => {\n // Call user's onClose callback if provided\n if (this.config.onClose) {\n this.config.onClose()\n }\n // Auto-destroy modal when closed\n this.destroy()\n },\n })\n\n this.widgetInstance = this.app.mount(mountPoint) as WidgetInstance\n }\n else {\n throw new Error(`PLWidget: unsupported mode \"${mode}\"`)\n }\n }\n\n /**\n * Update widget with new configuration without re-mounting\n */\n update(updates: WidgetUpdate) {\n if (this.widgetInstance?.update) {\n this.widgetInstance.update(updates)\n logger.info(`Widget updated: ${Object.keys(updates).join(', ')}`)\n }\n else {\n logger.warn('Widget instance does not support update()')\n }\n }\n\n /**\n * Toggle widget visibility (popup mode only)\n */\n toggle() {\n if (this.widgetInstance?.toggle) {\n this.widgetInstance.toggle()\n }\n else {\n logger.warn('Widget mode does not support toggle()')\n }\n }\n\n /**\n * Open widget (popup mode only)\n */\n open() {\n if (this.widgetInstance?.open) {\n this.widgetInstance.open()\n }\n else {\n logger.warn('Widget mode does not support open()')\n }\n }\n\n /**\n * Close widget (popup mode only)\n */\n close() {\n if (this.widgetInstance?.close) {\n this.widgetInstance.close()\n }\n else {\n logger.warn('Widget mode does not support close()')\n }\n }\n\n /**\n * Destroy widget and cleanup\n */\n destroy() {\n if (this.app) {\n this.app.unmount()\n this.app = null\n }\n\n if (this.shadowRoot) {\n this.shadowRoot.innerHTML = ''\n this.shadowRoot = null\n }\n\n // For modal mode, remove container from body and remove from singleton map\n if (this.config.mode === 'modal') {\n if (this.container) {\n this.container.remove()\n this.container = null\n }\n\n const instanceKey = this.config.handle || this.config.agent?.agentId || 'default'\n PLWidget.modalInstances.delete(instanceKey)\n }\n\n this.widgetInstance = null\n\n logger.info(`Widget destroyed for handle: ${this.config.handle || this.config.agent?.handle}`)\n }\n}\n","import type { MaybeRef } from 'vue'\nimport type { Agent } from '@pagelines/types'\nimport type { WidgetConfig, WidgetUpdate } from '../PLWidget'\nimport { computed, onUnmounted, ref, unref, watch } from 'vue'\nimport { PLWidget } from '../PLWidget'\n\nexport interface UsePLWidgetConfig {\n mode: WidgetConfig['mode']\n handle?: MaybeRef<string | undefined>\n agent?: MaybeRef<Agent | null | undefined>\n context?: MaybeRef<string | undefined>\n firstMessage?: MaybeRef<string | undefined>\n apiBase?: string\n onClose?: () => void\n}\n\n/**\n * Composable for managing PLWidget lifecycle with automatic initialization,\n * reactive updates, and cleanup.\n *\n * Benefits:\n * - Eliminates manual DOM timing coordination (watch + nextTick)\n * - Automatic cleanup on unmount\n * - Reactive prop updates via widget.update()\n * - Prevents double initialization\n * - Clear loading/error states\n *\n * @example\n * ```vue\n * <script setup>\n * const agentRef = ref<Agent | null>(null)\n * const { containerRef, loading, error } = usePLWidget({\n * mode: 'inline',\n * agent: agentRef,\n * context: 'welcome'\n * })\n * </script>\n *\n * <template>\n * <div ref=\"containerRef\" class=\"w-full h-full\" />\n * </template>\n * ```\n */\nexport function usePLWidget(config: UsePLWidgetConfig) {\n const containerRef = ref<HTMLElement | null>(null)\n const widget = ref<InstanceType<typeof PLWidget> | null>(null)\n const loading = ref(true)\n const error = ref<string | null>(null)\n\n // Track if widget has been initialized to prevent double-init\n const initialized = ref(false)\n\n // Computed values for reactive tracking\n const currentHandle = computed(() => unref(config.handle))\n const currentAgent = computed(() => unref(config.agent))\n const currentContext = computed(() => unref(config.context))\n const currentFirstMessage = computed(() => unref(config.firstMessage))\n\n // Check if we have required data for initialization\n const hasRequiredData = computed(() => {\n if (config.mode === 'modal') {\n // Modal doesn't need container\n return !!(currentHandle.value || currentAgent.value)\n }\n // Inline/popup need container + (handle or agent)\n return !!(containerRef.value && (currentHandle.value || currentAgent.value))\n })\n\n // Initialize widget when container and data are ready\n watch([containerRef, currentAgent, currentHandle], async () => {\n // Skip if already initialized or missing required data\n if (initialized.value || !hasRequiredData.value) {\n return\n }\n\n loading.value = true\n error.value = null\n\n try {\n // Wait for next tick to ensure DOM is fully rendered\n await new Promise(resolve => setTimeout(resolve, 0))\n\n const widgetConfig: WidgetConfig = {\n mode: config.mode,\n handle: currentHandle.value,\n agent: currentAgent.value || undefined,\n context: currentContext.value,\n firstMessage: currentFirstMessage.value,\n apiBase: config.apiBase,\n onClose: config.onClose,\n }\n\n // Add container element for non-modal modes\n if (config.mode !== 'modal') {\n widgetConfig.el = containerRef.value!\n }\n\n widget.value = new PLWidget(widgetConfig)\n initialized.value = true\n } catch (err) {\n error.value = err instanceof Error ? err.message : 'Failed to initialize widget'\n console.error('[usePLWidget] Initialization error:', err)\n } finally {\n loading.value = false\n }\n }, { immediate: true })\n\n // Watch for prop changes and update widget reactively\n watch([currentAgent, currentContext, currentFirstMessage], () => {\n if (!widget.value || !initialized.value) {\n return\n }\n\n const updates: WidgetUpdate = {}\n if (currentAgent.value !== undefined) {\n updates.agent = currentAgent.value || undefined\n }\n if (currentContext.value !== undefined) {\n updates.context = currentContext.value\n }\n if (currentFirstMessage.value !== undefined) {\n updates.firstMessage = currentFirstMessage.value\n }\n\n if (Object.keys(updates).length > 0) {\n widget.value.update(updates)\n }\n })\n\n // Cleanup on unmount\n onUnmounted(() => {\n if (widget.value) {\n widget.value.destroy()\n widget.value = null\n }\n initialized.value = false\n })\n\n return {\n containerRef,\n widget,\n loading,\n error,\n }\n}\n"],"names":["logger","__name","message","_PLWidget","config","__publicField","instanceKey","existing","isDev","PageLinesSDK","styleElement","sdkCSS","mountPoint","mode","AgentWidgetInline","createApp","buttonEl","handleClick","AgentWidgetPopup","AgentWidgetModal","updates","PLWidget","usePLWidget","containerRef","ref","widget","loading","error","initialized","currentHandle","computed","unref","currentAgent","currentContext","currentFirstMessage","hasRequiredData","watch","resolve","widgetConfig","err","onUnmounted"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "@pagelines/sdk",
3
+ "version": "1.0.148",
4
+ "description": "PageLines SDK for agent management, auth, and billing",
5
+ "type": "module",
6
+ "main": "./dist/sdk.js",
7
+ "module": "./dist/sdk.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/sdk.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./agent": {
15
+ "import": "./dist/agent.js",
16
+ "types": "./dist/agent/index.d.ts"
17
+ },
18
+ "./demo": {
19
+ "import": "./dist/demo.js",
20
+ "types": "./dist/demo/index.d.ts"
21
+ },
22
+ "./widget": {
23
+ "import": "./dist/widget.js",
24
+ "types": "./dist/widget/index.d.ts"
25
+ },
26
+ "./constants": {
27
+ "import": "./dist/constants/socialPlatforms.js",
28
+ "types": "./dist/constants/socialPlatforms.d.ts"
29
+ },
30
+ "./sdk.css": {
31
+ "import": "./dist/sdk.css",
32
+ "types": "./sdk.css.d.ts"
33
+ }
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "sdk.css.d.ts"
38
+ ],
39
+ "author": "PageLines",
40
+ "license": "MIT",
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "https://github.com/PageLines/pagelines-app.git",
44
+ "directory": "packages/sdk"
45
+ },
46
+ "homepage": "https://pagelines.com",
47
+ "bugs": {
48
+ "url": "https://github.com/PageLines/pagelines-app/issues"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public",
52
+ "registry": "https://registry.npmjs.org/"
53
+ },
54
+ "peerDependencies": {
55
+ "vue": "^3.5.0"
56
+ },
57
+ "dependencies": {
58
+ "@nanostores/vue": "^1.0.1",
59
+ "hono": "^4.11.9",
60
+ "nanoid": "^5.1.6",
61
+ "nanostores": "^1.0.1",
62
+ "zod": "^4.3.6",
63
+ "@pagelines/types": "1.0.129"
64
+ },
65
+ "devDependencies": {
66
+ "@antfu/eslint-config": "^7.4.3",
67
+ "@iconify-json/devicon": "^1.2.58",
68
+ "@iconify-json/heroicons": "^1.2.3",
69
+ "@iconify-json/logos": "^1.2.9",
70
+ "@iconify-json/lucide": "^1.2.91",
71
+ "@iconify-json/simple-icons": "^1.2.71",
72
+ "@iconify-json/tabler": "^1.2.23",
73
+ "@vitejs/plugin-vue": "^6.0.4",
74
+ "eslint": "^9.38.0",
75
+ "terser": "^5.44.0",
76
+ "typescript": "^5.9.3",
77
+ "vite": "^7.3.1",
78
+ "vite-plugin-dts": "^4.5.4",
79
+ "vitest": "^4.0.18",
80
+ "vue": "^3.5.22",
81
+ "vue-tsc": "^3.2.4"
82
+ },
83
+ "scripts": {
84
+ "dev": "WATCH=1 vite build --config vite.config.sdk.ts --watch",
85
+ "build": "vite build --config vite.config.sdk.ts",
86
+ "preview": "vite preview --config vite.config.sdk.ts",
87
+ "typecheck": "vue-tsc --noEmit",
88
+ "test": "vitest run",
89
+ "test:unit": "vitest run test/api.test.ts",
90
+ "test:build": "pnpm build && vitest run test/build.test.ts",
91
+ "test:watch": "vitest",
92
+ "lint": "eslint . --ext .ts,.vue"
93
+ }
94
+ }