@retinalabsllc/zairusjs 16.1.90 → 16.2.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.
package/dist/index.js CHANGED
@@ -64,10 +64,10 @@ __export(index_exports, {
64
64
  UniversalBuyCryptoPage: () => UniversalBuyCryptoPage,
65
65
  UniversalCardActionPage: () => UniversalCardActionPage,
66
66
  UniversalCardPage: () => UniversalCardPage,
67
- UniversalDepartmentsPage: () => UniversalDepartmentsPage,
68
67
  UniversalErrorView: () => UniversalErrorView,
69
68
  UniversalHome2: () => UniversalHome2,
70
69
  UniversalHomeView: () => UniversalHomeView,
70
+ UniversalHuddlesPage: () => UniversalHuddlesPage,
71
71
  UniversalMembersPage: () => UniversalMembersPage,
72
72
  UniversalOrganizationPage: () => UniversalOrganizationPage,
73
73
  UniversalProfilePage: () => UniversalProfilePage,
@@ -1700,7 +1700,7 @@ var ConfirmationDialog = ({
1700
1700
  {
1701
1701
  onClick: onConfirm,
1702
1702
  disabled: isProcessing,
1703
- className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-black hover:bg-neutral-50" : "text-black hover:bg-neutral-50"}`
1703
+ className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-rose-600 hover:bg-neutral-50" : "text-black hover:bg-neutral-50"}`
1704
1704
  },
1705
1705
  isProcessing ? /* @__PURE__ */ import_react27.default.createElement(import_react28.HugeiconsIcon, { icon: import_core_free_icons9.Loading03Icon, className: "animate-spin", size: 18 }) : confirmText
1706
1706
  ))));
@@ -4514,67 +4514,68 @@ var UniversalBuyCryptoPage = ({
4514
4514
  }))))));
4515
4515
  };
4516
4516
 
4517
- // src/components/UniversalDepartmentsPage.tsx
4517
+ // src/components/UniversalHuddlesPage.tsx
4518
4518
  var import_react77 = __toESM(require("react"));
4519
- var import_react_hot_toast13 = __toESM(require("react-hot-toast"));
4520
4519
  var import_react78 = require("@hugeicons/react");
4521
4520
  var import_core_free_icons27 = require("@hugeicons/core-free-icons");
4522
- var formatMembersCount = (num) => {
4523
- if (num >= 1e6) return (num / 1e6).toFixed(1) + "m";
4524
- if (num >= 1e3) return (num / 1e3).toFixed(1) + "k";
4525
- return num.toString();
4521
+ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
4522
+ const [loaded, setLoaded] = (0, import_react77.useState)(false);
4523
+ const [error, setError] = (0, import_react77.useState)(false);
4524
+ const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
4525
+ const finalSrc = error || !src ? defaultAvatar : src;
4526
+ const getStatusColor = () => {
4527
+ switch (status?.toUpperCase()) {
4528
+ case "SCHEDULED":
4529
+ return "bg-amber-500";
4530
+ case "ONGOING":
4531
+ return "bg-emerald-500";
4532
+ case "COMPLETED":
4533
+ return "bg-neutral-400";
4534
+ case "CANCELLED":
4535
+ return "bg-rose-500";
4536
+ default:
4537
+ return "bg-neutral-200";
4538
+ }
4539
+ };
4540
+ return /* @__PURE__ */ import_react77.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full h-full rounded-lg bg-neutral-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, className: "animate-spin text-neutral-400 absolute", size: 14 }), /* @__PURE__ */ import_react77.default.createElement(
4541
+ "img",
4542
+ {
4543
+ src: finalSrc,
4544
+ alt: "Huddle Avatar",
4545
+ className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`,
4546
+ onLoad: () => setLoaded(true),
4547
+ onError: () => setError(true)
4548
+ }
4549
+ )), /* @__PURE__ */ import_react77.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4526
4550
  };
4527
4551
  var PageSpinner6 = () => /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
4528
- var UniversalDepartmentsPage = ({
4552
+ var UniversalHuddlesPage = ({
4529
4553
  headerTitle,
4530
4554
  headerDescription,
4531
- departments,
4555
+ huddles,
4532
4556
  isLoading,
4533
4557
  currentPage,
4534
4558
  totalPages,
4535
4559
  onPageChange,
4536
- onDepartmentClick,
4537
- onCreateDepartment
4560
+ onHuddleClick,
4561
+ onCreateHuddle
4538
4562
  }) => {
4539
- const [isCreateModalOpen, setIsCreateModalOpen] = (0, import_react77.useState)(false);
4540
- const [deptName, setDeptName] = (0, import_react77.useState)("");
4541
- const [isCreating, setIsCreating] = (0, import_react77.useState)(false);
4542
- const handleCreateSubmit = async (e) => {
4543
- e.preventDefault();
4544
- if (deptName.length < 2 || isCreating || !onCreateDepartment) return;
4545
- setIsCreating(true);
4546
- try {
4547
- await onCreateDepartment(deptName);
4548
- setDeptName("");
4549
- setIsCreateModalOpen(false);
4550
- } catch (error) {
4551
- import_react_hot_toast13.default.error(error.message || "Failed to create department.");
4552
- } finally {
4553
- setIsCreating(false);
4554
- }
4555
- };
4556
- return /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react77.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, headerTitle), onCreateDepartment && /* @__PURE__ */ import_react77.default.createElement(
4563
+ return /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react77.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, headerTitle), onCreateHuddle && /* @__PURE__ */ import_react77.default.createElement(
4557
4564
  "button",
4558
4565
  {
4559
- onClick: () => setIsCreateModalOpen(true),
4566
+ onClick: onCreateHuddle,
4560
4567
  className: "shrink-0 px-4 py-1.5 border border-neutral-200 text-black text-[12px] tracking-wide rounded-full hover:bg-neutral-50 transition-colors outline-none"
4561
4568
  },
4562
4569
  "Create new"
4563
- )), headerDescription && /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-[12px] text-neutral-500" }, headerDescription)), /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ import_react77.default.createElement(PageSpinner6, null) : /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react77.default.createElement("div", null, departments.length === 0 ? /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-[12px] text-neutral-400 py-6 text-center" }, "No departments available") : departments.map((dept) => /* @__PURE__ */ import_react77.default.createElement(
4570
+ )), headerDescription && /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-[12px] text-neutral-500" }, headerDescription)), /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ import_react77.default.createElement(PageSpinner6, null) : /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react77.default.createElement("div", null, huddles.length === 0 ? /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-[12px] text-neutral-400 py-6 text-center" }, "No huddles available") : huddles.map((huddle) => /* @__PURE__ */ import_react77.default.createElement(
4564
4571
  "div",
4565
4572
  {
4566
- key: dept.id,
4567
- onClick: () => onDepartmentClick(dept.id),
4573
+ key: huddle.id,
4574
+ onClick: () => onHuddleClick(huddle.id),
4568
4575
  className: "flex flex-row items-center gap-4 py-2 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
4569
4576
  },
4570
- /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-[13px] text-black tracking-tight truncate" }, dept.name), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center gap-3 min-w-0" }, dept.avatars && dept.avatars.length > 0 && /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center -space-x-2 shrink-0" }, dept.avatars.slice(0, 4).map((src, idx) => /* @__PURE__ */ import_react77.default.createElement("div", { key: idx, className: "w-4 h-4 rounded-md bg-neutral-100 overflow-hidden shrink-0" }, /* @__PURE__ */ import_react77.default.createElement(
4571
- "img",
4572
- {
4573
- src: src || "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif",
4574
- alt: "Member",
4575
- className: "w-full h-full object-cover"
4576
- }
4577
- )))), dept.totalMembers > 0 ? /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-[11px] text-neutral-500 truncate block" }, formatMembersCount(dept.totalMembers), " ", dept.totalMembers > 4 ? "+" : "") : /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-[11px] text-neutral-400 truncate block" }, "No Members"))),
4577
+ /* @__PURE__ */ import_react77.default.createElement(HuddleAvatar, { src: huddle.imageUrl, status: huddle.status }),
4578
+ /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-[13px] text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-[11px] text-neutral-500 truncate block mt-0.5" }, huddle.timeString)),
4578
4579
  /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons27.ArrowRight01Icon, size: 14, className: "shrink-0 text-neutral-400" })
4579
4580
  ))), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react77.default.createElement(
4580
4581
  "button",
@@ -4592,55 +4593,13 @@ var UniversalDepartmentsPage = ({
4592
4593
  className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
4593
4594
  },
4594
4595
  /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons27.ArrowRight01Icon, size: 14 })
4595
- )))))), isCreateModalOpen && /* @__PURE__ */ import_react77.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isCreating && setIsCreateModalOpen(false) }), /* @__PURE__ */ import_react77.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" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center justify-between pt-5 px-5 shrink-0 " }, /* @__PURE__ */ import_react77.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Create Department"), /* @__PURE__ */ import_react77.default.createElement(
4596
- "button",
4597
- {
4598
- onClick: () => setIsCreateModalOpen(false),
4599
- disabled: isCreating,
4600
- className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50"
4601
- },
4602
- /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons27.CancelCircleIcon, size: 18 })
4603
- )), /* @__PURE__ */ import_react77.default.createElement("div", { className: "p-6" }, /* @__PURE__ */ import_react77.default.createElement("form", { onSubmit: handleCreateSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react77.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Department Name"), /* @__PURE__ */ import_react77.default.createElement(
4604
- "input",
4605
- {
4606
- type: "text",
4607
- value: deptName,
4608
- onChange: (e) => setDeptName(e.target.value),
4609
- required: true,
4610
- autoFocus: true,
4611
- maxLength: 50,
4612
- disabled: isCreating,
4613
- className: "w-full px-2 py-3 bg-transparent text-sm border-b border-neutral-200 text-black outline-none focus:border-black transition-all duration-300 disabled:opacity-50",
4614
- placeholder: "e.g. Engineering, Marketing..."
4615
- }
4616
- )), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react77.default.createElement(
4617
- ThreeDActionButton,
4618
- {
4619
- type: "submit",
4620
- disabled: deptName.length < 2 || isCreating,
4621
- isLoading: isCreating,
4622
- className: "w-full"
4623
- },
4624
- "Create Department"
4625
- ), /* @__PURE__ */ import_react77.default.createElement(
4626
- "button",
4627
- {
4628
- type: "button",
4629
- onClick: () => {
4630
- setIsCreateModalOpen(false);
4631
- setDeptName("");
4632
- },
4633
- disabled: isCreating,
4634
- className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-xs tracking-wide"
4635
- },
4636
- "Cancel"
4637
4596
  )))))));
4638
4597
  };
4639
4598
 
4640
4599
  // src/components/UniversalMembersPage.tsx
4641
4600
  var import_react79 = __toESM(require("react"));
4642
4601
  var import_react80 = require("@hugeicons/react");
4643
- var import_react_hot_toast14 = __toESM(require("react-hot-toast"));
4602
+ var import_react_hot_toast13 = __toESM(require("react-hot-toast"));
4644
4603
  var import_core_free_icons28 = require("@hugeicons/core-free-icons");
4645
4604
  var MemberAvatar = ({ src, status }) => {
4646
4605
  const [loaded, setLoaded] = (0, import_react79.useState)(false);
@@ -4735,11 +4694,11 @@ var UniversalMembersPage = ({
4735
4694
  setIsRemoving(true);
4736
4695
  try {
4737
4696
  await onRemoveMember(memberToRemove.id);
4738
- import_react_hot_toast14.default.success("Member removed successfully.");
4697
+ import_react_hot_toast13.default.success("Member removed successfully.");
4739
4698
  setExpandedId(null);
4740
4699
  setMemberToRemove(null);
4741
4700
  } catch (error) {
4742
- import_react_hot_toast14.default.error("Failed to remove member.");
4701
+ import_react_hot_toast13.default.error("Failed to remove member.");
4743
4702
  } finally {
4744
4703
  setIsRemoving(false);
4745
4704
  }
@@ -4753,7 +4712,7 @@ var UniversalMembersPage = ({
4753
4712
  setInviteEmail("");
4754
4713
  setIsInviteMode(false);
4755
4714
  } catch (error) {
4756
- import_react_hot_toast14.default.error(error.message || "Failed to send invitation.");
4715
+ import_react_hot_toast13.default.error(error.message || "Failed to send invitation.");
4757
4716
  } finally {
4758
4717
  setIsInviting(false);
4759
4718
  }
@@ -4900,15 +4859,29 @@ var UniversalMembersPage = ({
4900
4859
  var import_react81 = __toESM(require("react"));
4901
4860
  var import_navigation6 = require("next/navigation");
4902
4861
  var import_react82 = require("@hugeicons/react");
4903
- var import_react_hot_toast15 = __toESM(require("react-hot-toast"));
4862
+ var import_react_hot_toast14 = __toESM(require("react-hot-toast"));
4904
4863
  var import_core_free_icons29 = require("@hugeicons/core-free-icons");
4864
+ var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
4865
+ const [loaded, setLoaded] = (0, import_react81.useState)(false);
4866
+ const [error, setError] = (0, import_react81.useState)(false);
4867
+ const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
4868
+ const finalSrc = error || !src ? defaultAvatar : src;
4869
+ return /* @__PURE__ */ import_react81.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-full h-full rounded-lg bg-neutral-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons29.Loading03Icon, className: "animate-spin text-neutral-400 absolute", size: 14 }), /* @__PURE__ */ import_react81.default.createElement(
4870
+ "img",
4871
+ {
4872
+ src: finalSrc,
4873
+ alt: "Workspace Avatar",
4874
+ className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`,
4875
+ onLoad: () => setLoaded(true),
4876
+ onError: () => setError(true)
4877
+ }
4878
+ )));
4879
+ };
4905
4880
  var UniversalHome2 = ({
4906
4881
  avatarSrc,
4907
- userStatus = "ACTIVE",
4908
4882
  organizations = [],
4909
4883
  activeOrgId,
4910
4884
  onOrganizationSelect,
4911
- barIcons = [],
4912
4885
  createHuddleAction,
4913
4886
  joinHuddleAction,
4914
4887
  notifications = [],
@@ -4920,7 +4893,7 @@ var UniversalHome2 = ({
4920
4893
  onResolveInvite,
4921
4894
  formatNotifDate,
4922
4895
  customContent,
4923
- departmentsProps,
4896
+ huddlesProps,
4924
4897
  onLogout
4925
4898
  }) => {
4926
4899
  const [isAvatarLoaded, setIsAvatarLoaded] = (0, import_react81.useState)(false);
@@ -4934,27 +4907,13 @@ var UniversalHome2 = ({
4934
4907
  const fallbackAvatarUrl = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
4935
4908
  const finalAvatarSrc = avatarSrc || fallbackAvatarUrl;
4936
4909
  const hasUnreadNotifs = notifications.some((n) => !n.isRead);
4937
- const getDisplayStatus = () => {
4938
- if (userStatus === "ACTIVE") return "Online";
4939
- if (userStatus === "BUSY") return "Busy";
4940
- if (userStatus === "OFFLINE") return "Offline";
4941
- if (userStatus === "AWAY") return "Away";
4942
- return "Online";
4943
- };
4944
- const getStatusColor = () => {
4945
- if (userStatus === "ACTIVE") return "bg-emerald-500";
4946
- if (userStatus === "BUSY") return "bg-amber-500";
4947
- if (userStatus === "OFFLINE") return "bg-rose-500";
4948
- if (userStatus === "AWAY") return "bg-neutral-400";
4949
- return "bg-emerald-500";
4950
- };
4951
4910
  const handleResolve = async (resolution) => {
4952
4911
  if (!onResolveInvite || !selectedNotif) return;
4953
4912
  setIsResolving(true);
4954
4913
  try {
4955
4914
  await onResolveInvite(selectedNotif, resolution);
4956
4915
  } catch (error) {
4957
- import_react_hot_toast15.default.error("Failed to process invitation");
4916
+ import_react_hot_toast14.default.error("Failed to process invitation");
4958
4917
  } finally {
4959
4918
  setIsResolving(false);
4960
4919
  }
@@ -4964,7 +4923,7 @@ var UniversalHome2 = ({
4964
4923
  try {
4965
4924
  if (onLogout) await onLogout();
4966
4925
  } catch (e) {
4967
- import_react_hot_toast15.default.error("Failed to log out cleanly.");
4926
+ import_react_hot_toast14.default.error("Failed to log out cleanly.");
4968
4927
  } finally {
4969
4928
  setIsLoggingOut(false);
4970
4929
  setShowLogoutConfirm(false);
@@ -5040,9 +4999,9 @@ var UniversalHome2 = ({
5040
4999
  }
5041
5000
  )
5042
5001
  ))), customContent && /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-full" }, customContent), /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-full mt-2" }, /* @__PURE__ */ import_react81.default.createElement(
5043
- UniversalDepartmentsPage,
5002
+ UniversalHuddlesPage,
5044
5003
  {
5045
- ...departmentsProps
5004
+ ...huddlesProps
5046
5005
  }
5047
5006
  )), showOrgSwitcher && /* @__PURE__ */ import_react81.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ import_react81.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_react81.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react81.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ import_react81.default.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons29.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col" }, organizations?.length === 0 ? /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-8 text-center text-xs text-neutral-400" }, "No organizations found.") : organizations?.map((org) => /* @__PURE__ */ import_react81.default.createElement(
5048
5007
  "button",
@@ -5054,6 +5013,7 @@ var UniversalHome2 = ({
5054
5013
  },
5055
5014
  className: `p-4 flex items-center justify-between gap-3 cursor-pointer outline-none transition-colors border-b border-neutral-50 last:border-0 ${activeOrgId === org.id ? "bg-neutral-50" : "hover:bg-neutral-50/50"}`
5056
5015
  },
5016
+ /* @__PURE__ */ import_react81.default.createElement(OrgAvatar, { src: org.avatarUrl }),
5057
5017
  /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col items-start min-w-0 flex-1" }, /* @__PURE__ */ import_react81.default.createElement("span", { className: `text-[13px] tracking-tight truncate w-full text-left ${activeOrgId === org.id ? "text-black " : "text-neutral-600"}` }, org.name), /* @__PURE__ */ import_react81.default.createElement("span", { className: "text-[11px] text-[#068afe] capitalize truncate w-full text-left mt-0.5" }, org.role?.toLowerCase() || "Member")),
5058
5018
  activeOrgId === org.id && /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-2 h-2 rounded-full bg-[#068afe] shrink-0" })
5059
5019
  )))), /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-4 shrink-0" }, /* @__PURE__ */ import_react81.default.createElement(
@@ -5115,13 +5075,59 @@ var UniversalHome2 = ({
5115
5075
  };
5116
5076
 
5117
5077
  // src/components/UniversalSettings.tsx
5078
+ var import_react85 = __toESM(require("react"));
5079
+ var import_react_hot_toast15 = __toESM(require("react-hot-toast"));
5080
+ var import_react86 = require("@hugeicons/react");
5081
+ var import_core_free_icons31 = require("@hugeicons/core-free-icons");
5082
+
5083
+ // src/components/ReusableOptions.tsx
5118
5084
  var import_react83 = __toESM(require("react"));
5119
- var import_react_hot_toast16 = __toESM(require("react-hot-toast"));
5120
5085
  var import_react84 = require("@hugeicons/react");
5121
5086
  var import_core_free_icons30 = require("@hugeicons/core-free-icons");
5087
+ var ReusableOptions = ({
5088
+ isOpen,
5089
+ onClose,
5090
+ title,
5091
+ options,
5092
+ selectedOption,
5093
+ onSelect,
5094
+ showSearch = false
5095
+ }) => {
5096
+ const [searchQuery, setSearchQuery] = (0, import_react83.useState)("");
5097
+ if (!isOpen) return null;
5098
+ const filteredOptions = options.filter(
5099
+ (opt) => opt.toLowerCase().includes(searchQuery.toLowerCase())
5100
+ );
5101
+ return /* @__PURE__ */ import_react83.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: onClose }), /* @__PURE__ */ import_react83.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]" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react83.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, title), /* @__PURE__ */ import_react83.default.createElement("button", { onClick: onClose, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.CancelCircleIcon, size: 18 }))), showSearch && /* @__PURE__ */ import_react83.default.createElement("div", { className: "p-4 shrink-0 " }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ import_react83.default.createElement(
5102
+ "input",
5103
+ {
5104
+ type: "text",
5105
+ placeholder: "Search...",
5106
+ value: searchQuery,
5107
+ onChange: (e) => setSearchQuery(e.target.value),
5108
+ className: "w-full pl-10 pr-4 py-2.5 bg-neutral-100 rounded-full text-[13px] text-black placeholder-neutral-400 outline-none focus:bg-neutral-200 transition-colors"
5109
+ }
5110
+ ))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, filteredOptions.length === 0 ? /* @__PURE__ */ import_react83.default.createElement("div", { className: "p-6 text-center text-[12px] text-neutral-400" }, "No options found.") : filteredOptions.map((opt) => {
5111
+ const isSelected = selectedOption === opt;
5112
+ return /* @__PURE__ */ import_react83.default.createElement(
5113
+ "button",
5114
+ {
5115
+ key: opt,
5116
+ onClick: () => {
5117
+ onSelect(opt);
5118
+ onClose();
5119
+ },
5120
+ className: `w-full text-left p-4 text-[13px] tracking-tight rounded-full transition-colors outline-none ${isSelected ? "text-[#068afe] bg-[#068afe]/10" : "text-neutral-600 hover:bg-neutral-50/50"}`
5121
+ },
5122
+ opt
5123
+ );
5124
+ }))));
5125
+ };
5126
+
5127
+ // src/components/UniversalSettings.tsx
5122
5128
  var MemberAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
5123
- const [loaded, setLoaded] = (0, import_react83.useState)(false);
5124
- const [error, setError] = (0, import_react83.useState)(false);
5129
+ const [loaded, setLoaded] = (0, import_react85.useState)(false);
5130
+ const [error, setError] = (0, import_react85.useState)(false);
5125
5131
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
5126
5132
  const finalSrc = error || !src ? defaultAvatar : src;
5127
5133
  const getStatusColor = () => {
@@ -5138,7 +5144,7 @@ var MemberAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
5138
5144
  return "bg-neutral-200";
5139
5145
  }
5140
5146
  };
5141
- 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-neutral-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Loading03Icon, className: "animate-spin text-neutral-400 absolute", size: 14 }), /* @__PURE__ */ import_react83.default.createElement(
5147
+ return /* @__PURE__ */ import_react85.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full h-full rounded-lg bg-neutral-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, className: "animate-spin text-neutral-400 absolute", size: 14 }), /* @__PURE__ */ import_react85.default.createElement(
5142
5148
  "img",
5143
5149
  {
5144
5150
  src: finalSrc,
@@ -5147,10 +5153,10 @@ var MemberAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
5147
5153
  onLoad: () => setLoaded(true),
5148
5154
  onError: () => setError(true)
5149
5155
  }
5150
- )), /* @__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()}` }));
5156
+ )), /* @__PURE__ */ import_react85.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
5151
5157
  };
5152
- var PageSpinner8 = () => /* @__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" }));
5153
- var InputSpinner3 = () => /* @__PURE__ */ import_react83.default.createElement("svg", { className: "animate-spin h-4 w-4 text-neutral-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ import_react83.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ import_react83.default.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" }));
5158
+ var PageSpinner8 = () => /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
5159
+ var InputSpinner3 = () => /* @__PURE__ */ import_react85.default.createElement("svg", { className: "animate-spin h-4 w-4 text-neutral-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ import_react85.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ import_react85.default.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" }));
5154
5160
  var UniversalSettings = ({
5155
5161
  accountType,
5156
5162
  userRole,
@@ -5184,41 +5190,31 @@ var UniversalSettings = ({
5184
5190
  const onBackHandler = onBack ?? (() => {
5185
5191
  if (typeof window !== "undefined") window.history.back();
5186
5192
  });
5187
- const [activeTab, setActiveTab] = (0, import_react83.useState)(accountType === "ORGANIZATION" ? "MEMBERS" : "ACCOUNT");
5188
- (0, import_react83.useEffect)(() => {
5193
+ const [activeTab, setActiveTab] = (0, import_react85.useState)(accountType === "ORGANIZATION" ? "MEMBERS" : "ACCOUNT");
5194
+ (0, import_react85.useEffect)(() => {
5189
5195
  if (accountType === "INDIVIDUAL" && activeTab === "MEMBERS") {
5190
5196
  setActiveTab("ACCOUNT");
5191
5197
  }
5192
5198
  }, [accountType, activeTab]);
5193
- const [expandedId, setExpandedId] = (0, import_react83.useState)(null);
5194
- const [memberToRemove, setMemberToRemove] = (0, import_react83.useState)(null);
5195
- const [isRemoving, setIsRemoving] = (0, import_react83.useState)(false);
5196
- const [isInviteMode, setIsInviteMode] = (0, import_react83.useState)(false);
5197
- const [inviteEmail, setInviteEmail] = (0, import_react83.useState)("");
5198
- const [isInviting, setIsInviting] = (0, import_react83.useState)(false);
5199
- const [localSearchQuery, setLocalSearchQuery] = (0, import_react83.useState)(membersSearchQuery);
5200
- const [isTyping, setIsTyping] = (0, import_react83.useState)(false);
5201
- const isFirstSearchMount = (0, import_react83.useRef)(true);
5202
- const [isStatusModalOpen, setIsStatusModalOpen] = (0, import_react83.useState)(false);
5203
- const [isRoleModalOpen, setIsRoleModalOpen] = (0, import_react83.useState)(false);
5204
- const statusDropdownRef = (0, import_react83.useRef)(null);
5205
- const roleDropdownRef = (0, import_react83.useRef)(null);
5206
- const [displayName, setDisplayName] = (0, import_react83.useState)(initialDisplayName);
5207
- const [slug, setSlug] = (0, import_react83.useState)(initialSlug);
5208
- const [isCheckingSlug, setIsCheckingSlug] = (0, import_react83.useState)(false);
5209
- const [slugAvailable, setSlugAvailable] = (0, import_react83.useState)(null);
5210
- const [isSavingAccount, setIsSavingAccount] = (0, import_react83.useState)(false);
5199
+ const [expandedId, setExpandedId] = (0, import_react85.useState)(null);
5200
+ const [memberToRemove, setMemberToRemove] = (0, import_react85.useState)(null);
5201
+ const [isRemoving, setIsRemoving] = (0, import_react85.useState)(false);
5202
+ const [isInviteMode, setIsInviteMode] = (0, import_react85.useState)(false);
5203
+ const [inviteEmail, setInviteEmail] = (0, import_react85.useState)("");
5204
+ const [isInviting, setIsInviting] = (0, import_react85.useState)(false);
5205
+ const [localSearchQuery, setLocalSearchQuery] = (0, import_react85.useState)(membersSearchQuery);
5206
+ const [isTyping, setIsTyping] = (0, import_react85.useState)(false);
5207
+ const isFirstSearchMount = (0, import_react85.useRef)(true);
5208
+ const [isStatusModalOpen, setIsStatusModalOpen] = (0, import_react85.useState)(false);
5209
+ const [isRoleModalOpen, setIsRoleModalOpen] = (0, import_react85.useState)(false);
5210
+ const [displayName, setDisplayName] = (0, import_react85.useState)(initialDisplayName);
5211
+ const [slug, setSlug] = (0, import_react85.useState)(initialSlug);
5212
+ const [isCheckingSlug, setIsCheckingSlug] = (0, import_react85.useState)(false);
5213
+ const [slugAvailable, setSlugAvailable] = (0, import_react85.useState)(null);
5214
+ const [isSavingAccount, setIsSavingAccount] = (0, import_react85.useState)(false);
5211
5215
  const isAccountReadOnly = accountType === "ORGANIZATION" && userRole !== "ADMIN" && userRole !== "MANAGER";
5212
5216
  const cleanEmailId = (val) => val.toLowerCase().replace(/[^a-z0-9@._-]/g, "");
5213
- (0, import_react83.useEffect)(() => {
5214
- function handleClickOutside(event) {
5215
- if (statusDropdownRef.current && !statusDropdownRef.current.contains(event.target)) setIsStatusModalOpen(false);
5216
- if (roleDropdownRef.current && !roleDropdownRef.current.contains(event.target)) setIsRoleModalOpen(false);
5217
- }
5218
- document.addEventListener("mousedown", handleClickOutside);
5219
- return () => document.removeEventListener("mousedown", handleClickOutside);
5220
- }, []);
5221
- (0, import_react83.useEffect)(() => {
5217
+ (0, import_react85.useEffect)(() => {
5222
5218
  if (activeTab !== "MEMBERS") return;
5223
5219
  if (isFirstSearchMount.current) {
5224
5220
  isFirstSearchMount.current = false;
@@ -5236,11 +5232,11 @@ var UniversalSettings = ({
5236
5232
  setIsRemoving(true);
5237
5233
  try {
5238
5234
  await onRemoveMember(memberToRemove.userId);
5239
- import_react_hot_toast16.default.success("Member removed successfully.");
5235
+ import_react_hot_toast15.default.success("Member removed successfully.");
5240
5236
  setExpandedId(null);
5241
5237
  setMemberToRemove(null);
5242
5238
  } catch (error) {
5243
- import_react_hot_toast16.default.error("Failed to remove member.");
5239
+ import_react_hot_toast15.default.error("Failed to remove member.");
5244
5240
  } finally {
5245
5241
  setIsRemoving(false);
5246
5242
  }
@@ -5254,19 +5250,19 @@ var UniversalSettings = ({
5254
5250
  setInviteEmail("");
5255
5251
  setIsInviteMode(false);
5256
5252
  } catch (error) {
5257
- import_react_hot_toast16.default.error(error.message || "Failed to send invitation.");
5253
+ import_react_hot_toast15.default.error(error.message || "Failed to send invitation.");
5258
5254
  } finally {
5259
5255
  setIsInviting(false);
5260
5256
  }
5261
5257
  };
5262
5258
  const activeExpandedMember = expandedId ? members.find((m) => m.id === expandedId) : null;
5263
- (0, import_react83.useEffect)(() => {
5259
+ (0, import_react85.useEffect)(() => {
5264
5260
  setDisplayName(initialDisplayName || "");
5265
5261
  setSlug(initialSlug || "");
5266
5262
  }, [initialDisplayName, initialSlug]);
5267
5263
  const handleDisplayNameChange = (val) => setDisplayName(val.replace(/[^a-zA-Z0-9\s-]/g, "").substring(0, 50));
5268
5264
  const handleSlugChange = (val) => setSlug(val.toLowerCase().replace(/[^a-z0-9-]/g, "").replace(/-+/g, "-").substring(0, 50));
5269
- (0, import_react83.useEffect)(() => {
5265
+ (0, import_react85.useEffect)(() => {
5270
5266
  if (!slug || slug === initialSlug) {
5271
5267
  setSlugAvailable(null);
5272
5268
  setIsCheckingSlug(false);
@@ -5297,7 +5293,7 @@ var UniversalSettings = ({
5297
5293
  e.preventDefault();
5298
5294
  if (isSavingAccount || isCheckingSlug || isAccountReadOnly || !onSaveAccount) return;
5299
5295
  if (slug !== initialSlug && slugAvailable === false) {
5300
- import_react_hot_toast16.default.error("Please select an available address handle.");
5296
+ import_react_hot_toast15.default.error("Please select an available address handle.");
5301
5297
  return;
5302
5298
  }
5303
5299
  setIsSavingAccount(true);
@@ -5308,19 +5304,19 @@ var UniversalSettings = ({
5308
5304
  };
5309
5305
  const res = await onSaveAccount(payload);
5310
5306
  if (res.success) {
5311
- import_react_hot_toast16.default.success("Profile updated successfully.");
5307
+ import_react_hot_toast15.default.success("Profile updated successfully.");
5312
5308
  } else {
5313
- import_react_hot_toast16.default.error(res.error || "Failed to update profile.");
5309
+ import_react_hot_toast15.default.error(res.error || "Failed to update profile.");
5314
5310
  }
5315
5311
  } catch (error) {
5316
- import_react_hot_toast16.default.error("Service unavailable. Try again later.");
5312
+ import_react_hot_toast15.default.error("Service unavailable. Try again later.");
5317
5313
  } finally {
5318
5314
  setIsSavingAccount(false);
5319
5315
  }
5320
5316
  };
5321
5317
  const hasAccountChanges = displayName !== initialDisplayName || slug !== initialSlug;
5322
5318
  const isAccountSaveDisabled = isSavingAccount || isAccountReadOnly || isCheckingSlug || !hasAccountChanges || displayName.length < 3 || slug.length < 3 || slug !== initialSlug && slugAvailable === false;
5323
- return /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react83.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react83.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react83.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-[#068afe] hover:text-[#068afe] transition-colors text-[13px] outline-none" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ import_react83.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "System Settings"), /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your workspace identity, team configurations, and AI billing parameters.")), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-6 border-b border-neutral-200 mb-6 overflow-x-auto custom-scrollbar px-1" }, accountType === "ORGANIZATION" && /* @__PURE__ */ import_react83.default.createElement(
5319
+ return /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react85.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react85.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-[#068afe] hover:text-[#068afe] transition-colors text-[13px] outline-none" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ import_react85.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "System Settings"), /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your workspace identity, team configurations, and AI billing parameters.")), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center gap-6 mb-6 overflow-x-auto custom-scrollbar px-1" }, accountType === "ORGANIZATION" && /* @__PURE__ */ import_react85.default.createElement(
5324
5320
  "button",
5325
5321
  {
5326
5322
  onClick: () => {
@@ -5331,21 +5327,21 @@ var UniversalSettings = ({
5331
5327
  className: `pb-3 text-[13px] tracking-wide outline-none transition-colors border-b-2 whitespace-nowrap ${activeTab === "MEMBERS" ? "border-black text-black" : "border-transparent text-neutral-500 hover:text-black"}`
5332
5328
  },
5333
5329
  "Members"
5334
- ), /* @__PURE__ */ import_react83.default.createElement(
5330
+ ), /* @__PURE__ */ import_react85.default.createElement(
5335
5331
  "button",
5336
5332
  {
5337
5333
  onClick: () => setActiveTab("ACCOUNT"),
5338
5334
  className: `pb-3 text-[13px] tracking-wide outline-none transition-colors border-b-2 whitespace-nowrap ${activeTab === "ACCOUNT" ? "border-black text-black" : "border-transparent text-neutral-500 hover:text-black"}`
5339
5335
  },
5340
5336
  "Account Profile"
5341
- ), /* @__PURE__ */ import_react83.default.createElement(
5337
+ ), /* @__PURE__ */ import_react85.default.createElement(
5342
5338
  "button",
5343
5339
  {
5344
5340
  onClick: () => setActiveTab("BILLING"),
5345
5341
  className: `pb-3 text-[13px] tracking-wide outline-none transition-colors border-b-2 whitespace-nowrap ${activeTab === "BILLING" ? "border-black text-black" : "border-transparent text-neutral-500 hover:text-black"}`
5346
5342
  },
5347
5343
  "Billing"
5348
- )), activeTab === "MEMBERS" && accountType === "ORGANIZATION" && /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react83.default.createElement(
5344
+ )), activeTab === "MEMBERS" && accountType === "ORGANIZATION" && /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement(
5349
5345
  ConfirmationDialog,
5350
5346
  {
5351
5347
  isOpen: !!memberToRemove,
@@ -5358,7 +5354,7 @@ var UniversalSettings = ({
5358
5354
  onClose: () => setMemberToRemove(null),
5359
5355
  onConfirm: handleConfirmRemove
5360
5356
  }
5361
- ), !isInviteMode && !activeExpandedMember && /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full px-1" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ import_react83.default.createElement(
5357
+ ), !isInviteMode && !activeExpandedMember && /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full px-1" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ import_react85.default.createElement(
5362
5358
  "input",
5363
5359
  {
5364
5360
  type: "text",
@@ -5367,28 +5363,28 @@ var UniversalSettings = ({
5367
5363
  onChange: (e) => setLocalSearchQuery(e.target.value),
5368
5364
  className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black placeholder-neutral-400 outline-none transition-colors focus:border-black"
5369
5365
  }
5370
- )), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ import_react83.default.createElement(
5366
+ )), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ import_react85.default.createElement(
5371
5367
  "button",
5372
5368
  {
5373
5369
  onClick: () => setIsStatusModalOpen(true),
5374
5370
  className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-neutral-500 hover:text-black transition-colors outline-none"
5375
5371
  },
5376
- /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.SearchList02Icon, size: 16 })
5377
- ), /* @__PURE__ */ import_react83.default.createElement(
5372
+ /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.SearchList02Icon, size: 16 })
5373
+ ), /* @__PURE__ */ import_react85.default.createElement(
5378
5374
  "button",
5379
5375
  {
5380
5376
  onClick: () => setIsRoleModalOpen(true),
5381
5377
  className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-neutral-500 hover:text-black transition-colors outline-none"
5382
5378
  },
5383
- /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.ListSettingIcon, size: 16 })
5384
- ))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, activeExpandedMember ? /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col animate-in fade-in zoom-in-95 duration-300 w-full" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col gap-1 mb-8" }, /* @__PURE__ */ import_react83.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Member Profile"), /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[12px] text-neutral-500" }, "View and manage this member's access privileges.")), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-4 mb-8" }, /* @__PURE__ */ import_react83.default.createElement(MemberAvatar2, { src: activeExpandedMember.avatarUrl, status: activeExpandedMember.status, sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-sm text-black tracking-tight truncate" }, activeExpandedMember.fullName), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[12px] text-neutral-500 capitalize" }, activeExpandedMember.role.toLowerCase()))), activeExpandedMember.departmentName && /* @__PURE__ */ import_react83.default.createElement("div", { className: "mb-8" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-1" }, "Assigned Department"), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[12px] text-black truncate block" }, activeExpandedMember.departmentName)), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col sm:flex-row gap-3 pt-6 " }, !isAccountReadOnly && /* @__PURE__ */ import_react83.default.createElement(
5379
+ /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.ListSettingIcon, size: 16 })
5380
+ ))), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, activeExpandedMember ? /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col animate-in fade-in zoom-in-95 duration-300 w-full" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-1 mb-8" }, /* @__PURE__ */ import_react85.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Member Profile"), /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[12px] text-neutral-500" }, "View and manage this member's access privileges.")), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center gap-4 mb-8" }, /* @__PURE__ */ import_react85.default.createElement(MemberAvatar2, { src: activeExpandedMember.avatarUrl, status: activeExpandedMember.status, sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react85.default.createElement("span", { className: "text-sm text-black tracking-tight truncate" }, activeExpandedMember.fullName), /* @__PURE__ */ import_react85.default.createElement("span", { className: "text-[12px] text-neutral-500 capitalize" }, activeExpandedMember.role.toLowerCase()))), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col sm:flex-row gap-3 pt-6 " }, !isAccountReadOnly && /* @__PURE__ */ import_react85.default.createElement(
5385
5381
  "button",
5386
5382
  {
5387
5383
  onClick: () => setMemberToRemove(activeExpandedMember),
5388
5384
  className: "w-full sm:flex-1 py-2.5 bg-white border border-rose-200 text-rose-600 hover:bg-rose-50 rounded-full text-[12px] tracking-wide transition-colors outline-none"
5389
5385
  },
5390
5386
  "Remove Access"
5391
- ), /* @__PURE__ */ import_react83.default.createElement(
5387
+ ), /* @__PURE__ */ import_react85.default.createElement(
5392
5388
  "button",
5393
5389
  {
5394
5390
  onClick: () => setExpandedId(null),
@@ -5397,14 +5393,14 @@ var UniversalSettings = ({
5397
5393
  "Close Profile"
5398
5394
  ))) : (
5399
5395
  // Standard List & Invite Header
5400
- /* @__PURE__ */ import_react83.default.createElement(import_react83.default.Fragment, null, /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react83.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, isInviteMode ? "Add Member" : "Team Directory"), !isInviteMode && !isAccountReadOnly && /* @__PURE__ */ import_react83.default.createElement(
5396
+ /* @__PURE__ */ import_react85.default.createElement(import_react85.default.Fragment, null, /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react85.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, isInviteMode ? "Add Member" : "Team Directory"), !isInviteMode && !isAccountReadOnly && /* @__PURE__ */ import_react85.default.createElement(
5401
5397
  "button",
5402
5398
  {
5403
5399
  onClick: () => setIsInviteMode(true),
5404
5400
  className: "shrink-0 px-4 py-1.5 border border-neutral-200 text-black text-[12px] tracking-wide rounded-full hover:bg-neutral-50 transition-colors outline-none"
5405
5401
  },
5406
5402
  "Invite Team"
5407
- )), !isInviteMode && /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[12px] text-neutral-500" }, "Manage members and access controls across your organization.")), /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full overflow-hidden" }, isInviteMode ? /* @__PURE__ */ import_react83.default.createElement("form", { onSubmit: handleInviteSubmit, className: "flex flex-col gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "space-y-1.5 mt-2" }, /* @__PURE__ */ import_react83.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ import_react83.default.createElement(
5403
+ )), !isInviteMode && /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[12px] text-neutral-500" }, "Manage members and access controls across your organization.")), /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full overflow-hidden" }, isInviteMode ? /* @__PURE__ */ import_react85.default.createElement("form", { onSubmit: handleInviteSubmit, className: "flex flex-col gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "space-y-1.5 mt-2" }, /* @__PURE__ */ import_react85.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ import_react85.default.createElement(
5408
5404
  "input",
5409
5405
  {
5410
5406
  type: "email",
@@ -5415,7 +5411,7 @@ var UniversalSettings = ({
5415
5411
  className: "w-full px-2 py-3 bg-transparent text-sm border-b border-neutral-200 text-black outline-none focus:border-black transition-all duration-300",
5416
5412
  placeholder: "name@company.com"
5417
5413
  }
5418
- )), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react83.default.createElement(
5414
+ )), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react85.default.createElement(
5419
5415
  ThreeDActionButton,
5420
5416
  {
5421
5417
  type: "submit",
@@ -5424,7 +5420,7 @@ var UniversalSettings = ({
5424
5420
  className: "w-full"
5425
5421
  },
5426
5422
  "Send Invitation"
5427
- ), /* @__PURE__ */ import_react83.default.createElement(
5423
+ ), /* @__PURE__ */ import_react85.default.createElement(
5428
5424
  "button",
5429
5425
  {
5430
5426
  type: "button",
@@ -5436,54 +5432,52 @@ var UniversalSettings = ({
5436
5432
  className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-xs tracking-wide"
5437
5433
  },
5438
5434
  "Cancel"
5439
- ))) : isMembersLoading || isTyping ? /* @__PURE__ */ import_react83.default.createElement(PageSpinner8, null) : /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react83.default.createElement("div", null, members.length === 0 ? /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[12px] text-neutral-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ import_react83.default.createElement(
5435
+ ))) : isMembersLoading || isTyping ? /* @__PURE__ */ import_react85.default.createElement(PageSpinner8, null) : /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement("div", null, members.length === 0 ? /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[12px] text-neutral-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ import_react85.default.createElement(
5440
5436
  "div",
5441
5437
  {
5442
5438
  key: member.id,
5443
5439
  onClick: () => setExpandedId(member.id),
5444
5440
  className: "flex items-center justify-between py-3 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
5445
5441
  },
5446
- /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react83.default.createElement(MemberAvatar2, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ import_react83.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[13px] text-black truncate" }, member.fullName), /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[11px] text-neutral-500 capitalize truncate" }, member.role.toLowerCase())))
5447
- ))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react83.default.createElement(
5442
+ /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react85.default.createElement(MemberAvatar2, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ import_react85.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[13px] text-black truncate" }, member.fullName), /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[11px] text-neutral-500 capitalize truncate" }, member.role.toLowerCase())))
5443
+ ))), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react85.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react85.default.createElement(
5448
5444
  "button",
5449
5445
  {
5450
5446
  onClick: () => onMembersPageChange(membersCurrentPage - 1),
5451
5447
  disabled: membersCurrentPage <= 1 || isMembersLoading,
5452
5448
  className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
5453
5449
  },
5454
- /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.ArrowLeft01Icon, size: 14 })
5455
- ), /* @__PURE__ */ import_react83.default.createElement(
5450
+ /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 14 })
5451
+ ), /* @__PURE__ */ import_react85.default.createElement(
5456
5452
  "button",
5457
5453
  {
5458
5454
  onClick: () => onMembersPageChange(membersCurrentPage + 1),
5459
5455
  disabled: membersCurrentPage >= membersTotalPages || isMembersLoading || membersTotalPages === 0,
5460
5456
  className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
5461
5457
  },
5462
- /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.ArrowRight01Icon, size: 14 })
5458
+ /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.ArrowRight01Icon, size: 14 })
5463
5459
  ))))))
5464
- )), isStatusModalOpen && /* @__PURE__ */ import_react83.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => setIsStatusModalOpen(false) }), /* @__PURE__ */ import_react83.default.createElement("div", { ref: statusDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ import_react83.default.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Status Filter")), /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"].map((option) => /* @__PURE__ */ import_react83.default.createElement(
5465
- "button",
5466
- {
5467
- key: option,
5468
- onClick: () => {
5469
- onStatusFilterChange(option);
5470
- setIsStatusModalOpen(false);
5471
- },
5472
- className: `text-left px-4 py-3 text-[11px] tracking-wide transition-colors rounded-full flex items-center justify-between outline-none ${activeStatusFilter === option ? "bg-neutral-100 text-black" : "text-neutral-500 hover:bg-neutral-50 hover:text-black"}`
5473
- },
5474
- /* @__PURE__ */ import_react83.default.createElement("span", { className: "truncate pr-2 capitalize" }, option.toLowerCase())
5475
- ))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full flex mt-2" }, /* @__PURE__ */ import_react83.default.createElement("button", { onClick: () => setIsStatusModalOpen(false), className: "w-full py-4 text-[13px] text-[#068afe] hover:text-[#068afe] transition-colors outline-none" }, "Cancel")))), isRoleModalOpen && /* @__PURE__ */ import_react83.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => setIsRoleModalOpen(false) }), /* @__PURE__ */ import_react83.default.createElement("div", { ref: roleDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ import_react83.default.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Role Filter")), /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "ADMIN", "MANAGER", "MEMBER", "GUEST"].map((option) => /* @__PURE__ */ import_react83.default.createElement(
5476
- "button",
5477
- {
5478
- key: option,
5479
- onClick: () => {
5480
- onRoleFilterChange(option);
5481
- setIsRoleModalOpen(false);
5482
- },
5483
- className: `text-left px-4 py-3 text-[11px] tracking-wide transition-colors rounded-full flex items-center justify-between outline-none ${activeRoleFilter === option ? "bg-neutral-100 text-black" : "text-neutral-500 hover:bg-neutral-50 hover:text-black"}`
5484
- },
5485
- /* @__PURE__ */ import_react83.default.createElement("span", { className: "truncate pr-2 capitalize" }, option.toLowerCase())
5486
- ))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full flex mt-2" }, /* @__PURE__ */ import_react83.default.createElement("button", { onClick: () => setIsRoleModalOpen(false), className: "w-full py-4 text-[13px] text-[#068afe] hover:text-[#068afe] transition-colors outline-none" }, "Cancel"))))), activeTab === "ACCOUNT" && /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react83.default.createElement("div", null, /* @__PURE__ */ import_react83.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Public Profile"), /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your workspace identifiers and structural configuration details.")), isAccountReadOnly && /* @__PURE__ */ import_react83.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.CircleLock02Icon, size: 18, className: "text-current" }))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ import_react83.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSaveAccount, autoComplete: "off" }, /* @__PURE__ */ import_react83.default.createElement(
5460
+ )), /* @__PURE__ */ import_react85.default.createElement(
5461
+ ReusableOptions,
5462
+ {
5463
+ isOpen: isStatusModalOpen,
5464
+ onClose: () => setIsStatusModalOpen(false),
5465
+ title: "Status Filter",
5466
+ options: ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"],
5467
+ selectedOption: activeStatusFilter,
5468
+ onSelect: (status) => onStatusFilterChange(status)
5469
+ }
5470
+ ), /* @__PURE__ */ import_react85.default.createElement(
5471
+ ReusableOptions,
5472
+ {
5473
+ isOpen: isRoleModalOpen,
5474
+ onClose: () => setIsRoleModalOpen(false),
5475
+ title: "Role Filter",
5476
+ options: ["ALL", "ADMIN", "MANAGER", "MEMBER", "GUEST"],
5477
+ selectedOption: activeRoleFilter,
5478
+ onSelect: (role) => onRoleFilterChange(role)
5479
+ }
5480
+ )), activeTab === "ACCOUNT" && /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react85.default.createElement("div", null, /* @__PURE__ */ import_react85.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Public Profile"), /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your workspace identifiers and structural configuration details.")), isAccountReadOnly && /* @__PURE__ */ import_react85.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.CircleLock02Icon, size: 18, className: "text-current" }))), /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ import_react85.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSaveAccount, autoComplete: "off" }, /* @__PURE__ */ import_react85.default.createElement(
5487
5481
  TextInput,
5488
5482
  {
5489
5483
  label: "Display Name",
@@ -5493,7 +5487,7 @@ var UniversalSettings = ({
5493
5487
  placeholder: "Sovereign User",
5494
5488
  maxLength: 50
5495
5489
  }
5496
- ), accountType === "ORGANIZATION" && /* @__PURE__ */ import_react83.default.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ import_react83.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Workspace Handle"), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-200 focus-within:border-black transition-all duration-300 overflow-hidden" }, /* @__PURE__ */ import_react83.default.createElement(
5490
+ ), accountType === "ORGANIZATION" && /* @__PURE__ */ import_react85.default.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ import_react85.default.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Workspace Handle"), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-200 focus-within:border-black transition-all duration-300 overflow-hidden" }, /* @__PURE__ */ import_react85.default.createElement(
5497
5491
  "input",
5498
5492
  {
5499
5493
  type: "text",
@@ -5505,7 +5499,7 @@ var UniversalSettings = ({
5505
5499
  className: "w-full pr-10 pl-0 py-3 text-sm bg-transparent text-black outline-none disabled:opacity-50 disabled:cursor-not-allowed",
5506
5500
  placeholder: "workspace-handle"
5507
5501
  }
5508
- ), /* @__PURE__ */ import_react83.default.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ import_react83.default.createElement(InputSpinner3, null), !isCheckingSlug && !isAccountReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === false && /* @__PURE__ */ import_react83.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ import_react83.default.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react83.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && !isAccountReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === true && /* @__PURE__ */ import_react83.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ import_react83.default.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react83.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ import_react83.default.createElement(
5502
+ ), /* @__PURE__ */ import_react85.default.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ import_react85.default.createElement(InputSpinner3, null), !isCheckingSlug && !isAccountReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === false && /* @__PURE__ */ import_react85.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ import_react85.default.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react85.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && !isAccountReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === true && /* @__PURE__ */ import_react85.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ import_react85.default.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react85.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ import_react85.default.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ import_react85.default.createElement(
5509
5503
  ThreeDActionButton,
5510
5504
  {
5511
5505
  type: "submit",
@@ -5514,7 +5508,7 @@ var UniversalSettings = ({
5514
5508
  className: "min-w-32"
5515
5509
  },
5516
5510
  "Save Changes"
5517
- ), hasAccountChanges && !isSavingAccount && !isAccountReadOnly && /* @__PURE__ */ import_react83.default.createElement(
5511
+ ), hasAccountChanges && !isSavingAccount && !isAccountReadOnly && /* @__PURE__ */ import_react85.default.createElement(
5518
5512
  "button",
5519
5513
  {
5520
5514
  type: "button",
@@ -5525,21 +5519,15 @@ var UniversalSettings = ({
5525
5519
  className: "text-[11px] tracking-widest text-neutral-400 hover:text-black transition-colors outline-none"
5526
5520
  },
5527
5521
  "Cancel"
5528
- ))))), activeTab === "BILLING" && /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "bg-[#143731] rounded-3xl p-6 relative overflow-hidden flex flex-col w-full mt-2" }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "relative z-10 flex flex-col items-start w-full" }, /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[11px] text-white leading-tight mb-1" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-white/60" }, "AI Credits Balance")), isBillingLoading ? /* @__PURE__ */ import_react83.default.createElement("div", { className: "h-8 w-32 bg-white/10 animate-pulse rounded mt-2" }) : /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Coins01Icon, size: 24, className: "text-white" }), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-2xl text-white tracking-tight" }, aiCredits)), /* @__PURE__ */ import_react83.default.createElement("div", { className: "mt-2 w-full " }, /* @__PURE__ */ import_react83.default.createElement(
5522
+ ))))), activeTab === "BILLING" && /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "bg-[#ffffff] rounded-3xl p-6 relative overflow-hidden flex flex-row items-center justify-between w-full mt-2" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "relative z-10 flex flex-col items-start" }, /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[11px] text-black leading-tight mb-1" }, /* @__PURE__ */ import_react85.default.createElement("span", { className: "text-black/60" }, "AI Credits Balance")), isBillingLoading ? /* @__PURE__ */ import_react85.default.createElement("div", { className: "h-8 w-32 bg-black/10 animate-pulse rounded mt-2" }) : /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.Coins01Icon, size: 24, className: "text-black" }), /* @__PURE__ */ import_react85.default.createElement("span", { className: "text-2xl text-black tracking-tight" }, aiCredits))), /* @__PURE__ */ import_react85.default.createElement(
5529
5523
  "button",
5530
5524
  {
5531
5525
  onClick: onTopUp,
5532
- className: "px-6 py-2 rounded-full border border-white/50 bg-transparent text-white/50 text-[11px] tracking-wide transition-colors outline-none hover:bg-white/10 hover:text-white hover:border-white"
5526
+ className: "w-10 h-10 rounded-full border border-neutral-200 flex items-center justify-center text-black hover:bg-neutral-50 transition-colors outline-none shrink-0",
5527
+ "aria-label": "Top Up Credits"
5533
5528
  },
5534
- "Top Up Credits"
5535
- ))), /* @__PURE__ */ import_react83.default.createElement(
5536
- "img",
5537
- {
5538
- src: "https://storage.googleapis.com/retina-cloud-v2/assets/images/save_box.avif",
5539
- alt: "Credits",
5540
- className: "absolute bottom-2 right-2 translate-x-1/4 translate-y-1/2 w-32 h-auto object-contain z-0 pointer-events-none drop-shadow-md"
5541
- }
5542
- )), /* @__PURE__ */ import_react83.default.createElement("div", { className: "mt-4 px-1" }, /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-[11px] text-neutral-500 leading-relaxed max-w-lg" }, "AI credits are consumed when generating intelligent summaries, transcriptions, and automated huddle insights. Additional credits are billed dynamically to your primary payment method."))));
5529
+ /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons31.PlusSignIcon, size: 16 })
5530
+ )), /* @__PURE__ */ import_react85.default.createElement("div", { className: "mt-4 px-1" }, /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-[11px] text-neutral-500 leading-relaxed max-w-lg" }, "AI credits are consumed when generating intelligent summaries, transcriptions, and automated huddle insights. Additional credits are billed dynamically to your primary payment method."))));
5543
5531
  };
5544
5532
  // Annotate the CommonJS export names for ESM import in node:
5545
5533
  0 && (module.exports = {
@@ -5576,10 +5564,10 @@ var UniversalSettings = ({
5576
5564
  UniversalBuyCryptoPage,
5577
5565
  UniversalCardActionPage,
5578
5566
  UniversalCardPage,
5579
- UniversalDepartmentsPage,
5580
5567
  UniversalErrorView,
5581
5568
  UniversalHome2,
5582
5569
  UniversalHomeView,
5570
+ UniversalHuddlesPage,
5583
5571
  UniversalMembersPage,
5584
5572
  UniversalOrganizationPage,
5585
5573
  UniversalProfilePage,