@serhii.olishevskyi/docs 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1515,6 +1515,76 @@ var init_ConfirmationProvider = __esm({
1515
1515
  }
1516
1516
  });
1517
1517
 
1518
+ // src/context/AppSettingsProvider.tsx
1519
+ var import_react17, import_jsx_runtime18, DEFAULT_SETTINGS, AppSettingsContext, AppSettingsProvider, useAppSettings;
1520
+ var init_AppSettingsProvider = __esm({
1521
+ "src/context/AppSettingsProvider.tsx"() {
1522
+ "use strict";
1523
+ import_react17 = require("react");
1524
+ init_SupabaseProvider();
1525
+ import_jsx_runtime18 = require("react/jsx-runtime");
1526
+ DEFAULT_SETTINGS = {
1527
+ max_group_members: 100
1528
+ };
1529
+ AppSettingsContext = (0, import_react17.createContext)(void 0);
1530
+ AppSettingsProvider = ({ children }) => {
1531
+ const supabase = useSupabase();
1532
+ const [settings, setSettings] = (0, import_react17.useState)(DEFAULT_SETTINGS);
1533
+ const [loading, setLoading] = (0, import_react17.useState)(true);
1534
+ const [error, setError] = (0, import_react17.useState)(null);
1535
+ const fetchSettings = (0, import_react17.useCallback)(async () => {
1536
+ try {
1537
+ setLoading(true);
1538
+ setError(null);
1539
+ const { data, error: supabaseError } = await supabase.from("app_settings").select("key, value");
1540
+ if (supabaseError) throw supabaseError;
1541
+ if (data) {
1542
+ const parsedSettings = data.reduce((acc, item) => {
1543
+ acc[item.key] = item.value;
1544
+ return acc;
1545
+ }, { ...DEFAULT_SETTINGS });
1546
+ setSettings(parsedSettings);
1547
+ }
1548
+ } catch (err) {
1549
+ console.error("\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A:", err.message || err);
1550
+ setError(err.message || "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F");
1551
+ } finally {
1552
+ setLoading(false);
1553
+ }
1554
+ }, []);
1555
+ (0, import_react17.useEffect)(() => {
1556
+ fetchSettings();
1557
+ }, [fetchSettings]);
1558
+ const getSetting = (0, import_react17.useCallback)((key, defaultValue) => {
1559
+ if (key in settings && settings[key] !== null && settings[key] !== void 0) {
1560
+ return settings[key];
1561
+ }
1562
+ return defaultValue;
1563
+ }, [settings]);
1564
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1565
+ AppSettingsContext.Provider,
1566
+ {
1567
+ value: {
1568
+ settings,
1569
+ loading,
1570
+ error,
1571
+ getSetting,
1572
+ refetchSettings: fetchSettings
1573
+ },
1574
+ children
1575
+ }
1576
+ );
1577
+ };
1578
+ useAppSettings = () => {
1579
+ const context = (0, import_react17.useContext)(AppSettingsContext);
1580
+ if (!context) {
1581
+ throw new Error("useAppSettings should be used within the AppSettingsProvider");
1582
+ }
1583
+ return context;
1584
+ };
1585
+ }
1586
+ });
1587
+
1518
1588
  // src/context/index.ts
1519
1589
  var Providers;
1520
1590
  var init_context = __esm({
@@ -1529,7 +1599,9 @@ var init_context = __esm({
1529
1599
  init_ToastProvider();
1530
1600
  init_ConfirmationProvider();
1531
1601
  init_AIProvider();
1602
+ init_AppSettingsProvider();
1532
1603
  init_SupabaseProvider();
1604
+ init_AppSettingsProvider();
1533
1605
  init_TranslateProvider();
1534
1606
  init_TranslateText();
1535
1607
  init_TranslationEditProvider();
@@ -1541,6 +1613,7 @@ var init_context = __esm({
1541
1613
  init_AIProvider();
1542
1614
  Providers = {
1543
1615
  Supabase: SupabaseProvider,
1616
+ AppSettings: AppSettingsProvider,
1544
1617
  Translate: TranslateProvider,
1545
1618
  TranslationEdit: TranslationEditProvider,
1546
1619
  Localization: LocalizationProvider,
@@ -1554,33 +1627,33 @@ var init_context = __esm({
1554
1627
  });
1555
1628
 
1556
1629
  // src/UI/components/data.display/UserStatusChipComponent.tsx
1557
- var import_material10, import_InfoOutlined, import_jsx_runtime18, UserStatusChipComponent;
1630
+ var import_material10, import_InfoOutlined, import_jsx_runtime19, UserStatusChipComponent;
1558
1631
  var init_UserStatusChipComponent = __esm({
1559
1632
  "src/UI/components/data.display/UserStatusChipComponent.tsx"() {
1560
1633
  "use strict";
1561
1634
  import_material10 = require("@mui/material");
1562
1635
  import_InfoOutlined = __toESM(require("@mui/icons-material/InfoOutlined"));
1563
1636
  init_context();
1564
- import_jsx_runtime18 = require("react/jsx-runtime");
1637
+ import_jsx_runtime19 = require("react/jsx-runtime");
1565
1638
  UserStatusChipComponent = ({ overrideNamespace, state }) => {
1566
1639
  const confirm = useConfirmation();
1567
1640
  const handleShowReason = async (e) => {
1568
1641
  e.stopPropagation();
1569
1642
  if (!state.locked_reason) return;
1570
1643
  await confirm({
1571
- title: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Lock Reason" }),
1644
+ title: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Lock Reason" }),
1572
1645
  message: state.locked_reason,
1573
1646
  type: "info",
1574
- confirmText: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "OK" }),
1647
+ confirmText: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "OK" }),
1575
1648
  showNoButton: false,
1576
1649
  showCancelButton: false
1577
1650
  });
1578
1651
  };
1579
1652
  if (state.profile_archived) {
1580
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1653
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1581
1654
  import_material10.Chip,
1582
1655
  {
1583
- label: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Archived" }),
1656
+ label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Archived" }),
1584
1657
  color: "default",
1585
1658
  size: "small",
1586
1659
  variant: "filled"
@@ -1588,10 +1661,10 @@ var init_UserStatusChipComponent = __esm({
1588
1661
  );
1589
1662
  }
1590
1663
  if (state.profile_locked) {
1591
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1664
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1592
1665
  import_material10.Chip,
1593
1666
  {
1594
- label: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "System Locked" }),
1667
+ label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "System Locked" }),
1595
1668
  color: "error",
1596
1669
  size: "small",
1597
1670
  variant: "filled"
@@ -1599,30 +1672,30 @@ var init_UserStatusChipComponent = __esm({
1599
1672
  );
1600
1673
  }
1601
1674
  if (state.excluded) {
1602
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1675
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1603
1676
  import_material10.Chip,
1604
1677
  {
1605
- label: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Excluded" }),
1678
+ label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Excluded" }),
1606
1679
  size: "small"
1607
1680
  }
1608
1681
  );
1609
1682
  }
1610
1683
  if (state.locked) {
1611
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1684
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1612
1685
  import_material10.Chip,
1613
1686
  {
1614
- label: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Locked" }),
1687
+ label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Locked" }),
1615
1688
  color: "error",
1616
1689
  size: "small",
1617
1690
  onDelete: state.locked_reason ? handleShowReason : void 0,
1618
- deleteIcon: state.locked_reason ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_material10.IconButton, { size: "small", component: "span", sx: { p: 0.2 }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_InfoOutlined.default, { fontSize: "small" }) }) : void 0
1691
+ deleteIcon: state.locked_reason ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_material10.IconButton, { size: "small", component: "span", sx: { p: 0.2 }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_InfoOutlined.default, { fontSize: "small" }) }) : void 0
1619
1692
  }
1620
1693
  );
1621
1694
  }
1622
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1695
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1623
1696
  import_material10.Chip,
1624
1697
  {
1625
- label: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Active" }),
1698
+ label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Active" }),
1626
1699
  color: "success",
1627
1700
  size: "small",
1628
1701
  variant: "outlined"
@@ -1633,38 +1706,38 @@ var init_UserStatusChipComponent = __esm({
1633
1706
  });
1634
1707
 
1635
1708
  // src/UI/components/data.display/UserRoleChipComponent.tsx
1636
- var import_material11, import_jsx_runtime19, UserRoleChipComponent;
1709
+ var import_material11, import_jsx_runtime20, UserRoleChipComponent;
1637
1710
  var init_UserRoleChipComponent = __esm({
1638
1711
  "src/UI/components/data.display/UserRoleChipComponent.tsx"() {
1639
1712
  "use strict";
1640
1713
  import_material11 = require("@mui/material");
1641
1714
  init_context();
1642
- import_jsx_runtime19 = require("react/jsx-runtime");
1715
+ import_jsx_runtime20 = require("react/jsx-runtime");
1643
1716
  UserRoleChipComponent = ({ overrideNamespace, role }) => {
1644
1717
  switch (role) {
1645
1718
  case "superadmin":
1646
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1719
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1647
1720
  import_material11.Chip,
1648
1721
  {
1649
- label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Superadministrator" }),
1722
+ label: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Superadministrator" }),
1650
1723
  color: "error",
1651
1724
  size: "small"
1652
1725
  }
1653
1726
  );
1654
1727
  case "admin":
1655
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1728
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1656
1729
  import_material11.Chip,
1657
1730
  {
1658
- label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Administrator" }),
1731
+ label: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "Administrator" }),
1659
1732
  color: "primary",
1660
1733
  size: "small"
1661
1734
  }
1662
1735
  );
1663
1736
  default:
1664
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1737
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1665
1738
  import_material11.Chip,
1666
1739
  {
1667
- label: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "User" }),
1740
+ label: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "system_widgets", children: "User" }),
1668
1741
  variant: "outlined",
1669
1742
  size: "small"
1670
1743
  }
@@ -1675,16 +1748,16 @@ var init_UserRoleChipComponent = __esm({
1675
1748
  });
1676
1749
 
1677
1750
  // src/UI/components/buttons/CopyClipboardButtonComponent.tsx
1678
- var import_react17, import_material12, import_Check3, import_ContentCopy3, import_jsx_runtime20, CopyClipboardButtonComponent;
1751
+ var import_react18, import_material12, import_Check3, import_ContentCopy3, import_jsx_runtime21, CopyClipboardButtonComponent;
1679
1752
  var init_CopyClipboardButtonComponent = __esm({
1680
1753
  "src/UI/components/buttons/CopyClipboardButtonComponent.tsx"() {
1681
1754
  "use strict";
1682
- import_react17 = require("react");
1755
+ import_react18 = require("react");
1683
1756
  import_material12 = require("@mui/material");
1684
1757
  import_Check3 = __toESM(require("@mui/icons-material/Check"));
1685
1758
  import_ContentCopy3 = __toESM(require("@mui/icons-material/ContentCopy"));
1686
1759
  init_TranslatableTooltipComponent();
1687
- import_jsx_runtime20 = require("react/jsx-runtime");
1760
+ import_jsx_runtime21 = require("react/jsx-runtime");
1688
1761
  CopyClipboardButtonComponent = ({
1689
1762
  overrideNamespace,
1690
1763
  textToCopy,
@@ -1697,7 +1770,7 @@ var init_CopyClipboardButtonComponent = __esm({
1697
1770
  sx,
1698
1771
  ...iconButtonProps
1699
1772
  }) => {
1700
- const [copied, setCopied] = (0, import_react17.useState)(false);
1773
+ const [copied, setCopied] = (0, import_react18.useState)(false);
1701
1774
  const handleCopy = async (e) => {
1702
1775
  e.stopPropagation();
1703
1776
  if (!textToCopy) return;
@@ -1714,7 +1787,7 @@ var init_CopyClipboardButtonComponent = __esm({
1714
1787
  console.error("Failed to copy text to clipboard:", error);
1715
1788
  }
1716
1789
  };
1717
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(TranslatableTooltipComponent, { title: copied ? copiedTooltipText : copyTooltipText, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1790
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TranslatableTooltipComponent, { title: copied ? copiedTooltipText : copyTooltipText, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1718
1791
  import_material12.IconButton,
1719
1792
  {
1720
1793
  size,
@@ -1722,7 +1795,7 @@ var init_CopyClipboardButtonComponent = __esm({
1722
1795
  disabled: !textToCopy || iconButtonProps.disabled,
1723
1796
  sx: { p: 0.25, ...sx },
1724
1797
  ...iconButtonProps,
1725
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_Check3.default, { fontSize: size === "large" ? "medium" : "small", color: "success" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_ContentCopy3.default, { fontSize: size === "large" ? "medium" : "small" })
1798
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Check3.default, { fontSize: size === "large" ? "medium" : "small", color: "success" }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_ContentCopy3.default, { fontSize: size === "large" ? "medium" : "small" })
1726
1799
  }
1727
1800
  ) }) });
1728
1801
  };
@@ -1737,19 +1810,19 @@ var init_user_types = __esm({
1737
1810
  });
1738
1811
 
1739
1812
  // src/context/UserSettingsProvider.tsx
1740
- var import_react18, import_jsx_runtime21, UserSettingsContext, useUserSettings;
1813
+ var import_react19, import_jsx_runtime22, UserSettingsContext, useUserSettings;
1741
1814
  var init_UserSettingsProvider = __esm({
1742
1815
  "src/context/UserSettingsProvider.tsx"() {
1743
1816
  "use strict";
1744
- import_react18 = require("react");
1817
+ import_react19 = require("react");
1745
1818
  init_user_types();
1746
1819
  init_ThemeProvider();
1747
1820
  init_AuthProvider();
1748
1821
  init_SupabaseProvider();
1749
- import_jsx_runtime21 = require("react/jsx-runtime");
1750
- UserSettingsContext = (0, import_react18.createContext)(void 0);
1822
+ import_jsx_runtime22 = require("react/jsx-runtime");
1823
+ UserSettingsContext = (0, import_react19.createContext)(void 0);
1751
1824
  useUserSettings = () => {
1752
- const context = (0, import_react18.useContext)(UserSettingsContext);
1825
+ const context = (0, import_react19.useContext)(UserSettingsContext);
1753
1826
  if (!context) {
1754
1827
  throw new Error("useUserSettings should be used within the UserSettingsProvider");
1755
1828
  }
@@ -1764,11 +1837,11 @@ __export(UserPopoverComponent_exports, {
1764
1837
  UserPopoverComponent: () => UserPopoverComponent,
1765
1838
  default: () => UserPopoverComponent_default
1766
1839
  });
1767
- var import_react19, import_material13, import_icons_material2, import_jsx_runtime22, useUserStatus, UserPopoverComponent, UserPopoverComponent_default;
1840
+ var import_react20, import_material13, import_icons_material2, import_jsx_runtime23, useUserStatus, UserPopoverComponent, UserPopoverComponent_default;
1768
1841
  var init_UserPopoverComponent = __esm({
1769
1842
  "src/UI/components/data.display/UserPopoverComponent.tsx"() {
1770
1843
  "use strict";
1771
- import_react19 = require("react");
1844
+ import_react20 = require("react");
1772
1845
  import_material13 = require("@mui/material");
1773
1846
  import_icons_material2 = require("@mui/icons-material");
1774
1847
  init_UserStatusChipComponent();
@@ -1779,11 +1852,11 @@ var init_UserPopoverComponent = __esm({
1779
1852
  init_UserSettingsProvider();
1780
1853
  init_TranslatableTooltipComponent();
1781
1854
  init_session_service();
1782
- import_jsx_runtime22 = require("react/jsx-runtime");
1855
+ import_jsx_runtime23 = require("react/jsx-runtime");
1783
1856
  useUserStatus = (supabase, userId, open) => {
1784
- const [lastSeenAt, setLastSeenAt] = (0, import_react19.useState)(null);
1785
- const [loading, setLoading] = (0, import_react19.useState)(true);
1786
- (0, import_react19.useEffect)(() => {
1857
+ const [lastSeenAt, setLastSeenAt] = (0, import_react20.useState)(null);
1858
+ const [loading, setLoading] = (0, import_react20.useState)(true);
1859
+ (0, import_react20.useEffect)(() => {
1787
1860
  if (!userId || !open) {
1788
1861
  setLastSeenAt(null);
1789
1862
  setLoading(false);
@@ -1832,13 +1905,13 @@ var init_UserPopoverComponent = __esm({
1832
1905
  const { activeCompanyId, membership: currentMembership } = useAuth();
1833
1906
  const { openChatWithUser } = useUserSettings();
1834
1907
  const { formatDate, formatRelativeTime } = useLocalization();
1835
- const [profileData, setProfileData] = (0, import_react19.useState)(null);
1836
- const [membershipData, setMembershipData] = (0, import_react19.useState)(null);
1837
- const [avatarUrl, setAvatarUrl] = (0, import_react19.useState)(null);
1838
- const [coverUrl, setCoverUrl] = (0, import_react19.useState)(null);
1839
- const [loading, setLoading] = (0, import_react19.useState)(true);
1908
+ const [profileData, setProfileData] = (0, import_react20.useState)(null);
1909
+ const [membershipData, setMembershipData] = (0, import_react20.useState)(null);
1910
+ const [avatarUrl, setAvatarUrl] = (0, import_react20.useState)(null);
1911
+ const [coverUrl, setCoverUrl] = (0, import_react20.useState)(null);
1912
+ const [loading, setLoading] = (0, import_react20.useState)(true);
1840
1913
  const { lastSeenAt, isOnline } = useUserStatus(supabase, userId, open);
1841
- (0, import_react19.useEffect)(() => {
1914
+ (0, import_react20.useEffect)(() => {
1842
1915
  if (!open || !userId || !activeCompanyId) return;
1843
1916
  let isMounted = true;
1844
1917
  setLoading(true);
@@ -1884,7 +1957,7 @@ var init_UserPopoverComponent = __esm({
1884
1957
  }, [open, userId, currentMembership?.id, activeCompanyId]);
1885
1958
  const getStatusChip = () => {
1886
1959
  if (!profileData) return null;
1887
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(UserStatusChipComponent, { state: { profile_archived: profileData.archived, profile_locked: profileData.locked, excluded: membershipData?.excluded || false, locked: membershipData?.locked || false, locked_reason: membershipData?.locked_reason || "" } });
1960
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(UserStatusChipComponent, { state: { profile_archived: profileData.archived, profile_locked: profileData.locked, excluded: membershipData?.excluded || false, locked: membershipData?.locked || false, locked_reason: membershipData?.locked_reason || "" } });
1888
1961
  };
1889
1962
  const getStatusTypographyColor = (isOnline2, lastSeenAt2) => {
1890
1963
  if (isOnline2) return "success";
@@ -1905,7 +1978,7 @@ var init_UserPopoverComponent = __esm({
1905
1978
  return "inherit";
1906
1979
  };
1907
1980
  const canChat = currentMembership && membershipData && currentMembership.id !== membershipData.id;
1908
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1981
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1909
1982
  import_material13.Popover,
1910
1983
  {
1911
1984
  open,
@@ -1924,8 +1997,8 @@ var init_UserPopoverComponent = __esm({
1924
1997
  }
1925
1998
  }
1926
1999
  },
1927
- children: loading ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Box, { sx: { display: "flex", justifyContent: "center", py: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.CircularProgress, { size: 28 }) }) : profileData ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
1928
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2000
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Box, { sx: { display: "flex", justifyContent: "center", py: 4 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.CircularProgress, { size: 28 }) }) : profileData ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
2001
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1929
2002
  import_material13.Box,
1930
2003
  {
1931
2004
  sx: {
@@ -1935,7 +2008,7 @@ var init_UserPopoverComponent = __esm({
1935
2008
  bgcolor: "action.selected"
1936
2009
  },
1937
2010
  children: [
1938
- coverUrl && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2011
+ coverUrl && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1939
2012
  import_material13.Box,
1940
2013
  {
1941
2014
  component: "img",
@@ -1951,7 +2024,7 @@ var init_UserPopoverComponent = __esm({
1951
2024
  }
1952
2025
  }
1953
2026
  ),
1954
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2027
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1955
2028
  import_material13.IconButton,
1956
2029
  {
1957
2030
  size: "small",
@@ -1969,15 +2042,15 @@ var init_UserPopoverComponent = __esm({
1969
2042
  transform: "scale(1.1)"
1970
2043
  }
1971
2044
  },
1972
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.Close, { fontSize: "small" })
2045
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.Close, { fontSize: "small" })
1973
2046
  }
1974
2047
  )
1975
2048
  ]
1976
2049
  }
1977
2050
  ),
1978
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Box, { sx: { p: 2, pt: 0 }, children: [
1979
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1.5, sx: { alignItems: "flex-end", mt: "-18px", mb: 1 }, children: [
1980
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2051
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Box, { sx: { p: 2, pt: 0 }, children: [
2052
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1.5, sx: { alignItems: "flex-end", mt: "-18px", mb: 1 }, children: [
2053
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1981
2054
  import_material13.Badge,
1982
2055
  {
1983
2056
  overlap: "circular",
@@ -2014,7 +2087,7 @@ var init_UserPopoverComponent = __esm({
2014
2087
  }
2015
2088
  }
2016
2089
  },
2017
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2090
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2018
2091
  import_material13.Avatar,
2019
2092
  {
2020
2093
  src: avatarUrl || coverUrl || void 0,
@@ -2033,53 +2106,53 @@ var init_UserPopoverComponent = __esm({
2033
2106
  )
2034
2107
  }
2035
2108
  ),
2036
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Box, { sx: { overflow: "hidden", pb: 0.5 }, children: [
2037
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "subtitle1", sx: { fontWeight: 600, lineHeight: 1.2 }, noWrap: true, children: profileData.display_name || `${profileData.first_name || ""} ${profileData.last_name || ""}` }),
2038
- membershipData?.employee_post && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "body2", color: "text.secondary", noWrap: true, children: membershipData.employee_post })
2109
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Box, { sx: { overflow: "hidden", pb: 0.5 }, children: [
2110
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "subtitle1", sx: { fontWeight: 600, lineHeight: 1.2 }, noWrap: true, children: profileData.display_name || `${profileData.first_name || ""} ${profileData.last_name || ""}` }),
2111
+ membershipData?.employee_post && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "body2", color: "text.secondary", noWrap: true, children: membershipData.employee_post })
2039
2112
  ] })
2040
2113
  ] }),
2041
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { my: 1, flexWrap: "wrap", gap: 0.5 }, children: [
2114
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { my: 1, flexWrap: "wrap", gap: 0.5 }, children: [
2042
2115
  getStatusChip(),
2043
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(UserRoleChipComponent, { role: membershipData?.role || "user" })
2116
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(UserRoleChipComponent, { role: membershipData?.role || "user" })
2044
2117
  ] }),
2045
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Divider, { sx: { my: 1.5 } }),
2046
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { spacing: 1, sx: { fontSize: "0.875rem", mb: 1.5 }, children: [
2047
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2048
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.AccessTime, { fontSize: "small", color: getStatusIconColor(isOnline, lastSeenAt) }),
2049
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "body2", color: getStatusTypographyColor(isOnline, lastSeenAt), children: isOnline ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Online" }) : lastSeenAt ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
2050
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Last seen" }),
2118
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Divider, { sx: { my: 1.5 } }),
2119
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { spacing: 1, sx: { fontSize: "0.875rem", mb: 1.5 }, children: [
2120
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2121
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.AccessTime, { fontSize: "small", color: getStatusIconColor(isOnline, lastSeenAt) }),
2122
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "body2", color: getStatusTypographyColor(isOnline, lastSeenAt), children: isOnline ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Online" }) : lastSeenAt ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2123
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Last seen" }),
2051
2124
  ":",
2052
2125
  " ",
2053
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("strong", { children: formatRelativeTime(lastSeenAt) })
2054
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Offline" }) })
2126
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("strong", { children: formatRelativeTime(lastSeenAt) })
2127
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Offline" }) })
2055
2128
  ] }),
2056
- profileData.email && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2057
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.Email, { fontSize: "small" }),
2058
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", noWrap: true, sx: { flexGrow: 1 }, children: profileData.email }),
2059
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CopyClipboardButtonComponent, { textToCopy: profileData.email })
2129
+ profileData.email && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2130
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.Email, { fontSize: "small" }),
2131
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", noWrap: true, sx: { flexGrow: 1 }, children: profileData.email }),
2132
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CopyClipboardButtonComponent, { textToCopy: profileData.email })
2060
2133
  ] }),
2061
- membershipData?.employee_post && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2062
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.Work, { fontSize: "small" }),
2063
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", noWrap: true, sx: { flexGrow: 1 }, children: membershipData.employee_post }),
2064
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CopyClipboardButtonComponent, { textToCopy: membershipData.employee_post })
2134
+ membershipData?.employee_post && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2135
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.Work, { fontSize: "small" }),
2136
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", noWrap: true, sx: { flexGrow: 1 }, children: membershipData.employee_post }),
2137
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CopyClipboardButtonComponent, { textToCopy: membershipData.employee_post })
2065
2138
  ] }),
2066
- profileData.phone && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2067
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.Phone, { fontSize: "small" }),
2068
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", children: profileData.phone })
2139
+ profileData.phone && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2140
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.Phone, { fontSize: "small" }),
2141
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", children: profileData.phone })
2069
2142
  ] }),
2070
- profileData.birthday && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2071
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.Cake, { fontSize: "small" }),
2072
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", children: formatDate(profileData.birthday) })
2143
+ profileData.birthday && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2144
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.Cake, { fontSize: "small" }),
2145
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Typography, { variant: "body2", color: "text.primary", children: formatDate(profileData.birthday) })
2073
2146
  ] }),
2074
- membershipData?.created_at && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2075
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.CalendarToday, { fontSize: "small" }),
2076
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Typography, { variant: "body2", color: "text.primary", children: [
2077
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "In company from" }),
2147
+ membershipData?.created_at && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { alignItems: "center" }, color: "text.secondary", children: [
2148
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.CalendarToday, { fontSize: "small" }),
2149
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Typography, { variant: "body2", color: "text.primary", children: [
2150
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "In company from" }),
2078
2151
  ": ",
2079
2152
  formatDate(membershipData.created_at)
2080
2153
  ] })
2081
2154
  ] }),
2082
- profileData.description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2155
+ profileData.description && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2083
2156
  import_material13.Typography,
2084
2157
  {
2085
2158
  variant: "caption",
@@ -2095,28 +2168,28 @@ var init_UserPopoverComponent = __esm({
2095
2168
  }
2096
2169
  )
2097
2170
  ] }),
2098
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Divider, { sx: { my: 1 } }),
2099
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { justifyContent: "space-around", pt: 0.5 }, children: [
2100
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslatableTooltipComponent, { title: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Send a notification" }), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.IconButton, { size: "small", color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.NotificationsNone, { fontSize: "small" }) }) }),
2101
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslatableTooltipComponent, { title: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Set a task" }), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.IconButton, { size: "small", color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.AssignmentOutlined, { fontSize: "small" }) }) }),
2102
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslatableTooltipComponent, { title: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Start a chat" }), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2171
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Divider, { sx: { my: 1 } }),
2172
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_material13.Stack, { direction: "row", spacing: 1, sx: { justifyContent: "space-around", pt: 0.5 }, children: [
2173
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslatableTooltipComponent, { title: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Send a notification" }), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.IconButton, { size: "small", color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.NotificationsNone, { fontSize: "small" }) }) }),
2174
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslatableTooltipComponent, { title: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Set a task" }), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.IconButton, { size: "small", color: "primary", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.AssignmentOutlined, { fontSize: "small" }) }) }),
2175
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslatableTooltipComponent, { title: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Start a chat" }), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2103
2176
  import_material13.IconButton,
2104
2177
  {
2105
2178
  size: "small",
2106
2179
  color: "primary",
2107
2180
  disabled: !canChat,
2108
2181
  onClick: () => membershipData && openChatWithUser(membershipData.id),
2109
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_material2.ChatBubble, { fontSize: "small" })
2182
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_icons_material2.ChatBubble, { fontSize: "small" })
2110
2183
  }
2111
2184
  ) })
2112
2185
  ] })
2113
2186
  ] })
2114
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material13.Box, { sx: { p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2187
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material13.Box, { sx: { p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2115
2188
  import_material13.Typography,
2116
2189
  {
2117
2190
  color: "error",
2118
2191
  variant: "body2",
2119
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Failed to load user data" })
2192
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TranslateText, { overrideNamespace: overrideNamespace || "form_components", children: "Failed to load user data" })
2120
2193
  }
2121
2194
  ) })
2122
2195
  }
@@ -2130,6 +2203,7 @@ var init_UserPopoverComponent = __esm({
2130
2203
  var index_exports = {};
2131
2204
  __export(index_exports, {
2132
2205
  AIProvider: () => AIProvider,
2206
+ AppSettingsProvider: () => AppSettingsProvider,
2133
2207
  BreadcrumbProvider: () => BreadcrumbProvider,
2134
2208
  ConfirmationProvider: () => ConfirmationProvider,
2135
2209
  LocalizationProvider: () => LocalizationProvider,
@@ -2142,6 +2216,7 @@ __export(index_exports, {
2142
2216
  TranslationEditProvider: () => TranslationEditProvider,
2143
2217
  UI: () => UI,
2144
2218
  useAI: () => useAI,
2219
+ useAppSettings: () => useAppSettings,
2145
2220
  useAppTheme: () => useAppTheme,
2146
2221
  useBreadcrumb: () => useBreadcrumb,
2147
2222
  useConfirmation: () => useConfirmation,
@@ -2842,11 +2917,11 @@ var EmailInputComponent = ({
2842
2917
  };
2843
2918
 
2844
2919
  // src/UI/components/data.display/UserAvatarComponent.tsx
2845
- var import_react20 = require("react");
2920
+ var import_react21 = require("react");
2846
2921
  var import_material14 = require("@mui/material");
2847
2922
  init_context();
2848
- var import_jsx_runtime23 = require("react/jsx-runtime");
2849
- var LazyUserPopover = (0, import_react20.lazy)(() => Promise.resolve().then(() => (init_UserPopoverComponent(), UserPopoverComponent_exports)));
2923
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2924
+ var LazyUserPopover = (0, import_react21.lazy)(() => Promise.resolve().then(() => (init_UserPopoverComponent(), UserPopoverComponent_exports)));
2850
2925
  var getInitials = (name) => {
2851
2926
  if (!name) return "?";
2852
2927
  const parts = name.trim().split(" ");
@@ -2868,11 +2943,11 @@ var UserAvatarComponent = ({
2868
2943
  sx = {}
2869
2944
  }) => {
2870
2945
  const supabase = useSupabase();
2871
- const [anchorEl, setAnchorEl] = (0, import_react20.useState)(null);
2872
- const [hasInteracted, setHasInteracted] = (0, import_react20.useState)(false);
2873
- const [resolvedAvatarUrl, setResolvedAvatarUrl] = (0, import_react20.useState)(null);
2946
+ const [anchorEl, setAnchorEl] = (0, import_react21.useState)(null);
2947
+ const [hasInteracted, setHasInteracted] = (0, import_react21.useState)(false);
2948
+ const [resolvedAvatarUrl, setResolvedAvatarUrl] = (0, import_react21.useState)(null);
2874
2949
  const canShowPopover = !disablePopover && Boolean(userId);
2875
- (0, import_react20.useEffect)(() => {
2950
+ (0, import_react21.useEffect)(() => {
2876
2951
  let isMounted = true;
2877
2952
  const resolveAvatar = async () => {
2878
2953
  if (!avatarUrl) {
@@ -2917,12 +2992,12 @@ var UserAvatarComponent = ({
2917
2992
  };
2918
2993
  const isPopoverOpen = Boolean(anchorEl);
2919
2994
  const initials = getInitials(displayName || "");
2920
- const getTooltip = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2921
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material14.Typography, { component: "div", variant: "caption", children: displayName }),
2922
- displayName && employeePost && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material14.Typography, { component: "div", variant: "caption", children: employeePost })
2995
+ const getTooltip = /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
2996
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_material14.Typography, { component: "div", variant: "caption", children: displayName }),
2997
+ displayName && employeePost && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_material14.Typography, { component: "div", variant: "caption", children: employeePost })
2923
2998
  ] });
2924
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
2925
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_material14.Tooltip, { title: disableTooltip || isPopoverOpen ? "" : getTooltip, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2999
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
3000
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_material14.Tooltip, { title: disableTooltip || isPopoverOpen ? "" : getTooltip, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2926
3001
  import_material14.Avatar,
2927
3002
  {
2928
3003
  src: resolvedAvatarUrl || void 0,
@@ -2948,7 +3023,7 @@ var UserAvatarComponent = ({
2948
3023
  children: !resolvedAvatarUrl && initials
2949
3024
  }
2950
3025
  ) }),
2951
- canShowPopover && hasInteracted && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react20.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3026
+ canShowPopover && hasInteracted && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react21.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2952
3027
  LazyUserPopover,
2953
3028
  {
2954
3029
  userId,
@@ -2993,6 +3068,7 @@ init_context();
2993
3068
  // Annotate the CommonJS export names for ESM import in node:
2994
3069
  0 && (module.exports = {
2995
3070
  AIProvider,
3071
+ AppSettingsProvider,
2996
3072
  BreadcrumbProvider,
2997
3073
  ConfirmationProvider,
2998
3074
  LocalizationProvider,
@@ -3005,6 +3081,7 @@ init_context();
3005
3081
  TranslationEditProvider,
3006
3082
  UI,
3007
3083
  useAI,
3084
+ useAppSettings,
3008
3085
  useAppTheme,
3009
3086
  useBreadcrumb,
3010
3087
  useConfirmation,