@askly/widget 2.11.0 → 3.1.0

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 (63) hide show
  1. package/MIGRATION-3.0.md +58 -0
  2. package/README.md +131 -3
  3. package/dist/app/HelpTab-BrWJK4wa.js +1 -0
  4. package/dist/app/VoiceRecorder-rdqySW9p.js +1 -0
  5. package/dist/app/ar-V_LzQrur.js +1 -0
  6. package/dist/app/askly-app.js +1 -0
  7. package/dist/app/de-BN3nFgQz.js +1 -0
  8. package/dist/app/es-BvfGFMIb.js +1 -0
  9. package/dist/app/fr-DNlpcnFv.js +1 -0
  10. package/dist/app/hi-C81tFu4P.js +1 -0
  11. package/dist/app/pt-nxDVHThV.js +1 -0
  12. package/dist/app/shared-Cp0FX5Ux.js +1 -0
  13. package/dist/app/speech-8iAgRQFA.js +1 -0
  14. package/dist/index.esm.js +1 -1
  15. package/dist/index.umd.js +1 -1
  16. package/dist/loader.js +1 -0
  17. package/dist/types/app.d.ts +3 -0
  18. package/dist/types/core/api.d.ts +34 -0
  19. package/dist/types/core/config.d.ts +52 -0
  20. package/dist/{core → types/core}/events.d.ts +10 -0
  21. package/dist/types/core/format.d.ts +2 -0
  22. package/dist/types/core/html.d.ts +2 -0
  23. package/dist/{core → types/core}/speech.d.ts +2 -7
  24. package/dist/{core → types/core}/types.d.ts +8 -0
  25. package/dist/types/core/voice.d.ts +6 -0
  26. package/dist/types/i18n/en.d.ts +144 -0
  27. package/dist/types/i18n/index.d.ts +32 -0
  28. package/dist/types/i18n/locales/ar.d.ts +3 -0
  29. package/dist/types/i18n/locales/de.d.ts +3 -0
  30. package/dist/types/i18n/locales/es.d.ts +3 -0
  31. package/dist/types/i18n/locales/fr.d.ts +3 -0
  32. package/dist/types/i18n/locales/hi.d.ts +3 -0
  33. package/dist/types/i18n/locales/pt.d.ts +3 -0
  34. package/dist/types/index.d.ts +8 -0
  35. package/dist/types/loader/attrs.d.ts +4 -0
  36. package/dist/types/loader/core.d.ts +26 -0
  37. package/dist/types/ui/ChatTerms.d.ts +5 -0
  38. package/dist/{ui → types/ui}/GreetingBubble.d.ts +4 -0
  39. package/dist/{ui → types/ui}/Launcher.d.ts +5 -0
  40. package/dist/{ui → types/ui}/MessageList.d.ts +5 -0
  41. package/dist/types/widget-entry.d.ts +1 -0
  42. package/dist/types/widget.d.ts +3 -0
  43. package/dist/widget.js +1 -10
  44. package/package.json +33 -21
  45. package/dist/core/format.d.ts +0 -2
  46. package/dist/index.d.ts +0 -124
  47. package/dist/ui/ChatTerms.d.ts +0 -3
  48. package/dist/widget.d.ts +0 -4
  49. /package/dist/{core → types/core}/greeting.d.ts +0 -0
  50. /package/dist/{core → types/core}/session.d.ts +0 -0
  51. /package/dist/{core → types/core}/storage.d.ts +0 -0
  52. /package/dist/{icons.d.ts → types/icons.d.ts} +0 -0
  53. /package/dist/{identity.d.ts → types/identity.d.ts} +0 -0
  54. /package/dist/{markdown.d.ts → types/markdown.d.ts} +0 -0
  55. /package/dist/{pathRules.d.ts → types/pathRules.d.ts} +0 -0
  56. /package/dist/{realtime.d.ts → types/realtime.d.ts} +0 -0
  57. /package/dist/{ui → types/ui}/Composer.d.ts +0 -0
  58. /package/dist/{ui → types/ui}/ConversationList.d.ts +0 -0
  59. /package/dist/{ui → types/ui}/ExploreTab.d.ts +0 -0
  60. /package/dist/{ui → types/ui}/HelpTab.d.ts +0 -0
  61. /package/dist/{ui → types/ui}/NavTabs.d.ts +0 -0
  62. /package/dist/{ui → types/ui}/PanelHeader.d.ts +0 -0
  63. /package/dist/{ui → types/ui}/VoiceRecorder.d.ts +0 -0
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("react-dom/client")):"function"==typeof define&&define.amd?define(["react","react-dom/client"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).Askly=t(e.React,e.ReactDOM)}(this,function(e,t){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=a(e),n=function(){return n=Object.assign||function(e){for(var t,a=1,r=arguments.length;a<r;a++)for(var n in t=arguments[a])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},n.apply(this,arguments)};function o(e,t,a,r){return new(a||(a=Promise))(function(n,o){function i(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof a?t:new a(function(e){e(t)})).then(i,s)}l((r=r.apply(e,t||[])).next())})}function i(e,t){var a,r,n,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=s(0),i.throw=s(1),i.return=s(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(a)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(o=0)),o;)try{if(a=1,r&&(n=2&s[0]?r.return:s[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,s[1])).done)return n;switch(r=0,n&&(s=[2&s[0],n.value]),s[0]){case 0:case 1:n=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(n=o.trys,(n=n.length>0&&n[n.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!n||s[1]>n[0]&&s[1]<n[3])){o.label=s[1];break}if(6===s[0]&&o.label<n[1]){o.label=n[1],n=s;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(s);break}n[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{a=n=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function s(e,t,a){if(a||2===arguments.length)for(var r,n=0,o=t.length;n<o;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var l=function(e){return function(t){var a=t.size,o=void 0===a?24:a,i=t.color,s=void 0===i?"currentColor":i,l=t.strokeWidth,c=void 0===l?2:l,d=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a}(t,["size","color","strokeWidth"]);return r.default.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:s,strokeWidth:c,strokeLinecap:"round",strokeLinejoin:"round"},d),e.map(function(e,t){var a=e[0],o=e[1];return r.default.createElement(a,n({key:t},o))}))}},c=l([["path",{d:"M18 6 6 18"}],["path",{d:"m6 6 12 12"}]]),d=l([["path",{d:"M5 12h14"}]]),u=l([["path",{d:"m5 12 7-7 7 7"}],["path",{d:"M12 19V5"}]]),p=l([["path",{d:"M12 19v3"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3"}]]),f=l([["path",{d:"M15 3h6v6"}],["path",{d:"m21 3-7 7"}],["path",{d:"m3 21 7-7"}],["path",{d:"M9 21H3v-6"}]]),m=l([["path",{d:"m14 10 7-7"}],["path",{d:"M20 10h-6V4"}],["path",{d:"m3 21 7-7"}],["path",{d:"M4 14h6v6"}]]),h=l([["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"}]]),g=l([["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9"}]]),v=l([["path",{d:"m9 18 6-6-6-6"}]]),y=l([["path",{d:"m15 18-6-6 6-6"}]]),x=l([["path",{d:"M12 7v14"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"}]]),b=l([["path",{d:"m6 9 6 6 6-6"}]]),k=l([["path",{d:"M7 10v12"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z"}]]),w=l([["path",{d:"M17 14V2"}],["path",{d:"M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z"}]]),E=l([["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}]]),N=l([["path",{d:"M20 6 9 17l-5-5"}]]),S=l([["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z"}],["path",{d:"M20 3v4"}],["path",{d:"M22 5h-4"}]]),z=function(e,t,a){var n=e.size,o=void 0===n?22:n,i=e.className,s=e.style;return r.default.createElement("svg",{width:o,height:o,viewBox:t,fill:"none",xmlns:"http://www.w3.org/2000/svg",className:i,style:s},a)},I=function(e){return z(e,"0 0 128 128",r.default.createElement("g",{fill:"currentColor"},r.default.createElement("path",{d:"M109,55c0-29.8-24.2-54-54-54C25.2,1,1,25.2,1,55s24.2,54,54,54c13.5,0,25.8-5,35.2-13.1l25.4,25.4l5.7-5.7L95.9,90.2C104,80.8,109,68.5,109,55z M55,101C29.6,101,9,80.4,9,55S29.6,9,55,9s46,20.6,46,46S80.4,101,55,101z"}),r.default.createElement("path",{d:"M25.6,30.9l6.2,5.1C37.5,29,46,25,55,25v-8C43.6,17,32.9,22.1,25.6,30.9z"}),r.default.createElement("path",{d:"M17,55h8c0-2.1,0.2-4.1,0.6-6.1l-7.8-1.6C17.3,49.8,17,52.4,17,55z"})))},C=function(e){return z(e,"0 0 24 24",r.default.createElement("path",{fill:"currentColor",d:"M16 2H8C4 2 2 4 2 8V21C2 21.55 2.45 22 3 22H16C20 22 22 20 22 16V8C22 4 20 2 16 2ZM14 15.25H7C6.59 15.25 6.25 14.91 6.25 14.5C6.25 14.09 6.59 13.75 7 13.75H14C14.41 13.75 14.75 14.09 14.75 14.5C14.75 14.91 14.41 15.25 14 15.25ZM17 10.25H7C6.59 10.25 6.25 9.91 6.25 9.5C6.25 9.09 6.59 8.75 7 8.75H17C17.41 8.75 17.75 9.09 17.75 9.5C17.75 9.91 17.41 10.25 17 10.25Z"}))},A=function(e){var t=e.size,a=void 0===t?26:t,n=e.className,o=e.style;return r.default.createElement("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:n,style:o},r.default.createElement("g",{transform:"translate(24 0) scale(-1 1)"},r.default.createElement("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M16 2H8C4 2 2 4 2 8V21C2 21.55 2.45 22 3 22H16C20 22 22 20 22 16V8C22 4 20 2 16 2ZM15.5 12.75H8.5C8.09 12.75 7.75 12.41 7.75 12C7.75 11.59 8.09 11.25 8.5 11.25H15.5C15.91 11.25 16.25 11.59 16.25 12C16.25 12.41 15.91 12.75 15.5 12.75Z"})))},M=function(e){return z(e,"0 0 24 24",r.default.createElement(r.default.Fragment,null,r.default.createElement("path",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",d:"M12 20H12.01"}),r.default.createElement("path",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",d:"M7 9C7 7.87439 7.37194 6.83566 7.99963 6C8.91184 4.78555 10.3642 4 12 4C14.7614 4 17 6.23858 17 9C17 11.4212 15.279 13.4405 12.9936 13.9013C12.4522 14.0104 12 14.4477 12 15V15V16"})))};function T(e,t,a){return void 0===t&&(t=[]),void 0===a&&(a=[]),t.length>0?t.some(function(t){return e.startsWith(t)}):!(a.length>0)||!a.some(function(t){return e.startsWith(t)})}var _=[1e3,2e3,5e3,15e3,3e4,6e4];function j(e){for(var t,a="message",r=[],n=0,o=e.split("\n");n<o.length;n++){var i=o[n];if(i&&":"!==i.charAt(0)){var s=i.indexOf(":"),l=-1===s?i:i.slice(0,s),c=-1===s?"":i.slice(s+1).replace(/^ /,"");"event"===l?a=c:"id"===l?t=c:"data"===l&&r.push(c)}}if(0===r.length)return null;try{return{type:a,id:t,data:JSON.parse(r.join("\n"))}}catch(e){return null}}var q={};function R(e,t){return(q[e]=q[e]||[]).push(t),function(){return O(e,t)}}function O(e,t){var a=q[e];if(a)for(var r=a.length-1;r>=0;r--)a[r]!==t&&a[r].original!==t||a.splice(r,1)}function D(e,t){var a=function(r){O(e,a),t(r)};return a.original=t,R(e,a)}function L(e){for(var t=[],a=1;a<arguments.length;a++)t[a-1]=arguments[a];var r=q[e];if(r)for(var n=0,o=r.slice();n<o.length;n++){var i=o[n];try{i(t[0])}catch(t){console.error('[Askly] "'.concat(e,'" handler failed:'),t)}}}var P=null,V=[],U=!1;function F(e){P?P(e):U?V.push(e):console.warn("[Askly] ".concat(e.type,"() ignored: the widget is not initialised on this page."))}var H={ready:!1,open:!1,unread:0,visitorId:""};var B="askly_visitor_",Y="askly_scope_",$={};function W(e){var t;try{var a=window.localStorage.getItem(e);if(null!==a)return a}catch(e){}return null!==(t=$[e])&&void 0!==t?t:null}function G(e,t){$[e]=t;try{window.localStorage.setItem(e,t)}catch(e){}}function J(e){delete $[e];try{window.localStorage.removeItem(e)}catch(e){}}function X(e,t){var a=B+(e||"detect"),r=W(a);if(r)return r;if(t&&t!==e){var n=W(B+t);if(n)return G(a,n),n}var o=function(){try{if("undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID();if("undefined"!=typeof crypto&&"function"==typeof crypto.getRandomValues){var e=crypto.getRandomValues(new Uint8Array(16));e[6]=15&e[6]|64,e[8]=63&e[8]|128;var t=Array.from(e,function(e){return e.toString(16).padStart(2,"0")}).join("");return"".concat(t.slice(0,8),"-").concat(t.slice(8,12),"-").concat(t.slice(12,16),"-").concat(t.slice(16,20),"-").concat(t.slice(20))}}catch(e){}return"v-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))}();return G(a,o),o}function Q(e){var t=e||"detect",a=W(Y+t);a&&a!==t&&Q(a),J(B+t),J("askly_threads_"+t);for(var r=0,n=Object.keys($);r<n.length;r++){(s=n[r]).includes(t)&&!s.startsWith(Y)&&delete $[s]}try{for(var o=[],i=0;i<window.localStorage.length;i++){var s;(s=window.localStorage.key(i))&&s.startsWith("askly_conversations_".concat(t))&&o.push(s)}o.forEach(function(e){return window.localStorage.removeItem(e)})}catch(e){}}function Z(){return"chat_".concat(Date.now(),"_").concat(Math.random().toString(36).slice(2,8))}var K=null,ee=new Set;function te(e){K=e,ee.forEach(function(t){try{t(e)}catch(e){console.error("[Askly] identify listener failed:",e)}})}var ae=new Set,re=0;function ne(){return re}function oe(e){try{var t=window.localStorage.getItem(e),a=t?JSON.parse(t):[];return Array.isArray(a)?a:[]}catch(e){return[]}}var ie=function(){function e(e){this.options=e,this.token=null,this.supported=!0,this.userId=null,this.human=!1,this.pending=null,this.lastFailure=null}return e.prototype.apply=function(e){e&&"string"==typeof e.session_token&&(this.token=e.session_token,this.userId=e.session_verified&&"string"==typeof e.session_user_id?e.session_user_id:null,this.human=!!e.session_human,this.options.onChange())},e.prototype.clear=function(){this.token=null,this.pending=null,this.userId=null,this.human=!1,this.options.onChange()},e.prototype.start=function(e){var t=this,a=this.options.getOrganizationId();if(!this.supported||!a)return Promise.resolve(null);if(this.pending)return this.pending;var r=this.options.getVisitorId(),n=null;return n=o(t,void 0,void 0,function(){var t,o;return i(this,function(i){switch(i.label){case 0:return i.trys.push([0,3,4,5]),[4,fetch(this.options.api("/session"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?{organization_id:a,token:e}:{organization_id:a,visitor_id:r})})];case 1:return 404===(t=i.sent()).status||405===t.status?(this.supported=!1,[2,null]):t.ok?(this.lastFailure=null,[4,t.json()]):(this.lastFailure=401===t.status?"rejected":"transient",[2,null]);case 2:return o=i.sent(),r!==this.options.getVisitorId()?[2,null]:(this.token&&this.token!==e||this.apply(o),[2,this.token]);case 3:return i.sent(),this.lastFailure="transient",[2,null];case 4:return this.pending===n&&(this.pending=null),[7];case 5:return[2]}})}),this.pending=n,n},e.prototype.request=function(e,t){var a;return void 0===t&&(t={}),o(this,void 0,void 0,function(){var r,o,s,l,c,d,u;return i(this,function(i){switch(i.label){case 0:return r=function(a){return fetch("function"==typeof e?e(!!a):e,n(n({},t),{headers:n(n({},t.headers),a?{Authorization:"Bearer ".concat(a)}:{})}))},null===(a=this.token)||void 0===a?[3,1]:(s=a,[3,3]);case 1:return[4,this.start()];case 2:s=i.sent(),i.label=3;case 3:return[4,r(o=s)];case 4:return 401===(l=i.sent()).status&&o?[4,this.start(o)]:[2,{res:l,token:o}];case 5:return(c=i.sent())&&c!==o?[3,9]:(d=this.token)&&d!==o?(c=d,[3,9]):[3,6];case 6:return"rejected"!==this.lastFailure?[3,8]:(this.clear(),[4,this.start()]);case 7:return c=i.sent(),[3,9];case 8:return[2,{res:l,token:o}];case 9:return u={},[4,r(c)];case 10:return[2,(u.res=i.sent(),u.token=c,u)]}})})},e.prototype.fetch=function(e,t){return void 0===t&&(t={}),o(this,void 0,void 0,function(){return i(this,function(a){switch(a.label){case 0:return[4,this.request(e,t)];case 1:return[2,a.sent().res]}})})},e}();function se(e){return!1===e||"off"===e?"off":!0===e||"review"===e?"review":"auto-send"===e?"auto-send":void 0}var le=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus"];function ce(e){return o(this,void 0,void 0,function(){var t,a,r,n,o,s,l,c,d,u,p,f,m,h,g,v,y,x,b,k,w,E,N,S,z,I;return i(this,function(i){switch(i.label){case 0:if(t="undefined"==typeof window||"undefined"==typeof navigator?"unsupported":navigator.mediaDevices&&navigator.mediaDevices.getUserMedia?void 0===window.MediaRecorder?"unsupported":null:!1===window.isSecureContext?"insecure":"unsupported")throw{code:t};i.label=1;case 1:return i.trys.push([1,3,,4]),[4,navigator.mediaDevices.getUserMedia({audio:{channelCount:1,echoCancellation:!0,noiseSuppression:!0}})];case 2:return a=i.sent(),[3,4];case 3:throw r=i.sent(),{code:(C=r,A=C&&C.name,"NotAllowedError"===A||"SecurityError"===A||"PermissionDeniedError"===A?"denied":"NotFoundError"===A||"DevicesNotFoundError"===A||"OverconstrainedError"===A?"no-microphone":"failed")};case 4:n=function(){try{a.getTracks().forEach(function(e){return e.stop()})}catch(e){}};try{s=function(){var e=window.MediaRecorder;if(e&&"function"==typeof e.isTypeSupported)for(var t=0,a=le;t<a.length;t++){var r=a[t];try{if(e.isTypeSupported(r))return r}catch(e){}}}(),l={audioBitsPerSecond:32e3},s&&(l.mimeType=s),o=new window.MediaRecorder(a,l)}catch(C){throw n(),{code:"unsupported"}}c=null,d=null,u=null;try{(p=window.AudioContext||window.webkitAudioContext)&&(c=new p,(d=c.createAnalyser()).fftSize=1024,c.createMediaStreamSource(a).connect(d),(f=c.createGain()).gain.value=0,d.connect(f),f.connect(c.destination),"suspended"===c.state&&c.resume&&c.resume().catch(function(){}),u=new Uint8Array(d.fftSize))}catch(e){d=null}m=[],h=Date.now(),g=!1,v=!1,y=-1,x=0,b=!1,k=h,w=!1,E=!1,N=!1,S=null,z=function(){if(S&&clearInterval(S),S=null,n(),c)try{c.close()}catch(e){}c=null},I=function(){if(!N){N=!0;try{"inactive"!==o.state?o.stop():o.onstop()}catch(e){o.onstop()}}},o.ondataavailable=function(e){e.data&&e.data.size>0&&m.push(e.data)},o.onstop=function(){if(!E){E=!0;var t=Date.now()-h;if(z(),!w){var a=(o.mimeType||m[0]&&m[0].type||"audio/webm").split(";")[0],r=v&&x<.0015?"no-audio":b?"no-speech":"ok";e.onDone({blob:new Blob(m,{type:a}),durationMs:t,outcome:r})}}},o.onerror=function(){return I()},S=setInterval(function(){var t=Date.now(),a=t-h,r=0,n=d&&u&&c&&"running"===c.state;if(n){if(d&&u){v=!0,d.getByteTimeDomainData(u);for(var o=0,i=0;i<u.length;i++){var s=(u[i]-128)/128;o+=s*s}r=Math.sqrt(o/u.length),x=Math.max(x,r),y=y<0?r:Math.min(r,1.05*y+3e-4),r>Math.max(.008,3*y+.004)&&(g=!0,k=t)}}else k=t;e.onMeter(Math.min(1,r/Math.max(.04,x)),a),a>=e.maxMs||n&&g&&t-k>=e.silenceMs?I():v&&!g&&a>=e.noSpeechMs&&(b=!0,I())},100);try{o.start()}catch(C){throw w=!0,E=!0,z(),{code:"failed"}}return[2,{stop:I,cancel:function(){w=!0,I()}}]}var C,A})})}function de(e){try{window.sessionStorage.setItem("askly_greeting_dismissed_".concat(e),"1")}catch(e){}}function ue(e){L("shown"===e?"greeting:shown":"clicked"===e?"greeting:clicked":"greeting:dismissed");try{window.dispatchEvent(new Event("askly:greeting:".concat(e)))}catch(e){}}var pe={headings:!1,blockquotes:!1,images:!1},fe={headings:!0,blockquotes:!0,images:!0};function me(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function he(e){var t=e.trim();return/^(https?:\/\/|mailto:|tel:)/i.test(t)&&!/[\s\0-]/.test(t)}function ge(e,t){return'<a href="'.concat(me(e.trim()),'" target="_blank" rel="noopener noreferrer" class="message-inline-link">').concat(t,"</a>")}var ve=function(){function e(){this.items=[]}return e.prototype.put=function(e){return this.items.push(e),"".concat("").concat(this.items.length-1).concat("")},e.prototype.restore=function(e){var t=this;return e.replace(/(\d+)/g,function(e,a){return t.items[Number(a)]})},e}(),ye=/`([^`\n]+)`/g,xe=/!\[([^\]\n]*)\]\(((?:[^()\s]|\([^()\s]*\))+)\)/g,be=/\[([^\]\n]+)\]\(((?:[^()\s]|\([^()\s]*\))+)\)/g,ke=/(^|[^\w"'=/\]\(])(https?:\/\/[^\s<>()]*[^\s<>().,;:!?'"])/g,we=/\*\*(?=\S)([\s\S]*?\S)\*\*/g,Ee=/(^|[^\w*])\*(?=\S)([^*\n]*?\S)\*(?![\w*])/g,Ne=/(^|[^\w_])_(?=\S)([^_\n]*?\S)_(?![\w_])/g;function Se(e,t){var a=new ve,r=e;return t.emphasis&&(r=r.replace(ye,function(e,t){return a.put('<code class="inline-code">'.concat(me(t),"</code>"))})),t.images?r=r.replace(xe,function(e,t,r){return function(e){var t=e.trim();return/^https:\/\//i.test(t)&&!/[\s\0-]/.test(t)}(r)?a.put('<img src="'.concat(me(r.trim()),'" alt="').concat(me(t),'" class="message-inline-image" />')):a.put(me(t))}):t.links&&(r=r.replace(xe,function(e,t,r){return a.put(he(r)?ge(r,me(t||r)):me(t||r))})),t.links&&(r=r.replace(be,function(e,t,r){return a.put(he(r)?ge(r,me(t)):me(t))})),r=r.replace(ke,function(e,t,r){return t+a.put(ge(r,me(r)))}),r=me(r),t.emphasis&&(r=(r=(r=r.replace(we,"<strong>$1</strong>")).replace(Ee,"$1<em>$2</em>")).replace(Ne,"$1<em>$2</em>")),r=r.replace(/\n/g,"<br />"),a.restore(r)}var ze=/^\s{0,3}```\s*([\w+-]*)\s*$/,Ie=/^\s{0,3}```\s*$/,Ce=/^\s{0,3}(#{1,3})\s+(.+?)\s*#*\s*$/,Ae=/^\s{0,3}>\s?(.*)$/,Me=/^\s*([-*+]|\d{1,3}[.)])\s+(.*)$/,Te=/^\s{2,}\S/;function _e(e,t){for(var a={emphasis:!0,links:!0,images:t.images},r=e.replace(/\r\n?/g,"\n").split("\n"),n=[],o=0,i=function(e){return ze.test(e)||Me.test(e)||t.headings&&Ce.test(e)||t.blockquotes&&Ae.test(e)};o<r.length;){var s=r[o];if(""!==s.trim()){var l=s.match(ze);if(l){var c=l[1],d=[];for(o++;o<r.length&&!Ie.test(r[o]);)d.push(r[o]),o++;for(o++;d.length&&""===d[d.length-1].trim();)d.pop();var u=c?' class="language-'.concat(c,'"'):"";n.push("<pre><code".concat(u,">").concat(me(d.join("\n")),"</code></pre>"))}else{if(t.headings){var p=s.match(Ce);if(p){var f=p[1].length;n.push("<h".concat(f,">").concat(Se(p[2],a),"</h").concat(f,">")),o++;continue}}if(t.blockquotes&&Ae.test(s)){for(var m=[];o<r.length;){var h=r[o].match(Ae);if(!h)break;m.push(h[1]),o++}n.push("<blockquote><p>".concat(Se(m.join("\n"),a),"</p></blockquote>"))}else{var g=s.match(Me);if(g){for(var v=/\d/.test(g[1]),y=v?parseInt(g[1],10):1,x=[];o<r.length;){var b=r[o].match(Me);if(b)x.push(b[2]),o++;else{if(!x.length||!Te.test(r[o]))break;x[x.length-1]+=" "+r[o].trim(),o++}}var k=v?"ol":"ul",w=v&&1!==y?' start="'.concat(y,'"'):"";n.push("<".concat(k).concat(w,">").concat(x.map(function(e){return"<li>".concat(Se(e,a),"</li>")}).join(""),"</").concat(k,">"))}else{var E=[s];for(o++;o<r.length&&""!==r[o].trim()&&!i(r[o]);)E.push(r[o]),o++;n.push("<p>".concat(Se(E.join("\n"),a),"</p>"))}}}}else o++}return n.join("")}function je(e){if(!e)return"";try{var t=new Date(e);return isNaN(t.getTime())?"":t.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}catch(e){return""}}function qe(e){var t=e.conversations,a=e.setActiveChatId,n=e.startNewChat;return r.default.createElement("div",{className:"conversations-list-container"},r.default.createElement("div",{className:"conversations-scrollable"},0===t.length&&r.default.createElement("div",{className:"askly-empty-state"},r.default.createElement("div",{className:"askly-empty-icon"},r.default.createElement(C,{size:22})),r.default.createElement("div",{className:"askly-empty-title"},"No conversations yet"),r.default.createElement("div",{className:"askly-empty-desc"},"Start a chat and our AI agent & team will help you out.")),t.map(function(e,n){var o,i=e.messages[e.messages.length-1],s=i?i.content:"No messages yet",l=e.lastUpdated?new Date(e.lastUpdated):new Date;return r.default.createElement("button",{key:e.id,className:"conversation-list-item",onClick:function(){return a(e.id)}},r.default.createElement("div",{className:"conversation-item-left"},r.default.createElement("div",{className:"conversation-item-details"},r.default.createElement("span",{className:"conversation-item-title"},"Chat #",t.length-n),r.default.createElement("span",{className:"conversation-item-preview"},(o=s,o?o.replace(/```[\s\S]*?```/g," [Code] ").replace(/!\[[^\]]*\]\([^)]*\)/g,"[Image]").replace(/\[[^\]]*\]\([^)]*\)/g,"[Link]").replace(/`([^`]*)`/g,"$1").replace(/\*\*([^*]*)\*\*/g,"$1").replace(/(^|[^\w*])\*([^*\n]+)\*(?![\w*])/g,"$1$2").replace(/(^|[^\w_])_([^_\n]+)_(?![\w_])/g,"$1$2").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s*(?:[-*+]|\d{1,3}[.)])\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/\s+/g," ").trim():"").slice(0,50)))),r.default.createElement("div",{className:"conversation-item-right"},r.default.createElement("span",{className:"conversation-item-time"},je(l)),r.default.createElement(v,{size:14})))})),r.default.createElement("button",{className:"start-new-chat-btn",onClick:function(){return n()}},"Ask a Question"))}function Re(e){var t=e.open,a=e.setOpen,n=e.buttonIcon,o=e.buttonShape,i=e.buttonStyle,s=e.launcherUnread,l=e.resolvedTheme,c=e.setActiveChatId,d=e.setActiveTab,u=e.unreadChatId;return r.default.createElement("div",{className:"askly-chat-button shape-".concat(o," ").concat(t?"open":""),"data-askly-theme":l,style:i,onClick:function(){!t&&u&&(d("messages"),c(u)),a(!t)},title:"Support Center"},t?r.default.createElement(b,{size:24}):"💬"===n?r.default.createElement(A,{size:32}):n,!t&&s>0&&r.default.createElement("span",{className:"askly-launcher-badge",role:"status","aria-label":1===s?"1 new message":"".concat(s," new messages")},s>9?"9+":s))}function Oe(e){var t=e.accentVars,a=e.aiAnswering,n=e.aiAvatarUrl,o=e.dismissGreeting,i=e.faqs,s=e.greetingText,l=e.openFromGreeting,d=e.organizationLogo,u=e.position,p=e.resolvedTheme;return r.default.createElement("div",{className:"askly-greeting askly-greeting-".concat(u),"data-askly-theme":p,style:t,role:"status"},r.default.createElement("div",{className:"askly-greeting-card"},r.default.createElement("button",{type:"button",className:"askly-greeting-body",onClick:function(){return l()}},(a&&n||d)&&r.default.createElement("img",{src:a&&n||d,alt:"",className:"askly-greeting-avatar"}),r.default.createElement("span",{className:"askly-greeting-text"},s)),r.default.createElement("button",{type:"button",className:"askly-greeting-close",onClick:o,"aria-label":"Dismiss greeting",title:"Dismiss"},r.default.createElement(c,{size:14}))),i.length>0&&r.default.createElement("div",{className:"askly-greeting-chips"},i.slice(0,3).map(function(e,t){return r.default.createElement("button",{type:"button",key:t,className:"quick-reply-chip askly-greeting-chip",onClick:function(){return l(e.question)}},e.question)})))}function De(e){var t=e.allArticles,a=e.articlesLoading,n=e.expandedFaqIndex,o=e.faqs,i=e.handleSearchChange,s=e.handleSelectArticle,l=e.organizationLogo,c=e.organizationName,d=e.searchError,u=e.searchLoading,p=e.searchQuery,f=e.searchResults,m=e.setActiveTab,h=e.setExpandedFaqIndex,g=e.setInput;return r.default.createElement("div",{className:"chat-body home-layout"},r.default.createElement("div",{className:"home-hero"},r.default.createElement("div",{className:"home-hero-brand"},r.default.createElement("img",{src:l||"https://askly.co.in/logo-small.png",alt:c,className:"home-hero-logo"})),r.default.createElement("div",{className:"home-hero-title"},"Hello there"),r.default.createElement("div",{className:"home-hero-subtitle"},"How can we help?")),r.default.createElement("div",{className:"home-content"},r.default.createElement("div",{className:"explore-search"},r.default.createElement(I,{size:16,className:"explore-search-icon"}),r.default.createElement("input",{type:"text",value:p,onChange:i,placeholder:"Search for help…"}),u&&r.default.createElement("span",{className:"search-loader"})),""!==p.trim()?r.default.createElement("div",{className:"explore-search-panel"},d?r.default.createElement("div",{className:"no-search-results"},d):0!==f.length||u?f.map(function(e){return r.default.createElement("button",{key:e.id,className:"search-result-item",onClick:function(){s(e),m("help")}},r.default.createElement(x,{size:13,style:{flexShrink:0}}),r.default.createElement("span",{className:"search-result-title"},e.title),r.default.createElement(v,{size:14,style:{marginLeft:"auto",flexShrink:0}}))}):r.default.createElement("div",{className:"no-search-results"},'No articles matching "',p,'"')):r.default.createElement(r.default.Fragment,null,r.default.createElement("button",{className:"explore-cta",onClick:function(){return m("messages")}},r.default.createElement("span",{className:"explore-cta-orbs","aria-hidden":"true"}),r.default.createElement("span",{className:"explore-cta-text"},r.default.createElement("span",{className:"explore-cta-title"},"Ask our AI Agent"),r.default.createElement("span",{className:"explore-cta-sub"},"Instant answers, 24/7 — or reach the team")),r.default.createElement("span",{className:"explore-cta-arrow"},r.default.createElement(v,{size:18}))),r.default.createElement("div",{className:"explore-tiles"},r.default.createElement("button",{className:"explore-tile",onClick:function(){return m("help")}},r.default.createElement("span",{className:"explore-tile-icon"},r.default.createElement(x,{size:18})),r.default.createElement("span",{className:"explore-tile-title"},"Help Center"),r.default.createElement("span",{className:"explore-tile-sub"},"Guides & docs")),r.default.createElement("button",{className:"explore-tile",onClick:function(){return m("messages")}},r.default.createElement("span",{className:"explore-tile-icon"},r.default.createElement(C,{size:18})),r.default.createElement("span",{className:"explore-tile-title"},"Messages"),r.default.createElement("span",{className:"explore-tile-sub"},"Your conversations"))),o.length>0&&r.default.createElement("div",{className:"explore-section"},r.default.createElement("div",{className:"explore-section-head"},r.default.createElement("span",null,"Popular questions"),r.default.createElement("span",{className:"explore-section-count"},o.length)),r.default.createElement("div",{className:"explore-faq-list"},o.map(function(e,t){var a=n===t;return r.default.createElement("div",{key:t,className:"explore-faq ".concat(a?"open":"")},r.default.createElement("button",{className:"explore-faq-q",onClick:function(){return h(a?null:t)}},r.default.createElement("span",null,e.question),r.default.createElement(b,{size:15,className:"explore-faq-chevron"})),a&&r.default.createElement("div",{className:"explore-faq-a"},r.default.createElement("div",null,e.answer),r.default.createElement("button",{className:"faq-ask-link",onClick:function(){g(e.question),m("messages")}},r.default.createElement("span",null,"Ask AI Agent about this"),r.default.createElement(v,{size:12}))))}))),(a||t.length>0)&&r.default.createElement("div",{className:"explore-section"},r.default.createElement("div",{className:"explore-section-head"},r.default.createElement("span",null,"Recommended reading")),r.default.createElement("div",{className:"recommended-articles-list"},a?[0,1,2].map(function(e){return r.default.createElement("div",{key:e,className:"rec-article-skeleton"},r.default.createElement("span",{className:"askly-skeleton askly-skeleton-chip"}),r.default.createElement("span",{className:"askly-skeleton askly-skeleton-line"}))}):t.slice(0,3).map(function(e){return r.default.createElement("button",{key:e.id,className:"rec-article-row",onClick:function(){s(e),m("help")}},r.default.createElement(x,{size:13,className:"rec-article-icon"}),r.default.createElement("span",{className:"rec-article-title"},e.title),r.default.createElement(v,{size:14,className:"rec-article-chevron"}))}))))))}function Le(e){var t,a,o=e.allArticles,i=e.articleFeedback,s=e.articlesLoading,l=e.handleSearchChange,c=e.handleSelectArticle,d=e.organizationLogo,u=e.organizationName,p=e.searchError,f=e.searchLoading,m=e.searchQuery,h=e.searchResults,g=e.selectedArticle,b=e.selectedCollection,k=e.setActiveTab,w=e.setArticleFeedback,E=e.setInput,N=e.setSelectedArticle,z=e.setSelectedCollection,C=e.themeColor;return r.default.createElement("div",{className:"chat-body help-layout"},g?r.default.createElement("div",{className:"help-article-reader"},r.default.createElement("div",{className:"article-breadcrumb"},r.default.createElement("button",{className:"article-breadcrumb-link",onClick:function(){N(null),z(null)}},"Help Center"),r.default.createElement("span",null,"/"),r.default.createElement("span",{className:"article-breadcrumb-type"},g.document_type||"Guide")),r.default.createElement("button",{className:"help-back-btn",onClick:function(){return N(null)},style:{marginBottom:14}},r.default.createElement(y,{size:16}),r.default.createElement("span",null,"Back to articles")),r.default.createElement("div",{className:"help-article-heading"},g.title),r.default.createElement("div",{className:"article-author-bar"},r.default.createElement("img",{src:d||"https://askly.co.in/logo-small.png",alt:u,className:"article-author-avatar"}),r.default.createElement("div",{className:"article-author-text"},r.default.createElement("span",{className:"article-author-name"},"Written by ",u," Support Team"),r.default.createElement("span",{className:"article-author-meta"},"Updated recently • ⏱ ",Math.max(1,Math.ceil((g.content||"").split(/\s+/).length/180))," min read"))),r.default.createElement("div",{className:"help-article-body",dangerouslySetInnerHTML:{__html:(a=g.content,a?_e(a,fe):"")}}),r.default.createElement("div",{className:"article-feedback"},r.default.createElement("div",{className:"article-feedback-title"},"Did this answer your question?"),i[g.id]?r.default.createElement("div",{className:"article-feedback-thanks"},"🎉 Thank you for your feedback!"):r.default.createElement("div",{className:"article-feedback-options"},r.default.createElement("button",{className:"article-feedback-btn",onClick:function(){return w(function(e){var t;return n(n({},e),((t={})[g.id]="yes",t))})}},"😃 Yes"),r.default.createElement("button",{className:"article-feedback-btn",onClick:function(){return w(function(e){var t;return n(n({},e),((t={})[g.id]="somewhat",t))})}},"😐 Somewhat"),r.default.createElement("button",{className:"article-feedback-btn",onClick:function(){return w(function(e){var t;return n(n({},e),((t={})[g.id]="no",t))})}},"😞 No")),r.default.createElement("button",{className:"article-handoff",onClick:function(){E('I have a question about article "'.concat(g.title,'": ')),k("messages")}},r.default.createElement("div",{className:"article-handoff-text"},r.default.createElement("span",{className:"article-handoff-title"},r.default.createElement(S,{size:13})," Still have questions?"),r.default.createElement("span",{className:"article-handoff-desc"},"Ask our AI Agent for instant answers")),r.default.createElement(v,{size:16,className:"article-handoff-chevron"})))):r.default.createElement("div",null,r.default.createElement("div",{className:"home-search-input-wrapper",style:{marginBottom:14}},r.default.createElement(I,{size:14,className:"search-icon-svg"}),r.default.createElement("input",{type:"text",value:m,onChange:l,placeholder:"Search for articles..."}),f&&r.default.createElement("span",{className:"search-loader"})),b&&r.default.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:12}},r.default.createElement("button",{onClick:function(){return z(null)},style:{all:"unset",cursor:"pointer",fontSize:12,color:C,fontWeight:500,display:"flex",alignItems:"center",gap:4}},r.default.createElement(y,{size:14}),r.default.createElement("span",null,"All Collections")),r.default.createElement("span",{style:{fontSize:12,color:"var(--text-4)"}},"/"),r.default.createElement("span",{style:{fontSize:12,fontWeight:600,color:"var(--text-1)",textTransform:"capitalize"}},b)),r.default.createElement("div",{className:"help-articles-list"},""===m.trim()?b?(t=o.filter(function(e){return(e.document_type||"guide").toLowerCase()===b.toLowerCase()}),r.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:10,width:"100%"}},r.default.createElement("div",{style:{fontSize:11,fontWeight:600,color:"var(--text-3)",textTransform:"uppercase",letterSpacing:"0.5px"}},b," Articles (",t.length,")"),r.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:8}},t.map(function(e){return r.default.createElement("button",{key:e.id,className:"help-article-row",onClick:function(){return c(e)}},r.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:3,alignItems:"flex-start",textAlign:"left"}},r.default.createElement("span",{className:"article-row-title"},e.title),e.content&&r.default.createElement("span",{className:"article-row-preview"},e.content.replace(/[\n\r]+/g," ").slice(0,85),"...")),r.default.createElement(v,{size:14,className:"article-row-chevron"}))})))):r.default.createElement("div",{className:"help-collections"},function(){if(s)return[0,1,2].map(function(e){return r.default.createElement("div",{key:e,className:"help-collection-card is-skeleton"},r.default.createElement("div",{className:"help-collection-left"},r.default.createElement("span",{className:"askly-skeleton help-collection-icon-skel"}),r.default.createElement("div",{className:"help-collection-text"},r.default.createElement("span",{className:"askly-skeleton askly-skeleton-line",style:{width:"60%"}}),r.default.createElement("span",{className:"askly-skeleton askly-skeleton-line",style:{width:"90%"}}))))});var e={};o.forEach(function(t){var a=(t.document_type||"guide").toLowerCase();e[a]||(e[a]=[]),e[a].push(t)});var t=Object.keys(e);return 0===t.length?r.default.createElement("div",{className:"askly-empty-state"},r.default.createElement("div",{className:"askly-empty-icon"},r.default.createElement(x,{size:22})),r.default.createElement("div",{className:"askly-empty-title"},"Help Documentation"),r.default.createElement("div",{className:"askly-empty-desc"},"Search above to fetch instant solutions from our knowledge base.")):t.map(function(t){var a=e[t],n="guide"===t?"Guides & Tutorials":"faq"===t?"Frequently Asked Questions":"troubleshooting"===t?"Troubleshooting & Support":"Rules & Documentation",o="guide"===t?"Setup walkthroughs, rules, and getting started guides":"faq"===t?"Quick answers to common account and service questions":"troubleshooting"===t?"Step-by-step solutions for technical issues":"Official terms, rules, and policy documentation";return r.default.createElement("button",{key:t,className:"help-collection-card",onClick:function(){return z(t)}},r.default.createElement("div",{className:"help-collection-left"},r.default.createElement("div",{className:"help-collection-icon"},r.default.createElement(x,{size:16})),r.default.createElement("div",{className:"help-collection-text"},r.default.createElement("div",{className:"help-collection-title"},n),r.default.createElement("div",{className:"help-collection-desc"},o),r.default.createElement("div",{className:"help-collection-count"},a.length," ",1===a.length?"article":"articles"))),r.default.createElement(v,{size:16,className:"help-collection-chevron"}))})}()):p?r.default.createElement("div",{className:"no-search-results"},p):0!==h.length||f?h.map(function(e){return r.default.createElement("button",{key:e.id,className:"help-article-row",onClick:function(){return c(e)}},r.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:3,alignItems:"flex-start"}},r.default.createElement("span",{className:"article-row-title"},e.title),r.default.createElement("span",{className:"article-row-preview"},e.content.slice(0,80),"...")),r.default.createElement(v,{size:14,className:"article-row-chevron"}))}):r.default.createElement("div",{className:"no-search-results"},'No articles matching "',m,'"'))))}function Pe(e){var t=e.activeTab,a=e.setActiveTab,n=e.setSelectedArticle;return r.default.createElement("div",{className:"chat-nav-tabs"},r.default.createElement("button",{className:"nav-tab-btn ".concat("explore"===t?"active":""),onClick:function(){a("explore"),n(null)}},r.default.createElement("span",{className:"nav-tab-icon"},r.default.createElement(I,{active:"explore"===t})),r.default.createElement("span",null,"Explore")),r.default.createElement("button",{className:"nav-tab-btn ".concat("messages"===t?"active":""),onClick:function(){return a("messages")}},r.default.createElement("span",{className:"nav-tab-icon"},r.default.createElement(C,{active:"messages"===t})),r.default.createElement("span",null,"Messages")),r.default.createElement("button",{className:"nav-tab-btn ".concat("help"===t?"active":""),onClick:function(){return a("help")}},r.default.createElement("span",{className:"nav-tab-icon"},r.default.createElement(M,{active:"help"===t})),r.default.createElement("span",null,"Help")))}function Ve(t){var a=t.phase,n=t.meterRef,o=t.maxMs,i=t.onStop,s=t.onCancel,l=e.useState([]),d=l[0],u=l[1],p=e.useState(0),f=p[0],m=p[1];e.useEffect(function(){if("recording"===a){var e=setInterval(function(){var e=n.current,t=e.level,a=e.elapsedMs;m(a),u(function(e){return(e.length>=80?e.slice(1):e).concat(t)})},100);return function(){return clearInterval(e)}}},[a]);var h="recording"===a,g=o-f,v="transcribing"===a?"Transcribing…":h?"Listening…":"Waiting for the microphone…";return r.default.createElement("div",{className:"askly-voice ".concat(a)},r.default.createElement("button",{type:"button",className:"askly-voice-btn",onClick:s,title:"Cancel","aria-label":"Cancel voice input"},r.default.createElement(c,{size:20})),r.default.createElement("span",{className:"askly-voice-meter","aria-hidden":"true"},d.map(function(e,t){return r.default.createElement("i",{key:t,style:{height:"".concat(Math.round(2+22*Math.min(1,e)),"px")}})})),r.default.createElement("span",{className:"askly-voice-status",role:"status"},v),h&&g<=1e4&&r.default.createElement("span",{className:"askly-voice-time"},Math.max(0,Math.ceil(g/1e3)),"s"),h?r.default.createElement("button",{type:"button",className:"askly-voice-btn done",onClick:i,title:"Stop and transcribe","aria-label":"Stop and transcribe"},r.default.createElement("span",{className:"askly-voice-stop"})):r.default.createElement("span",{className:"askly-voice-btn done busy","aria-hidden":"true"},r.default.createElement("span",{className:"askly-voice-spinner"})))}var Ue=["😀","😃","😄","😁","😆","😅","😂","🤣","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😗","😙","😚","😋","😛","😝","😜","🤪","🤠","🥳","😎","🤓","🧐","👍","👎","👌","✌️","🤞","🤟","🤘","🤙","👋","👏"];function Fe(e){var t=e.cancelVoiceInput,a=e.fileInputRef,n=e.handleEmojiClick,o=e.handleFileChange,i=e.handleFileUploadClick,s=e.input,l=e.inputRef,c=e.isTyping,d=e.leadRequired,f=e.placeholderText,m=e.sendMessage,v=e.setInput,y=e.setShowEmojiPicker,x=e.showEmojiPicker,b=e.startVoiceInput,k=e.stopVoiceInput,w=e.turnstileBlocked,E=e.uploadingFile,N=e.voiceInputEnabled,S=e.voiceMaxMs,z=e.voiceMeterRef,I=e.voicePhase,C="idle"!==I,A=c||E||d||w||C;return r.default.createElement("div",{className:"chat-footer ".concat(C?"voice-active":"")},C&&r.default.createElement(Ve,{phase:I,meterRef:z,maxMs:S,onStop:k,onCancel:t}),r.default.createElement("div",{className:"composer-input-row",style:C?{display:"none"}:void 0},r.default.createElement("textarea",{ref:l,rows:1,value:s,onChange:function(e){return v(e.target.value)},onKeyDown:function(e){"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||229===e.nativeEvent.keyCode||(e.preventDefault(),m())},"aria-label":"Message",placeholder:d?"Add your email above to continue…":w?"Verify security check to chat...":f,disabled:A})),r.default.createElement("input",{type:"file",ref:a,style:{display:"none"},onChange:o}),r.default.createElement("div",{className:"composer-actions-row",style:C?{display:"none"}:void 0},r.default.createElement("div",{className:"composer-actions-left"},r.default.createElement("button",{className:"footer-action-btn",onClick:i,disabled:A,title:"Upload attachment (Max 10MB)"},r.default.createElement(h,{size:18})),r.default.createElement("button",{className:"footer-action-btn ".concat(x?"active":""),onClick:function(){return y(!x)},disabled:A,title:"Insert emoji"},r.default.createElement(g,{size:18})),N&&r.default.createElement("button",{className:"voice-btn ".concat("recording"===I?"listening":""),onClick:"recording"===I?k:b,title:"recording"===I?"Finish recording":"Voice input","aria-label":"recording"===I?"Finish recording":"Voice input","aria-pressed":"recording"===I,disabled:"recording"!==I&&A},r.default.createElement(p,{size:18}))),r.default.createElement("button",{onClick:function(){return m()},disabled:A||!s.trim(),className:"send-btn"},r.default.createElement(u,{size:18}))),x&&r.default.createElement("div",{className:"askly-emoji-picker"},Ue.map(function(e){return r.default.createElement("button",{key:e,onClick:function(){return n(e)},className:"emoji-item"},e)})))}function He(e){var t,a,n=e.activeChatId,o=e.activeTab,i=e.aiAnswering,s=e.aiAvatarUrl,l=e.aiName,c=e.headerStyle,u=e.isExpanded,p=e.organizationLogo,h=e.organizationName,g=e.setActiveChatId,v=e.setIsExpanded,x=e.setOpen,b=r.default.createElement("div",{style:{display:"flex",gap:8,alignItems:"center"}},r.default.createElement("button",{className:"header-action-btn",onClick:function(){return v(!u)},title:u?"Collapse window":"Expand window"},u?r.default.createElement(m,{size:16}):r.default.createElement(f,{size:16})),r.default.createElement("button",{className:"header-action-btn",onClick:function(){return x(!1)}},r.default.createElement(d,{size:18})));if("explore"===o)return r.default.createElement("div",{className:"chat-header chat-header-floating"},r.default.createElement("div",{className:"header-content"}),b);if("messages"===o&&null!==n)return r.default.createElement("div",{className:"chat-header",style:c},r.default.createElement("div",{className:"header-content"},r.default.createElement("button",{className:"header-back-arrow-btn",onClick:function(){return g(null)},title:"Back to conversations"},r.default.createElement(y,{size:20})),(t=i&&s||p,a=i&&l||h,r.default.createElement(r.default.Fragment,null,r.default.createElement("img",{src:t||"https://askly.co.in/logo-small.png",alt:a,className:"header-avatar ".concat(t?"":"is-default-logo")}),i&&l&&r.default.createElement("div",{className:"header-title"},l)))),b);var k="help"===o?"Help Center":"Messages";return r.default.createElement("div",{className:"chat-header",style:c},r.default.createElement("div",{className:"header-content"},r.default.createElement("div",{className:"header-title header-title-lg"},k)),b)}function Be(e){var t,a;return"markdown"===(null!==(t=e.format)&&void 0!==t?t:"agent"===e.role?"markdown":"text")?(a=e.content)?_e(a,pe):"":function(e){return e?Se(e,{emphasis:!1,links:!1,images:!1}):""}(e.content)}var Ye=r.default.memo(function(e){var t=e.copiedMsgIndex,a=e.messages,o=e.msgReactions,i=e.setCopiedMsgIndex,s=e.setMsgReactions,l=e.showTimestamp;return r.default.createElement(r.default.Fragment,null,a.map(function(e,c){var d="agent"===e.role;d&&(0===c||a[c-1].role);var u=o[c];return r.default.createElement("div",{key:c,className:"msg-wrapper ".concat(e.role)},r.default.createElement("div",{className:"msg-column"},r.default.createElement("div",{className:"msg ".concat(e.role)},r.default.createElement("div",{className:"msg-content",dangerouslySetInnerHTML:{__html:Be(e)}}),l&&e.timestamp&&r.default.createElement("div",{className:"msg-time"},je(e.timestamp))),d&&e.content&&r.default.createElement("div",{className:"msg-reactions"},r.default.createElement("button",{className:"msg-reaction-btn ".concat("up"===u?"active":""),title:"Helpful",onClick:function(){return s(function(e){var t;return n(n({},e),((t={})[c]="up"===e[c]?void 0:"up",t))})}},r.default.createElement(k,{size:13})),r.default.createElement("button",{className:"msg-reaction-btn ".concat("down"===u?"active":""),title:"Not helpful",onClick:function(){return s(function(e){var t;return n(n({},e),((t={})[c]="down"===e[c]?void 0:"down",t))})}},r.default.createElement(w,{size:13})),r.default.createElement("button",{className:"msg-reaction-btn",title:t===c?"Copied":"Copy",onClick:function(){var t;try{null===(t=navigator.clipboard)||void 0===t||t.writeText(e.content)}catch(e){}i(c),setTimeout(function(){return i(function(e){return e===c?null:e})},1500)}},t===c?r.default.createElement(N,{size:13}):r.default.createElement(E,{size:13})))))}))});function $e(){return r.default.createElement("div",{className:"chat-terms-notice"},r.default.createElement("span",null,"By chatting, you agree to our"," ",r.default.createElement("a",{href:"https://askly.co.in/terms",target:"_blank",rel:"noopener noreferrer",className:"askly-terms-link"},"Terms")),r.default.createElement("span",{className:"chat-terms-divider"},"·"),r.default.createElement("span",null,"Powered by"," ",r.default.createElement("a",{href:"https://askly.co.in",target:"_blank",rel:"noopener noreferrer",className:"askly-powered-link"},"Askly")))}!function(e,t){void 0===t&&(t={});var a=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===a&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}('.askly-chat-button,.askly-chat-modal,.askly-greeting{--askly-bg:#fff;--askly-surface:#fff;--askly-surface-2:#f6f7f9;--askly-surface-3:#eef0f4;--askly-header-bg:hsla(0,0%,100%,.82);--askly-header-fg:#0f172a;--askly-accent:#2563eb;--askly-accent-contrast:#fff;--askly-border:rgba(15,23,42,.08);--askly-border-strong:#e2e5ea;--text-1:#0f172a;--text-2:#334155;--text-3:#64748b;--text-4:#94a3b8;--askly-online:#22c55e;--askly-danger:#ef4444;--askly-danger-bg:#fee2e2;--askly-success:#16a34a;--askly-success-bg:rgba(22,163,74,.09);--askly-link:#2563eb;--askly-scrollbar:#cbd5e1;--askly-scrollbar-hover:#94a3b8;--askly-accent-strong:color-mix(in srgb,var(--askly-accent) 92%,#000);--askly-accent-soft:color-mix(in srgb,var(--askly-accent) 12%,transparent);--askly-accent-ring:color-mix(in srgb,var(--askly-accent) 22%,transparent);--askly-elev-1:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.05);--askly-elev-2:0 4px 12px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.04);--askly-elev-3:0 18px 48px rgba(15,23,42,.18),0 6px 16px rgba(15,23,42,.1);--askly-elev-launch:0 10px 30px rgba(15,23,42,.28),0 4px 10px rgba(15,23,42,.18);--askly-radius-sm:10px;--askly-radius-md:14px;--askly-radius-lg:20px;--askly-radius-xl:22px;--askly-ease:cubic-bezier(0.16,1,0.3,1);--askly-ease-snappy:cubic-bezier(0.4,0,0.2,1);--askly-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}.askly-chat-button[data-askly-theme=dark],.askly-chat-modal[data-askly-theme=dark],.askly-greeting[data-askly-theme=dark]{--askly-bg:#0f1115;--askly-surface:#181b21;--askly-surface-2:#21252d;--askly-surface-3:#2b303a;--askly-header-bg:rgba(15,17,21,.78);--askly-header-fg:#f4f5f7;--askly-accent:#3b82f6;--askly-accent-contrast:#fff;--askly-border:hsla(0,0%,100%,.09);--askly-border-strong:#333944;--text-1:#f3f4f6;--text-2:#d2d6dd;--text-3:#9aa2af;--text-4:#6b7280;--askly-online:#4ade80;--askly-danger:#f87171;--askly-danger-bg:hsla(0,91%,71%,.15);--askly-success:#4ade80;--askly-success-bg:rgba(74,222,128,.12);--askly-link:#7cb0ff;--askly-scrollbar:#3a3f4a;--askly-scrollbar-hover:#4d5462;--askly-accent-strong:color-mix(in srgb,var(--askly-accent) 90%,#fff);--askly-elev-1:0 1px 2px rgba(0,0,0,.4);--askly-elev-2:0 6px 16px rgba(0,0,0,.45);--askly-elev-3:0 20px 55px rgba(0,0,0,.62),0 6px 16px rgba(0,0,0,.5);--askly-elev-launch:0 12px 34px rgba(0,0,0,.55)}.askly-chat-button{align-items:center;background:var(--askly-accent);border:none;border-radius:23%;bottom:24px;box-shadow:var(--askly-elev-launch);color:var(--askly-accent-contrast);cursor:pointer;display:flex;font-family:var(--askly-font);font-size:28px;height:60px;justify-content:center;position:fixed;right:24px;transition:transform .28s var(--askly-ease),box-shadow .28s var(--askly-ease),border-radius .28s var(--askly-ease);width:60px;z-index:99999}.askly-chat-button:hover{box-shadow:0 18px 40px rgba(15,23,42,.34),0 6px 14px rgba(15,23,42,.22);transform:translateY(-3px) scale(1.05)}.askly-chat-button:active{transform:scale(.94)}.askly-launcher-badge{background:#dc2626;border-radius:999px;box-shadow:0 0 0 2px var(--askly-bg);box-sizing:border-box;color:#fff;font-size:11px;font-weight:600;height:20px;line-height:20px;min-width:20px;padding:0 5px;position:absolute;right:-4px;text-align:center;top:-4px}.askly-chat-button.shape-square{border-radius:23%}.askly-chat-button.shape-round{border-radius:50%}.askly-chat-modal{-webkit-font-smoothing:antialiased;animation:slideUp .36s var(--askly-ease);background:var(--askly-bg);border:none;border-radius:var(--askly-radius-lg);bottom:100px;box-shadow:var(--askly-elev-3);color:var(--text-1);display:flex;flex-direction:column;font-family:var(--askly-font);height:min(704px,100vh - 120px);height:min(704px,100dvh - 120px);max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);max-width:calc(100vw - 48px);overflow:hidden;position:fixed;right:24px;width:min(384px,100vw - 48px);z-index:99998}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes asklyShake{0%,to{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.askly-chat-modal.askly-shake{animation:asklyShake .45s cubic-bezier(.36,.07,.19,.97)}.chat-header{align-items:center;backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);background:var(--askly-header-bg);border-bottom:1px solid var(--askly-border);color:var(--askly-header-fg,inherit);display:flex;flex-shrink:0;justify-content:space-between;padding:15px 18px}.chat-header.chat-header-floating{backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent;border-bottom:none!important;left:0;padding:12px 14px;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.chat-header-floating .header-action-btn{color:#fff;opacity:.92;pointer-events:auto}.chat-header-floating .header-action-btn:hover{background:hsla(0,0%,100%,.22);color:#fff;opacity:1}.header-title.header-title-lg{font-size:18px;font-weight:700;letter-spacing:-.02em}.header-content{align-items:center;display:flex;gap:12px}.header-avatar{border:none;border-radius:0;box-shadow:none;max-height:32px;max-width:120px;object-fit:contain}.header-title{font-size:16px;font-weight:600;letter-spacing:-.01em}.header-status{align-items:center;display:flex;font-size:11px;gap:6px;opacity:.9}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.chat-body{background:var(--askly-bg);display:flex;flex:1;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding:20px}.chat-body,.chat-footer textarea,.conversations-scrollable,.help-layout,.home-layout,.home-search-results{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-color:var(--askly-scrollbar) transparent;scrollbar-width:thin}.chat-body:hover,.chat-footer textarea:hover,.conversations-scrollable:hover,.help-layout:hover,.home-layout:hover,.home-search-results:hover{scrollbar-color:var(--askly-scrollbar-hover) transparent}.chat-body::-webkit-scrollbar,.chat-footer textarea::-webkit-scrollbar,.conversations-scrollable::-webkit-scrollbar,.help-layout::-webkit-scrollbar,.home-layout::-webkit-scrollbar,.home-search-results::-webkit-scrollbar{width:8px}.chat-body::-webkit-scrollbar-track,.chat-footer textarea::-webkit-scrollbar-track,.conversations-scrollable::-webkit-scrollbar-track,.help-layout::-webkit-scrollbar-track,.home-layout::-webkit-scrollbar-track,.home-search-results::-webkit-scrollbar-track{background:transparent}.chat-body::-webkit-scrollbar-thumb,.chat-footer textarea::-webkit-scrollbar-thumb,.conversations-scrollable::-webkit-scrollbar-thumb,.help-layout::-webkit-scrollbar-thumb,.home-layout::-webkit-scrollbar-thumb,.home-search-results::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:var(--askly-scrollbar);border:2px solid transparent;border-radius:10px}.chat-body::-webkit-scrollbar-thumb:hover,.chat-footer textarea::-webkit-scrollbar-thumb:hover,.conversations-scrollable::-webkit-scrollbar-thumb:hover,.help-layout::-webkit-scrollbar-thumb:hover,.home-layout::-webkit-scrollbar-thumb:hover,.home-search-results::-webkit-scrollbar-thumb:hover{background-color:var(--askly-scrollbar-hover)}.msg-wrapper{align-items:flex-end;animation:fadeIn .32s var(--askly-ease);display:flex;gap:8px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg-wrapper.user{flex-direction:row-reverse}.msg-column{display:flex;flex-direction:column;gap:4px;max-width:78%;min-width:0}.msg-wrapper.user .msg-column{align-items:flex-end}.msg-avatar{align-items:center;align-self:flex-start;background:linear-gradient(145deg,var(--askly-accent),var(--askly-accent-strong));border-radius:50%;box-shadow:var(--askly-elev-1);color:var(--askly-accent-contrast);display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:28px;justify-content:center;overflow:hidden;width:28px}.msg-avatar img{height:100%;object-fit:cover;width:100%}.msg-avatar.msg-avatar-hidden{visibility:hidden}.msg{word-wrap:break-word;border-radius:18px;max-width:100%;padding:10px 14px;position:relative;width:fit-content}.msg,.msg-content{overflow-wrap:anywhere}.msg-content{font-size:13.5px;line-height:1.55}.msg-content p{margin:0 0 8px}.msg-content ol,.msg-content ul{margin:4px 0 8px;padding-left:20px}.msg-content li{margin-top:3px}.msg-content>:last-child{margin-bottom:0}.msg-content strong{font-weight:650}.msg-content code.inline-code{background:var(--askly-surface-3);border:1px solid var(--askly-border);border-radius:5px;padding:1px 5px}.msg-content code.inline-code,.msg-content pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.msg-content pre{background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:8px;box-sizing:border-box;display:block;line-height:1.5;margin:6px 0 8px;max-width:100%;overflow-x:auto;padding:8px 10px;white-space:pre}.msg-content pre code{background:none;border:0;font:inherit;padding:0}.askly-chat-modal[data-askly-theme=dark] .msg.agent .msg-content pre{background:var(--askly-surface-2)}.msg.user .msg-content code.inline-code,.msg.user .msg-content pre{background:hsla(0,0%,100%,.18);border-color:hsla(0,0%,100%,.28);color:inherit}.msg.user{background:linear-gradient(145deg,var(--askly-accent),var(--askly-accent-strong));border-bottom-right-radius:6px;box-shadow:var(--askly-elev-1);color:var(--askly-accent-contrast)}.msg.agent{background:var(--askly-surface-2);border:1px solid var(--askly-border);border-bottom-left-radius:6px;color:var(--text-1)}.askly-chat-modal[data-askly-theme=dark] .msg.agent{background:var(--askly-surface)}.msg-time{font-size:10px;margin-top:5px;opacity:.6;text-align:right}.msg-reactions{display:flex;gap:2px;opacity:0;padding-left:4px;transform:translateY(-2px);transition:opacity .18s var(--askly-ease),transform .18s var(--askly-ease)}.msg-reactions:focus-within,.msg-wrapper:hover .msg-reactions{opacity:1;transform:translateY(0)}.msg-reaction-btn{all:unset;align-items:center;border-radius:7px;color:var(--text-4);cursor:pointer;display:flex;height:24px;justify-content:center;transition:background .15s,color .15s;width:26px}.msg-reaction-btn:hover{background:var(--askly-surface-2);color:var(--text-2)}.msg-reaction-btn.active{background:var(--askly-accent-soft);color:var(--askly-accent)}.quick-replies{animation:fadeIn .32s var(--askly-ease);display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 2px 36px}.quick-reply-chip{all:unset;background:var(--askly-surface);border:1px solid var(--askly-border-strong);border-radius:999px;box-sizing:border-box;color:var(--askly-accent);cursor:pointer;font-size:12.5px;font-weight:500;line-height:1.2;max-width:100%;padding:8px 14px;transition:all .16s var(--askly-ease)}.quick-reply-chip:hover{background:var(--askly-accent-soft);border-color:var(--askly-accent);transform:translateY(-1px)}.typing-indicator{align-items:center;background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:18px;border-bottom-left-radius:6px;display:flex;gap:4px;padding:12px 16px;width:fit-content}.typing-indicator span{animation:bounce 1.4s ease-in-out infinite both;background:var(--text-4);border-radius:50%;height:6px;width:6px}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{opacity:.4;transform:scale(0)}40%{opacity:1;transform:scale(1)}}.chat-footer{background:var(--askly-surface);border:1px solid var(--askly-border-strong);border-radius:var(--askly-radius-lg);box-shadow:var(--askly-elev-1);display:flex;flex-direction:column;flex-shrink:0;gap:6px;margin:10px 16px 12px;padding:10px 12px 8px;position:relative;transition:border-color .2s var(--askly-ease),box-shadow .2s var(--askly-ease)}.chat-footer:hover{border-color:var(--text-3)}.chat-footer:focus-within{border-color:var(--askly-accent);box-shadow:0 0 0 3px var(--askly-accent-ring)}.composer-input-row{align-items:stretch;display:flex;width:100%}.chat-footer textarea{background:transparent;border:none;border-radius:0;box-sizing:border-box;color:var(--text-1);display:block;flex:1;font-family:inherit;font-size:14px;line-height:20px;margin:0;max-height:120px;min-height:32px;min-width:0;outline:none;overflow-y:hidden;padding:6px 8px;resize:none;width:100%}.chat-footer textarea::placeholder{color:var(--text-4)}.chat-footer textarea:disabled{cursor:not-allowed;opacity:.6}.chat-screen,.chat-stream{display:flex;flex:1;flex-direction:column;min-height:0}.chat-stream{position:relative}.askly-jump-latest{align-items:center;animation:fadeIn .2s var(--askly-ease);background:var(--askly-surface);border:1px solid var(--askly-border-strong);border-radius:999px;bottom:12px;box-shadow:var(--askly-elev-2);box-sizing:border-box;color:var(--text-2);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;font-weight:600;gap:6px;left:50%;line-height:1;padding:6px 12px;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:6}.askly-jump-latest:hover{border-color:var(--text-3);color:var(--text-1)}.askly-jump-badge{align-items:center;background:var(--askly-accent);border-radius:999px;box-sizing:border-box;color:var(--askly-accent-contrast);display:inline-flex;font-size:11px;height:18px;justify-content:center;min-width:18px;padding:0 5px}.composer-actions-row{align-items:center;display:flex;justify-content:space-between;width:100%}.composer-actions-left{align-items:center;display:flex;gap:2px}.voice-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-4);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:all .2s;width:34px}.voice-btn:hover{background:var(--askly-accent-soft);color:var(--askly-accent)}.voice-btn.listening{animation:pulseRed 1.5s ease-in-out infinite;background:var(--askly-danger-bg);color:var(--askly-danger)}@keyframes pulseRed{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}.chat-footer.voice-active{border-color:var(--text-3);border-radius:999px;padding:8px 10px}.askly-voice{align-items:center;display:flex;gap:10px;height:44px}.askly-voice-meter{align-items:center;display:flex;flex:1;gap:3px;height:26px;justify-content:flex-end;min-width:0;overflow:hidden}.askly-voice-meter i{background:var(--text-1);border-radius:1px;display:block;flex-shrink:0;min-height:2px;width:2px}.askly-voice.transcribing .askly-voice-meter{opacity:.4}.askly-voice-status{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.askly-voice-time{color:var(--text-3);flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums}.askly-voice-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-1);cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;padding:0;width:40px}.askly-voice-btn.done,.askly-voice-btn:hover{background:var(--askly-accent-soft)}.askly-voice-btn.done{box-shadow:inset 0 0 0 2px var(--askly-border-strong)}.askly-voice-btn.done:hover{box-shadow:inset 0 0 0 2px var(--text-3)}.askly-voice-btn.busy{cursor:default}.askly-voice-stop{background:var(--text-1);border-radius:3px;height:13px;width:13px}.askly-voice-spinner{animation:asklyVoiceSpin .8s linear infinite;border:2px solid var(--askly-border-strong);border-radius:50%;border-top-color:var(--text-1);height:16px;width:16px}@keyframes asklyVoiceSpin{to{transform:rotate(1turn)}}.askly-notice-action{background:none;border:none;color:inherit;cursor:pointer;font:inherit;font-weight:600;margin-left:8px;padding:0;text-decoration:underline}@media (prefers-reduced-motion:reduce){.askly-voice-spinner{animation-duration:2.4s}}.send-btn{align-items:center;background:linear-gradient(145deg,var(--askly-accent),var(--askly-accent-strong));border:none;border-radius:50%;box-shadow:var(--askly-elev-1);color:var(--askly-accent-contrast);cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s var(--askly-ease);width:36px}.send-btn:hover:not(:disabled){filter:brightness(1.06);transform:scale(1.08)}.send-btn:active:not(:disabled){transform:scale(.94)}.send-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.45}.footer-action-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-4);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:all .2s;width:34px}.footer-action-btn.active,.footer-action-btn:hover{background:var(--askly-surface-2);color:var(--text-1)}.chat-powered-by{background:var(--askly-bg);border-top:1px solid var(--askly-border);color:var(--text-4);font-size:11px;padding:8px 16px;text-align:center}.chat-powered-by strong{color:var(--text-2);font-weight:600}.chat-terms-notice{align-items:center;background:var(--askly-bg);border-top:1px solid var(--askly-border);color:var(--text-4);display:flex;flex-shrink:0;font-size:10px;gap:4px;justify-content:center;padding:5px 10px;text-align:center;white-space:nowrap}.chat-terms-divider{color:var(--text-4);opacity:.5}.askly-powered-link,.askly-terms-link{color:var(--text-3);font-weight:600;text-decoration:none;transition:color .15s var(--askly-ease)}.askly-powered-link:hover,.askly-terms-link:hover{color:var(--askly-accent);text-decoration:underline}.askly-turnstile-wrapper{background:var(--askly-bg);border-bottom:1px solid var(--askly-border);border-top:1px solid var(--askly-border);display:flex;justify-content:center;margin:10px 0;padding:12px 16px}.askly-lead-card{background:var(--askly-surface-2);border:1px solid var(--askly-border-strong);border-radius:14px;display:flex;flex-direction:column;gap:8px;margin:10px 0;padding:12px 14px}.askly-lead-required{background:var(--askly-bg);border-bottom:none;border-left:none;border-radius:0;border-right:none;flex-shrink:0;margin:0}.askly-lead-copy{color:var(--text-2);font-size:12.5px;line-height:1.5}.askly-lead-row{align-items:center;display:flex;gap:8px}.askly-lead-row input{background:var(--askly-bg);border:1.5px solid var(--askly-border-strong);border-radius:999px;box-sizing:border-box;color:var(--text-1);flex:1;font-family:inherit;font-size:13px;height:38px;min-width:0;outline:none;padding:0 12px;transition:all .2s var(--askly-ease)}.askly-lead-row input::placeholder{color:var(--text-4)}.askly-lead-row input:focus{background:var(--askly-surface);border-color:var(--askly-accent);box-shadow:0 0 0 3px var(--askly-accent-ring)}.askly-lead-row input:disabled{cursor:not-allowed;opacity:.6}.askly-lead-submit{all:unset;background:var(--askly-accent);border-radius:999px;color:var(--askly-accent-contrast);cursor:pointer;flex-shrink:0;font-size:12.5px;font-weight:600;height:38px;padding:0 16px;text-align:center;transition:all .2s var(--askly-ease)}.askly-lead-submit:hover:not(:disabled){background:var(--askly-accent-strong)}.askly-lead-submit:disabled{cursor:not-allowed;opacity:.5}.askly-lead-error{color:#dc2626;font-size:11.5px;line-height:1.45}.askly-lead-dismiss{all:unset;align-self:flex-start;color:var(--text-4);cursor:pointer;font-size:11.5px;text-decoration:underline}.askly-lead-dismiss:hover{color:var(--text-2)}@media (min-width:601px){.askly-chat-modal.expanded{max-width:calc(100vw - 48px);width:min(700px,100vw - 48px)}}.home-layout{background:var(--askly-bg);gap:0;overflow-y:auto;padding:0}.home-hero,.home-layout{display:flex;flex-direction:column}.home-hero{background:radial-gradient(120% 90% at 15% 0,color-mix(in srgb,var(--askly-accent) 94%,#fff) 0,transparent 55%),linear-gradient(150deg,var(--askly-accent),var(--askly-accent-strong));color:var(--askly-accent-contrast);flex-shrink:0;gap:4px;overflow:hidden;padding:34px 24px 28px;position:relative}.home-hero:before{inset:0;mask-image:linear-gradient(180deg,#000 40%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 40%,transparent)}.home-hero:after,.home-hero:before{content:"";pointer-events:none;position:absolute}.home-hero:after{background:linear-gradient(120deg,hsla(0,0%,100%,.18),transparent 60%);height:160%;right:-20%;top:-40%;transform:rotate(18deg);width:70%}.home-hero>*{position:relative;z-index:1}.home-hero-brand{align-items:center;display:flex;gap:9px;margin-bottom:18px}.home-hero-logo{max-height:34px;max-width:124px;object-fit:contain;object-position:left center;opacity:.96}.home-hero-title{font-size:23px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.home-hero-wave{animation:wave 2.4s ease-in-out infinite;display:inline-block;transform-origin:70% 70%}@keyframes wave{0%,60%,to{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.home-hero-subtitle{font-size:23px;font-weight:700;letter-spacing:-.02em;line-height:1.2;opacity:.72}.home-content{display:flex;flex-direction:column;flex-shrink:0;gap:12px;margin-top:0;padding:16px 16px 20px;position:relative;z-index:2}.home-action-card{all:unset;align-items:center;background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-2);box-sizing:border-box;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:16px 18px;transition:transform .2s var(--askly-ease),box-shadow .2s var(--askly-ease),border-color .2s var(--askly-ease)}.home-action-card:hover{border-color:var(--askly-border-strong);box-shadow:var(--askly-elev-3);transform:translateY(-2px)}.card-title{color:var(--text-1);font-size:14.5px;font-weight:600;margin-bottom:2px}.card-desc{color:var(--text-3);font-size:12px;line-height:1.4}.card-icon-chip{align-items:center;background:var(--askly-accent-soft);border-radius:12px;color:var(--askly-accent);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.faq-card{align-items:stretch;cursor:default;flex-direction:column;gap:10px}.faq-card:hover{border-color:var(--askly-border);box-shadow:var(--askly-elev-2);transform:none}.faq-card-head{align-items:center;display:flex;justify-content:space-between}.faq-count-badge{background:var(--askly-accent-soft);border-radius:999px;color:var(--askly-accent);font-size:10px;font-weight:600;padding:3px 8px}.faq-list{display:flex;flex-direction:column;gap:6px}.faq-item{background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:var(--askly-radius-sm);overflow:hidden;transition:border-color .2s var(--askly-ease),background .2s var(--askly-ease)}.faq-item.open{background:var(--askly-surface);border-color:var(--askly-accent)}.faq-question{all:unset;align-items:center;box-sizing:border-box;color:var(--text-1);cursor:pointer;display:flex;font-size:12.5px;font-weight:500;gap:8px;justify-content:space-between;padding:10px 12px;text-align:left;width:100%}.faq-chevron{color:var(--text-3);flex-shrink:0;transition:transform .22s var(--askly-ease)}.faq-item.open .faq-chevron{color:var(--askly-accent);transform:rotate(180deg)}.faq-answer{border-top:1px solid var(--askly-border);color:var(--text-2);font-size:12px;line-height:1.55;padding:8px 12px 12px}.faq-ask-link{all:unset;align-items:center;color:var(--askly-accent);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:4px;margin-top:10px}.faq-ask-link:hover{text-decoration:underline}.home-search-card{background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-2);padding:16px 18px}.home-search-input-wrapper{align-items:center;display:flex;position:relative;width:100%}.home-search-input-wrapper input{background:var(--askly-bg);border:1.5px solid var(--askly-border-strong);border-radius:999px;box-sizing:border-box;color:var(--text-1);font-size:13px;height:40px;outline:none;padding:0 12px 0 36px;transition:all .2s var(--askly-ease);width:100%}.home-search-input-wrapper input::placeholder{color:var(--text-4)}.home-search-input-wrapper input:focus{background:var(--askly-surface);border-color:var(--askly-accent);box-shadow:0 0 0 3px var(--askly-accent-ring)}.search-icon-svg{color:var(--text-4);left:13px;pointer-events:none;position:absolute}.search-loader{animation:spin .6s linear infinite;border:2px solid var(--askly-border-strong);border-radius:50%;border-top-color:var(--askly-accent);height:14px;position:absolute;right:12px;width:14px}@keyframes spin{to{transform:rotate(1turn)}}.home-search-results{border-top:1px solid var(--askly-border);display:flex;flex-direction:column;gap:4px;margin-top:10px;max-height:200px;overflow-y:auto;padding-top:10px}.search-result-item{all:unset;align-items:center;border-radius:var(--askly-radius-sm);box-sizing:border-box;color:var(--text-2);cursor:pointer;display:flex;font-size:13px;gap:8px;padding:9px 10px;text-align:left;transition:background .15s,color .15s;width:100%}.search-result-item:hover{background:var(--askly-surface-2);color:var(--text-1)}.search-result-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-search-results{color:var(--text-4);font-size:12.5px;padding:14px;text-align:center}.recommended-articles{border-top:1px solid var(--askly-border);margin-top:12px;padding-top:12px}.recommended-articles-head{color:var(--text-3);font-size:10.5px;font-weight:700;letter-spacing:.6px;margin-bottom:8px;text-transform:uppercase}.recommended-articles-list{display:flex;flex-direction:column;gap:6px}.rec-article-row{all:unset;align-items:center;background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:var(--askly-radius-sm);box-sizing:border-box;cursor:pointer;display:flex;gap:8px;padding:9px 11px;transition:all .16s var(--askly-ease)}.rec-article-row:hover{background:var(--askly-accent-soft);border-color:var(--askly-accent)}.rec-article-icon{color:var(--text-3);flex-shrink:0}.rec-article-row:hover .rec-article-icon{color:var(--askly-accent)}.rec-article-title{color:var(--text-1);flex:1;font-size:12px;font-weight:500;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.rec-article-chevron{color:var(--text-4);flex-shrink:0}.rec-article-skeleton{background:var(--askly-surface-2);border-radius:var(--askly-radius-sm);gap:8px;padding:9px 11px}.explore-search,.rec-article-skeleton{align-items:center;border:1px solid var(--askly-border);display:flex}.explore-search{background:var(--askly-surface);border-radius:999px;box-shadow:var(--askly-elev-2);box-sizing:border-box;height:46px;padding:0 14px;position:relative;transition:border-color .2s var(--askly-ease),box-shadow .2s var(--askly-ease);width:100%}.explore-search:focus-within{border-color:var(--askly-accent);box-shadow:0 0 0 3px var(--askly-accent-ring),var(--askly-elev-2)}.explore-search-icon{color:var(--text-4);flex-shrink:0}.explore-search input{background:transparent;border:none;color:var(--text-1);flex:1;font-family:inherit;font-size:13.5px;min-width:0;outline:none;padding:0 10px}.explore-search input::placeholder{color:var(--text-4)}.explore-search .search-loader{margin-left:auto;position:static}.explore-search-panel{background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-1);display:flex;flex-direction:column;gap:4px;padding:6px}.explore-cta{all:unset;align-items:center;background:linear-gradient(135deg,var(--askly-accent),var(--askly-accent-strong));border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-2);box-sizing:border-box;color:var(--askly-accent-contrast);cursor:pointer;display:flex;gap:13px;overflow:hidden;padding:16px;position:relative;transition:transform .2s var(--askly-ease),box-shadow .2s var(--askly-ease)}.explore-cta:hover{box-shadow:var(--askly-elev-3);transform:translateY(-2px)}.explore-cta:active{transform:scale(.99)}.explore-cta-orbs{background:radial-gradient(60px 60px at 88% -10%,hsla(0,0%,100%,.28),transparent 70%),radial-gradient(80px 80px at 108% 120%,hsla(0,0%,100%,.16),transparent 70%);inset:0;pointer-events:none;position:absolute}.explore-cta-icon{align-items:center;backdrop-filter:blur(4px);background:hsla(0,0%,100%,.18);border-radius:13px;display:flex;flex-shrink:0;height:42px;justify-content:center;position:relative;width:42px}.explore-cta-icon svg{animation:askly-twinkle 3.2s var(--askly-ease) infinite}@keyframes askly-twinkle{0%,to{opacity:1;transform:scale(1) rotate(0deg)}50%{opacity:.75;transform:scale(1.12) rotate(8deg)}}.explore-cta-text{display:flex;flex-direction:column;gap:2px;min-width:0;position:relative}.explore-cta-title{font-size:15px;font-weight:700;letter-spacing:-.01em}.explore-cta-sub{font-size:11.5px;line-height:1.35;opacity:.82}.explore-cta-arrow{align-items:center;display:flex;margin-left:auto;opacity:.85;position:relative;transition:transform .2s var(--askly-ease)}.explore-cta:hover .explore-cta-arrow{opacity:1;transform:translateX(3px)}.explore-tiles{display:grid;gap:10px;grid-template-columns:1fr 1fr}.explore-tile{all:unset;background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-1);box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:14px;transition:transform .18s var(--askly-ease),box-shadow .18s var(--askly-ease),border-color .18s var(--askly-ease)}.explore-tile:hover{border-color:var(--askly-border-strong);box-shadow:var(--askly-elev-2);transform:translateY(-2px)}.explore-tile-icon{align-items:center;background:var(--askly-accent-soft);border-radius:11px;color:var(--askly-accent);display:flex;height:36px;justify-content:center;margin-bottom:5px;width:36px}.explore-tile-title{color:var(--text-1);font-size:13.5px;font-weight:600}.explore-tile-sub{color:var(--text-3);font-size:11px}.explore-section{display:flex;flex-direction:column;gap:8px}.explore-section-head{align-items:center;color:var(--text-3);display:flex;font-size:11px;font-weight:700;gap:8px;letter-spacing:.6px;padding:0 2px;text-transform:uppercase}.explore-section-count{background:var(--askly-accent-soft);border-radius:999px;color:var(--askly-accent);font-size:10px;font-weight:700;letter-spacing:0;padding:1px 7px;text-transform:none}.explore-faq-list{background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-1);display:flex;flex-direction:column;overflow:hidden}.explore-faq{border-bottom:1px solid var(--askly-border)}.explore-faq:last-child{border-bottom:none}.explore-faq-q{all:unset;align-items:center;box-sizing:border-box;color:var(--text-1);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:10px;justify-content:space-between;padding:13px 14px;transition:background .15s;width:100%}.explore-faq-q:hover{background:var(--askly-surface-2)}.explore-faq-chevron{color:var(--text-4);flex-shrink:0;transition:transform .22s var(--askly-ease),color .15s}.explore-faq.open .explore-faq-q{background:var(--askly-surface-2)}.explore-faq.open .explore-faq-chevron{color:var(--askly-accent);transform:rotate(180deg)}.explore-faq-a{background:var(--askly-surface-2);color:var(--text-2);font-size:12.5px;line-height:1.55;padding:0 14px 14px}.explore-faq-a>div:first-child{padding-top:2px}.askly-skeleton{background:var(--askly-surface-3);border-radius:6px;display:block;overflow:hidden;position:relative}.askly-skeleton:after{animation:shimmer 1.4s infinite;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text-4) 22%,transparent),transparent);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes shimmer{to{transform:translateX(100%)}}.askly-skeleton-line{height:10px;width:100%}.askly-skeleton-chip{border-radius:5px;flex-shrink:0;height:16px;width:16px}.askly-empty-state{align-items:center;display:flex;flex-direction:column;gap:6px;margin:auto 0;padding:44px 24px;text-align:center}.askly-empty-icon{align-items:center;background:var(--askly-accent-soft);border-radius:16px;color:var(--askly-accent);display:flex;height:52px;justify-content:center;margin-bottom:8px;width:52px}.askly-empty-title{color:var(--text-1);font-size:14px;font-weight:600}.askly-empty-desc{color:var(--text-3);font-size:12px;line-height:1.5;max-width:240px}.chat-nav-tabs{background:var(--askly-surface);border-top:1px solid var(--askly-border);display:flex;flex-shrink:0;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom, 0px))}.nav-tab-btn{all:unset;align-items:center;border-radius:var(--askly-radius-md);box-sizing:border-box;color:var(--text-4);cursor:pointer;display:flex;flex:1;flex-direction:column;font-size:11px;font-weight:500;gap:4px;padding:7px 6px;transition:color .2s var(--askly-ease),background .2s var(--askly-ease)}.nav-tab-btn:hover{color:var(--text-2)}.nav-tab-btn:hover .nav-tab-icon{transform:translateY(-1px)}.nav-tab-icon{align-items:center;display:flex;justify-content:center;transition:transform .2s var(--askly-ease)}.nav-tab-btn.active{color:var(--askly-accent);font-weight:600}.nav-tab-btn.active .nav-tab-icon svg{animation:navTabPop .3s var(--askly-ease)}@keyframes navTabPop{0%{transform:scale(.85)}55%{transform:scale(1.1)}to{transform:scale(1)}}.askly-emoji-picker{background:var(--askly-surface);border:1px solid var(--askly-border-strong);border-radius:var(--askly-radius-md);bottom:calc(100% + 8px);box-shadow:var(--askly-elev-3);display:grid;gap:4px;grid-template-columns:repeat(6,1fr);height:180px;overflow-y:auto;padding:10px;position:absolute;right:20px;width:240px;z-index:10}.emoji-item{all:unset;align-items:center;border-radius:8px;cursor:pointer;display:flex;font-size:18px;justify-content:center;padding:4px;transition:background .15s}.emoji-item:hover{background:var(--askly-surface-2)}.header-action-btn{align-items:center;background:none;border:none;border-radius:8px;color:var(--askly-header-fg,var(--text-2));cursor:pointer;display:flex;height:28px;justify-content:center;opacity:.7;transition:all .15s;width:28px}.header-action-btn:hover{background:rgba(0,0,0,.06);color:var(--askly-header-fg,var(--text-1));opacity:1}.askly-chat-modal[data-askly-theme=dark] .header-action-btn:hover{background:hsla(0,0%,100%,.14)}.header-back-arrow-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--askly-header-fg,var(--text-1));cursor:pointer;display:flex;justify-content:center;margin-right:-4px;outline:none;padding:4px;transition:background .2s}.header-back-arrow-btn:hover{background:rgba(0,0,0,.06)}.askly-chat-modal[data-askly-theme=dark] .header-back-arrow-btn:hover{background:hsla(0,0%,100%,.14)}.help-layout{background:var(--askly-bg);overflow-x:hidden;overflow-y:auto;padding:20px}.help-collections{display:flex;flex-direction:column;gap:12px}.help-collection-card{all:unset;align-items:center;background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-1);box-sizing:border-box;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:14px;text-align:left;transition:transform .16s var(--askly-ease),box-shadow .16s var(--askly-ease),border-color .16s var(--askly-ease)}.help-collection-card:not(.is-skeleton):hover{border-color:var(--askly-border-strong);box-shadow:var(--askly-elev-2);transform:translateY(-2px)}.help-collection-left{align-items:flex-start;display:flex;gap:12px;min-width:0}.help-collection-icon{align-items:center;background:linear-gradient(145deg,var(--askly-accent),var(--askly-accent-strong));box-shadow:var(--askly-elev-1);color:#fff;display:flex;justify-content:center}.help-collection-icon,.help-collection-icon-skel{border-radius:10px;flex-shrink:0;height:36px;width:36px}.help-collection-text{display:flex;flex-direction:column;gap:3px;min-width:0}.help-collection-title{color:var(--text-1);font-size:13.5px;font-weight:600}.help-collection-desc{color:var(--text-3);font-size:11.5px;line-height:1.4}.help-collection-count{color:var(--askly-accent);font-size:10.5px;font-weight:600;margin-top:3px}.help-collection-chevron{color:var(--text-4);flex-shrink:0}.help-articles-list{display:flex;flex-direction:column;gap:10px}.help-article-row{all:unset;align-items:center;background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-1);box-sizing:border-box;cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:14px 16px;text-align:left;transition:transform .18s var(--askly-ease),box-shadow .18s var(--askly-ease),border-color .18s var(--askly-ease);width:100%}.help-article-row:hover{border-color:var(--askly-border-strong);box-shadow:var(--askly-elev-2);transform:translateY(-1px)}.help-article-row>div:first-child{flex:1;min-width:0}.article-row-title{color:var(--text-1);font-size:13.5px;font-weight:600;overflow-wrap:anywhere}.article-row-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-3);display:-webkit-box;font-size:12px;line-height:1.4;overflow:hidden;overflow-wrap:anywhere}.help-collection-desc,.help-collection-title{overflow-wrap:anywhere}.article-row-chevron{color:var(--text-4);flex-shrink:0;transition:color .15s}.help-article-row:hover .article-row-chevron{color:var(--askly-accent)}.help-article-reader{background:transparent;border:none;border-radius:0;box-shadow:none;padding:0}.article-breadcrumb{align-items:center;color:var(--text-3);display:flex;font-size:11px;gap:6px;margin-bottom:12px}.article-breadcrumb-link{all:unset;color:var(--askly-accent);cursor:pointer;font-weight:600}.article-breadcrumb-link:hover{text-decoration:underline}.article-breadcrumb-type{text-transform:capitalize}.help-back-btn{all:unset;align-items:center;color:var(--text-3);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:4px;transition:color .15s}.help-back-btn:hover{color:var(--askly-accent)}.help-article-heading{color:var(--text-1);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.32;margin-bottom:10px}.article-author-bar{align-items:center;border-bottom:1px solid var(--askly-border);display:flex;gap:10px;margin-bottom:18px;padding-bottom:14px}.article-author-avatar{border:1px solid var(--askly-border);border-radius:50%;flex-shrink:0;height:30px;object-fit:cover;width:30px}.article-author-text{display:flex;flex-direction:column;gap:2px}.article-author-name{color:var(--text-1);font-size:11.5px;font-weight:600}.article-author-meta{color:var(--text-3);font-size:10.5px}.help-article-body{color:var(--text-2);font-size:13.5px;line-height:1.65;overflow-wrap:anywhere}.help-article-body h1,.help-article-body h2,.help-article-body h3{color:var(--text-1);font-weight:700;letter-spacing:-.01em;margin:18px 0 8px}.help-article-body p{margin:0 0 12px}.help-article-body ol,.help-article-body ul{margin:0 0 12px;padding-left:22px}.help-article-body li{margin-top:4px}.help-article-body pre{background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:8px;box-sizing:border-box;display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;margin:0 0 12px;max-width:100%;overflow-x:auto;padding:10px 12px;white-space:pre}.help-article-body pre code{background:none;border:0;font:inherit;padding:0}.help-article-body blockquote{border-left:3px solid var(--askly-border-strong);color:var(--text-3);margin:0 0 12px;padding:2px 0 2px 12px}.help-article-body code.inline-code{background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;padding:2px 6px}.article-feedback{border-top:1px solid var(--askly-border);display:flex;flex-direction:column;gap:12px;margin-top:24px;padding-top:16px}.article-feedback-title{color:var(--text-1);font-size:12.5px;font-weight:600;text-align:center}.article-feedback-thanks{background:var(--askly-success-bg);border:1px solid color-mix(in srgb,var(--askly-success) 25%,transparent);border-radius:var(--askly-radius-sm);color:var(--askly-success);font-size:12px;font-weight:600;padding:10px 14px;text-align:center}.article-feedback-options{display:flex;gap:10px;justify-content:center}.article-feedback-btn{all:unset;align-items:center;background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:var(--askly-radius-sm);color:var(--text-1);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:8px 14px;transition:all .15s var(--askly-ease)}.article-feedback-btn:hover{background:var(--askly-accent-soft);border-color:var(--askly-accent)}.article-handoff{all:unset;align-items:center;background:var(--askly-accent-soft);border:1px solid color-mix(in srgb,var(--askly-accent) 40%,transparent);border-radius:var(--askly-radius-sm);box-sizing:border-box;cursor:pointer;display:flex;gap:10px;justify-content:space-between;margin-top:10px;padding:11px 13px;transition:all .16s var(--askly-ease)}.article-handoff:hover{background:color-mix(in srgb,var(--askly-accent) 16%,transparent);border-color:var(--askly-accent)}.article-handoff-text{display:flex;flex-direction:column;gap:2px}.article-handoff-title{align-items:center;color:var(--text-1);display:inline-flex;font-size:12px;font-weight:600;gap:6px}.article-handoff-title svg{color:var(--askly-accent)}.article-handoff-desc{color:var(--text-3);font-size:11px}.article-handoff-chevron{color:var(--askly-accent);flex-shrink:0}.help-catalog-intro{color:var(--text-4);padding:40px 20px;text-align:center}.message-inline-image{border:1px solid var(--askly-border);border-radius:10px;margin-top:6px;max-width:100%}.message-inline-link{color:inherit;font-weight:500;text-decoration:underline}.msg.agent .message-inline-link{color:var(--askly-link)}.conversations-list-container{background:var(--askly-bg);box-sizing:border-box;display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding:20px}.conversations-scrollable{display:flex;flex:1;flex-direction:column;gap:8px;margin-bottom:16px;min-height:0;overflow-y:auto;padding-right:2px}.conversation-list-item{all:unset;align-items:center;background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-1);box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;padding:12px 14px;transition:transform .18s var(--askly-ease),box-shadow .18s var(--askly-ease),border-color .18s var(--askly-ease);width:100%}.conversation-list-item:hover{border-color:var(--askly-border-strong);box-shadow:var(--askly-elev-2);transform:translateY(-1px)}.conversation-item-left{align-items:center;display:flex;gap:12px;overflow:hidden;text-align:left}.conversation-item-icon{align-items:center;background:var(--askly-surface-2);border:1px solid var(--askly-border);border-radius:50%;display:flex;flex-shrink:0;font-size:16px;height:36px;justify-content:center;object-fit:cover;width:36px}.conversation-item-details{align-items:flex-start;display:flex;flex-direction:column;gap:2px;overflow:hidden}.conversation-item-title{color:var(--text-1);font-size:13px;font-weight:600}.conversation-item-preview{color:var(--text-3);font-size:11.5px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-item-right{align-items:center;color:var(--text-4);display:flex;flex-shrink:0;gap:6px}.conversation-item-time{font-size:10px}.start-new-chat-btn{all:unset;align-items:center;background:linear-gradient(145deg,var(--askly-accent),var(--askly-accent-strong));border-radius:var(--askly-radius-md);box-shadow:var(--askly-elev-2);box-sizing:border-box;color:var(--askly-accent-contrast);cursor:pointer;display:flex;flex-shrink:0;font-size:13.5px;font-weight:600;height:44px;justify-content:center;text-align:center;transition:transform .18s var(--askly-ease),box-shadow .18s var(--askly-ease),filter .18s var(--askly-ease);width:100%}.start-new-chat-btn:hover{box-shadow:var(--askly-elev-3);filter:brightness(1.05);transform:translateY(-1px)}.start-new-chat-btn:active{transform:scale(.98)}.askly-greeting{-webkit-font-smoothing:antialiased;animation:asklyGreetingIn .32s var(--askly-ease);bottom:98px;display:flex;flex-direction:column;font-family:var(--askly-font);gap:8px;max-width:min(300px,calc(100vw - 48px));position:fixed;z-index:99998}.askly-greeting-right{align-items:flex-end;right:24px}.askly-greeting-left{align-items:flex-start;left:24px}@keyframes asklyGreetingIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.askly-greeting-card{background:var(--askly-surface);border:1px solid var(--askly-border);border-radius:16px;box-shadow:var(--askly-elev-3);color:var(--text-1);position:relative}.askly-greeting-body{all:unset;align-items:center;border-radius:16px;box-sizing:border-box;color:inherit;cursor:pointer;display:flex;font-size:13.5px;gap:10px;line-height:1.45;padding:12px 34px 12px 14px}.askly-greeting-body:focus-visible,.askly-greeting-chip:focus-visible,.askly-greeting-close:focus-visible{outline:2px solid var(--askly-accent);outline-offset:2px}.askly-greeting-avatar{border-radius:50%;flex-shrink:0;height:28px;object-fit:cover;width:28px}.askly-greeting-close{all:unset;align-items:center;border-radius:50%;box-sizing:border-box;color:var(--text-3);cursor:pointer;display:flex;height:24px;justify-content:center;position:absolute;right:6px;top:6px;width:24px}.askly-greeting-close:hover{background:var(--askly-surface-2);color:var(--text-1)}.askly-greeting-chips{align-items:inherit;display:flex;flex-direction:column;gap:6px}.askly-greeting-chip{box-shadow:var(--askly-elev-1,0 1px 2px rgba(15,23,42,.08))}@media (max-width:600px){.askly-chat-modal,.askly-chat-modal.expanded{border:none!important;border-radius:0!important;bottom:0!important;height:100dvh!important;left:0!important;max-height:100dvh!important;max-width:100vw!important;right:0!important;width:100vw!important}.chat-header{border-radius:0!important}.askly-chat-button{bottom:16px;right:16px}.askly-greeting{bottom:88px;max-width:calc(100vw - 32px)}.askly-greeting-right{right:16px}.askly-greeting-left{left:16px}.askly-greeting-chips{display:none}.askly-greeting-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.askly-chat-button.open{display:none}}@media (prefers-reduced-motion:reduce){.askly-chat-modal,.askly-greeting,.askly-jump-latest,.askly-skeleton:after,.home-hero-wave,.msg-wrapper,.quick-replies{animation:none!important}.askly-chat-button,.conversation-list-item,.help-article-row,.home-action-card,.send-btn{transition:none!important}}.askly-composer-notice{padding:6px 16px}');var We,Ge,Je=function(t){var a,l,c,d,u=t.orgId,p=t.organizationName,f=void 0===p?"Askly":p,m=t.themeColor,h=void 0===m?"#0f172a":m,g=t.theme,v=void 0===g?"auto":g,y=t.position,x=void 0===y?"right":y,k=t.orgServerRoute,w=t.enableVoiceChat,E=t.voiceInput,N=t.welcomeMessage,S=void 0===N?"Hi! How can I help you today?":N,z=t.placeholderText,I=void 0===z?"Type your message...":z,C=t.organizationLogo,A=t.buttonIcon,M=void 0===A?"💬":A,q=t.buttonShape,R=void 0===q?"round":q,O=t.autoOpen,D=void 0!==O&&O,F=t.greeting,B=t.showTimestamp,$=void 0!==B&&B,J=t.soundEnabled,te=void 0!==J&&J,re=t.soundVolume,le=void 0===re?.4:re;t.poweredBy;var pe=t.userId,fe=t.timestamp,me=t.signature,he=t.turnstileSiteKey,ge=t.excludePaths,ve=void 0===ge?[]:ge,ye=t.includePaths,xe=void 0===ye?[]:ye,be=t.configOverride,ke=t.resetGeneration,we=t.onMessageSent,Ee=t.onMessageReceived,Ne=t.onChatOpened,Se=t.onChatClosed,ze=t.onEscalation,Ie=e.useState("undefined"!=typeof window?window.location.pathname:""),Ce=Ie[0],Ae=Ie[1],Me=e.useState(f),Te=Me[0],_e=Me[1],je=e.useState(C),Ve=je[0],Ue=je[1],Be=e.useState(h),We=Be[0],Ge=Be[1],Je=e.useState(v),Xe=Je[0],Qe=Je[1],Ze=e.useState(R),Ke=Ze[0],et=Ze[1],tt=e.useState("off"),at=tt[0],rt=tt[1],nt=e.useState(se(E)||(!1===w?"off":void 0)),ot=nt[0],it=nt[1],st=e.useState(null),lt=st[0],ct=st[1],dt=e.useState(null),ut=dt[0],pt=dt[1],ft="object"==typeof F&&null!==F?F:null,mt=e.useState(!0),ht=mt[0],gt=mt[1],vt=e.useState(null),yt=vt[0],xt=vt[1],bt=e.useState(3e3),kt=bt[0],wt=bt[1],Et=e.useState(!1),Nt=Et[0],St=Et[1],zt=e.useState(!0),It=zt[0],Ct=zt[1],At=e.useState("smart"),Mt=At[0],Tt=At[1],_t=e.useState("Leave your email and we'll reply there if you've gone."),jt=_t[0],qt=_t[1],Rt=e.useState(!1),Ot=Rt[0],Dt=Rt[1],Lt=e.useState(!1),Pt=Lt[0],Vt=Lt[1],Ut=e.useState(!1),Ft=Ut[0],Ht=Ut[1],Bt=e.useState(!("undefined"==typeof window||!window.matchMedia)&&window.matchMedia("(prefers-color-scheme: dark)").matches),Yt=Bt[0],$t=Bt[1];e.useEffect(function(){if("undefined"!=typeof window&&window.matchMedia){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(e){return $t(e.matches)};return e.addEventListener("change",t),function(){return e.removeEventListener("change",t)}}},[]);var Wt="auto"===Xe?Yt?"dark":"light":Xe,Gt=e.useState(S),Jt=Gt[0],Xt=Gt[1],Qt=e.useState(u),Zt=Qt[0],Kt=Qt[1],ea=function(e){if(e){var t,a;e.orgId&&(Kt(e.orgId),t=u||"detect",(a=e.orgId)&&a!==t&&W(Y+t)!==a&&G(Y+t,a),Jn.current=!0),e.organizationName&&_e(e.organizationName),e.logoUrl&&Ue(e.logoUrl),e.themeColor&&Ge(e.themeColor),"light"!==e.theme&&"dark"!==e.theme&&"auto"!==e.theme||Qe(e.theme),"round"!==e.buttonShape&&"square"!==e.buttonShape||et(e.buttonShape);var r=se(e.voiceInput);if(r&&rt(r),void 0!==e.ai_name&&ct(e.ai_name||null),void 0!==e.ai_avatar_url&&pt(e.ai_avatar_url||null),void 0!==e.greetingEnabled&&gt(!!e.greetingEnabled),void 0!==e.greetingMessage&&xt("string"==typeof e.greetingMessage&&e.greetingMessage.trim()?e.greetingMessage:null),"number"==typeof e.greetingDelayMs&&e.greetingDelayMs>=0&&wt(e.greetingDelayMs),void 0!==e.ai_answering&&Ct(e.ai_answering),e.leadCapture&&Tt(e.leadCapture),e.leadCapturePrompt&&qt(e.leadCapturePrompt),e.welcomeMessage&&Xt(e.welcomeMessage),e.faqs&&Array.isArray(e.faqs)&&pa(e.faqs),e.featured_articles&&Array.isArray(e.featured_articles)){var n=e.featured_articles.map(function(e,t){return{id:e.id||"featured_".concat(t),title:e.title||"Featured Article",content:e.content||"",document_type:e.document_type||"guide",score:1}});ya(n)}}};e.useEffect(function(){var e="askly_config_".concat(u||"detect"),t=null;try{t="undefined"!=typeof window?window.sessionStorage:null}catch(e){t=null}if(t)try{var a=t.getItem(e);a&&(ea(JSON.parse(a)),St(!0))}catch(e){}be&&ea(be);o(void 0,void 0,void 0,function(){var a,r,n,o,s;return i(this,function(i){switch(i.label){case 0:return i.trys.push([0,4,5,6]),a=k.replace(/\/messages\/widget$/,"")+"/messages/widget/config",r=u?"?org_id=".concat(u):"",[4,fetch("".concat(a).concat(r))];case 1:return(n=i.sent()).ok?[4,n.json()]:[3,3];case 2:if(o=i.sent(),ea(o),t)try{t.setItem(e,JSON.stringify(o))}catch(e){}be&&ea(be),ea(fi.current),St(!0),i.label=3;case 3:return[3,6];case 4:return s=i.sent(),console.warn("[Askly] Failed to load remote widget config, using local properties:",s),[3,6];case 5:return ui(!0),[7];case 6:return[2]}})})},[u,k,f,h,w,S,be]),e.useEffect(function(){if("undefined"!=typeof window){var e=function(){Ae(window.location.pathname)},t=window.history.pushState,a=window.history.replaceState,r=!0,n=function(){for(var a=[],n=0;n<arguments.length;n++)a[n]=arguments[n];t.apply(this,a),r&&e()},o=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];a.apply(this,t),r&&e()};return window.history.pushState=n,window.history.replaceState=o,window.addEventListener("popstate",e),function(){r=!1,window.removeEventListener("popstate",e),window.history.pushState===n&&(window.history.pushState=t),window.history.replaceState===o&&(window.history.replaceState=a)}}},[]);var ta=e.useState(D),aa=ta[0],ra=ta[1],na=e.useState("messages"),oa=na[0],ia=na[1];e.useEffect(function(){var e=function(){return ra(!0)},t=function(){return ra(!1)},a=function(){return ra(function(e){return!e})};return window.addEventListener("askly:open",e),window.addEventListener("askly:close",t),window.addEventListener("askly:toggle",a),function(){window.removeEventListener("askly:open",e),window.removeEventListener("askly:close",t),window.removeEventListener("askly:toggle",a)}},[]);var sa=e.useState(!1),la=sa[0],ca=sa[1],da=e.useState([]),ua=da[0],pa=da[1],fa=e.useState(null),ma=fa[0],ha=fa[1],ga=e.useState([]),va=ga[0],ya=ga[1],xa=e.useState("all");xa[0],xa[1];var ba=e.useState({}),ka=ba[0],wa=ba[1],Ea=e.useState(null),Na=Ea[0],Sa=Ea[1],za=T(Ce,xe,ve),Ia=e.useState(0),Ca=Ia[0],Aa=Ia[1],Ma=Zt||"detect",Ta=e.useRef(void 0),_a=e.useRef(!1),ja=r.default.useMemo(function(){if("undefined"==typeof window)return"";_a.current&&Ta.current&&Ta.current!==Ma&&(_a.current=!1,Q(Ma));var e=X(Ma,Ta.current);return Ta.current=Ma,e},[Ma,Ca]),qa=e.useRef(ja);qa.current=ja;var Ra=e.useState(!1),Oa=Ra[0],Da=Ra[1],La=e.useRef(Zt);La.current=Zt;var Pa=e.useRef(k);Pa.current=k;var Va=function(e){return Pa.current.replace(/\/messages\/widget$/,"")+"/messages/widget"+e},Ua=e.useRef(null);Ua.current||(Ua.current=new ie({api:Va,getOrganizationId:function(){return La.current},getVisitorId:function(){return qa.current},onChange:function(){return Da(!!Ua.current&&Ua.current.human)}}));var Fa=Ua.current;e.useEffect(function(){return function(){return Fa.clear()}},[ja]);var Ha=e.useState(null),Ba=Ha[0],Ya=Ha[1],$a=e.useState(!0),Wa=$a[0],Ga=$a[1],Ja=Wa?pe:void 0,Xa=Wa?me:void 0,Qa=Wa?fe:void 0,Za=(null==Ba?void 0:Ba.userId)||Ja,Ka="askly_conversations_".concat(Ma,"_").concat(Za||ja||"guest"),er=e.useState(function(){return"undefined"!=typeof window?oe(Ka):[]}),tr=er[0],ar=er[1],rr=e.useRef(tr);rr.current=tr;var nr=e.useRef(Ma),or=e.useRef(Za||ja);e.useEffect(function(){if("undefined"!=typeof window){var e=oe(Ka),t=Za||ja,a=nr.current!==Ma,r=or.current===t;nr.current=Ma,or.current=t,a&&r&&0===e.length&&rr.current.length>0||ar(e)}},[Ka]);var ir=e.useState(null),sr=ir[0],lr=ir[1],cr=e.useRef(sr);cr.current=sr;var dr=e.useState([]),ur=dr[0],pr=dr[1],fr=e.useState(""),mr=fr[0],hr=fr[1],gr=e.useState([]),vr=gr[0],yr=gr[1],xr=vr.includes(sr||"primary"),br=e.useState(null),kr=br[0],wr=br[1],Er="off"===at||"off"===ot?"off":ot||at,Nr=e.useState("idle"),Sr=Nr[0],zr=Nr[1],Ir=e.useState(null),Cr=Ir[0],Ar=Ir[1],Mr=e.useState(!1),Tr=Mr[0],_r=Mr[1],jr=e.useRef({level:0,elapsedMs:0}),qr=e.useRef(null),Rr=e.useRef(null),Or=e.useRef(null),Dr=e.useRef(0),Lr=e.useRef(!1),Pr=e.useRef(function(){}),Vr=e.useState(!1),Ur=Vr[0],Fr=Vr[1],Hr=e.useState(null),Br=Hr[0],Yr=Hr[1],$r=e.useState(0),Wr=$r[0],Gr=$r[1],Jr=e.useState(!1),Xr=Jr[0],Qr=Jr[1],Zr=e.useRef(!1),Kr=e.useRef(null),en=!(!(null==Ba?void 0:Ba.hash)&&!Xa||Xr),tn=!!he&&!en&&!Oa,an=tn&&!Br,rn=e.useState(""),nn=rn[0],on=rn[1],sn=e.useState([]),ln=sn[0],cn=sn[1],dn=e.useState(!1),un=dn[0],pn=dn[1],fn=e.useState(null),mn=fn[0],hn=fn[1],gn=e.useState(null),vn=gn[0],yn=gn[1],xn=e.useState([]),bn=xn[0],kn=xn[1],wn=e.useState(!0),En=wn[0],Nn=wn[1],Sn=e.useState({}),zn=Sn[0],In=Sn[1],Cn=e.useState(null),An=Cn[0],Mn=Cn[1],Tn=e.useRef(null);e.useEffect(function(){o(void 0,void 0,void 0,function(){var e,t,a,r,n,o;return i(this,function(i){switch(i.label){case 0:if(!Zt)return[2];Nn(!0),i.label=1;case 1:return i.trys.push([1,5,6,7]),e=k.replace(/\/messages\/widget$/,"")+"/knowledge/widget/list",[4,fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({organization_id:Zt,limit:20})})];case 2:return(t=i.sent()).ok?[4,t.json()]:[3,4];case 3:a=i.sent(),r=a.results||a.documents||[],n=r.map(function(e){return{id:e.id||e._id,title:e.title||e.filename||"Untitled Article",content:e.content||"",document_type:e.document_type||"guide",score:e.score||0}}),kn(n),i.label=4;case 4:return[3,7];case 5:return o=i.sent(),console.error("Failed to load article catalog:",o),[3,7];case 6:return Nn(!1),[7];case 7:return[2]}})})},[Zt,k]);var _n=e.useState(!1),jn=_n[0],qn=_n[1],Rn=e.useState(!1),On=Rn[0],Dn=Rn[1],Ln=e.useRef(null),Pn=e.useRef(!0),Vn=e.useRef(!1),Un=e.useRef(0),Fn=e.useState(0),Hn=Fn[0],Bn=Fn[1],Yn=e.useRef(null),$n=e.useRef(null),Wn=e.useRef(null);e.useEffect(function(){"undefined"!=typeof window&&function(e,t){try{return void window.localStorage.setItem(e,JSON.stringify(t))}catch(e){}try{var a=t.filter(function(e){return e.messages.some(function(e){return"user"===e.role})}).slice(0,30).map(function(e){return e.messages.length>200?n(n({},e),{messages:e.messages.slice(-200)}):e});window.localStorage.setItem(e,JSON.stringify(a))}catch(e){}}(Ka,tr)},[tr,Ka]);var Gn=e.useRef(Ma);Gn.current=Ma;var Jn=e.useRef(!1),Xn=e.useRef(0);e.useEffect(function(){var e,t=function(){Xn.current+=1,Pr.current(),Fa.clear(),Zr.current=!1,Qr(!1),go.current=new Set,Eo([]),_r(!1),Lr.current=!1,Q(Gn.current),Jn.current||(_a.current=!0),qa.current=X(Gn.current),Ya(null),Ga(!1),ar([]),lr(null),pr([]),hr(""),yr([]),Dt(!1),Vt(!1),Ht(!1),Ho(""),Jo(null),on(""),cn([]),yn(null),In({}),Mn(null),wr(null),Aa(function(e){return e+1})},a=(e=t,ae.add(e),function(){ae.delete(e)});return void 0!==ke&&ne()!==ke&&t(),function(){a(),Xn.current+=1,Pr.current()}},[]);var Qn=e.useState(null),Zn=Qn[0],Kn=Qn[1];e.useEffect(function(){if(sr){var e=tr.find(function(e){return e.id===sr});pr(e?e.messages:[])}else pr([]);Kn(sr)},[sr]),e.useEffect(function(){sr&&ur.length>0&&ar(function(e){var t=e.find(function(e){return e.id===sr});return t&&JSON.stringify(t.messages)===JSON.stringify(ur)?e:t?e.map(function(e){return e.id===sr?n(n({},e),{messages:ur,lastUpdated:(new Date).toISOString()}):e}):ur.some(function(e){return"user"===e.role})?s([{id:sr,messages:ur,lastUpdated:(new Date).toISOString()}],e,!0):e})},[ur,sr]),e.useEffect(function(){var e;if(Zt&&ja)return e=function(e){return o(void 0,void 0,void 0,function(){var t,a,r,o,s,l,c,d;return i(this,function(i){switch(i.label){case 0:if(Ya(e),!e.hash)return console.warn("[Askly] identify() called without `hash`. The user will not be linked server-side. Generate the HMAC on your backend — see the Askly docs."),[2];e.timestamp||console.warn("[Askly] identify() called with `hash` but no `timestamp`. The server recomputes the HMAC from the timestamp it was signed with, so verification will fail without it."),Fa.userId&&Fa.userId!==e.userId&&Fa.clear(),Zr.current=!1,Qr(!1),t=function(){},a=new Promise(function(e){t=e}),Kr.current=a,i.label=1;case 1:return i.trys.push([1,6,7,8]),r=qa.current,o=Fa.token,[4,fetch(Va("/identify"),{method:"POST",headers:n({"Content-Type":"application/json"},o?{Authorization:"Bearer ".concat(o)}:{}),body:JSON.stringify({organization_id:Zt,visitor_id:r,user_id:e.userId,timestamp:e.timestamp||Math.floor(Date.now()/1e3),signature:e.hash,email:e.email,name:e.name,phone:e.phone,attributes:e.attributes||{}})})];case 2:return(s=i.sent()).ok?[3,3]:(console.error("[Askly] identify() was rejected by the server (HTTP ".concat(s.status,"). ")+"The user is not linked to their Askly profile, and messages are sent as an anonymous visitor."),400!==s.status&&403!==s.status||(Zr.current=!0,Qr(!0)),L("identify:error",{userId:e.userId,status:s.status}),[3,5]);case 3:return r!==qa.current?[3,5]:(L("identify:success",{userId:e.userId}),c=(l=Fa).apply,[4,s.json().catch(function(){return null})]);case 4:c.apply(l,[i.sent()]),i.label=5;case 5:return[3,8];case 6:return d=i.sent(),console.error("[Askly] identify() request failed:",d),L("identify:error",{userId:e.userId}),[3,8];case 7:return t(),Kr.current===a&&(Kr.current=null),[7];case 8:return[2]}})})},ee.add(e),K&&e(K),function(){ee.delete(e)}},[Zt,ja,k]);var eo=function(){var e=Z(),t={id:e,messages:Jt?[{role:"agent",content:Jt,timestamp:new Date,format:"markdown"}]:[],lastUpdated:(new Date).toISOString()};return ar(function(e){return s([t],e,!0)}),lr(e),e},to=function(e,t,a){var r="Hi from {organizationName}. How can we help?",n="string"==typeof e&&e.trim()?e:t?"Hi, I'm {ai_name} from {organizationName}. How can I help?":r;return t||-1===n.indexOf("{ai_name}")||(n=r),n.replace(/\{ai_name\}/g,function(){return t||""}).replace(/\{organizationName\}/g,function(){return a}).trim()}(null!==(l=null==ft?void 0:ft.message)&&void 0!==l?l:yt,It?lt:null,Te),ao=null!==(c=null==ft?void 0:ft.delayMs)&&void 0!==c?c:kt,ro=!1!==F&&(!0===F||ht)&&!D,no=u||"detect",oo=tr.some(function(e){return e.messages.some(function(e){return"user"===e.role})}),io=e.useState(!1),so=io[0],lo=io[1],co=e.useState("undefined"==typeof document||!document.hidden),uo=co[0],po=co[1],fo=tr.reduce(function(e,t){return e+(t.unread||0)},0),mo=null===(d=tr.filter(function(e){return(e.unread||0)>0}).sort(function(e,t){return e.lastUpdated<t.lastUpdated?1:-1})[0])||void 0===d?void 0:d.id,ho=e.useRef(oa);ho.current=oa;var go=e.useRef(new Set);e.useEffect(function(){aa&&"messages"===oa&&sr&&tr.some(function(e){return e.id===sr&&(e.unread||0)>0})&&ar(function(e){return e.map(function(e){return e.id===sr?n(n({},e),{unread:0}):e})})},[aa,oa,sr,tr]);var vo=e.useState(!1),yo=vo[0],xo=vo[1],bo=e.useRef(!1);e.useEffect(function(){if(ro&&Nt&&!aa&&za&&!bo.current&&!oo&&"undefined"!=typeof window&&!function(e){try{return"1"===window.sessionStorage.getItem("askly_greeting_dismissed_".concat(e))}catch(e){return!1}}(no)){var e=setTimeout(function(){bo.current=!0,xo(!0),ue("shown")},Math.max(0,ao));return function(){return clearTimeout(e)}}},[ro,Nt,aa,za,ao,no,oo]),e.useEffect(function(){aa&&(bo.current=!0,yo&&xo(!1),ro&&"undefined"!=typeof window&&de(no))},[aa]);var ko=e.useState([]),wo=ko[0],Eo=ko[1],No=e.useState(0),So=No[0],zo=No[1],Io=e.useRef(0);e.useEffect(function(){So!==Io.current&&aa&&Wn.current&&(Io.current=So,Wn.current.focus())},[So,aa,oa,sr,ur.length]),e.useEffect(function(){"messages"!==oa||0!==tr.length||sr||eo()},[oa,tr.length,sr]),e.useEffect(function(){var e=function(e){return 1===e.length&&"agent"===e[0].role&&!e[0].messageId&&"greeting"!==e[0].kind&&e[0].content!==Jt};ar(function(t){return t.some(function(t){return e(t.messages)})?t.map(function(t){return e(t.messages)?n(n({},t),{messages:[n(n({},t.messages[0]),{content:Jt})]}):t}):t}),pr(function(t){return e(t)?[n(n({},t[0]),{content:Jt})]:t})},[Jt]);var Co=function(e,t){e!==cr.current?ar(function(a){return a.map(function(a){return a.id===e?n(n({},a),{messages:s(s([],a.messages,!0),[t],!1),lastUpdated:(new Date).toISOString()}):a})}):pr(function(e){return s(s([],e,!0),[t],!1)})},Ao=e.useRef(ur);e.useEffect(function(){Ao.current=ur},[ur]);var Mo=e.useRef({chatId:null,ids:new Set});e.useEffect(function(){if(aa&&za&&"messages"===oa&&sr&&Zt&&ja){var e=!1,t=function(e){return"".concat(Va("/conversation"),"?org_id=").concat(encodeURIComponent(Zt))+(e?"":"&visitor_id=".concat(encodeURIComponent(ja)))+"&thread_key=".concat(encodeURIComponent(sr))},a=function(){return o(void 0,void 0,void 0,function(){var a,r,n,o,l,c,d,u;return i(this,function(i){switch(i.label){case 0:if("undefined"!=typeof document&&document.hidden)return[2];i.label=1;case 1:return i.trys.push([1,4,,5]),[4,Fa.fetch(t)];case 2:return(a=i.sent()).ok?[4,a.json()]:[2];case 3:return r=i.sent(),e?[2]:(void 0!==r.contact_known&&Dt(r.contact_known),n=r.messages||[],o=n.filter(function(e){return"human"===e.role&&e.message_id}),(l=Mo.current).chatId!==sr&&(l.chatId=sr,l.ids=new Set),c=new Set(Ao.current.map(function(e){return e.messageId}).filter(Boolean)),l.ids.forEach(function(e){return c.add(e)}),go.current.forEach(function(e){return c.add(e)}),d=o.filter(function(e){return!c.has(e.message_id)}).map(function(e){return{role:"agent",content:e.content,timestamp:e.timestamp?new Date(e.timestamp):new Date,messageId:e.message_id,format:"markdown"===e.format?"markdown":"text"}}),!e&&d.length>0&&(u=d.filter(function(e){return!go.current.has(e.messageId)}),d.forEach(function(e){l.ids.add(e.messageId),go.current.add(e.messageId)}),u.length>0&&(pr(function(e){var t=new Set(e.map(function(e){return e.messageId}).filter(Boolean)),a=u.filter(function(e){return!t.has(e.messageId)});return a.length?s(s([],e,!0),a,!0):e}),Oo("received"),u.forEach(function(e){null==Ee||Ee(e.content),L("message:received",{text:e.content,conversationId:sr,from:"agent",messageId:e.messageId})}))),[3,5]);case 4:return i.sent(),[3,5];case 5:return[2]}})})},r=setInterval(a,so?3e4:4e3);a();var n=function(){document.hidden||a()};return document.addEventListener("visibilitychange",n),function(){e=!0,clearInterval(r),document.removeEventListener("visibilitychange",n)}}},[aa,za,oa,sr,Zt,k,ja,so]),e.useEffect(function(){if("undefined"!=typeof document){var e,t=function(){clearTimeout(e),document.hidden?e=setTimeout(function(){return po(!1)},15e3):po(!0)};return document.addEventListener("visibilitychange",t),function(){clearTimeout(e),document.removeEventListener("visibilitychange",t)}}},[]),e.useEffect(function(){if(Zt&&ja&&za&&uo&&oo&&"undefined"!=typeof fetch&&"undefined"!=typeof AbortController&&"undefined"!=typeof TextDecoder){var e=function(e){return e&&"human"===e.role&&e.message_id?{role:"agent",content:e.content,timestamp:e.timestamp?new Date(e.timestamp):new Date,messageId:e.message_id,format:"markdown"===e.format?"markdown":"text"}:null},t=function(e,t){var a,r=t.messageId;if(!go.current.has(r)){go.current.add(r);var o=e===cr.current;if(!(o?Ao.current:(null===(a=rr.current.find(function(t){return t.id===e}))||void 0===a?void 0:a.messages)||[]).some(function(e){return e.messageId===r})){var i=Lo.current&&o&&"messages"===ho.current;o&&pr(function(e){return e.some(function(e){return e.messageId===r})?e:s(s([],e,!0),[t],!1)}),ar(function(a){var l=a.find(function(t){return t.id===e}),c=(new Date).toISOString();return l?a.map(function(a){if(a.id!==e)return a;var l=o||a.messages.some(function(e){return e.messageId===r})?a.messages:s(s([],a.messages,!0),[t],!1);return n(n({},a),{messages:l,lastUpdated:c,unread:i?a.unread:(a.unread||0)+1})}):o?a:s([{id:e,messages:[t],lastUpdated:c,unread:1}],a,!0)}),Oo("received"),null==Ee||Ee(t.content),L("message:received",{text:t.content,conversationId:e,from:"agent",messageId:r})}}},a=!1,r=function(e){var t=!1,a=null,r=null;return o(this,void 0,void 0,function(){var n,o,s;return i(this,function(l){switch(l.label){case 0:n=0,o=function(){var o,s,l,c,d,u,p,f,m,h,g,v,y,x;return i(this,function(i){switch(i.label){case 0:o=0,s=!1,a=new AbortController,c=function(){clearTimeout(l),l=setTimeout(function(){return a&&a.abort()},45e3)},i.label=1;case 1:return i.trys.push([1,7,8,9]),[4,e.connect(a.signal)];case 2:if(d=i.sent(),t)return[2,{value:void 0}];if(!d||404===d.status||405===d.status)return e.onDown("unsupported"),[2,{value:void 0}];if(!d.ok)throw new Error("stream HTTP ".concat(d.status));if(!d.body||"function"!=typeof d.body.getReader)return e.onDown("unsupported"),[2,{value:void 0}];u=d.body.getReader(),p=new TextDecoder,f="",c(),i.label=3;case 3:return[4,u.read()];case 4:if(m=i.sent(),h=m.value,m.done)return[3,6];for(c(),f+=p.decode(h,{stream:!0}).replace(/\r\n/g,"\n"),g=f.indexOf("\n\n");-1!==g;)v=j(f.slice(0,g)),f=f.slice(g+2),g=f.indexOf("\n\n"),v&&!t&&("ready"===v.type?(o=Date.now(),e.onLive()):"reconnect"===v.type?s=!0:e.onEvent(v));if(s)return[3,6];i.label=5;case 5:return[3,3];case 6:return[3,9];case 7:return i.sent(),[3,9];case 8:clearTimeout(l);try{a.abort()}catch(e){}return[7];case 9:return t?[2,{value:void 0}]:(e.onDown("down"),(y=o>0&&Date.now()-o>=3e4)?n=0:n+=1,x=y&&s?500:_[Math.min(n,_.length-1)],[4,(b=x/2+Math.random()*(x/2),new Promise(function(e){var t=setTimeout(e,b);r=function(){clearTimeout(t),e()}}))]);case 10:return i.sent(),[2]}var b})},l.label=1;case 1:return t?[3,3]:[5,o()];case 2:return"object"==typeof(s=l.sent())?[2,s.value]:[3,1];case 3:return[2]}})}),{close:function(){if(t=!0,a)try{a.abort()}catch(e){}r&&r()},kick:function(){if(!t){if(a)try{a.abort()}catch(e){}r&&r()}}}}({connect:function(e){return o(void 0,void 0,void 0,function(){var t,a,r,n;return i(this,function(o){switch(o.label){case 0:return Fa.supported?null===(n=Fa.token)||void 0===n?[3,1]:(t=n,[3,3]):[2,null];case 1:return[4,Fa.start()];case 2:t=o.sent(),o.label=3;case 3:if(!t){if(!Fa.supported)return[2,null];throw new Error("no session yet")}return[4,Fa.request("".concat(Va("/events"),"?org_id=").concat(encodeURIComponent(Zt)),{headers:{Accept:"text/event-stream"},signal:e})];case 4:if(a=o.sent(),r=a.res,!a.token)throw new Error("session lost");return[2,r]}})})},onEvent:function(a){if("message"===a.type&&a.data&&"string"==typeof a.data.thread_key){var r=e(a.data.message);r&&t(a.data.thread_key,r)}},onLive:function(){lo(!0),o(void 0,void 0,void 0,function(){var r,n,o,s,l,c;return i(this,function(d){switch(d.label){case 0:r=rr.current.filter(function(e){return e.messages.some(function(e){return"user"===e.role})}).slice(0,5),n=function(r){var n,o,s,l,c,d;return i(this,function(i){switch(i.label){case 0:if(a)return[2,{value:void 0}];i.label=1;case 1:return i.trys.push([1,4,,5]),[4,Fa.fetch(function(e){return"".concat(Va("/conversation"),"?org_id=").concat(encodeURIComponent(Zt))+(e?"":"&visitor_id=".concat(encodeURIComponent(ja)))+"&thread_key=".concat(encodeURIComponent(r.id))})];case 2:return!(n=i.sent()).ok||a?[2,"continue"]:[4,n.json()];case 3:for(o=i.sent(),s=0,l=o.messages||[];s<l.length;s++)c=l[s],(d=e(c))&&!a&&t(r.id,d);return[3,5];case 4:return i.sent(),[3,5];case 5:return[2]}})},o=0,s=r,d.label=1;case 1:return o<s.length?(l=s[o],[5,n(l)]):[3,4];case 2:if("object"==typeof(c=d.sent()))return[2,c.value];d.label=3;case 3:return o++,[3,1];case 4:return[2]}})})},onDown:function(){return lo(!1)}}),l=!0,c=setInterval(function(){return o(void 0,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:if(!l||!Fa.token)return[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,Fa.fetch("".concat(Va("/presence"),"?org_id=").concat(encodeURIComponent(Zt)),{method:"POST"})];case 2:return 404!==(e=t.sent()).status&&405!==e.status||(l=!1),[3,4];case 3:return t.sent(),[3,4];case 4:return[2]}})})},45e3),d=function(){return r.kick()};return window.addEventListener("online",d),function(){a=!0,clearInterval(c),window.removeEventListener("online",d),r.close(),lo(!1)}}},[Zt,ja,za,uo,oo,k]),e.useEffect(function(){if(aa&&tn&&"undefined"!=typeof window&&!document.getElementById("cloudflare-turnstile-script")){var e=document.createElement("script");e.id="cloudflare-turnstile-script",e.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",e.async=!0,e.defer=!0,document.head.appendChild(e)}},[aa,tn]);var To=aa&&za&&"messages"===oa&&null!==sr;e.useEffect(function(){if(tn&&To&&"undefined"!=typeof window){var e,t=!1,a=function(){if(!t){var r=window.turnstile,n=document.getElementById("askly-turnstile-container");if(r&&n)try{Yn.current=r.render(n,{sitekey:he,callback:function(e){Yr(e),wr(null)},"expired-callback":function(){Yr(null)},"error-callback":function(){Yr(null)}})}catch(e){console.error("[Askly] Turnstile render error:",e)}else e=setTimeout(a,300)}};return e=setTimeout(a,150),function(){t=!0,clearTimeout(e);var a=Yn.current;if(Yn.current=null,a&&window.turnstile)try{window.turnstile.remove(a)}catch(e){}Yr(null)}}},[tn,To,sr,he]),e.useEffect(function(){if(0!==Wr){var e=Yn.current;if(e&&window.turnstile)try{window.turnstile.reset(e)}catch(e){console.error("[Askly] Turnstile reset error:",e)}}},[Wr]);var _o=e.useRef(null),jo=function(){if("undefined"==typeof window)return null;if(!_o.current){var e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{_o.current=new e}catch(e){return null}}return _o.current},qo=function(){var e=jo();e&&"suspended"===e.state&&e.resume().catch(function(){})},Ro={sent:[{freq:392,start:0,duration:.08}],received:[{freq:587.33,start:0,duration:.09},{freq:783.99,start:.09,duration:.14}],error:[{freq:311.13,start:0,duration:.14,type:"sawtooth"},{freq:233.08,start:.12,duration:.18,type:"sawtooth"}],escalation:[{freq:880,start:0,duration:.12},{freq:1174.66,start:.11,duration:.2,type:"triangle"}]},Oo=function(e){if(te){var t=jo();if(t){"suspended"===t.state&&t.resume().catch(function(){});for(var a=Ro[e]||Ro.received,r=t.currentTime,n=.35*Math.max(0,Math.min(1,le)),o=0,i=a;o<i.length;o++){var s=i[o],l=t.createOscillator(),c=t.createGain();l.type=s.type||"sine",l.frequency.value=s.freq;var d=r+s.start;c.gain.setValueAtTime(1e-4,d),c.gain.exponentialRampToValueAtTime(n,d+.012),c.gain.exponentialRampToValueAtTime(1e-4,d+s.duration),l.connect(c).connect(t.destination),l.start(d),l.stop(d+s.duration+.03)}}}},Do=e.useRef(!1);e.useEffect(function(){Do.current?aa&&za?(qo(),null==Ne||Ne(),L("open")):(Pr.current(),null==Se||Se(),L("close")):Do.current=!0},[aa&&za]);var Lo=e.useRef(aa);Lo.current=aa;e.useEffect(function(){return function(){Tn.current&&clearTimeout(Tn.current)}},[]);var Po=function(e){var t=e.target.value;if(on(t),Tn.current&&clearTimeout(Tn.current),!t.trim())return cn([]),hn(null),void pn(!1);pn(!0),Tn.current=setTimeout(function(){return e=t,o(void 0,void 0,void 0,function(){var t,a,r,n;return i(this,function(o){switch(o.label){case 0:if(!e.trim())return cn([]),hn(null),[2];pn(!0),hn(null),o.label=1;case 1:return o.trys.push([1,6,7,8]),t=k.replace(/\/messages\/widget$/,"")+"/knowledge/widget/search",[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({organization_id:Zt||"",query:e,top_k:5})})];case 2:return(a=o.sent()).ok?[4,a.json()]:[3,4];case 3:return r=o.sent(),cn(r.results||[]),[3,5];case 4:cn([]),hn(429===a.status?"You're searching too fast — please wait a moment and try again.":"Search is unavailable right now. Please try again shortly."),o.label=5;case 5:return[3,8];case 6:return n=o.sent(),console.error("RAG search failed:",n),cn([]),hn("Search is unavailable right now. Please try again shortly."),[3,8];case 7:return pn(!1),[7];case 8:return[2]}})});var e},350)},Vo=function(e){yn(e)},Uo=e.useState(""),Fo=Uo[0],Ho=Uo[1],Bo=e.useState(!1),Yo=Bo[0],$o=Bo[1],Wo=e.useState(null),Go=Wo[0],Jo=Wo[1],Xo=!Ot&&("always"===Mt?0===ur.filter(function(e){return"user"===e.role}).length:"smart"===Mt&&(Pt||!It)),Qo=ur[ur.length-1],Zo="smart"===Mt&&!Ot&&!Xo&&!Ft&&!xr&&ur.some(function(e){return"user"===e.role})&&"agent"===(null==Qo?void 0:Qo.role),Ko=function(e){void 0===e&&(e="smooth");var t=Ln.current;if(t){var a="undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":e;"function"==typeof t.scrollTo?t.scrollTo({top:t.scrollHeight,behavior:a}):t.scrollTop=t.scrollHeight,Pn.current=!0,Bn(0)}};e.useLayoutEffect(function(){if(Un.current=0,Pn.current=!0,Bn(0),null!==sr){Vn.current=!0;var e=Ln.current;e&&(e.scrollTop=e.scrollHeight)}},[sr]),e.useEffect(function(){var e;if(Ln.current&&null!==sr){var t=ur.length-Un.current;Un.current=ur.length;var a=t>0&&"user"===(null===(e=ur[ur.length-1])||void 0===e?void 0:e.role);Pn.current||a?(Ko(Vn.current?"auto":"smooth"),Vn.current=!1):t>0&&Bn(function(e){return e+t})}},[ur,xr,On,Xo,sr]),e.useEffect(function(){var e=Ln.current;if(e&&"undefined"!=typeof ResizeObserver){var t=new ResizeObserver(function(){Pn.current&&(e.scrollTop=e.scrollHeight)});return t.observe(e),function(){return t.disconnect()}}},[sr]);e.useLayoutEffect(function(){var e=Wn.current;e&&(e.style.height="auto",e.style.height="".concat(Math.min(e.scrollHeight,120),"px"),e.style.overflowY=e.scrollHeight>120?"auto":"hidden")},[mr,sr]);var ei=function(){return o(void 0,void 0,void 0,function(){var e;return i(this,function(t){switch(t.label){case 0:if(!(e=Fo.trim())||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e))return Jo("That doesn't look like an email address."),[2];if(!Zt||!ja)return[2];$o(!0),Jo(null),t.label=1;case 1:return t.trys.push([1,3,4,5]),[4,Fa.fetch(Va("/contact-details"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({organization_id:Zt,visitor_id:ja,email:e,timestamp:Math.floor(Date.now()/1e3)})})];case 2:if(!t.sent().ok)throw new Error("Could not save that address.");return Dt(!0),L("lead:captured"),Ho(""),[3,5];case 3:return t.sent(),Jo("Couldn't save that just now. You can carry on chatting."),[3,5];case 4:return $o(!1),[7];case 5:return[2]}})})},ti=function(e,t){return o(void 0,void 0,void 0,function(){var a,r,n,o,l,c,d,u,p,f,m,h,g,v,y,x,b,w,E;return i(this,function(i){switch(i.label){case 0:if(!(a=("string"==typeof e?e:mr).trim()))return[2];if(Xo)return[2];if(an)return wr("Please complete the security check first."),[2];n=(r=sr)||"primary",o=Xn.current,l=Yn.current,c=(null==Ba?void 0:Ba.timestamp)||Qa||Math.floor(Date.now()/1e3),d=!(!t||!t.voice)||"string"!=typeof e&&Lr.current,Lr.current=!1,u={role:"user",content:a,timestamp:new Date,format:"text"},pr(function(e){return s(s([],e,!0),[u],!1)}),hr(""),wr(null),Rr.current=null,Ar(null),yr(function(e){return e.includes(n)?e:s(s([],e,!0),[n],!1)}),qo(),Oo("sent"),null==we||we(a),L("message:sent",{text:a,conversationId:n}),i.label=1;case 1:return i.trys.push([1,10,11,12]),Kr.current?[4,Kr.current]:[3,3];case 2:i.sent(),i.label=3;case 3:return Fa.token?[3,5]:[4,Fa.start()];case 4:i.sent(),i.label=5;case 5:return p={organization_id:Zt||"",visitor_id:qa.current,thread_key:n,message:a,timestamp:c,context:{url:"undefined"!=typeof window?window.location.href:void 0,title:"undefined"!=typeof document?document.title:void 0,referrer:"undefined"!=typeof document&&document.referrer||void 0,locale:"undefined"!=typeof navigator?navigator.language:void 0,screen:"undefined"!=typeof window&&window.screen?"".concat(window.screen.width,"x").concat(window.screen.height):void 0}},d&&(p.metadata={input_mode:"voice"}),Za&&(p.user_id=Za),f=(null==Ba?void 0:Ba.hash)||Xa,m=!!Fa.userId&&Fa.userId===Za,!f||m||Zr.current?p.timestamp=Math.floor(Date.now()/1e3):p.signature=f,Br&&(p.turnstile_token=Br),[4,Fa.request(k,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)})];case 6:return h=i.sent(),g=h.res,v=h.token,g.ok?[3,8]:[4,g.json().catch(function(){return{}})];case 7:throw y=i.sent(),(x=new Error(y.detail||"HTTP ".concat(g.status))).status=g.status,x;case 8:return[4,g.json()];case 9:return b=i.sent(),o!==Xn.current?[2]:(Fa.token&&Fa.token!==v||Fa.apply(b),b.reply&&(w={role:"agent",content:b.reply,timestamp:new Date,format:"text"===b.format?"text":"markdown"},Co(r,w)),void 0!==b.contact_known&&Dt(b.contact_known),b.escalated||b.should_escalate?(Vt(!0),Oo("escalation"),null==ze||ze(b),L("escalated",{conversationId:n})):b.reply&&Oo("received"),b.reply&&(null==Ee||Ee(b.reply),L("message:received",{text:b.reply,conversationId:n,from:"ai",messageId:b.message_id})),[3,12]);case 10:return E=i.sent(),o!==Xn.current?[2]:(console.error("[Askly] Message failed:",E),L("error",{message:"Message could not be sent",status:null==E?void 0:E.status}),Co(r,{role:"agent",content:429===(null==E?void 0:E.status)?"You're sending messages too quickly. Please wait a moment and try again.":"Sorry, something went wrong. Please try again.",timestamp:new Date,format:"text"}),Oo("error"),Fr(!0),setTimeout(function(){return Fr(!1)},500),[3,12]);case 11:return yr(function(e){return e.filter(function(e){return e!==n})}),tn&&Yn.current===l&&(Yr(null),Gr(function(e){return e+1})),[7];case 12:return[2]}})})},ai=e.useRef(null);ai.current={sendMessage:ti,voiceInput:Er,leadRequired:Xo,turnstileBlocked:an,isTyping:xr,uploadingFile:On,input:mr};var ri=function(e,t){void 0===t&&(t=!1);var a=function(e){switch(e){case"insecure":return"Voice input needs a secure (https) page.";case"unsupported":return"Voice input isn't supported in this browser.";case"denied":return"Microphone access is blocked. Allow it in your browser's site settings to use voice input.";case"no-microphone":return"No microphone was found.";case"no-speech":return"I didn't catch that. Please try again.";case"no-audio":return"No sound is coming from your microphone. Check that it isn't muted and that the right one is selected.";case"limit":return"Voice input isn't available right now. Please type your message.";case"disabled":return"Voice input is turned off.";case"network":return"Your recording couldn't be transcribed. Check your connection and try again.";default:return"Your recording couldn't be transcribed. Please try again or type your message."}}(e);zr("idle"),Ar(t?a:null),wr(a),L("voice:error",{code:e})},ni=function(e){return o(void 0,void 0,void 0,function(){var t,a,r,n,o,s,l,c,d,u,p,f;return i(this,function(i){switch(i.label){case 0:t=Dr.current,a=Xn.current,r=cr.current,Rr.current=e,zr("transcribing"),Ar(null),n="undefined"!=typeof AbortController?new AbortController:null,Or.current=n,o=setTimeout(function(){return null==n?void 0:n.abort()},3e4),i.label=1;case 1:return i.trys.push([1,8,9,10]),Fa.token?[3,3]:[4,Fa.start()];case 2:i.sent(),i.label=3;case 3:return(s=new FormData).append("organization_id",Zt||""),s.append("file",e.blob,-1!==e.blob.type.indexOf("mp4")?"clip.mp4":"clip.webm"),s.append("duration_ms",String(Math.round(e.durationMs))),"undefined"!=typeof navigator&&navigator.language&&s.append("language",navigator.language),[4,Fa.fetch(Va("/transcribe"),{method:"POST",body:s,signal:n?n.signal:void 0})];case 4:return l=i.sent(),t!==Dr.current||a!==Xn.current?[2]:l.ok?[3,6]:[4,l.json().catch(function(){return{}})];case 5:return c=i.sent().detail,console.error("[Askly] Transcription failed:",l.status,c),"voice_disabled"===c?ri("disabled"):429===l.status?ri("limit"):ri("failed",l.status>=500),[2];case 6:return[4,l.json()];case 7:return d=i.sent(),t!==Dr.current||a!==Xn.current?[2]:(Rr.current=null,(u="string"==typeof d.text?d.text.trim():"")?(zr("idle"),wr(null),L("voice:transcript",{text:u,language:d.language||void 0}),p=ai.current,!("auto-send"!==p.voiceInput||p.leadRequired||p.turnstileBlocked||p.isTyping||p.uploadingFile||p.input.trim()||r!==cr.current)?p.sendMessage(u,{voice:!0}):(Lr.current=!0,hr(function(e){return e+(""===e||/\s$/.test(e)?"":" ")+u})),[3,10]):(ri("no-speech"),[2]));case 8:return f=i.sent(),t!==Dr.current||a!==Xn.current?[2]:(console.error("[Askly] Transcription failed:",f),ri("network",!0),[3,10]);case 9:return clearTimeout(o),Or.current===n&&(Or.current=null),[7];case 10:return[2]}})})},oi=function(){return o(void 0,void 0,void 0,function(){var e,t,a;return i(this,function(r){switch(r.label){case 0:if("off"===Er||"idle"!==Sr)return[2];if(Xo||an||xr||On)return[2];e=++Dr.current,Rr.current=null,jr.current={level:0,elapsedMs:0},Ar(null),wr(null),qn(!1),zr("starting"),r.label=1;case 1:return r.trys.push([1,3,,4]),[4,ce({maxMs:6e4,silenceMs:2e3,noSpeechMs:8e3,onMeter:function(e,t){jr.current={level:e,elapsedMs:t}},onDone:function(t){e===Dr.current&&(qr.current=null,L("voice:stop",{durationMs:t.durationMs}),"ok"!==t.outcome?ri(t.outcome):t.blob.size<200?ri("no-speech"):ni(t))}})];case 2:return t=r.sent(),e!==Dr.current?(t.cancel(),[2]):(qr.current=t,zr("recording"),L("voice:start"),[3,4]);case 3:return a=r.sent(),e!==Dr.current?[2]:(ri(a&&a.code||"failed"),[3,4]);case 4:return[2]}})})},ii=function(){var e;null===(e=qr.current)||void 0===e||e.stop()},si=function(){var e,t;Dr.current+=1,null===(e=qr.current)||void 0===e||e.cancel(),qr.current=null,null===(t=Or.current)||void 0===t||t.abort(),Or.current=null,Rr.current=null,Ar(null),zr("idle")};Pr.current=si;e.useEffect(function(){"idle"!==Sr&&si()},[To,sr]);var li=e.useRef(Sr);e.useEffect(function(){var e=li.current;li.current=Sr,"idle"!==e&&"idle"===Sr&&To&&zo(function(e){return e+1})},[Sr]),e.useEffect(function(){""===mr&&(Lr.current=!1)},[mr]),e.useEffect(function(){if("idle"!==Sr){if("off"!==Er){var e=function(e){"Escape"===e.key&&si()};return document.addEventListener("keydown",e),function(){return document.removeEventListener("keydown",e)}}si()}},[Sr,Er]),e.useEffect(function(){var e,t=wo[0];if(t&&aa&&za&&"messages"===oa){var a=null!==(e=t.chatId)&&void 0!==e?e:sr;if(a){if(sr===a&&Zn===a){var r=function(){var e=wo.map(function(e){return e.text}).filter(function(e){return!!e});Eo([]),e.length&&hr(e.join("\n")),zo(function(e){return e+1})};if(!t.send)return Eo(function(e){return e.slice(1)}),null!==t.text&&hr(t.text),void zo(function(e){return e+1});if(Xo)return r();if(an){var n=setTimeout(r,1e4);return function(){return clearTimeout(n)}}xr||(Eo(function(e){return e.slice(1)}),ti(t.text))}}else tr.length>0&&lr(tr[0].id)}},[wo,aa,za,oa,sr,Zn,tr.length,Xo,an,xr]);var ci=e.useState(!1),di=ci[0],ui=ci[1];e.useEffect(function(){if(Tr&&di)return"off"===Er?(_r(!1),console.warn("[Askly] startVoiceInput() ignored: voice input is turned off."),void L("voice:error",{code:"disabled"})):void(!To||Zn!==sr||wo.length>0||(_r(!1),Xo||an||xr||On?console.warn("[Askly] startVoiceInput() ignored: the message box is not available yet."):oi()))},[Tr,di,Er,To,Zn,sr,wo.length]);var pi=e.useRef(function(){}),fi=e.useRef({}),mi=e.useState(null),hi=mi[0],gi=mi[1];pi.current=function(e){if(za||"close"===e.type||"update"===e.type)switch(e.type){case"open":ra(!0);break;case"close":ra(!1);break;case"toggle":ra(function(e){return!e});break;case"showSpace":ia("home"===e.space?"explore":"help"===e.space?"help":"messages"),ra(!0);break;case"showNewMessage":case"sendMessage":var t="sendMessage"===e.type,a="string"==typeof e.text?e.text:null;if(t&&!(a||"").trim())break;ia("messages"),ra(!0),Eo(function(e){return s(s([],e,!0),[{chatId:null,text:t?a.trim():a,send:t}],!1)});break;case"showArticle":gi(e.articleId);break;case"startVoiceInput":di&&"off"===Er||(ia("messages"),ra(!0),Eo(function(e){return s(s([],e,!0),[{chatId:null,text:null,send:!1}],!1)})),_r(!0);break;case"stopVoiceInput":ii();break;case"update":for(var r={},o=0,i=["organizationName","logoUrl","themeColor","theme","buttonShape","welcomeMessage","ai_name","ai_avatar_url","greetingEnabled","greetingMessage","greetingDelayMs","faqs"];o<i.length;o++){var l=i[o];e.config&&void 0!==e.config[l]&&(r[l]=e.config[l])}var c=se(e.config&&e.config.voiceInput)||(e.config&&!1===e.config.enableVoiceChat?"off":void 0);c&&it(c),fi.current=n(n({},fi.current),r),ea(r)}else console.warn("[Askly] ".concat(e.type,"() ignored: the widget is hidden on this path."))},e.useEffect(function(){if(hi){var e=bn.concat(va).find(function(e){return e.id===hi});e?(gi(null),yn(e),ia("help"),ra(!0)):di&&!En&&Zt&&(gi(null),console.warn('[Askly] showArticle(): no article with id "'.concat(hi,'".')))}},[hi,bn,va,En,Zt]),e.useEffect(function(){return function(e){P=e,U=!1;var t=V;return V=[],t.forEach(e),function(){P===e&&(P=null)}}(function(e){return pi.current(e)})},[]);var vi=aa&&za;e.useEffect(function(){H.open=vi},[vi]),e.useEffect(function(){H.visitorId=ja},[ja]),e.useEffect(function(){H.unread!==fo&&(H.unread=fo,L("unread",{count:fo}))},[fo]),e.useEffect(function(){di&&!H.ready&&(H.ready=!0,L("ready",{visitorId:qa.current}))},[di]),e.useEffect(function(){return function(){H.open&&L("close"),H.unread>0&&L("unread",{count:0}),H.ready=!1,H.open=!1,H.unread=0,H.visitorId=""}},[]);var yi="#0f172a"===We||"#6366f1"===We||"#2563eb"===We?{}:((a={})["--askly-accent"]=We,a),xi=n({right:"right"===x?"24px":void 0,left:"left"===x?"24px":void 0},yi),bi=n({right:"right"===x?"24px":void 0,left:"left"===x?"24px":void 0},yi),ki={conversations:tr,setActiveChatId:lr,startNewChat:eo},wi={open:aa,setOpen:ra,buttonIcon:M,buttonShape:Ke,buttonStyle:xi,launcherUnread:fo,resolvedTheme:Wt,setActiveChatId:lr,setActiveTab:ia,unreadChatId:mo},Ei={accentVars:yi,aiAnswering:It,aiAvatarUrl:ut,dismissGreeting:function(){bo.current=!0,xo(!1),de(no),ue("dismissed")},faqs:ua,greetingText:to,openFromGreeting:function(e){var t={role:"agent",content:to,timestamp:new Date,format:"text",kind:"greeting"},a=tr.find(function(e){return!e.messages.some(function(e){return"user"===e.role})}),r=a?a.id:Z();ar(function(e){return a?e.map(function(e){return e.id===r?n(n({},e),{messages:[t],lastUpdated:(new Date).toISOString()}):e}):s([{id:r,messages:[t],lastUpdated:(new Date).toISOString()}],e,!0)}),sr===r&&pr([t]),lr(r),ia("messages"),ra(!0),e&&Eo(function(t){return s(s([],t,!0),[{chatId:r,text:e,send:!0}],!1)}),zo(function(e){return e+1}),ue("clicked")},organizationLogo:Ve,position:x,resolvedTheme:Wt},Ni={allArticles:bn,articlesLoading:En,expandedFaqIndex:ma,faqs:ua,handleSearchChange:Po,handleSelectArticle:Vo,organizationLogo:Ve,organizationName:Te,searchError:mn,searchLoading:un,searchQuery:nn,searchResults:ln,setActiveTab:ia,setExpandedFaqIndex:ha,setInput:hr},Si={allArticles:bn,articleFeedback:ka,articlesLoading:En,handleSearchChange:Po,handleSelectArticle:Vo,organizationLogo:Ve,organizationName:Te,searchError:mn,searchLoading:un,searchQuery:nn,searchResults:ln,selectedArticle:vn,selectedCollection:Na,setActiveTab:ia,setArticleFeedback:wa,setInput:hr,setSelectedArticle:yn,setSelectedCollection:Sa,themeColor:We},zi={activeTab:oa,setActiveTab:ia,setSelectedArticle:yn},Ii={cancelVoiceInput:si,fileInputRef:$n,handleEmojiClick:function(e){var t;hr(function(t){return t+e}),qn(!1),null===(t=Wn.current)||void 0===t||t.focus()},handleFileChange:function(e){return o(void 0,void 0,void 0,function(){var t,a,r,n,o,s,l,c,d,u,p,f;return i(this,function(i){switch(i.label){case 0:if(!(t=null===(p=e.target.files)||void 0===p?void 0:p[0]))return[2];Dn(!0),i.label=1;case 1:return i.trys.push([1,6,7,8]),a=k.replace(/\/widget$/,"")+"/widget/upload",(r=new FormData).append("organization_id",Zt||""),r.append("file",t),[4,Fa.fetch(a,{method:"POST",body:r})];case 2:return(n=i.sent()).ok?[3,4]:[4,n.json().catch(function(){return{}})];case 3:throw o=i.sent(),(s=new Error(o.detail||"Upload failed")).status=n.status,s;case 4:return[4,n.json()];case 5:return l=i.sent(),c=t.type.startsWith("image/"),d=c?"![Image attachment](".concat(l.blob_url,")"):"[File attachment: ".concat(t.name,"](").concat(l.blob_url,")"),hr(function(e){return e+(e.endsWith(" ")||""===e?"":" ")+d}),null===(f=Wn.current)||void 0===f||f.focus(),wr(null),[3,8];case 6:return u=i.sent(),console.error("[Askly] Attachment upload failed:",u),wr(400===(null==u?void 0:u.status)?"That file can't be attached. It may be too large (10 MB limit) or a type that isn't allowed.":"That attachment couldn't be uploaded. Please try again."),[3,8];case 7:return Dn(!1),e.target&&(e.target.value=""),[7];case 8:return[2]}})})},handleFileUploadClick:function(){var e;null===(e=$n.current)||void 0===e||e.click()},input:mr,inputRef:Wn,isTyping:xr,leadRequired:Xo,placeholderText:I,sendMessage:ti,setInput:hr,setShowEmojiPicker:qn,showEmojiPicker:jn,startVoiceInput:oi,stopVoiceInput:ii,turnstileBlocked:an,uploadingFile:On,voiceInputEnabled:"off"!==Er,voiceMaxMs:6e4,voiceMeterRef:jr,voicePhase:Sr},Ci={activeChatId:sr,activeTab:oa,aiAnswering:It,aiAvatarUrl:ut,aiName:lt,headerStyle:{},isExpanded:la,organizationLogo:Ve,organizationName:Te,setActiveChatId:lr,setIsExpanded:ca,setOpen:ra},Ai={copiedMsgIndex:An,messages:ur,msgReactions:zn,setCopiedMsgIndex:Mn,setMsgReactions:In,showTimestamp:$};return za?r.default.createElement(r.default.Fragment,null,r.default.createElement(Re,n({},wi)),yo&&!aa&&r.default.createElement(Oe,n({},Ei)),aa&&r.default.createElement("div",{className:"askly-chat-modal ".concat(la?"expanded":""," ").concat(Ur?"askly-shake":""),"data-askly-theme":Wt,style:bi},r.default.createElement(He,n({},Ci)),"explore"===oa&&r.default.createElement(De,n({},Ni)),"messages"===oa&&(null===sr?r.default.createElement(qe,n({},ki)):r.default.createElement("div",{className:"chat-screen"},r.default.createElement("div",{className:"chat-stream"},r.default.createElement("div",{className:"chat-body",ref:Ln,onScroll:function(){var e=Ln.current;if(e){var t=e.scrollHeight-e.scrollTop-e.clientHeight<=80;Pn.current=t,t&&Bn(0)}},onLoadCapture:function(){Pn.current&&Ko("auto")}},r.default.createElement(Ye,n({},Ai)),ua.length>0&&ur.length<=1&&!xr&&!Xo&&r.default.createElement("div",{className:"quick-replies"},ua.slice(0,4).map(function(e,t){return r.default.createElement("button",{key:t,className:"quick-reply-chip",onClick:function(){return ti(e.question)}},e.question)})),Zo&&r.default.createElement("div",{className:"askly-lead-card"},r.default.createElement("div",{className:"askly-lead-copy"},jt),r.default.createElement("div",{className:"askly-lead-row"},r.default.createElement("input",{type:"email",value:Fo,onChange:function(e){Ho(e.target.value),Jo(null)},onKeyDown:function(e){"Enter"===e.key&&ei()},placeholder:"you@example.com",disabled:Yo,"aria-label":"Your email address"}),r.default.createElement("button",{className:"askly-lead-submit",onClick:function(){ei()},disabled:Yo||!Fo.trim()},Yo?"…":"Save")),Go&&r.default.createElement("div",{className:"askly-lead-error"},Go),r.default.createElement("button",{className:"askly-lead-dismiss",onClick:function(){return Ht(!0)}},"No thanks")),xr&&r.default.createElement("div",{className:"msg-wrapper agent"},It?r.default.createElement("div",{className:"typing-indicator"},r.default.createElement("span",null),r.default.createElement("span",null),r.default.createElement("span",null)):r.default.createElement("div",{className:"msg agent",style:{opacity:.75,fontStyle:"italic"}},"Sending to the team…")),On&&r.default.createElement("div",{className:"msg-wrapper user"},r.default.createElement("div",{className:"msg user",style:{opacity:.7,display:"flex",alignItems:"center",gap:8}},r.default.createElement("span",{className:"search-loader",style:{borderColor:"#fff",borderTopColor:"transparent"}}),r.default.createElement("span",null,"Uploading attachment..."))),tn&&r.default.createElement("div",{className:"askly-turnstile-wrapper",style:Br?{display:"none"}:void 0},r.default.createElement("div",{id:"askly-turnstile-container"}))),Hn>0&&r.default.createElement("button",{type:"button",className:"askly-jump-latest",onClick:function(){return Ko("smooth")},"aria-live":"polite"},r.default.createElement(b,{size:14}),1===Hn?"1 new message":"".concat(Hn," new messages"),r.default.createElement("span",{className:"askly-jump-badge"},Hn))),Xo&&r.default.createElement("div",{className:"askly-lead-card askly-lead-required"},r.default.createElement("div",{className:"askly-lead-copy"},jt),r.default.createElement("div",{className:"askly-lead-row"},r.default.createElement("input",{type:"email",value:Fo,onChange:function(e){Ho(e.target.value),Jo(null)},onKeyDown:function(e){"Enter"===e.key&&ei()},placeholder:"you@example.com",disabled:Yo,autoFocus:!0,"aria-label":"Your email address"}),r.default.createElement("button",{className:"askly-lead-submit",onClick:function(){ei()},disabled:Yo||!Fo.trim()},Yo?"…":"Save")),Go&&r.default.createElement("div",{className:"askly-lead-error"},Go)),kr&&r.default.createElement("div",{className:"askly-lead-error askly-composer-notice",role:"alert"},kr,null!==Cr&&Cr===kr&&r.default.createElement("button",{type:"button",className:"askly-notice-action",onClick:function(){var e=Rr.current;e&&"idle"===Sr&&(Dr.current+=1,wr(null),ni(e))}},"Try again")),r.default.createElement(Fe,n({},Ii)),r.default.createElement($e,null))),"help"===oa&&r.default.createElement(Le,n({},Si)),!("messages"===oa&&null!==sr)&&r.default.createElement(Pe,n({},zi)))):null},Xe=null,Qe=null,Ze=!1,Ke=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];Ze&&console.log.apply(console,s(["[Askly]"],e,!1))},et={init:function(e){void 0===e&&(e={}),Ze=!!e.debug,Ke("Initializing...");var a=e.orgServerRoute||"".concat("https://api.askly.co.in","/api/messages/widget"),o=e.appId||e.widgetId||e.orgId;We=o,o||console.error("[Askly] Missing required `appId`. The widget cannot load without it.");var i="undefined"!=typeof window?window.location.pathname:"";if(T(i,e.includePaths,e.excludePaths))if(document.getElementById("askly-widget-container"))console.warn("[Askly] Widget already initialized on this page; ignoring duplicate init().");else{var s=document.createElement("div");s.id="askly-widget-container",document.body.appendChild(s),U=!0;var l=t.createRoot(s);l.render(r.default.createElement(Je,n(n({},e),{orgId:o,orgServerRoute:a,resetGeneration:ne()}))),Xe=l,Qe=s,Ke("ChatWidget rendered."),e.userId&&te({userId:e.userId,hash:e.signature,timestamp:e.timestamp})}else Ke('Skipping widget on "'.concat(i,'" per include/exclude path rules.'))},identify:function(e){e&&e.userId?te(e):console.error("[Askly] identify() requires a `userId`.")},reset:function(){K=null,Q(We||"detect"),re+=1,ae.forEach(function(e){try{e()}catch(e){console.error("[Askly] reset listener failed:",e)}})},shutdown:function(){if(et.reset(),Xe){try{Xe.unmount()}catch(e){}Xe=null}V=[],U=!1;var e=Qe||document.getElementById("askly-widget-container");e&&e.remove(),Qe=null},open:function(){return F({type:"open"})},close:function(){return F({type:"close"})},toggle:function(){return F({type:"toggle"})},show:function(){return F({type:"open"})},hide:function(){return F({type:"close"})},isOpen:function(){return H.open},getUnreadCount:function(){return H.unread},getVisitorId:function(){return H.visitorId},on:function(e,t){return R(e,t)},off:function(e,t){return O(e,t)},once:function(e,t){return D(e,t)},ready:function(){return new Promise(function(e){H.ready?e():D("ready",function(){return e()})})},showSpace:function(e){return F({type:"showSpace",space:e})},showNewMessage:function(e){return F({type:"showNewMessage",text:e})},sendMessage:function(e){return F({type:"sendMessage",text:e})},showArticle:function(e){return F({type:"showArticle",articleId:e})},startVoiceInput:function(){return F({type:"startVoiceInput"})},stopVoiceInput:function(){return F({type:"stopVoiceInput"})},update:function(e){return F({type:"update",config:e})}};if("undefined"!=typeof window){window.Askly=et;var tt=document.currentScript||document.querySelector("script[src*='widget.js']")||document.querySelector("script[src*='index.umd.js']"),at=tt&&(tt.getAttribute("data-app-id")||tt.getAttribute("data-widget-id")||tt.getAttribute("data-org-id"))||void 0;if(tt&&at){var rt=tt.getAttribute("data-org-server-route")||void 0,nt=function(e){var t=tt.getAttribute(e);return null===t?void 0:"true"===t};et.init({appId:at,orgServerRoute:rt,organizationName:tt.getAttribute("data-org-name")||void 0,position:tt.getAttribute("data-position")||void 0,themeColor:tt.getAttribute("data-theme-color")||void 0,theme:tt.getAttribute("data-theme")||void 0,enableVoiceChat:tt.getAttribute("data-enable-voice")?"true"===tt.getAttribute("data-enable-voice"):void 0,voiceInput:(Ge=tt.getAttribute("data-voice-input"),"off"!==Ge&&"false"!==Ge&&("review"===Ge||"auto-send"===Ge?Ge:void 0)),welcomeMessage:tt.getAttribute("data-welcome-message")||void 0,placeholderText:tt.getAttribute("data-placeholder-text")||void 0,organizationLogo:tt.getAttribute("data-logo")||void 0,buttonIcon:tt.getAttribute("data-button-icon")||void 0,buttonShape:tt.getAttribute("data-button-shape")||void 0,autoOpen:nt("data-auto-open"),greeting:function(){if("false"===tt.getAttribute("data-greeting"))return!1;var e=tt.getAttribute("data-greeting-message")||void 0,t=tt.getAttribute("data-greeting-delay"),a=null===t||isNaN(parseInt(t))?void 0:parseInt(t);return void 0!==e||void 0!==a?{message:e,delayMs:a}:nt("data-greeting")}(),showTimestamp:nt("data-show-timestamp"),soundEnabled:nt("data-sound-enabled"),debug:nt("data-debug"),soundVolume:tt.getAttribute("data-sound-volume")?parseFloat(tt.getAttribute("data-sound-volume")):void 0,poweredBy:tt.getAttribute("data-powered-by")||void 0,userId:tt.getAttribute("data-user-id")||void 0,timestamp:tt.getAttribute("data-timestamp")?parseInt(tt.getAttribute("data-timestamp")):void 0,signature:tt.getAttribute("data-signature")||void 0,turnstileSiteKey:tt.getAttribute("data-turnstile-sitekey")||void 0,excludePaths:tt.getAttribute("data-exclude-paths")?tt.getAttribute("data-exclude-paths").split(",").map(function(e){return e.trim()}):void 0,includePaths:tt.getAttribute("data-include-paths")?tt.getAttribute("data-include-paths").split(",").map(function(e){return e.trim()}):void 0})}}return et});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Askly=t()}(this,function(){"use strict";function e(e,t=[],o=[]){return t.length>0?t.some(t=>e.startsWith(t)):!(o.length>0)||!o.some(t=>e.startsWith(t))}const t="askly_scope_",o={};function n(e){delete o[e];try{window.localStorage.removeItem(e)}catch{}}function r(e){const s=e||"detect",a=function(e){var t;try{const t=window.localStorage.getItem(e);if(null!==t)return t}catch{}return null!==(t=o[e])&&void 0!==t?t:null}(t+s);a&&a!==s&&r(a),n("askly_visitor_"+s),n("askly_threads_"+s);for(const e of Object.keys(o))e.includes(s)&&!e.startsWith(t)&&delete o[e];try{const e=[];for(let t=0;t<window.localStorage.length;t++){const o=window.localStorage.key(t);o&&o.startsWith(`askly_conversations_${s}`)&&e.push(o)}e.forEach(e=>window.localStorage.removeItem(e))}catch{}}const s=["init","identify","reset","shutdown","unmount","open","close","toggle","show","hide","on","off","once","showSpace","showNewMessage","sendMessage","showArticle","startVoiceInput","stopVoiceInput","update","setLocale","updateTexts"],a={isOpen:!1,getUnreadCount:0,getVisitorId:""},i=["identify","open","toggle","show","showSpace","showNewMessage","sendMessage","showArticle","startVoiceInput","update"],l="#0f172a",c="http://www.w3.org/2000/svg";const d=":host{all:initial}.askly-chat-button{position:fixed;bottom:var(--ob,24px);width:60px;height:60px;border:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;background:var(--a,"+l+");border-radius:23%;box-shadow:0 12px 32px rgba(15,23,42,.28),0 4px 10px rgba(15,23,42,.16);z-index:99999;font:28px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;transition:transform .28s cubic-bezier(.2,.8,.2,1)}.shape-round{border-radius:50%}.askly-chat-button:hover{transform:translateY(-3px) scale(1.05)}.askly-chat-button:focus-visible{outline:3px solid var(--a,"+l+");outline-offset:3px}.r{right:var(--os,24px)}.l{left:var(--os,24px)}@media (max-width:600px){.askly-chat-button{bottom:var(--ob,16px)}.r{right:var(--os,16px)}.l{left:var(--os,16px)}}@media (prefers-reduced-motion:reduce){.askly-chat-button{transition:none}}";function u(e){try{const t=JSON.parse(e||"[]");return Array.isArray(t)&&t.some(e=>e&&Array.isArray(e.messages)&&e.messages.some(e=>e&&"user"===e.role))}catch{return!1}}const p="https://unpkg.com/@askly/widget@3.1.0/dist/app/askly-app.js",h="undefined"!=typeof window?window.Askly:void 0,f=h&&"function"==typeof h.init?h:function(t){let o=t;const n={q:[],v:3,_r:[],_t:0};let p=null,h=!1,f=null,m=!1,y=null,g=[],w=!1,b=!1;const k=(...e)=>{f&&f.debug&&console.log("[Askly]",...e)},v=e=>e&&(e.appId||e.widgetId||e.orgId)||"detect",S=()=>{g.forEach(clearTimeout),g=[],y&&y.remove(),y=null},x=()=>{if(!f)return h=!0,Promise.resolve();if(!p){const e=(t,o)=>(k("Loading the widget from",t),import(/* webpackIgnore: true */ /* @vite-ignore */t).catch(n=>{if(o&&o!==t)return console.warn(`[Askly] Could not load the widget from ${t}; trying ${o}.`),e(o);p=null,S(),console.error("[Askly] The widget could not be loaded:",n)}));p=e(o.appUrl,o.fallbackUrl)}return p};let A=!1;const I=(e,t)=>{if("undefined"==typeof document||y)return;if(!document.body)return void document.addEventListener("DOMContentLoaded",()=>{!m||y||p||_(e)},{once:!0});const o=e.themeColor||t&&t.themeColor||l,r=e.buttonShape||t&&t.buttonShape||"round";y=document.createElement("askly-loader");const s=y.attachShadow({mode:"open"});let a=!1;try{const e=new CSSStyleSheet;e.replaceSync(d),s.adoptedStyleSheets=[e],a=!0}catch{}if(!a){const e=document.createElement("style");e.textContent=d,s.appendChild(e)}const i=document.createElement("button");i.className=`askly-chat-button shape-${r} ${"left"===e.position?"l":"r"}`,i.type="button",i.setAttribute("aria-label","Open support chat"),i.setAttribute("aria-expanded","false"),i.setAttribute("lang","en"),i.title="Open support chat",i.style.setProperty("--a",`var(--askly-brand, ${o})`),e.offset&&"number"==typeof e.offset.bottom&&i.style.setProperty("--ob",`${e.offset.bottom}px`),e.offset&&"number"==typeof e.offset.side&&i.style.setProperty("--os",`${e.offset.side}px`),e.buttonIcon&&"💬"!==e.buttonIcon?i.textContent=e.buttonIcon:i.appendChild(function(){const e=document.createElementNS(c,"svg");e.setAttribute("width","32"),e.setAttribute("height","32"),e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("fill","none");const t=document.createElementNS(c,"g");t.setAttribute("transform","translate(24 0) scale(-1 1)");const o=document.createElementNS(c,"path");return o.setAttribute("fill","currentColor"),o.setAttribute("fill-rule","evenodd"),o.setAttribute("clip-rule","evenodd"),o.setAttribute("d","M16 2H8C4 2 2 4 2 8V21C2 21.55 2.45 22 3 22H16C20 22 22 20 22 16V8C22 4 20 2 16 2ZM15.5 12.75H8.5C8.09 12.75 7.75 12.41 7.75 12C7.75 11.59 8.09 11.25 8.5 11.25H15.5C15.91 11.25 16.25 11.59 16.25 12C16.25 12.41 15.91 12.75 15.5 12.75Z"),t.appendChild(o),e.appendChild(t),e}()),i.addEventListener("mouseenter",()=>{x()}),i.addEventListener("focus",()=>{x()}),i.addEventListener("click",()=>{n.open()}),s.appendChild(i),document.body.appendChild(y)};let C=!1;const _=e=>{C=!0;const t=e.appId||e.widgetId||e.orgId,r=(e.orgServerRoute||"https://api.askly.co.in/api/messages/widget").replace(/\/widget$/,""),s=`askly_config_${t||"detect"}`;let a=null;try{a=JSON.parse(sessionStorage.getItem(s)||"null")}catch{}e.hideLauncher||I(e,a);let i=null;const l=o=>{i&&clearTimeout(i),i=null;const r=e.greeting;if(!(!0===r||!1!==r&&!(o&&!1===o.greetingEnabled))||e.hideLauncher||function(e){try{return"1"===window.sessionStorage.getItem(`askly_greeting_dismissed_${e}`)}catch{return!1}}(t||"detect"))return;const s="object"==typeof r&&"number"==typeof r.delayMs?r.delayMs:o&&"number"==typeof o.greetingDelayMs?o.greetingDelayMs:3e3;i=setTimeout(()=>{x()},Math.max(0,s-400-(Date.now()-n._t))),g.push(i)};l(a);let c=!1;try{const e=`askly_conversations_${t||"detect"}`;for(let t=0;t<localStorage.length;t++){const o=localStorage.key(t)||"";if(0===o.indexOf(e)&&u(localStorage.getItem(o))){c=!0;break}}}catch{}(e=>{const t=window.requestIdleCallback;t?t(e,{timeout:4e3}):g.push(setTimeout(e,1500))})(()=>{m&&!p&&(c?x():((()=>{if(p||A||"undefined"==typeof document)return;A=!0;const e=document.createElement("link");e.rel="modulepreload",e.href=o.appUrl,document.head.appendChild(e)})(),a||w||(w=!0,fetch(`${r}/widget/config${t?`?org_id=${encodeURIComponent(t)}`:""}`).then(e=>e.ok?e.json():null).then(t=>{if(t&&m){try{sessionStorage.setItem(s,JSON.stringify(t))}catch{}if(t.disabled)return k("Disabled by configuration."),S(),n.q=null,void(m=!1);p||(y&&!e.hideLauncher&&(y.remove(),y=null,I(e,t)),l(t))}}).catch(()=>{}))))})};let E=!1;const L=t=>{if(E||!t.includePaths&&!t.excludePaths)return;E=!0;const o=()=>{if(!m||p)return;e(window.location.pathname,t.includePaths,t.excludePaths)?C||_(t):(S(),C=!1)},n=e=>{const t=history[e];history[e]=function(...e){const n=t.apply(this,e);return setTimeout(o,0),n}};n("pushState"),n("replaceState"),window.addEventListener("popstate",o)};return s.forEach(t=>{const s=(...a)=>n[t]!==s?n[t](...a):(n.q&&n.q.push([t,a]),"init"===t?((t={})=>{if(f=t,m=!0,n._t=Date.now(),t.appUrl&&(o={...o,appUrl:t.appUrl}),t.appId||t.widgetId||t.orgId||console.error("[Askly] Missing required `appId`. The widget cannot load without it."),"undefined"!=typeof window){if(h||t.autoOpen||t.userId)return h=!1,void x();if(L(t),t.customLauncherSelector&&!b){let e=!0;try{document.querySelector(t.customLauncherSelector)}catch{e=!1}e||console.warn(`[Askly] customLauncherSelector is not a valid selector: ${t.customLauncherSelector}`),b=!0,e&&document.addEventListener("click",e=>{if(!(m&&f&&f.customLauncherSelector&&n.q))return;const t=e.target;let o=null;try{o=t&&t.closest?t.closest(f.customLauncherSelector):null}catch{return}o&&("A"===o.tagName&&"#"===(o.getAttribute("href")||"#").charAt(0)&&e.preventDefault(),n.q.some(e=>"open"===e[0]||"toggle"===e[0])||n.open())})}e(window.location.pathname,t.includePaths,t.excludePaths)?_(t):k("Hidden on this path.")}})(a[0]):"reset"===t?r(v(f)):"shutdown"===t||"unmount"===t?("shutdown"===t&&r(v(f)),m=!1,S(),n.q=[]):-1!==i.indexOf(t)&&x(),"on"===t||"once"===t?()=>{n.q?n.q=n.q.filter(e=>!(e[0]===t&&e[1][0]===a[0]&&e[1][1]===a[1])):n.off(a[0],a[1])}:void 0);n[t]=s}),Object.keys(a).forEach(e=>{const t=()=>n[e]!==t?n[e]():a[e];n[e]=t}),n.ready=()=>(x(),new Promise(e=>n._r.push(e))),n._unpaint=S,n}({appUrl:p,fallbackUrl:p});return"undefined"==typeof window||h||(window.Askly=f),f});
package/dist/loader.js ADDED
@@ -0,0 +1 @@
1
+ !function(){"use strict";function t(t,e=[],o=[]){return e.length>0?e.some(e=>t.startsWith(e)):!(o.length>0)||!o.some(e=>t.startsWith(e))}const e="askly_scope_",o={};function n(t){delete o[t];try{window.localStorage.removeItem(t)}catch{}}function a(t){const r=t||"detect",s=function(t){var e;try{const e=window.localStorage.getItem(t);if(null!==e)return e}catch{}return null!==(e=o[t])&&void 0!==e?e:null}(e+r);s&&s!==r&&a(s),n("askly_visitor_"+r),n("askly_threads_"+r);for(const t of Object.keys(o))t.includes(r)&&!t.startsWith(e)&&delete o[t];try{const t=[];for(let e=0;e<window.localStorage.length;e++){const o=window.localStorage.key(e);o&&o.startsWith(`askly_conversations_${r}`)&&t.push(o)}t.forEach(t=>window.localStorage.removeItem(t))}catch{}}const r=["init","identify","reset","shutdown","unmount","open","close","toggle","show","hide","on","off","once","showSpace","showNewMessage","sendMessage","showArticle","startVoiceInput","stopVoiceInput","update","setLocale","updateTexts"],s={isOpen:!1,getUnreadCount:0,getVisitorId:""},i=["identify","open","toggle","show","showSpace","showNewMessage","sendMessage","showArticle","startVoiceInput","update"],l="#0f172a",d="http://www.w3.org/2000/svg";const u=":host{all:initial}.askly-chat-button{position:fixed;bottom:var(--ob,24px);width:60px;height:60px;border:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;background:var(--a,"+l+");border-radius:23%;box-shadow:0 12px 32px rgba(15,23,42,.28),0 4px 10px rgba(15,23,42,.16);z-index:99999;font:28px -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;transition:transform .28s cubic-bezier(.2,.8,.2,1)}.shape-round{border-radius:50%}.askly-chat-button:hover{transform:translateY(-3px) scale(1.05)}.askly-chat-button:focus-visible{outline:3px solid var(--a,"+l+");outline-offset:3px}.r{right:var(--os,24px)}.l{left:var(--os,24px)}@media (max-width:600px){.askly-chat-button{bottom:var(--ob,16px)}.r{right:var(--os,16px)}.l{left:var(--os,16px)}}@media (prefers-reduced-motion:reduce){.askly-chat-button{transition:none}}";function c(t){try{const e=JSON.parse(t||"[]");return Array.isArray(e)&&e.some(t=>t&&Array.isArray(t.messages)&&t.messages.some(t=>t&&"user"===t.role))}catch{return!1}}function p(t,e){const o=t.getAttribute("data-org-server-route")||void 0,n=e=>{const o=t.getAttribute(e);return null===o?void 0:"true"===o};return{appId:e,orgServerRoute:o,organizationName:t.getAttribute("data-org-name")||void 0,position:t.getAttribute("data-position")||void 0,locale:t.getAttribute("data-locale")||void 0,hideLauncher:n("data-hide-launcher"),customLauncherSelector:t.getAttribute("data-custom-launcher-selector")||void 0,offset:(()=>{const e=t.getAttribute("data-offset-bottom"),o=t.getAttribute("data-offset-side");if(null!==e||null!==o)return{bottom:null===e||isNaN(parseInt(e))?void 0:parseInt(e),side:null===o||isNaN(parseInt(o))?void 0:parseInt(o)}})(),themeColor:t.getAttribute("data-theme-color")||void 0,theme:t.getAttribute("data-theme")||void 0,enableVoiceChat:t.getAttribute("data-enable-voice")?"true"===t.getAttribute("data-enable-voice"):void 0,voiceInput:(()=>{const e=t.getAttribute("data-voice-input");return"off"!==e&&"false"!==e&&("review"===e||"auto-send"===e?e:void 0)})(),welcomeMessage:t.getAttribute("data-welcome-message")||void 0,placeholderText:t.getAttribute("data-placeholder-text")||void 0,organizationLogo:t.getAttribute("data-logo")||void 0,buttonIcon:t.getAttribute("data-button-icon")||void 0,buttonShape:t.getAttribute("data-button-shape")||void 0,autoOpen:n("data-auto-open"),greeting:(()=>{if("false"===t.getAttribute("data-greeting"))return!1;const e=t.getAttribute("data-greeting-message")||void 0,o=t.getAttribute("data-greeting-delay"),a=null===o||isNaN(parseInt(o))?void 0:parseInt(o);return void 0!==e||void 0!==a?{message:e,delayMs:a}:n("data-greeting")})(),showTimestamp:n("data-show-timestamp"),soundEnabled:n("data-sound-enabled"),debug:n("data-debug"),soundVolume:t.getAttribute("data-sound-volume")?parseFloat(t.getAttribute("data-sound-volume")):void 0,poweredBy:t.getAttribute("data-powered-by")||void 0,userId:t.getAttribute("data-user-id")||void 0,timestamp:t.getAttribute("data-timestamp")?parseInt(t.getAttribute("data-timestamp")):void 0,signature:t.getAttribute("data-signature")||void 0,turnstileSiteKey:t.getAttribute("data-turnstile-sitekey")||void 0,excludePaths:t.getAttribute("data-exclude-paths")?t.getAttribute("data-exclude-paths").split(",").map(t=>t.trim()):void 0,includePaths:t.getAttribute("data-include-paths")?t.getAttribute("data-include-paths").split(",").map(t=>t.trim()):void 0}}const g="3.1.0",h=`https://unpkg.com/@askly/widget@${g}/dist/app/askly-app.js`,m=window,f=function(){const t=document.currentScript;if(t&&t.src)return t;const e=Array.from(document.querySelectorAll("script[src]")).filter(t=>/(^|\/)(widget|loader)\.js([?#]|$)/.test(t.src));return e.find(t=>t.hasAttribute("data-app-id")||t.hasAttribute("data-widget-id")||t.hasAttribute("data-org-id"))||e[0]||null}();let b;var y,v,w;m.Askly&&"function"==typeof m.Askly.init?(b=m.Askly,3===b.v&&b.q||console.warn("[Askly] The widget script is included twice; the second copy is ignored.")):(b=function(e){let o=e;const n={q:[],v:3,_r:[],_t:0};let p=null,g=!1,h=null,m=!1,f=null,b=[],y=!1,v=!1;const w=(...t)=>{h&&h.debug&&console.log("[Askly]",...t)},A=t=>t&&(t.appId||t.widgetId||t.orgId)||"detect",k=()=>{b.forEach(clearTimeout),b=[],f&&f.remove(),f=null},S=()=>{if(!h)return g=!0,Promise.resolve();if(!p){const t=(e,o)=>(w("Loading the widget from",e),import(/* webpackIgnore: true */ /* @vite-ignore */e).catch(n=>{if(o&&o!==e)return console.warn(`[Askly] Could not load the widget from ${e}; trying ${o}.`),t(o);p=null,k(),console.error("[Askly] The widget could not be loaded:",n)}));p=t(o.appUrl,o.fallbackUrl)}return p};let x=!1;const I=(t,e)=>{if("undefined"==typeof document||f)return;if(!document.body)return void document.addEventListener("DOMContentLoaded",()=>{!m||f||p||_(t)},{once:!0});const o=t.themeColor||e&&e.themeColor||l,a=t.buttonShape||e&&e.buttonShape||"round";f=document.createElement("askly-loader");const r=f.attachShadow({mode:"open"});let s=!1;try{const t=new CSSStyleSheet;t.replaceSync(u),r.adoptedStyleSheets=[t],s=!0}catch{}if(!s){const t=document.createElement("style");t.textContent=u,r.appendChild(t)}const i=document.createElement("button");i.className=`askly-chat-button shape-${a} ${"left"===t.position?"l":"r"}`,i.type="button",i.setAttribute("aria-label","Open support chat"),i.setAttribute("aria-expanded","false"),i.setAttribute("lang","en"),i.title="Open support chat",i.style.setProperty("--a",`var(--askly-brand, ${o})`),t.offset&&"number"==typeof t.offset.bottom&&i.style.setProperty("--ob",`${t.offset.bottom}px`),t.offset&&"number"==typeof t.offset.side&&i.style.setProperty("--os",`${t.offset.side}px`),t.buttonIcon&&"💬"!==t.buttonIcon?i.textContent=t.buttonIcon:i.appendChild(function(){const t=document.createElementNS(d,"svg");t.setAttribute("width","32"),t.setAttribute("height","32"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none");const e=document.createElementNS(d,"g");e.setAttribute("transform","translate(24 0) scale(-1 1)");const o=document.createElementNS(d,"path");return o.setAttribute("fill","currentColor"),o.setAttribute("fill-rule","evenodd"),o.setAttribute("clip-rule","evenodd"),o.setAttribute("d","M16 2H8C4 2 2 4 2 8V21C2 21.55 2.45 22 3 22H16C20 22 22 20 22 16V8C22 4 20 2 16 2ZM15.5 12.75H8.5C8.09 12.75 7.75 12.41 7.75 12C7.75 11.59 8.09 11.25 8.5 11.25H15.5C15.91 11.25 16.25 11.59 16.25 12C16.25 12.41 15.91 12.75 15.5 12.75Z"),e.appendChild(o),t.appendChild(e),t}()),i.addEventListener("mouseenter",()=>{S()}),i.addEventListener("focus",()=>{S()}),i.addEventListener("click",()=>{n.open()}),r.appendChild(i),document.body.appendChild(f)};let C=!1;const _=t=>{C=!0;const e=t.appId||t.widgetId||t.orgId,a=(t.orgServerRoute||"https://api.askly.co.in/api/messages/widget").replace(/\/widget$/,""),r=`askly_config_${e||"detect"}`;let s=null;try{s=JSON.parse(sessionStorage.getItem(r)||"null")}catch{}t.hideLauncher||I(t,s);let i=null;const l=o=>{i&&clearTimeout(i),i=null;const a=t.greeting;if(!0!==a&&(!1===a||o&&!1===o.greetingEnabled)||t.hideLauncher||function(t){try{return"1"===window.sessionStorage.getItem(`askly_greeting_dismissed_${t}`)}catch{return!1}}(e||"detect"))return;const r="object"==typeof a&&"number"==typeof a.delayMs?a.delayMs:o&&"number"==typeof o.greetingDelayMs?o.greetingDelayMs:3e3;i=setTimeout(()=>{S()},Math.max(0,r-400-(Date.now()-n._t))),b.push(i)};l(s);let d=!1;try{const t=`askly_conversations_${e||"detect"}`;for(let e=0;e<localStorage.length;e++){const o=localStorage.key(e)||"";if(0===o.indexOf(t)&&c(localStorage.getItem(o))){d=!0;break}}}catch{}(t=>{const e=window.requestIdleCallback;e?e(t,{timeout:4e3}):b.push(setTimeout(t,1500))})(()=>{m&&!p&&(d?S():((()=>{if(p||x||"undefined"==typeof document)return;x=!0;const t=document.createElement("link");t.rel="modulepreload",t.href=o.appUrl,document.head.appendChild(t)})(),s||y||(y=!0,fetch(`${a}/widget/config${e?`?org_id=${encodeURIComponent(e)}`:""}`).then(t=>t.ok?t.json():null).then(e=>{if(e&&m){try{sessionStorage.setItem(r,JSON.stringify(e))}catch{}if(e.disabled)return w("Disabled by configuration."),k(),n.q=null,void(m=!1);p||(f&&!t.hideLauncher&&(f.remove(),f=null,I(t,e)),l(e))}}).catch(()=>{}))))})};let E=!1;const $=e=>{if(E||!e.includePaths&&!e.excludePaths)return;E=!0;const o=()=>{m&&!p&&(t(window.location.pathname,e.includePaths,e.excludePaths)?C||_(e):(k(),C=!1))},n=t=>{const e=history[t];history[t]=function(...t){const n=e.apply(this,t);return setTimeout(o,0),n}};n("pushState"),n("replaceState"),window.addEventListener("popstate",o)};return r.forEach(e=>{const r=(...s)=>n[e]!==r?n[e](...s):(n.q&&n.q.push([e,s]),"init"===e?((e={})=>{if(h=e,m=!0,n._t=Date.now(),e.appUrl&&(o={...o,appUrl:e.appUrl}),e.appId||e.widgetId||e.orgId||console.error("[Askly] Missing required `appId`. The widget cannot load without it."),"undefined"!=typeof window){if(g||e.autoOpen||e.userId)return g=!1,void S();if($(e),e.customLauncherSelector&&!v){let t=!0;try{document.querySelector(e.customLauncherSelector)}catch{t=!1}t||console.warn(`[Askly] customLauncherSelector is not a valid selector: ${e.customLauncherSelector}`),v=!0,t&&document.addEventListener("click",t=>{if(!(m&&h&&h.customLauncherSelector&&n.q))return;const e=t.target;let o=null;try{o=e&&e.closest?e.closest(h.customLauncherSelector):null}catch{return}o&&("A"===o.tagName&&"#"===(o.getAttribute("href")||"#").charAt(0)&&t.preventDefault(),n.q.some(t=>"open"===t[0]||"toggle"===t[0])||n.open())})}t(window.location.pathname,e.includePaths,e.excludePaths)?_(e):w("Hidden on this path.")}})(s[0]):"reset"===e?a(A(h)):"shutdown"===e||"unmount"===e?("shutdown"===e&&a(A(h)),m=!1,k(),n.q=[]):-1!==i.indexOf(e)&&S(),"on"===e||"once"===e?()=>{n.q?n.q=n.q.filter(t=>!(t[0]===e&&t[1][0]===s[0]&&t[1][1]===s[1])):n.off(s[0],s[1])}:void 0);n[e]=r}),Object.keys(s).forEach(t=>{const e=()=>n[t]!==e?n[t]():s[t];n[t]=e}),n.ready=()=>(S(),new Promise(t=>n._r.push(t))),n._unpaint=k,n}({appUrl:(y=f&&f.src,v=g,w=h,y?y.replace(/[?#].*$/,"").replace(/[^/]*$/,"").replace(/(\/@askly\/widget)(@[^/]*)?(\/)/,(t,e,o,n)=>`${e}@${v}${n}`)+"app/askly-app.js":w),fallbackUrl:h}),m.Askly=b);const A=function(t){if(t)return t.getAttribute("data-app-id")||t.getAttribute("data-widget-id")||t.getAttribute("data-org-id")||void 0}(f);f&&A&&b.init(p(f,A)),m.customElements&&!m.customElements.get("askly-chat")&&m.customElements.define("askly-chat",class extends HTMLElement{constructor(){super(...arguments),this._gone=null}connectedCallback(){if(this._gone)return clearTimeout(this._gone),void(this._gone=null);const t=this.getAttribute("app-id");if(!t)return;const e=document.createElement("script");Array.from(this.attributes).forEach(t=>e.setAttribute(`data-${t.name}`,t.value)),m.Askly.init(p(e,t))}disconnectedCallback(){this._gone=setTimeout(()=>{this._gone=null,m.Askly.unmount()},0)}})}();
@@ -0,0 +1,3 @@
1
+ import type { AsklyApi } from "./core/api";
2
+ declare const Askly: AsklyApi;
3
+ export default Askly;
@@ -0,0 +1,34 @@
1
+ /** The public `Askly` object, as the loader stub and the app both present it. */
2
+ import type { AsklyConfig } from "./config";
3
+ import type { AsklyEventName, AsklyEventHandler, AsklySpace } from "./events";
4
+ import type { AsklyIdentity } from "../identity";
5
+ export interface AsklyApi {
6
+ init: (config?: AsklyConfig) => void;
7
+ identify: (identity: AsklyIdentity) => void;
8
+ reset: () => void;
9
+ shutdown: () => void;
10
+ unmount: () => void;
11
+ open: () => void;
12
+ close: () => void;
13
+ toggle: () => void;
14
+ show: () => void;
15
+ hide: () => void;
16
+ isOpen: () => boolean;
17
+ getUnreadCount: () => number;
18
+ getVisitorId: () => string;
19
+ on: <K extends AsklyEventName>(name: K, handler: AsklyEventHandler<K>) => () => void;
20
+ off: <K extends AsklyEventName>(name: K, handler: AsklyEventHandler<K>) => void;
21
+ once: <K extends AsklyEventName>(name: K, handler: AsklyEventHandler<K>) => () => void;
22
+ ready: () => Promise<void>;
23
+ showSpace: (space: AsklySpace) => void;
24
+ showNewMessage: (text?: string) => void;
25
+ sendMessage: (text: string) => void;
26
+ showArticle: (articleId: string) => void;
27
+ startVoiceInput: () => void;
28
+ stopVoiceInput: () => void;
29
+ update: (config: Record<string, any>) => void;
30
+ /** Switch the widget's language (BCP 47 tag). Applied asynchronously; unknown tags fall back to English. */
31
+ setLocale: (locale: string) => void;
32
+ /** Replace any of the widget's texts with your own wording. */
33
+ updateTexts: (texts: Record<string, string>) => void;
34
+ }
@@ -0,0 +1,52 @@
1
+ /** Options accepted by `Askly.init()`. */
2
+ export interface AsklyConfig {
3
+ appId?: string;
4
+ widgetId?: string;
5
+ orgId?: string;
6
+ orgServerRoute?: string;
7
+ appUrl?: string;
8
+ organizationName?: string;
9
+ position?: "left" | "right";
10
+ offset?: {
11
+ bottom?: number;
12
+ side?: number;
13
+ };
14
+ hideLauncher?: boolean;
15
+ customLauncherSelector?: string;
16
+ locale?: string;
17
+ themeColor?: string;
18
+ theme?: "light" | "dark" | "auto";
19
+ voiceInput?: false | "review" | "auto-send";
20
+ /** @deprecated use `voiceInput`. */
21
+ enableVoiceChat?: boolean;
22
+ /** @deprecated removed in 2.11.0; ignored. */
23
+ readAloud?: boolean;
24
+ welcomeMessage?: string;
25
+ placeholderText?: string;
26
+ organizationLogo?: string;
27
+ buttonIcon?: string;
28
+ buttonShape?: "round" | "square";
29
+ autoOpen?: boolean;
30
+ greeting?: boolean | {
31
+ message?: string;
32
+ delayMs?: number;
33
+ };
34
+ showTimestamp?: boolean;
35
+ soundEnabled?: boolean;
36
+ soundVolume?: number;
37
+ /** @deprecated never rendered; attribution is controlled by the plan (white-label). */
38
+ poweredBy?: string;
39
+ userId?: string;
40
+ timestamp?: number;
41
+ signature?: string;
42
+ turnstileSiteKey?: string;
43
+ excludePaths?: string[];
44
+ includePaths?: string[];
45
+ configOverride?: Record<string, any>;
46
+ debug?: boolean;
47
+ onMessageSent?: (message: string) => void;
48
+ onMessageReceived?: (reply: string) => void;
49
+ onChatOpened?: () => void;
50
+ onChatClosed?: () => void;
51
+ onEscalation?: (data: any) => void;
52
+ }
@@ -98,6 +98,16 @@ export type AsklyCommand = {
98
98
  } | {
99
99
  type: "update";
100
100
  config: Record<string, any>;
101
+ }
102
+ /** Switch the widget's language (a BCP 47 tag; unknown ones fall back to English). */
103
+ | {
104
+ type: "setLocale";
105
+ locale: string;
106
+ }
107
+ /** Replace any of the widget's strings with the host's own wording. */
108
+ | {
109
+ type: "updateTexts";
110
+ texts: Record<string, string>;
101
111
  };
102
112
  export declare function expectMount(): void;
103
113
  export declare function sendCommand(command: AsklyCommand): void;
@@ -0,0 +1,2 @@
1
+ /** Small display helpers shared by the UI components. Times follow the widget's locale. */
2
+ export { formatTime } from "../i18n";
@@ -0,0 +1,2 @@
1
+ export declare function trustedHtml(html: string): any;
2
+ export declare function trustedScriptUrl(url: string): any;
@@ -1,13 +1,11 @@
1
1
  /**
2
- * Microphone capture for voice input.
2
+ * Microphone capture for voice input. Loaded only when the microphone button is pressed.
3
3
  *
4
4
  * Records one short clip with MediaRecorder; the widget posts it to the Askly server, which
5
5
  * returns the transcript. Nothing here touches the browser's own speech recognition, so the
6
6
  * audio goes to Askly and nowhere else.
7
7
  */
8
- export type VoiceInputMode = "off" | "review" | "auto-send";
9
- /** Why voice input could not start or finish. */
10
- export type VoiceErrorCode = "insecure" | "unsupported" | "denied" | "no-microphone" | "no-speech" | "no-audio" | "limit" | "disabled" | "network" | "failed";
8
+ import type { VoiceErrorCode } from "./voice";
11
9
  export interface VoiceClip {
12
10
  blob: Blob;
13
11
  durationMs: number;
@@ -34,10 +32,7 @@ export interface RecordingOptions {
34
32
  onMeter: (level: number, elapsedMs: number) => void;
35
33
  onDone: (clip: VoiceClip) => void;
36
34
  }
37
- export declare function normalizeVoiceInputMode(value: any): VoiceInputMode | undefined;
38
35
  /** Why recording cannot work on this page, or null when it can. */
39
36
  export declare function voiceInputBlocker(): VoiceErrorCode | null;
40
37
  /** Ask for the microphone and start recording. Rejects with `{ code: VoiceErrorCode }`. */
41
38
  export declare function startRecording(options: RecordingOptions): Promise<Recording>;
42
- /** What to tell the visitor. */
43
- export declare function voiceErrorMessage(code: VoiceErrorCode): string;