oneskies-live-chat-widget 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAqEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE,wBAAwB,2CA4EhG;AAuHD,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAA4B,EAC5B,YAA+B,GAChC,EAAE,mBAAmB,2CA0gCrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmFF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE,wBAAwB,2CA4EhG;AA8ID,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,WAA4B,EAC5B,YAA+B,GAChC,EAAE,mBAAmB,2CAqwCrB"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ const TYPING_BROADCAST_INTERVAL_MS = 120;
9
9
  const WS_RECONNECT_BASE_DELAY_MS = 650;
10
10
  const WS_RECONNECT_MAX_DELAY_MS = 12000;
11
11
  const WS_MAX_MESSAGE_CHARS = 128 * 1024;
12
+ const LIVE_CHAT_BLOCKED_STATUS = 423;
12
13
  function toTitleCase(name) {
13
14
  return name.replace(/\S+/g, (word) => word
14
15
  .split(/(['-])/)
@@ -132,6 +133,29 @@ function liveChatQueryParam(name) {
132
133
  return "";
133
134
  }
134
135
  }
136
+ function liveChatCurrentUrl() {
137
+ try {
138
+ return window.location.href;
139
+ }
140
+ catch {
141
+ return "";
142
+ }
143
+ }
144
+ function liveChatTrackedFieldKey(element) {
145
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement)) {
146
+ return "";
147
+ }
148
+ if (element.closest(".os-live-chat"))
149
+ return "";
150
+ if (element instanceof HTMLInputElement && ["hidden", "submit", "button", "reset", "image"].includes(element.type)) {
151
+ return "";
152
+ }
153
+ const form = element.closest("form");
154
+ const formKey = form?.getAttribute("id") || form?.getAttribute("name") || form?.getAttribute("aria-label") || "";
155
+ const placeholder = element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement ? element.placeholder : "";
156
+ const fieldKey = element.name || element.id || element.getAttribute("aria-label") || placeholder || element.type || element.tagName;
157
+ return `${formKey}:${fieldKey}`.slice(0, 220);
158
+ }
135
159
  function messageTime(value) {
136
160
  const date = new Date(value);
137
161
  if (Number.isNaN(date.getTime()))
@@ -207,6 +231,7 @@ async function buildDeviceSignature(visitorId) {
207
231
  return sha256(parts.join("|"));
208
232
  }
209
233
  export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, accentColor = DEFAULT_ACCENT, supportLabel = "Travel support", }) {
234
+ const initialBlockedKey = `${STORAGE_PREFIX}:${leadSource}:blocked`;
210
235
  const [visible, setVisible] = useState(false);
211
236
  const [open, setOpen] = useState(false);
212
237
  const [session, setSession] = useState(null);
@@ -218,6 +243,15 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
218
243
  const [loading, setLoading] = useState(false);
219
244
  const [sending, setSending] = useState(false);
220
245
  const [error, setError] = useState("");
246
+ const [blocked, setBlocked] = useState(() => {
247
+ try {
248
+ return window.localStorage.getItem(initialBlockedKey) === "1";
249
+ }
250
+ catch {
251
+ return false;
252
+ }
253
+ });
254
+ const [blockedRetryNonce, setBlockedRetryNonce] = useState(0);
221
255
  const [staffTypingName, setStaffTypingName] = useState("");
222
256
  const [unreadCount, setUnreadCount] = useState(0);
223
257
  const [unreadPreview, setUnreadPreview] = useState("");
@@ -231,11 +265,75 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
231
265
  const typingSentAtRef = useRef(0);
232
266
  const typingTimeoutRef = useRef(null);
233
267
  const unreadPreviewTimeoutRef = useRef(null);
268
+ const pageUrlsRef = useRef(new Set());
269
+ const touchedFieldsRef = useRef(new Set());
270
+ const stateBroadcastTimeoutRef = useRef(null);
271
+ const banReloadedRef = useRef(false);
234
272
  const baseUrl = useMemo(() => normalizedBaseUrl(apiBaseUrl), [apiBaseUrl]);
235
273
  const storageKey = `${STORAGE_PREFIX}:${leadSource}`;
236
274
  const profileKey = `${storageKey}:profile`;
275
+ const blockedKey = `${storageKey}:blocked`;
237
276
  const visitorName = formatGuestName(profile?.name);
238
277
  const needsProfile = profileReady && !visitorName;
278
+ function buildStatePayload() {
279
+ const currentUrl = liveChatCurrentUrl();
280
+ if (currentUrl)
281
+ pageUrlsRef.current.add(currentUrl);
282
+ return {
283
+ type: "state",
284
+ open: openRef.current,
285
+ page_url: currentUrl,
286
+ referrer_url: document.referrer || "",
287
+ utm_source: liveChatQueryParam("utm_source"),
288
+ utm_medium: liveChatQueryParam("utm_medium"),
289
+ utm_campaign: liveChatQueryParam("utm_campaign"),
290
+ page_view_count: Math.max(1, pageUrlsRef.current.size),
291
+ fields_touched_count: touchedFieldsRef.current.size,
292
+ };
293
+ }
294
+ function sendStateNow() {
295
+ const socket = wsRef.current;
296
+ if (socket?.readyState !== WebSocket.OPEN)
297
+ return;
298
+ socket.send(JSON.stringify(buildStatePayload()));
299
+ }
300
+ function scheduleStateBroadcast(delay = 250) {
301
+ if (stateBroadcastTimeoutRef.current)
302
+ return;
303
+ stateBroadcastTimeoutRef.current = window.setTimeout(() => {
304
+ stateBroadcastTimeoutRef.current = null;
305
+ sendStateNow();
306
+ }, delay);
307
+ }
308
+ function enterBlockedState({ reload = false } = {}) {
309
+ try {
310
+ window.localStorage.setItem(blockedKey, "1");
311
+ }
312
+ catch {
313
+ // Ignore storage failures; the in-memory state still blocks the current page.
314
+ }
315
+ setBlocked(true);
316
+ setVisible(true);
317
+ setOpen(false);
318
+ setSession(null);
319
+ setMessages([]);
320
+ setDraft("");
321
+ setError("");
322
+ setLoading(true);
323
+ if (reload && !banReloadedRef.current) {
324
+ banReloadedRef.current = true;
325
+ window.setTimeout(() => window.location.reload(), 120);
326
+ }
327
+ }
328
+ function leaveBlockedState() {
329
+ try {
330
+ window.localStorage.removeItem(blockedKey);
331
+ }
332
+ catch {
333
+ // Ignore storage failures; clearing React state is enough for this tab.
334
+ }
335
+ setBlocked(false);
336
+ }
239
337
  useEffect(() => {
240
338
  openRef.current = open;
241
339
  if (open) {
@@ -247,7 +345,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
247
345
  }
248
346
  const socket = wsRef.current;
249
347
  if (socket?.readyState === WebSocket.OPEN) {
250
- socket.send(JSON.stringify({ type: "state", open }));
348
+ sendStateNow();
251
349
  }
252
350
  }, [open]);
253
351
  useEffect(() => {
@@ -269,9 +367,9 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
269
367
  return () => window.removeEventListener("keydown", onKeyDown);
270
368
  }, []);
271
369
  useEffect(() => {
272
- setTidioTemporarilyHidden(visible);
370
+ setTidioTemporarilyHidden(visible || blocked);
273
371
  return () => setTidioTemporarilyHidden(false);
274
- }, [visible]);
372
+ }, [blocked, visible]);
275
373
  useEffect(() => {
276
374
  if (profileReady)
277
375
  return;
@@ -318,6 +416,63 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
318
416
  return;
319
417
  messagesEndRef.current?.scrollIntoView({ block: "end" });
320
418
  }, [messages.length, staffTypingName, open, visible]);
419
+ useEffect(() => {
420
+ if (!session)
421
+ return;
422
+ pageUrlsRef.current.add(liveChatCurrentUrl());
423
+ let lastUrl = liveChatCurrentUrl();
424
+ function recordPageView() {
425
+ const currentUrl = liveChatCurrentUrl();
426
+ if (!currentUrl || currentUrl === lastUrl)
427
+ return;
428
+ lastUrl = currentUrl;
429
+ pageUrlsRef.current.add(currentUrl);
430
+ scheduleStateBroadcast(120);
431
+ }
432
+ function recordFieldTouch(event) {
433
+ const target = event.target;
434
+ if (!(target instanceof Element))
435
+ return;
436
+ const key = liveChatTrackedFieldKey(target);
437
+ if (!key || touchedFieldsRef.current.has(key))
438
+ return;
439
+ touchedFieldsRef.current.add(key);
440
+ scheduleStateBroadcast(220);
441
+ }
442
+ const originalPushState = window.history.pushState;
443
+ const originalReplaceState = window.history.replaceState;
444
+ window.history.pushState = function patchedPushState(...args) {
445
+ const result = originalPushState.apply(this, args);
446
+ window.setTimeout(recordPageView, 0);
447
+ return result;
448
+ };
449
+ window.history.replaceState = function patchedReplaceState(...args) {
450
+ const result = originalReplaceState.apply(this, args);
451
+ window.setTimeout(recordPageView, 0);
452
+ return result;
453
+ };
454
+ const interval = window.setInterval(recordPageView, 1000);
455
+ window.addEventListener("popstate", recordPageView);
456
+ window.addEventListener("hashchange", recordPageView);
457
+ document.addEventListener("focusin", recordFieldTouch, true);
458
+ document.addEventListener("input", recordFieldTouch, true);
459
+ document.addEventListener("change", recordFieldTouch, true);
460
+ scheduleStateBroadcast(350);
461
+ return () => {
462
+ window.history.pushState = originalPushState;
463
+ window.history.replaceState = originalReplaceState;
464
+ window.clearInterval(interval);
465
+ window.removeEventListener("popstate", recordPageView);
466
+ window.removeEventListener("hashchange", recordPageView);
467
+ document.removeEventListener("focusin", recordFieldTouch, true);
468
+ document.removeEventListener("input", recordFieldTouch, true);
469
+ document.removeEventListener("change", recordFieldTouch, true);
470
+ if (stateBroadcastTimeoutRef.current) {
471
+ window.clearTimeout(stateBroadcastTimeoutRef.current);
472
+ stateBroadcastTimeoutRef.current = null;
473
+ }
474
+ };
475
+ }, [session]);
321
476
  useEffect(() => {
322
477
  if (!profileReady || session || !profile)
323
478
  return;
@@ -326,6 +481,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
326
481
  const currentProfile = profile;
327
482
  let cancelled = false;
328
483
  async function startSession() {
484
+ let keepLoading = false;
329
485
  if (visible && open)
330
486
  setLoading(true);
331
487
  setError("");
@@ -346,9 +502,17 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
346
502
  device_signature: signature,
347
503
  }),
348
504
  });
505
+ if (response.status === LIVE_CHAT_BLOCKED_STATUS) {
506
+ keepLoading = true;
507
+ if (!cancelled) {
508
+ enterBlockedState();
509
+ }
510
+ return;
511
+ }
349
512
  const envelope = await readJson(response);
350
513
  if (cancelled)
351
514
  return;
515
+ leaveBlockedState();
352
516
  window.localStorage.setItem(storageKey, JSON.stringify(envelope.data));
353
517
  setSession(envelope.data);
354
518
  }
@@ -357,7 +521,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
357
521
  setError(err instanceof Error ? err.message : "Chat is unavailable.");
358
522
  }
359
523
  finally {
360
- if (!cancelled)
524
+ if (!cancelled && !keepLoading)
361
525
  setLoading(false);
362
526
  if (startSessionRef.current === startPromise)
363
527
  startSessionRef.current = null;
@@ -368,7 +532,15 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
368
532
  return () => {
369
533
  cancelled = true;
370
534
  };
371
- }, [apiKey, baseUrl, leadSource, open, profile, profileReady, session, storageKey, visible]);
535
+ }, [apiKey, baseUrl, blockedRetryNonce, leadSource, open, profile, profileReady, session, storageKey, visible]);
536
+ useEffect(() => {
537
+ if (!blocked || session || !profileReady || !profile)
538
+ return;
539
+ const timer = window.setTimeout(() => {
540
+ setBlockedRetryNonce((value) => value + 1);
541
+ }, 15000);
542
+ return () => window.clearTimeout(timer);
543
+ }, [blocked, profile, profileReady, session]);
372
544
  useEffect(() => {
373
545
  if (!visible || !open || !session)
374
546
  return;
@@ -413,7 +585,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
413
585
  if (cancelled || activeSocket !== socket)
414
586
  return;
415
587
  reconnectAttempts = 0;
416
- socket.send(JSON.stringify({ type: "state", open: openRef.current }));
588
+ sendStateNow();
417
589
  };
418
590
  socket.onmessage = (event) => {
419
591
  if (cancelled || activeSocket !== socket)
@@ -431,19 +603,26 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
431
603
  typingTimeoutRef.current = setTimeout(() => setStaffTypingName(""), 2200);
432
604
  return;
433
605
  }
434
- if (payload.action === "session_removed") {
606
+ if (payload.action === "session_removed" || payload.action === "session_banned") {
435
607
  window.localStorage.removeItem(storageKey);
436
- window.localStorage.removeItem(profileKey);
608
+ if (payload.action === "session_removed" && payload.clear_profile !== false) {
609
+ window.localStorage.removeItem(profileKey);
610
+ }
437
611
  setSession(null);
438
612
  setMessages([]);
439
613
  setDraft("");
440
- setNameDraft("");
441
- setProfile(null);
442
- setProfileReady(false);
614
+ if (payload.action === "session_removed" && payload.clear_profile !== false) {
615
+ setNameDraft("");
616
+ setProfile(null);
617
+ setProfileReady(false);
618
+ }
443
619
  setStaffTypingName("");
444
620
  setUnreadCount(0);
445
621
  setUnreadPreview("");
446
622
  setPreviewVisible(false);
623
+ if (payload.action === "session_banned") {
624
+ enterBlockedState({ reload: true });
625
+ }
447
626
  socket.close();
448
627
  return;
449
628
  }
@@ -510,7 +689,8 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
510
689
  if (reconnectTimer)
511
690
  clearTimeout(reconnectTimer);
512
691
  if (activeSocket?.readyState === WebSocket.OPEN) {
513
- activeSocket.send(JSON.stringify({ type: "state", open: false }));
692
+ openRef.current = false;
693
+ activeSocket.send(JSON.stringify(buildStatePayload()));
514
694
  }
515
695
  endPresence();
516
696
  activeSocket?.close();
@@ -577,7 +757,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
577
757
  const rootStyle = {
578
758
  "--os-chat-accent": accentColor,
579
759
  };
580
- return (_jsxs("div", { className: `os-live-chat ${visible ? "is-visible" : "is-hidden"}`, style: rootStyle, children: [open ? (_jsxs("section", { className: "os-live-chat-panel", "aria-label": `${brandName} live chat`, children: [_jsxs("header", { className: "os-live-chat-header", children: [_jsx("span", { className: "os-live-chat-mark", children: _jsx("span", { className: "os-live-chat-mark-icon", children: _jsx(Headphones, { size: 22, "aria-hidden": true }) }) }), _jsxs("div", { children: [_jsx("p", { children: supportLabel }), _jsx("span", { children: visitorName ? `${visitorName}, ${brandName} team is here` : `${brandName} team` })] }), _jsx("button", { type: "button", "aria-label": "Close chat", onClick: () => setOpen(false), children: _jsx(X, { size: 20, "aria-hidden": true }) })] }), needsProfile ? (_jsxs("form", { className: "os-live-chat-intro", onSubmit: saveName, children: [_jsx("strong", { children: "Welcome. What should we call you?" }), onlineAgents.length > 0 ? (_jsxs("div", { className: "os-live-chat-online", "aria-label": `${onlineAgents.length} support agents online`, children: [_jsx("div", { className: "os-live-chat-online-avatars", children: onlineAgents.map((agent, index) => (_jsx("span", { className: "os-live-chat-online-avatar", style: { "--os-agent-color": agent.color || accentColor }, children: agent.avatar_url ? _jsx("img", { src: agent.avatar_url, alt: "" }) : null }, `${agent.avatar_url || agent.color || "agent"}-${index}`))) }), _jsx("span", { children: "Support is online now" })] })) : null, _jsx("input", { autoFocus: true, value: nameDraft, onChange: (event) => setNameDraft(event.target.value), placeholder: "Your name", maxLength: 80 }), _jsx("button", { type: "submit", disabled: !nameDraft.trim(), children: "Start chat" })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "os-live-chat-body", children: [loading ? (_jsxs("div", { className: "os-live-chat-empty", children: [_jsx(Loader2, { size: 18, className: "os-live-chat-spin", "aria-hidden": true }), "Connecting..."] })) : messages.length === 0 ? (_jsxs("div", { className: "os-live-chat-empty", children: [_jsxs("strong", { children: ["Hi there ", _jsx("span", { "aria-hidden": true, children: "\uD83D\uDC4B" })] }), onlineAgents.length > 0 ? (_jsxs("div", { className: "os-live-chat-online", "aria-label": `${onlineAgents.length} support agents online`, children: [_jsx("div", { className: "os-live-chat-online-avatars", children: onlineAgents.map((agent, index) => (_jsx("span", { className: "os-live-chat-online-avatar", style: { "--os-agent-color": agent.color || accentColor }, children: agent.avatar_url ? _jsx("img", { src: agent.avatar_url, alt: "" }) : null }, `${agent.avatar_url || agent.color || "agent"}-${index}`))) }), _jsx("span", { children: "Support is online now" })] })) : null, _jsx("span", { children: "How may we help you today?" })] })) : (messages.map((message) => (_jsxs("article", { className: `os-live-chat-message ${message.sender === "guest" ? "is-guest" : "is-staff"}`, children: [_jsx("p", { children: message.body }), _jsxs("span", { children: [message.sender === "guest" ? "You" : brandName, " \u00B7 ", messageTime(message.created_at)] })] }, message.id)))), staffTypingName ? (_jsxs("div", { className: "os-live-chat-typing", "aria-live": "polite", children: [_jsx("span", { children: "Support is typing" }), _jsx("i", {}), _jsx("i", {}), _jsx("i", {})] })) : null, _jsx("div", { ref: messagesEndRef })] }), error ? _jsx("p", { className: "os-live-chat-error", children: error }) : null, _jsxs("form", { className: "os-live-chat-form", onSubmit: sendMessage, children: [_jsx("textarea", { value: draft, onChange: (event) => {
760
+ return (_jsxs("div", { className: `os-live-chat ${blocked || visible ? "is-visible" : "is-hidden"} ${blocked ? "is-blocked" : ""}`, style: rootStyle, children: [blocked ? (_jsx("div", { className: "os-live-chat-blocker", "aria-live": "polite", "aria-busy": "true", children: _jsx("div", { className: "os-live-chat-blocker-card", "aria-label": "Loading", children: _jsx(Loader2, { size: 32, className: "os-live-chat-spin", "aria-hidden": true }) }) })) : null, !blocked && open ? (_jsxs("section", { className: "os-live-chat-panel", "aria-label": `${brandName} live chat`, children: [_jsxs("header", { className: "os-live-chat-header", children: [_jsx("span", { className: "os-live-chat-mark", children: _jsx("span", { className: "os-live-chat-mark-icon", children: _jsx(Headphones, { size: 22, "aria-hidden": true }) }) }), _jsxs("div", { children: [_jsx("p", { children: supportLabel }), _jsx("span", { children: visitorName ? `${visitorName}, ${brandName} team is here` : `${brandName} team` })] }), _jsx("button", { type: "button", "aria-label": "Close chat", onClick: () => setOpen(false), children: _jsx(X, { size: 20, "aria-hidden": true }) })] }), needsProfile ? (_jsxs("form", { className: "os-live-chat-intro", onSubmit: saveName, children: [_jsx("strong", { children: "Welcome. What should we call you?" }), onlineAgents.length > 0 ? (_jsxs("div", { className: "os-live-chat-online", "aria-label": `${onlineAgents.length} support agents online`, children: [_jsx("div", { className: "os-live-chat-online-avatars", children: onlineAgents.map((agent, index) => (_jsx("span", { className: "os-live-chat-online-avatar", style: { "--os-agent-color": agent.color || accentColor }, children: agent.avatar_url ? _jsx("img", { src: agent.avatar_url, alt: "" }) : null }, `${agent.avatar_url || agent.color || "agent"}-${index}`))) }), _jsx("span", { children: "Support is online now" })] })) : null, _jsx("input", { autoFocus: true, value: nameDraft, onChange: (event) => setNameDraft(event.target.value), placeholder: "Your name", maxLength: 80 }), _jsx("button", { type: "submit", disabled: !nameDraft.trim(), children: "Start chat" })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "os-live-chat-body", children: [loading ? (_jsxs("div", { className: "os-live-chat-empty", children: [_jsx(Loader2, { size: 18, className: "os-live-chat-spin", "aria-hidden": true }), "Connecting..."] })) : messages.length === 0 ? (_jsxs("div", { className: "os-live-chat-empty", children: [_jsxs("strong", { children: ["Hi there ", _jsx("span", { "aria-hidden": true, children: "\uD83D\uDC4B" })] }), onlineAgents.length > 0 ? (_jsxs("div", { className: "os-live-chat-online", "aria-label": `${onlineAgents.length} support agents online`, children: [_jsx("div", { className: "os-live-chat-online-avatars", children: onlineAgents.map((agent, index) => (_jsx("span", { className: "os-live-chat-online-avatar", style: { "--os-agent-color": agent.color || accentColor }, children: agent.avatar_url ? _jsx("img", { src: agent.avatar_url, alt: "" }) : null }, `${agent.avatar_url || agent.color || "agent"}-${index}`))) }), _jsx("span", { children: "Support is online now" })] })) : null, _jsx("span", { children: "How may we help you today?" })] })) : (messages.map((message) => (_jsxs("article", { className: `os-live-chat-message ${message.sender === "guest" ? "is-guest" : "is-staff"}`, children: [_jsx("p", { children: message.body }), _jsxs("span", { children: [message.sender === "guest" ? "You" : brandName, " \u00B7 ", messageTime(message.created_at)] })] }, message.id)))), staffTypingName ? (_jsxs("div", { className: "os-live-chat-typing", "aria-live": "polite", children: [_jsx("span", { children: "Support is typing" }), _jsx("i", {}), _jsx("i", {}), _jsx("i", {})] })) : null, _jsx("div", { ref: messagesEndRef })] }), error ? _jsx("p", { className: "os-live-chat-error", children: error }) : null, _jsxs("form", { className: "os-live-chat-form", onSubmit: sendMessage, children: [_jsx("textarea", { value: draft, onChange: (event) => {
581
761
  const nextDraft = event.target.value;
582
762
  setDraft(nextDraft);
583
763
  announceTyping(nextDraft);
@@ -586,7 +766,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
586
766
  event.preventDefault();
587
767
  event.currentTarget.form?.requestSubmit();
588
768
  }
589
- } }), _jsx("button", { type: "submit", disabled: !draft.trim() || !session || sending, "aria-label": "Send message", children: sending ? (_jsx(Loader2, { size: 19, className: "os-live-chat-spin", "aria-hidden": true })) : (_jsx(SendHorizontal, { size: 20, "aria-hidden": true })) })] })] }))] })) : null, visible ? (_jsxs("button", { className: "os-live-chat-bubble", type: "button", onClick: () => setOpen((value) => !value), "aria-label": "Open live chat", children: [_jsx(MessageCircle, { size: 25, "aria-hidden": true }), unreadCount > 0 ? _jsx("strong", { className: "os-live-chat-badge", children: unreadCount }) : null, !open ? (_jsx("span", { className: unreadCount > 0 ? `has-unread ${previewVisible ? "is-preview-visible" : "is-preview-hidden"}` : "", children: unreadCount > 0 && previewVisible ? (_jsxs(_Fragment, { children: [_jsx("b", { children: "New message" }), _jsx("small", { children: unreadPreview })] })) : (_jsxs(_Fragment, { children: ["Need live assistance? ", _jsx("small", { className: "os-live-chat-wave", "aria-hidden": true, children: "\uD83D\uDC4B" })] })) })) : null] })) : null, _jsx("style", { children: `
769
+ } }), _jsx("button", { type: "submit", disabled: !draft.trim() || !session || sending, "aria-label": "Send message", children: sending ? (_jsx(Loader2, { size: 19, className: "os-live-chat-spin", "aria-hidden": true })) : (_jsx(SendHorizontal, { size: 20, "aria-hidden": true })) })] })] }))] })) : null, !blocked && visible ? (_jsxs("button", { className: "os-live-chat-bubble", type: "button", onClick: () => setOpen((value) => !value), "aria-label": "Open live chat", children: [_jsx(MessageCircle, { size: 25, "aria-hidden": true }), unreadCount > 0 ? _jsx("strong", { className: "os-live-chat-badge", children: unreadCount }) : null, !open ? (_jsx("span", { className: unreadCount > 0 ? `has-unread ${previewVisible ? "is-preview-visible" : "is-preview-hidden"}` : "", "aria-live": unreadCount > 0 ? "polite" : undefined, children: unreadCount > 0 && previewVisible ? (_jsxs(_Fragment, { children: [_jsx("b", { children: "New message" }), _jsx("small", { children: unreadPreview })] })) : (_jsxs(_Fragment, { children: ["Need live assistance? ", _jsx("small", { className: "os-live-chat-wave", "aria-hidden": true, children: "\uD83D\uDC4B" })] })) }, unreadCount > 0 ? `preview-${unreadPreview}` : "assist-prompt")) : null] })) : null, _jsx("style", { children: `
590
770
  .os-live-chat {
591
771
  position: fixed;
592
772
  right: max(18px, env(safe-area-inset-right));
@@ -597,6 +777,34 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
597
777
  .os-live-chat.is-hidden {
598
778
  pointer-events: none;
599
779
  }
780
+ .os-live-chat.is-blocked {
781
+ pointer-events: auto;
782
+ }
783
+ .os-live-chat-blocker {
784
+ position: fixed;
785
+ inset: 0;
786
+ z-index: 2147483000;
787
+ display: grid;
788
+ place-items: center;
789
+ padding: 24px;
790
+ background:
791
+ radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--os-chat-accent) 14%, transparent), transparent 34%),
792
+ rgba(248, 250, 252, 0.98);
793
+ backdrop-filter: blur(18px);
794
+ -webkit-backdrop-filter: blur(18px);
795
+ animation: os-chat-blocker-in 320ms cubic-bezier(.16,1,.3,1) both;
796
+ }
797
+ .os-live-chat-blocker-card {
798
+ display: grid;
799
+ width: 84px;
800
+ height: 84px;
801
+ place-items: center;
802
+ border: 1px solid rgba(148, 163, 184, 0.24);
803
+ border-radius: 28px;
804
+ color: var(--os-chat-accent);
805
+ background: rgba(255, 255, 255, 0.86);
806
+ box-shadow: 0 24px 80px rgba(15, 23, 42, 0.16);
807
+ }
600
808
  .os-live-chat-bubble {
601
809
  position: relative;
602
810
  display: grid;
@@ -614,8 +822,8 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
614
822
  }
615
823
  .os-live-chat-bubble span {
616
824
  position: absolute;
617
- right: 48px;
618
- bottom: 10px;
825
+ right: 68px;
826
+ bottom: 11px;
619
827
  width: max-content;
620
828
  max-width: 230px;
621
829
  border: 1px solid rgba(148, 163, 184, 0.28);
@@ -627,25 +835,27 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
627
835
  font-size: 14px;
628
836
  font-weight: 800;
629
837
  pointer-events: none;
630
- animation: os-chat-nudge 420ms ease-out 350ms both;
838
+ transform-origin: bottom right;
839
+ animation: os-chat-nudge 520ms cubic-bezier(.16,1,.3,1) 350ms both;
631
840
  }
632
841
  .os-live-chat-bubble span.has-unread {
633
842
  display: grid;
634
843
  gap: 2px;
635
- width: min(260px, calc(100vw - 106px));
844
+ width: min(260px, calc(100vw - 130px));
636
845
  max-width: 260px;
637
- border-radius: 18px;
638
- padding: 10px 13px;
846
+ border-radius: 20px;
847
+ padding: 11px 14px;
639
848
  text-align: left;
849
+ box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16);
640
850
  }
641
851
  .os-live-chat-bubble span.has-unread.is-preview-visible {
642
- animation: os-chat-preview-in 220ms cubic-bezier(.2,.8,.2,1) both;
852
+ animation: os-chat-preview-in 420ms cubic-bezier(.16,1,.3,1) both;
643
853
  }
644
854
  .os-live-chat-bubble span.has-unread.is-preview-hidden {
645
855
  opacity: 0;
646
- transform: translateX(10px) scale(0.98);
647
856
  visibility: hidden;
648
- transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
857
+ animation: os-chat-preview-out 360ms cubic-bezier(.4,0,.2,1) both;
858
+ transition: visibility 0s linear 360ms;
649
859
  }
650
860
  .os-live-chat-bubble span.has-unread b,
651
861
  .os-live-chat-bubble span.has-unread small {
@@ -709,7 +919,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
709
919
  border-radius: 28px;
710
920
  background: rgba(255, 255, 255, 0.98);
711
921
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.24);
712
- animation: os-chat-in 210ms cubic-bezier(.2,.8,.2,1);
922
+ animation: os-chat-in 360ms cubic-bezier(.16,1,.3,1);
713
923
  transform-origin: bottom right;
714
924
  }
715
925
  .os-live-chat-header {
@@ -895,6 +1105,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
895
1105
  gap: 10px;
896
1106
  overflow-y: auto;
897
1107
  padding: 16px;
1108
+ scroll-behavior: smooth;
898
1109
  background:
899
1110
  radial-gradient(circle at 22% 0%, color-mix(in srgb, var(--os-chat-accent) 8%, transparent), transparent 32%),
900
1111
  #f8fafc;
@@ -920,7 +1131,13 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
920
1131
  font-size: 14px;
921
1132
  line-height: 1.45;
922
1133
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.07);
923
- animation: os-message-in 180ms ease-out both;
1134
+ will-change: transform, opacity;
1135
+ animation: os-message-in 340ms cubic-bezier(.16,1,.3,1) both;
1136
+ transition: transform 260ms cubic-bezier(.16,1,.3,1), box-shadow 260ms ease, opacity 260ms ease;
1137
+ }
1138
+ .os-live-chat-message:hover {
1139
+ transform: translateY(-1px);
1140
+ box-shadow: 0 11px 26px rgba(15, 23, 42, 0.09);
924
1141
  }
925
1142
  .os-live-chat-message p {
926
1143
  margin: 0;
@@ -959,7 +1176,7 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
959
1176
  background: white;
960
1177
  font-size: 12px;
961
1178
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
962
- animation: os-message-in 180ms ease-out both;
1179
+ animation: os-message-in 340ms cubic-bezier(.16,1,.3,1) both;
963
1180
  }
964
1181
  .os-live-chat-typing i {
965
1182
  width: 5px;
@@ -1030,11 +1247,13 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
1030
1247
  @keyframes os-chat-in {
1031
1248
  from {
1032
1249
  opacity: 0;
1033
- transform: translateY(12px) scale(0.97);
1250
+ transform: translateY(18px) scale(0.965);
1251
+ filter: blur(5px);
1034
1252
  }
1035
1253
  to {
1036
1254
  opacity: 1;
1037
1255
  transform: translateY(0) scale(1);
1256
+ filter: blur(0);
1038
1257
  }
1039
1258
  }
1040
1259
  @keyframes os-chat-bubble-in {
@@ -1047,6 +1266,16 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
1047
1266
  transform: translateY(0) scale(1);
1048
1267
  }
1049
1268
  }
1269
+ @keyframes os-chat-blocker-in {
1270
+ from {
1271
+ opacity: 0;
1272
+ filter: blur(6px);
1273
+ }
1274
+ to {
1275
+ opacity: 1;
1276
+ filter: blur(0);
1277
+ }
1278
+ }
1050
1279
  @keyframes os-chat-nudge {
1051
1280
  from {
1052
1281
  opacity: 0;
@@ -1071,21 +1300,37 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
1071
1300
  @keyframes os-chat-preview-in {
1072
1301
  from {
1073
1302
  opacity: 0;
1074
- transform: translateX(10px) scale(0.98);
1303
+ transform: translateX(14px) translateY(4px) scale(0.96);
1304
+ filter: blur(4px);
1075
1305
  }
1076
1306
  to {
1077
1307
  opacity: 1;
1078
1308
  transform: translateX(0) scale(1);
1309
+ filter: blur(0);
1310
+ }
1311
+ }
1312
+ @keyframes os-chat-preview-out {
1313
+ from {
1314
+ opacity: 1;
1315
+ transform: translateX(0) scale(1);
1316
+ filter: blur(0);
1317
+ }
1318
+ to {
1319
+ opacity: 0;
1320
+ transform: translateX(10px) translateY(3px) scale(0.96);
1321
+ filter: blur(4px);
1079
1322
  }
1080
1323
  }
1081
1324
  @keyframes os-message-in {
1082
1325
  from {
1083
1326
  opacity: 0;
1084
- transform: translateY(7px) scale(0.98);
1327
+ transform: translateY(10px) scale(0.975);
1328
+ filter: blur(3px);
1085
1329
  }
1086
1330
  to {
1087
1331
  opacity: 1;
1088
1332
  transform: translateY(0) scale(1);
1333
+ filter: blur(0);
1089
1334
  }
1090
1335
  }
1091
1336
  @keyframes os-typing-dot {
@@ -1117,6 +1362,26 @@ export function LiveChatWidget({ apiBaseUrl, apiKey, brandName, leadSource, acce
1117
1362
  .os-live-chat-bubble span:not(.has-unread) {
1118
1363
  display: none;
1119
1364
  }
1365
+ .os-live-chat-bubble span.has-unread {
1366
+ right: 68px;
1367
+ width: min(242px, calc(100vw - 116px));
1368
+ }
1369
+ }
1370
+ @media (prefers-reduced-motion: reduce) {
1371
+ .os-live-chat-bubble,
1372
+ .os-live-chat-bubble span,
1373
+ .os-live-chat-bubble span.has-unread.is-preview-visible,
1374
+ .os-live-chat-bubble span.has-unread.is-preview-hidden,
1375
+ .os-live-chat-panel,
1376
+ .os-live-chat-message,
1377
+ .os-live-chat-typing,
1378
+ .os-live-chat-wave {
1379
+ animation: none !important;
1380
+ transition: none !important;
1381
+ }
1382
+ .os-live-chat-body {
1383
+ scroll-behavior: auto;
1384
+ }
1120
1385
  }
1121
1386
  ` })] }));
1122
1387
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oneskies-live-chat-widget",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/src/index.tsx CHANGED
@@ -53,9 +53,22 @@ type SocketPayload = {
53
53
  sender?: "guest" | "staff" | "system";
54
54
  name?: string;
55
55
  body?: string;
56
+ clear_profile?: boolean;
56
57
  message?: LiveChatMessage;
57
58
  };
58
59
 
60
+ type LiveChatStatePayload = {
61
+ type: "state";
62
+ open: boolean;
63
+ page_url: string;
64
+ referrer_url: string;
65
+ utm_source: string;
66
+ utm_medium: string;
67
+ utm_campaign: string;
68
+ page_view_count: number;
69
+ fields_touched_count: number;
70
+ };
71
+
59
72
  type StoredProfile = {
60
73
  name: string;
61
74
  visitorId: string;
@@ -68,6 +81,7 @@ const TYPING_BROADCAST_INTERVAL_MS = 120;
68
81
  const WS_RECONNECT_BASE_DELAY_MS = 650;
69
82
  const WS_RECONNECT_MAX_DELAY_MS = 12_000;
70
83
  const WS_MAX_MESSAGE_CHARS = 128 * 1024;
84
+ const LIVE_CHAT_BLOCKED_STATUS = 423;
71
85
 
72
86
  function toTitleCase(name: string): string {
73
87
  return name.replace(/\S+/g, (word) =>
@@ -213,6 +227,29 @@ function liveChatQueryParam(name: string): string {
213
227
  }
214
228
  }
215
229
 
230
+ function liveChatCurrentUrl(): string {
231
+ try {
232
+ return window.location.href;
233
+ } catch {
234
+ return "";
235
+ }
236
+ }
237
+
238
+ function liveChatTrackedFieldKey(element: Element): string {
239
+ if (!(element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement)) {
240
+ return "";
241
+ }
242
+ if (element.closest(".os-live-chat")) return "";
243
+ if (element instanceof HTMLInputElement && ["hidden", "submit", "button", "reset", "image"].includes(element.type)) {
244
+ return "";
245
+ }
246
+ const form = element.closest("form");
247
+ const formKey = form?.getAttribute("id") || form?.getAttribute("name") || form?.getAttribute("aria-label") || "";
248
+ const placeholder = element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement ? element.placeholder : "";
249
+ const fieldKey = element.name || element.id || element.getAttribute("aria-label") || placeholder || element.type || element.tagName;
250
+ return `${formKey}:${fieldKey}`.slice(0, 220);
251
+ }
252
+
216
253
  function messageTime(value: string): string {
217
254
  const date = new Date(value);
218
255
  if (Number.isNaN(date.getTime())) return "";
@@ -297,6 +334,7 @@ export function LiveChatWidget({
297
334
  accentColor = DEFAULT_ACCENT,
298
335
  supportLabel = "Travel support",
299
336
  }: LiveChatWidgetProps) {
337
+ const initialBlockedKey = `${STORAGE_PREFIX}:${leadSource}:blocked`;
300
338
  const [visible, setVisible] = useState(false);
301
339
  const [open, setOpen] = useState(false);
302
340
  const [session, setSession] = useState<LiveChatSession | null>(null);
@@ -308,6 +346,14 @@ export function LiveChatWidget({
308
346
  const [loading, setLoading] = useState(false);
309
347
  const [sending, setSending] = useState(false);
310
348
  const [error, setError] = useState("");
349
+ const [blocked, setBlocked] = useState(() => {
350
+ try {
351
+ return window.localStorage.getItem(initialBlockedKey) === "1";
352
+ } catch {
353
+ return false;
354
+ }
355
+ });
356
+ const [blockedRetryNonce, setBlockedRetryNonce] = useState(0);
311
357
  const [staffTypingName, setStaffTypingName] = useState("");
312
358
  const [unreadCount, setUnreadCount] = useState(0);
313
359
  const [unreadPreview, setUnreadPreview] = useState("");
@@ -321,13 +367,77 @@ export function LiveChatWidget({
321
367
  const typingSentAtRef = useRef(0);
322
368
  const typingTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
323
369
  const unreadPreviewTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
370
+ const pageUrlsRef = useRef<Set<string>>(new Set());
371
+ const touchedFieldsRef = useRef<Set<string>>(new Set());
372
+ const stateBroadcastTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
373
+ const banReloadedRef = useRef(false);
324
374
 
325
375
  const baseUrl = useMemo(() => normalizedBaseUrl(apiBaseUrl), [apiBaseUrl]);
326
376
  const storageKey = `${STORAGE_PREFIX}:${leadSource}`;
327
377
  const profileKey = `${storageKey}:profile`;
378
+ const blockedKey = `${storageKey}:blocked`;
328
379
  const visitorName = formatGuestName(profile?.name);
329
380
  const needsProfile = profileReady && !visitorName;
330
381
 
382
+ function buildStatePayload(): LiveChatStatePayload {
383
+ const currentUrl = liveChatCurrentUrl();
384
+ if (currentUrl) pageUrlsRef.current.add(currentUrl);
385
+ return {
386
+ type: "state",
387
+ open: openRef.current,
388
+ page_url: currentUrl,
389
+ referrer_url: document.referrer || "",
390
+ utm_source: liveChatQueryParam("utm_source"),
391
+ utm_medium: liveChatQueryParam("utm_medium"),
392
+ utm_campaign: liveChatQueryParam("utm_campaign"),
393
+ page_view_count: Math.max(1, pageUrlsRef.current.size),
394
+ fields_touched_count: touchedFieldsRef.current.size,
395
+ };
396
+ }
397
+
398
+ function sendStateNow() {
399
+ const socket = wsRef.current;
400
+ if (socket?.readyState !== WebSocket.OPEN) return;
401
+ socket.send(JSON.stringify(buildStatePayload()));
402
+ }
403
+
404
+ function scheduleStateBroadcast(delay = 250) {
405
+ if (stateBroadcastTimeoutRef.current) return;
406
+ stateBroadcastTimeoutRef.current = window.setTimeout(() => {
407
+ stateBroadcastTimeoutRef.current = null;
408
+ sendStateNow();
409
+ }, delay);
410
+ }
411
+
412
+ function enterBlockedState({ reload = false }: { reload?: boolean } = {}) {
413
+ try {
414
+ window.localStorage.setItem(blockedKey, "1");
415
+ } catch {
416
+ // Ignore storage failures; the in-memory state still blocks the current page.
417
+ }
418
+ setBlocked(true);
419
+ setVisible(true);
420
+ setOpen(false);
421
+ setSession(null);
422
+ setMessages([]);
423
+ setDraft("");
424
+ setError("");
425
+ setLoading(true);
426
+ if (reload && !banReloadedRef.current) {
427
+ banReloadedRef.current = true;
428
+ window.setTimeout(() => window.location.reload(), 120);
429
+ }
430
+ }
431
+
432
+ function leaveBlockedState() {
433
+ try {
434
+ window.localStorage.removeItem(blockedKey);
435
+ } catch {
436
+ // Ignore storage failures; clearing React state is enough for this tab.
437
+ }
438
+ setBlocked(false);
439
+ }
440
+
331
441
  useEffect(() => {
332
442
  openRef.current = open;
333
443
  if (open) {
@@ -338,7 +448,7 @@ export function LiveChatWidget({
338
448
  }
339
449
  const socket = wsRef.current;
340
450
  if (socket?.readyState === WebSocket.OPEN) {
341
- socket.send(JSON.stringify({ type: "state", open }));
451
+ sendStateNow();
342
452
  }
343
453
  }, [open]);
344
454
 
@@ -360,9 +470,9 @@ export function LiveChatWidget({
360
470
  }, []);
361
471
 
362
472
  useEffect(() => {
363
- setTidioTemporarilyHidden(visible);
473
+ setTidioTemporarilyHidden(visible || blocked);
364
474
  return () => setTidioTemporarilyHidden(false);
365
- }, [visible]);
475
+ }, [blocked, visible]);
366
476
 
367
477
  useEffect(() => {
368
478
  if (profileReady) return;
@@ -406,12 +516,70 @@ export function LiveChatWidget({
406
516
  messagesEndRef.current?.scrollIntoView({ block: "end" });
407
517
  }, [messages.length, staffTypingName, open, visible]);
408
518
 
519
+ useEffect(() => {
520
+ if (!session) return;
521
+ pageUrlsRef.current.add(liveChatCurrentUrl());
522
+ let lastUrl = liveChatCurrentUrl();
523
+
524
+ function recordPageView() {
525
+ const currentUrl = liveChatCurrentUrl();
526
+ if (!currentUrl || currentUrl === lastUrl) return;
527
+ lastUrl = currentUrl;
528
+ pageUrlsRef.current.add(currentUrl);
529
+ scheduleStateBroadcast(120);
530
+ }
531
+
532
+ function recordFieldTouch(event: Event) {
533
+ const target = event.target;
534
+ if (!(target instanceof Element)) return;
535
+ const key = liveChatTrackedFieldKey(target);
536
+ if (!key || touchedFieldsRef.current.has(key)) return;
537
+ touchedFieldsRef.current.add(key);
538
+ scheduleStateBroadcast(220);
539
+ }
540
+
541
+ const originalPushState = window.history.pushState;
542
+ const originalReplaceState = window.history.replaceState;
543
+ window.history.pushState = function patchedPushState(...args) {
544
+ const result = originalPushState.apply(this, args);
545
+ window.setTimeout(recordPageView, 0);
546
+ return result;
547
+ };
548
+ window.history.replaceState = function patchedReplaceState(...args) {
549
+ const result = originalReplaceState.apply(this, args);
550
+ window.setTimeout(recordPageView, 0);
551
+ return result;
552
+ };
553
+ const interval = window.setInterval(recordPageView, 1000);
554
+ window.addEventListener("popstate", recordPageView);
555
+ window.addEventListener("hashchange", recordPageView);
556
+ document.addEventListener("focusin", recordFieldTouch, true);
557
+ document.addEventListener("input", recordFieldTouch, true);
558
+ document.addEventListener("change", recordFieldTouch, true);
559
+ scheduleStateBroadcast(350);
560
+ return () => {
561
+ window.history.pushState = originalPushState;
562
+ window.history.replaceState = originalReplaceState;
563
+ window.clearInterval(interval);
564
+ window.removeEventListener("popstate", recordPageView);
565
+ window.removeEventListener("hashchange", recordPageView);
566
+ document.removeEventListener("focusin", recordFieldTouch, true);
567
+ document.removeEventListener("input", recordFieldTouch, true);
568
+ document.removeEventListener("change", recordFieldTouch, true);
569
+ if (stateBroadcastTimeoutRef.current) {
570
+ window.clearTimeout(stateBroadcastTimeoutRef.current);
571
+ stateBroadcastTimeoutRef.current = null;
572
+ }
573
+ };
574
+ }, [session]);
575
+
409
576
  useEffect(() => {
410
577
  if (!profileReady || session || !profile) return;
411
578
  if (startSessionRef.current) return;
412
579
  const currentProfile = profile;
413
580
  let cancelled = false;
414
581
  async function startSession() {
582
+ let keepLoading = false;
415
583
  if (visible && open) setLoading(true);
416
584
  setError("");
417
585
  try {
@@ -431,14 +599,22 @@ export function LiveChatWidget({
431
599
  device_signature: signature,
432
600
  }),
433
601
  });
602
+ if (response.status === LIVE_CHAT_BLOCKED_STATUS) {
603
+ keepLoading = true;
604
+ if (!cancelled) {
605
+ enterBlockedState();
606
+ }
607
+ return;
608
+ }
434
609
  const envelope = await readJson<ApiEnvelope<LiveChatSession>>(response);
435
610
  if (cancelled) return;
611
+ leaveBlockedState();
436
612
  window.localStorage.setItem(storageKey, JSON.stringify(envelope.data));
437
613
  setSession(envelope.data);
438
614
  } catch (err) {
439
615
  if (!cancelled && visible && open) setError(err instanceof Error ? err.message : "Chat is unavailable.");
440
616
  } finally {
441
- if (!cancelled) setLoading(false);
617
+ if (!cancelled && !keepLoading) setLoading(false);
442
618
  if (startSessionRef.current === startPromise) startSessionRef.current = null;
443
619
  }
444
620
  }
@@ -447,7 +623,15 @@ export function LiveChatWidget({
447
623
  return () => {
448
624
  cancelled = true;
449
625
  };
450
- }, [apiKey, baseUrl, leadSource, open, profile, profileReady, session, storageKey, visible]);
626
+ }, [apiKey, baseUrl, blockedRetryNonce, leadSource, open, profile, profileReady, session, storageKey, visible]);
627
+
628
+ useEffect(() => {
629
+ if (!blocked || session || !profileReady || !profile) return;
630
+ const timer = window.setTimeout(() => {
631
+ setBlockedRetryNonce((value) => value + 1);
632
+ }, 15_000);
633
+ return () => window.clearTimeout(timer);
634
+ }, [blocked, profile, profileReady, session]);
451
635
 
452
636
  useEffect(() => {
453
637
  if (!visible || !open || !session) return;
@@ -488,7 +672,7 @@ export function LiveChatWidget({
488
672
  socket.onopen = () => {
489
673
  if (cancelled || activeSocket !== socket) return;
490
674
  reconnectAttempts = 0;
491
- socket.send(JSON.stringify({ type: "state", open: openRef.current }));
675
+ sendStateNow();
492
676
  };
493
677
  socket.onmessage = (event) => {
494
678
  if (cancelled || activeSocket !== socket) return;
@@ -502,19 +686,26 @@ export function LiveChatWidget({
502
686
  typingTimeoutRef.current = setTimeout(() => setStaffTypingName(""), 2200);
503
687
  return;
504
688
  }
505
- if (payload.action === "session_removed") {
689
+ if (payload.action === "session_removed" || payload.action === "session_banned") {
506
690
  window.localStorage.removeItem(storageKey);
507
- window.localStorage.removeItem(profileKey);
691
+ if (payload.action === "session_removed" && payload.clear_profile !== false) {
692
+ window.localStorage.removeItem(profileKey);
693
+ }
508
694
  setSession(null);
509
695
  setMessages([]);
510
696
  setDraft("");
511
- setNameDraft("");
512
- setProfile(null);
513
- setProfileReady(false);
697
+ if (payload.action === "session_removed" && payload.clear_profile !== false) {
698
+ setNameDraft("");
699
+ setProfile(null);
700
+ setProfileReady(false);
701
+ }
514
702
  setStaffTypingName("");
515
703
  setUnreadCount(0);
516
704
  setUnreadPreview("");
517
705
  setPreviewVisible(false);
706
+ if (payload.action === "session_banned") {
707
+ enterBlockedState({ reload: true });
708
+ }
518
709
  socket.close();
519
710
  return;
520
711
  }
@@ -578,7 +769,8 @@ export function LiveChatWidget({
578
769
  window.removeEventListener("beforeunload", endPresence);
579
770
  if (reconnectTimer) clearTimeout(reconnectTimer);
580
771
  if (activeSocket?.readyState === WebSocket.OPEN) {
581
- activeSocket.send(JSON.stringify({ type: "state", open: false }));
772
+ openRef.current = false;
773
+ activeSocket.send(JSON.stringify(buildStatePayload()));
582
774
  }
583
775
  endPresence();
584
776
  activeSocket?.close();
@@ -642,8 +834,15 @@ export function LiveChatWidget({
642
834
  } as CSSProperties;
643
835
 
644
836
  return (
645
- <div className={`os-live-chat ${visible ? "is-visible" : "is-hidden"}`} style={rootStyle}>
646
- {open ? (
837
+ <div className={`os-live-chat ${blocked || visible ? "is-visible" : "is-hidden"} ${blocked ? "is-blocked" : ""}`} style={rootStyle}>
838
+ {blocked ? (
839
+ <div className="os-live-chat-blocker" aria-live="polite" aria-busy="true">
840
+ <div className="os-live-chat-blocker-card" aria-label="Loading">
841
+ <Loader2 size={32} className="os-live-chat-spin" aria-hidden />
842
+ </div>
843
+ </div>
844
+ ) : null}
845
+ {!blocked && open ? (
647
846
  <section className="os-live-chat-panel" aria-label={`${brandName} live chat`}>
648
847
  <header className="os-live-chat-header">
649
848
  <span className="os-live-chat-mark">
@@ -775,12 +974,16 @@ export function LiveChatWidget({
775
974
  )}
776
975
  </section>
777
976
  ) : null}
778
- {visible ? (
977
+ {!blocked && visible ? (
779
978
  <button className="os-live-chat-bubble" type="button" onClick={() => setOpen((value) => !value)} aria-label="Open live chat">
780
979
  <MessageCircle size={25} aria-hidden />
781
980
  {unreadCount > 0 ? <strong className="os-live-chat-badge">{unreadCount}</strong> : null}
782
981
  {!open ? (
783
- <span className={unreadCount > 0 ? `has-unread ${previewVisible ? "is-preview-visible" : "is-preview-hidden"}` : ""}>
982
+ <span
983
+ key={unreadCount > 0 ? `preview-${unreadPreview}` : "assist-prompt"}
984
+ className={unreadCount > 0 ? `has-unread ${previewVisible ? "is-preview-visible" : "is-preview-hidden"}` : ""}
985
+ aria-live={unreadCount > 0 ? "polite" : undefined}
986
+ >
784
987
  {unreadCount > 0 && previewVisible ? (
785
988
  <>
786
989
  <b>New message</b>
@@ -806,6 +1009,34 @@ export function LiveChatWidget({
806
1009
  .os-live-chat.is-hidden {
807
1010
  pointer-events: none;
808
1011
  }
1012
+ .os-live-chat.is-blocked {
1013
+ pointer-events: auto;
1014
+ }
1015
+ .os-live-chat-blocker {
1016
+ position: fixed;
1017
+ inset: 0;
1018
+ z-index: 2147483000;
1019
+ display: grid;
1020
+ place-items: center;
1021
+ padding: 24px;
1022
+ background:
1023
+ radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--os-chat-accent) 14%, transparent), transparent 34%),
1024
+ rgba(248, 250, 252, 0.98);
1025
+ backdrop-filter: blur(18px);
1026
+ -webkit-backdrop-filter: blur(18px);
1027
+ animation: os-chat-blocker-in 320ms cubic-bezier(.16,1,.3,1) both;
1028
+ }
1029
+ .os-live-chat-blocker-card {
1030
+ display: grid;
1031
+ width: 84px;
1032
+ height: 84px;
1033
+ place-items: center;
1034
+ border: 1px solid rgba(148, 163, 184, 0.24);
1035
+ border-radius: 28px;
1036
+ color: var(--os-chat-accent);
1037
+ background: rgba(255, 255, 255, 0.86);
1038
+ box-shadow: 0 24px 80px rgba(15, 23, 42, 0.16);
1039
+ }
809
1040
  .os-live-chat-bubble {
810
1041
  position: relative;
811
1042
  display: grid;
@@ -823,8 +1054,8 @@ export function LiveChatWidget({
823
1054
  }
824
1055
  .os-live-chat-bubble span {
825
1056
  position: absolute;
826
- right: 48px;
827
- bottom: 10px;
1057
+ right: 68px;
1058
+ bottom: 11px;
828
1059
  width: max-content;
829
1060
  max-width: 230px;
830
1061
  border: 1px solid rgba(148, 163, 184, 0.28);
@@ -836,25 +1067,27 @@ export function LiveChatWidget({
836
1067
  font-size: 14px;
837
1068
  font-weight: 800;
838
1069
  pointer-events: none;
839
- animation: os-chat-nudge 420ms ease-out 350ms both;
1070
+ transform-origin: bottom right;
1071
+ animation: os-chat-nudge 520ms cubic-bezier(.16,1,.3,1) 350ms both;
840
1072
  }
841
1073
  .os-live-chat-bubble span.has-unread {
842
1074
  display: grid;
843
1075
  gap: 2px;
844
- width: min(260px, calc(100vw - 106px));
1076
+ width: min(260px, calc(100vw - 130px));
845
1077
  max-width: 260px;
846
- border-radius: 18px;
847
- padding: 10px 13px;
1078
+ border-radius: 20px;
1079
+ padding: 11px 14px;
848
1080
  text-align: left;
1081
+ box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16);
849
1082
  }
850
1083
  .os-live-chat-bubble span.has-unread.is-preview-visible {
851
- animation: os-chat-preview-in 220ms cubic-bezier(.2,.8,.2,1) both;
1084
+ animation: os-chat-preview-in 420ms cubic-bezier(.16,1,.3,1) both;
852
1085
  }
853
1086
  .os-live-chat-bubble span.has-unread.is-preview-hidden {
854
1087
  opacity: 0;
855
- transform: translateX(10px) scale(0.98);
856
1088
  visibility: hidden;
857
- transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
1089
+ animation: os-chat-preview-out 360ms cubic-bezier(.4,0,.2,1) both;
1090
+ transition: visibility 0s linear 360ms;
858
1091
  }
859
1092
  .os-live-chat-bubble span.has-unread b,
860
1093
  .os-live-chat-bubble span.has-unread small {
@@ -918,7 +1151,7 @@ export function LiveChatWidget({
918
1151
  border-radius: 28px;
919
1152
  background: rgba(255, 255, 255, 0.98);
920
1153
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.24);
921
- animation: os-chat-in 210ms cubic-bezier(.2,.8,.2,1);
1154
+ animation: os-chat-in 360ms cubic-bezier(.16,1,.3,1);
922
1155
  transform-origin: bottom right;
923
1156
  }
924
1157
  .os-live-chat-header {
@@ -1104,6 +1337,7 @@ export function LiveChatWidget({
1104
1337
  gap: 10px;
1105
1338
  overflow-y: auto;
1106
1339
  padding: 16px;
1340
+ scroll-behavior: smooth;
1107
1341
  background:
1108
1342
  radial-gradient(circle at 22% 0%, color-mix(in srgb, var(--os-chat-accent) 8%, transparent), transparent 32%),
1109
1343
  #f8fafc;
@@ -1129,7 +1363,13 @@ export function LiveChatWidget({
1129
1363
  font-size: 14px;
1130
1364
  line-height: 1.45;
1131
1365
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.07);
1132
- animation: os-message-in 180ms ease-out both;
1366
+ will-change: transform, opacity;
1367
+ animation: os-message-in 340ms cubic-bezier(.16,1,.3,1) both;
1368
+ transition: transform 260ms cubic-bezier(.16,1,.3,1), box-shadow 260ms ease, opacity 260ms ease;
1369
+ }
1370
+ .os-live-chat-message:hover {
1371
+ transform: translateY(-1px);
1372
+ box-shadow: 0 11px 26px rgba(15, 23, 42, 0.09);
1133
1373
  }
1134
1374
  .os-live-chat-message p {
1135
1375
  margin: 0;
@@ -1168,7 +1408,7 @@ export function LiveChatWidget({
1168
1408
  background: white;
1169
1409
  font-size: 12px;
1170
1410
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
1171
- animation: os-message-in 180ms ease-out both;
1411
+ animation: os-message-in 340ms cubic-bezier(.16,1,.3,1) both;
1172
1412
  }
1173
1413
  .os-live-chat-typing i {
1174
1414
  width: 5px;
@@ -1239,11 +1479,13 @@ export function LiveChatWidget({
1239
1479
  @keyframes os-chat-in {
1240
1480
  from {
1241
1481
  opacity: 0;
1242
- transform: translateY(12px) scale(0.97);
1482
+ transform: translateY(18px) scale(0.965);
1483
+ filter: blur(5px);
1243
1484
  }
1244
1485
  to {
1245
1486
  opacity: 1;
1246
1487
  transform: translateY(0) scale(1);
1488
+ filter: blur(0);
1247
1489
  }
1248
1490
  }
1249
1491
  @keyframes os-chat-bubble-in {
@@ -1256,6 +1498,16 @@ export function LiveChatWidget({
1256
1498
  transform: translateY(0) scale(1);
1257
1499
  }
1258
1500
  }
1501
+ @keyframes os-chat-blocker-in {
1502
+ from {
1503
+ opacity: 0;
1504
+ filter: blur(6px);
1505
+ }
1506
+ to {
1507
+ opacity: 1;
1508
+ filter: blur(0);
1509
+ }
1510
+ }
1259
1511
  @keyframes os-chat-nudge {
1260
1512
  from {
1261
1513
  opacity: 0;
@@ -1280,21 +1532,37 @@ export function LiveChatWidget({
1280
1532
  @keyframes os-chat-preview-in {
1281
1533
  from {
1282
1534
  opacity: 0;
1283
- transform: translateX(10px) scale(0.98);
1535
+ transform: translateX(14px) translateY(4px) scale(0.96);
1536
+ filter: blur(4px);
1284
1537
  }
1285
1538
  to {
1286
1539
  opacity: 1;
1287
1540
  transform: translateX(0) scale(1);
1541
+ filter: blur(0);
1542
+ }
1543
+ }
1544
+ @keyframes os-chat-preview-out {
1545
+ from {
1546
+ opacity: 1;
1547
+ transform: translateX(0) scale(1);
1548
+ filter: blur(0);
1549
+ }
1550
+ to {
1551
+ opacity: 0;
1552
+ transform: translateX(10px) translateY(3px) scale(0.96);
1553
+ filter: blur(4px);
1288
1554
  }
1289
1555
  }
1290
1556
  @keyframes os-message-in {
1291
1557
  from {
1292
1558
  opacity: 0;
1293
- transform: translateY(7px) scale(0.98);
1559
+ transform: translateY(10px) scale(0.975);
1560
+ filter: blur(3px);
1294
1561
  }
1295
1562
  to {
1296
1563
  opacity: 1;
1297
1564
  transform: translateY(0) scale(1);
1565
+ filter: blur(0);
1298
1566
  }
1299
1567
  }
1300
1568
  @keyframes os-typing-dot {
@@ -1326,6 +1594,26 @@ export function LiveChatWidget({
1326
1594
  .os-live-chat-bubble span:not(.has-unread) {
1327
1595
  display: none;
1328
1596
  }
1597
+ .os-live-chat-bubble span.has-unread {
1598
+ right: 68px;
1599
+ width: min(242px, calc(100vw - 116px));
1600
+ }
1601
+ }
1602
+ @media (prefers-reduced-motion: reduce) {
1603
+ .os-live-chat-bubble,
1604
+ .os-live-chat-bubble span,
1605
+ .os-live-chat-bubble span.has-unread.is-preview-visible,
1606
+ .os-live-chat-bubble span.has-unread.is-preview-hidden,
1607
+ .os-live-chat-panel,
1608
+ .os-live-chat-message,
1609
+ .os-live-chat-typing,
1610
+ .os-live-chat-wave {
1611
+ animation: none !important;
1612
+ transition: none !important;
1613
+ }
1614
+ .os-live-chat-body {
1615
+ scroll-behavior: auto;
1616
+ }
1329
1617
  }
1330
1618
  `}</style>
1331
1619
  </div>