@getwidgets/live-chat-widget 1.0.6 → 1.0.7

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.
@@ -20210,6 +20210,24 @@
20210
20210
  const luminance = (0.299 * r2 + 0.587 * g + 0.114 * b) / 255;
20211
20211
  return luminance > 0.5 ? "#000000" : "#FFFFFF";
20212
20212
  };
20213
+ const getMessageTime = (message) => {
20214
+ if (!message) return "";
20215
+ const raw = message.timestamp ?? message.created_at;
20216
+ if (!raw) return "";
20217
+ if (typeof raw === "string") {
20218
+ const looksLikeTimeOnly = /:\d{2}/.test(raw) && !/\d{4}-\d{2}-\d{2}|T|Z/i.test(raw);
20219
+ if (looksLikeTimeOnly) return raw;
20220
+ const parsed2 = new Date(raw);
20221
+ if (!Number.isNaN(parsed2.getTime())) {
20222
+ return parsed2.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
20223
+ }
20224
+ return "";
20225
+ }
20226
+ const parsed = new Date(raw);
20227
+ if (Number.isNaN(parsed.getTime())) return "";
20228
+ return parsed.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
20229
+ };
20230
+ const timeTextColor = getContrastColor(appearanceConfig.background_color || "#F9FAFB");
20213
20231
  const isMobile = windowWidth < 768;
20214
20232
  return /* @__PURE__ */ React.createElement("div", { style: getPositionStyles() }, !isOpen && showNotificationPreview && /* @__PURE__ */ React.createElement(
20215
20233
  "div",
@@ -20428,23 +20446,25 @@
20428
20446
  }
20429
20447
  },
20430
20448
  inputAreaConfig.first_ai_message || "Hello! How can I assist you today?"
20431
- )) : combinedMessages.map((message) => /* @__PURE__ */ React.createElement("div", { key: message.id, className: `flex ${message.role === "user" ? "justify-end" : "justify-start"}` }, /* @__PURE__ */ React.createElement(
20432
- "div",
20433
- {
20434
- className: `p-3 inline-block rounded-lg`,
20435
- style: {
20436
- backgroundColor: message.role === "user" ? chatAreaConfig.user_response_color || "#4ADE80" : message.isError ? "#FEE2E2" : chatAreaConfig.ai_response_color || "#E2E8F0",
20437
- borderRadius: chatAreaConfig.chat_bubble_radius || "16px",
20438
- fontSize: isMobile ? "13px" : "14px",
20439
- color: message.role === "user" ? chatAreaConfig.user_font_color || "#111827" : message.isError ? "#991B1B" : chatAreaConfig.ai_font_color || "#111827",
20440
- marginBottom: isMobile ? "4px" : "2px",
20441
- maxWidth: isMobile ? "85%" : "80%",
20442
- wordBreak: "break-word"
20443
- }
20444
- },
20445
- message.role !== "system" ? /* @__PURE__ */ React.createElement(Markdown, { remarkPlugins: [remarkGfm] }, message.content) : /* @__PURE__ */ React.createElement("em", { className: "text-xs opacity-70" }, message.content),
20446
- chatAreaConfig.show_timestamps && message.timestamp && /* @__PURE__ */ React.createElement("div", { className: "text-xs opacity-70 mt-1 text-right" }, message.timestamp)
20447
- ))), localLoading && /* @__PURE__ */ React.createElement("div", { className: "flex justify-start" }, /* @__PURE__ */ React.createElement(
20449
+ )) : combinedMessages.map((message) => {
20450
+ const timeText = getMessageTime(message);
20451
+ return /* @__PURE__ */ React.createElement("div", { key: message.id, className: `flex flex-col ${message.role === "user" ? "items-end" : "items-start"}` }, /* @__PURE__ */ React.createElement(
20452
+ "div",
20453
+ {
20454
+ className: `p-3 inline-block rounded-lg`,
20455
+ style: {
20456
+ backgroundColor: message.role === "user" ? chatAreaConfig.user_response_color || "#4ADE80" : message.isError ? "#FEE2E2" : chatAreaConfig.ai_response_color || "#E2E8F0",
20457
+ borderRadius: chatAreaConfig.chat_bubble_radius || "16px",
20458
+ fontSize: isMobile ? "13px" : "14px",
20459
+ color: message.role === "user" ? chatAreaConfig.user_font_color || "#111827" : message.isError ? "#991B1B" : chatAreaConfig.ai_font_color || "#111827",
20460
+ marginBottom: isMobile ? "4px" : "2px",
20461
+ maxWidth: isMobile ? "85%" : "80%",
20462
+ wordBreak: "break-word"
20463
+ }
20464
+ },
20465
+ message.role !== "system" ? /* @__PURE__ */ React.createElement(Markdown, { remarkPlugins: [remarkGfm] }, message.content) : /* @__PURE__ */ React.createElement("em", { className: "text-xs opacity-70" }, message.content)
20466
+ ), message.role !== "system" && timeText && /* @__PURE__ */ React.createElement("div", { className: "text-xs opacity-70", style: { color: timeTextColor, marginBottom: isMobile ? "6px" : "4px" } }, timeText));
20467
+ }), localLoading && /* @__PURE__ */ React.createElement("div", { className: "flex justify-start" }, /* @__PURE__ */ React.createElement(
20448
20468
  "div",
20449
20469
  {
20450
20470
  className: "text-left p-3 inline-block max-w-[85%]",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getwidgets/live-chat-widget",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "main": "dist/live-chat-widget.umd.js",
5
5
  "unpkg": "dist/live-chat-widget.umd.js",
6
6
  "type": "module",