@retinalabsllc/zairusjs 21.0.7 → 21.0.9

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.
package/dist/index.js CHANGED
@@ -4890,7 +4890,7 @@ var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
4890
4890
  month = parts[1].substring(0, 3).toUpperCase();
4891
4891
  }
4892
4892
  }
4893
- return /* @__PURE__ */ import_react83.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full h-full rounded-lg bg-white flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react83.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4893
+ return /* @__PURE__ */ import_react83.default.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full h-full aspect-square rounded-lg bg-neutral-100 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react83.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4894
4894
  };
4895
4895
  var PageSpinner6 = () => /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
4896
4896
  var UniversalHuddlesPage = ({
@@ -5371,7 +5371,7 @@ var UniversalHome2 = ({
5371
5371
  },
5372
5372
  /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Logout01Icon, size: 15 }),
5373
5373
  "Log Out"
5374
- )))), showNotifDialog && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "mb-2" }, /* @__PURE__ */ import_react87.default.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-xs tracking-wide" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Tick02Icon, size: 12 }), " Action Completed")) : /* @__PURE__ */ import_react87.default.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ import_react87.default.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ import_react87.default.createElement(
5374
+ )))), showNotifDialog && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "" }) : /* @__PURE__ */ import_react87.default.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ import_react87.default.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ import_react87.default.createElement(
5375
5375
  "button",
5376
5376
  {
5377
5377
  onClick: () => handleResolve("ACCEPTED"),
@@ -6020,11 +6020,7 @@ var import_react94 = require("@hugeicons/react");
6020
6020
  var import_core_free_icons35 = require("@hugeicons/core-free-icons");
6021
6021
  var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
6022
6022
  var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
6023
- var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
6024
- const [loaded, setLoaded] = (0, import_react93.useState)(false);
6025
- const [error, setError] = (0, import_react93.useState)(false);
6026
- const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
6027
- const finalSrc = error || !src ? defaultAvatar : src;
6023
+ var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
6028
6024
  const getStatusColor = () => {
6029
6025
  switch (status?.toUpperCase()) {
6030
6026
  case "SCHEDULED":
@@ -6039,16 +6035,16 @@ var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
6039
6035
  return "bg-stone-200";
6040
6036
  }
6041
6037
  };
6042
- return /* @__PURE__ */ import_react93.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons35.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react93.default.createElement(
6043
- "img",
6044
- {
6045
- src: finalSrc,
6046
- alt: "Huddle Avatar",
6047
- className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`,
6048
- onLoad: () => setLoaded(true),
6049
- onError: () => setError(true)
6038
+ let day = "--";
6039
+ let month = "---";
6040
+ if (timeString) {
6041
+ const parts = timeString.split(" ");
6042
+ if (parts.length >= 2) {
6043
+ day = parts[0];
6044
+ month = parts[1].substring(0, 3).toUpperCase();
6050
6045
  }
6051
- )), /* @__PURE__ */ import_react93.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
6046
+ }
6047
+ return /* @__PURE__ */ import_react93.default.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "w-full h-full aspect-square rounded-lg bg-neutral-100 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react93.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
6052
6048
  };
6053
6049
  var HomeHuddleCalendar = ({
6054
6050
  huddles = [],
@@ -6168,7 +6164,7 @@ var HomeHuddleCalendar = ({
6168
6164
  onClick: () => router.push(`/app/huddles/${huddle.id}`),
6169
6165
  className: "flex flex-row items-center gap-4 py-3 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
6170
6166
  },
6171
- /* @__PURE__ */ import_react93.default.createElement(HuddleAvatar2, { src: huddle.imageUrl, status: huddle.status }),
6167
+ /* @__PURE__ */ import_react93.default.createElement(HuddleAvatar2, { timeString: huddle.timeString, status: huddle.status }),
6172
6168
  /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[11px] text-stone-500 truncate block mt-1 tracking-wide" }, isSearching ? huddle.timeString : huddle.timeString.split("|")[1]?.trim() || huddle.timeString)),
6173
6169
  /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons35.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400 group-hover:text-black transition-colors" })
6174
6170
  )))), huddles.length > 0 && !isLoading && /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-4 mb-2" }, /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[10px] text-stone-400 tracking-widest uppercase" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react93.default.createElement(
package/dist/index.mjs CHANGED
@@ -4918,7 +4918,7 @@ var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
4918
4918
  month = parts[1].substring(0, 3).toUpperCase();
4919
4919
  }
4920
4920
  }
4921
- return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full rounded-lg bg-white flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ React49.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ React49.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ React49.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4921
+ return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full aspect-square rounded-lg bg-neutral-100 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ React49.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ React49.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ React49.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4922
4922
  };
4923
4923
  var PageSpinner6 = () => /* @__PURE__ */ React49.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: Loading03Icon22, size: 32, className: "animate-spin mb-4 text-black" }));
4924
4924
  var UniversalHuddlesPage = ({
@@ -5247,8 +5247,7 @@ import {
5247
5247
  CancelCircleIcon as CancelCircleIcon13,
5248
5248
  ArrowUpRight01Icon as ArrowUpRight01Icon3,
5249
5249
  Robot01Icon,
5250
- Logout01Icon,
5251
- Tick02Icon as Tick02Icon2
5250
+ Logout01Icon
5252
5251
  } from "@hugeicons/core-free-icons";
5253
5252
  var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
5254
5253
  const [loaded, setLoaded] = useState36(false);
@@ -5416,7 +5415,7 @@ var UniversalHome2 = ({
5416
5415
  },
5417
5416
  /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Logout01Icon, size: 15 }),
5418
5417
  "Log Out"
5419
- )))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon13, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React51.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-xs tracking-wide" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Tick02Icon2, size: 12 }), " Action Completed")) : /* @__PURE__ */ React51.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
5418
+ )))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon13, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "" }) : /* @__PURE__ */ React51.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
5420
5419
  "button",
5421
5420
  {
5422
5421
  onClick: () => handleResolve("ACCEPTED"),
@@ -6092,11 +6091,7 @@ import {
6092
6091
  } from "@hugeicons/core-free-icons";
6093
6092
  var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
6094
6093
  var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
6095
- var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
6096
- const [loaded, setLoaded] = useState39(false);
6097
- const [error, setError] = useState39(false);
6098
- const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
6099
- const finalSrc = error || !src ? defaultAvatar : src;
6094
+ var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
6100
6095
  const getStatusColor = () => {
6101
6096
  switch (status?.toUpperCase()) {
6102
6097
  case "SCHEDULED":
@@ -6111,16 +6106,16 @@ var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
6111
6106
  return "bg-stone-200";
6112
6107
  }
6113
6108
  };
6114
- return /* @__PURE__ */ React54.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React54.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React54.createElement(HugeiconsIcon40, { icon: Loading03Icon27, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React54.createElement(
6115
- "img",
6116
- {
6117
- src: finalSrc,
6118
- alt: "Huddle Avatar",
6119
- className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`,
6120
- onLoad: () => setLoaded(true),
6121
- onError: () => setError(true)
6109
+ let day = "--";
6110
+ let month = "---";
6111
+ if (timeString) {
6112
+ const parts = timeString.split(" ");
6113
+ if (parts.length >= 2) {
6114
+ day = parts[0];
6115
+ month = parts[1].substring(0, 3).toUpperCase();
6122
6116
  }
6123
- )), /* @__PURE__ */ React54.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
6117
+ }
6118
+ return /* @__PURE__ */ React54.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ React54.createElement("div", { className: "w-full h-full aspect-square rounded-lg bg-neutral-100 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ React54.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ React54.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ React54.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
6124
6119
  };
6125
6120
  var HomeHuddleCalendar = ({
6126
6121
  huddles = [],
@@ -6240,7 +6235,7 @@ var HomeHuddleCalendar = ({
6240
6235
  onClick: () => router.push(`/app/huddles/${huddle.id}`),
6241
6236
  className: "flex flex-row items-center gap-4 py-3 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
6242
6237
  },
6243
- /* @__PURE__ */ React54.createElement(HuddleAvatar2, { src: huddle.imageUrl, status: huddle.status }),
6238
+ /* @__PURE__ */ React54.createElement(HuddleAvatar2, { timeString: huddle.timeString, status: huddle.status }),
6244
6239
  /* @__PURE__ */ React54.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React54.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ React54.createElement("span", { className: "text-[11px] text-stone-500 truncate block mt-1 tracking-wide" }, isSearching ? huddle.timeString : huddle.timeString.split("|")[1]?.trim() || huddle.timeString)),
6245
6240
  /* @__PURE__ */ React54.createElement(HugeiconsIcon40, { icon: ArrowRight01Icon15, size: 14, className: "shrink-0 text-stone-400 group-hover:text-black transition-colors" })
6246
6241
  )))), huddles.length > 0 && !isLoading && /* @__PURE__ */ React54.createElement("div", { className: "flex items-center justify-between pt-6 mt-4 mb-2" }, /* @__PURE__ */ React54.createElement("span", { className: "text-[10px] text-stone-400 tracking-widest uppercase" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React54.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React54.createElement(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retinalabsllc/zairusjs",
3
- "version": "21.0.7",
3
+ "version": "21.0.9",
4
4
  "description": "A perceptive, Ai data driven Next.js UI component library.",
5
5
  "author": "Retina Labs Company",
6
6
  "license": "MIT",