@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/{UserPopoverComponent-JBJBONYL.mjs → UserPopoverComponent-MG2V632M.mjs} +1 -1
- package/dist/{chunk-R2QQMMHL.mjs → chunk-UYCEKHKQ.mjs} +148 -82
- package/dist/index.d.mts +20 -1
- package/dist/index.d.ts +20 -1
- package/dist/index.js +187 -110
- package/dist/index.mjs +6 -2
- package/package.json +1 -1
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,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
1653
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1581
1654
|
import_material10.Chip,
|
|
1582
1655
|
{
|
|
1583
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
1664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1592
1665
|
import_material10.Chip,
|
|
1593
1666
|
{
|
|
1594
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
1675
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1603
1676
|
import_material10.Chip,
|
|
1604
1677
|
{
|
|
1605
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
1684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1612
1685
|
import_material10.Chip,
|
|
1613
1686
|
{
|
|
1614
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
1695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
1623
1696
|
import_material10.Chip,
|
|
1624
1697
|
{
|
|
1625
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
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
|
-
|
|
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,
|
|
1719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1647
1720
|
import_material11.Chip,
|
|
1648
1721
|
{
|
|
1649
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
1728
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1656
1729
|
import_material11.Chip,
|
|
1657
1730
|
{
|
|
1658
|
-
label: /* @__PURE__ */ (0,
|
|
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,
|
|
1737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1665
1738
|
import_material11.Chip,
|
|
1666
1739
|
{
|
|
1667
|
-
label: /* @__PURE__ */ (0,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
|
|
1817
|
+
import_react19 = require("react");
|
|
1745
1818
|
init_user_types();
|
|
1746
1819
|
init_ThemeProvider();
|
|
1747
1820
|
init_AuthProvider();
|
|
1748
1821
|
init_SupabaseProvider();
|
|
1749
|
-
|
|
1750
|
-
UserSettingsContext = (0,
|
|
1822
|
+
import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1823
|
+
UserSettingsContext = (0, import_react19.createContext)(void 0);
|
|
1751
1824
|
useUserSettings = () => {
|
|
1752
|
-
const context = (0,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
1855
|
+
import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1783
1856
|
useUserStatus = (supabase, userId, open) => {
|
|
1784
|
-
const [lastSeenAt, setLastSeenAt] = (0,
|
|
1785
|
-
const [loading, setLoading] = (0,
|
|
1786
|
-
(0,
|
|
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,
|
|
1836
|
-
const [membershipData, setMembershipData] = (0,
|
|
1837
|
-
const [avatarUrl, setAvatarUrl] = (0,
|
|
1838
|
-
const [coverUrl, setCoverUrl] = (0,
|
|
1839
|
-
const [loading, setLoading] = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
1928
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
1979
|
-
/* @__PURE__ */ (0,
|
|
1980
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2037
|
-
/* @__PURE__ */ (0,
|
|
2038
|
-
membershipData?.employee_post && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2116
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(UserRoleChipComponent, { role: membershipData?.role || "user" })
|
|
2044
2117
|
] }),
|
|
2045
|
-
/* @__PURE__ */ (0,
|
|
2046
|
-
/* @__PURE__ */ (0,
|
|
2047
|
-
/* @__PURE__ */ (0,
|
|
2048
|
-
/* @__PURE__ */ (0,
|
|
2049
|
-
/* @__PURE__ */ (0,
|
|
2050
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2054
|
-
] }) : /* @__PURE__ */ (0,
|
|
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,
|
|
2057
|
-
/* @__PURE__ */ (0,
|
|
2058
|
-
/* @__PURE__ */ (0,
|
|
2059
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2062
|
-
/* @__PURE__ */ (0,
|
|
2063
|
-
/* @__PURE__ */ (0,
|
|
2064
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2067
|
-
/* @__PURE__ */ (0,
|
|
2068
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2071
|
-
/* @__PURE__ */ (0,
|
|
2072
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2075
|
-
/* @__PURE__ */ (0,
|
|
2076
|
-
/* @__PURE__ */ (0,
|
|
2077
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2099
|
-
/* @__PURE__ */ (0,
|
|
2100
|
-
/* @__PURE__ */ (0,
|
|
2101
|
-
/* @__PURE__ */ (0,
|
|
2102
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
2920
|
+
var import_react21 = require("react");
|
|
2846
2921
|
var import_material14 = require("@mui/material");
|
|
2847
2922
|
init_context();
|
|
2848
|
-
var
|
|
2849
|
-
var LazyUserPopover = (0,
|
|
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,
|
|
2872
|
-
const [hasInteracted, setHasInteracted] = (0,
|
|
2873
|
-
const [resolvedAvatarUrl, setResolvedAvatarUrl] = (0,
|
|
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,
|
|
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,
|
|
2921
|
-
/* @__PURE__ */ (0,
|
|
2922
|
-
displayName && employeePost && /* @__PURE__ */ (0,
|
|
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,
|
|
2925
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|