@fluid-app/portal-sdk 0.1.235 → 0.1.236
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/{AppDownloadScreen-B0YwMqYM.cjs → AppDownloadScreen-BXnl23_d.cjs} +2 -2
- package/dist/{AppDownloadScreen-B0YwMqYM.cjs.map → AppDownloadScreen-BXnl23_d.cjs.map} +1 -1
- package/dist/{AppDownloadScreen-CT_TvZfy.mjs → AppDownloadScreen-DQR40F0y.mjs} +2 -2
- package/dist/{AppDownloadScreen-CT_TvZfy.mjs.map → AppDownloadScreen-DQR40F0y.mjs.map} +1 -1
- package/dist/{AppNavigationContext-BDs1cOuG.cjs → AppNavigationContext-C1-hd9Rw.cjs} +1 -1
- package/dist/{AppNavigationContext-BDs1cOuG.cjs.map → AppNavigationContext-C1-hd9Rw.cjs.map} +1 -1
- package/dist/{AppNavigationContext-DNod9mf6.mjs → AppNavigationContext-Dvc0yoZF.mjs} +1 -1
- package/dist/{AppNavigationContext-DNod9mf6.mjs.map → AppNavigationContext-Dvc0yoZF.mjs.map} +1 -1
- package/dist/{ContactsScreen-BaILrn_J.cjs → ContactsScreen-CH_P8WxC.cjs} +1 -1
- package/dist/{ContactsScreen-C0TixAga.mjs → ContactsScreen-CMBERzKU.mjs} +2 -2
- package/dist/{ContactsScreen-C0TixAga.mjs.map → ContactsScreen-CMBERzKU.mjs.map} +1 -1
- package/dist/{ContactsScreen-Cgpeq_3G.cjs → ContactsScreen-Cj0_VI0d.cjs} +2 -2
- package/dist/{ContactsScreen-Cgpeq_3G.cjs.map → ContactsScreen-Cj0_VI0d.cjs.map} +1 -1
- package/dist/{CustomersScreen-DJzgMofN.mjs → CustomersScreen-BJOBG5f5.mjs} +1 -1
- package/dist/{CustomersScreen-DJzgMofN.mjs.map → CustomersScreen-BJOBG5f5.mjs.map} +1 -1
- package/dist/{CustomersScreen-GROLIynQ.cjs → CustomersScreen-DW3BuhBs.cjs} +1 -1
- package/dist/{CustomersScreen-GROLIynQ.cjs.map → CustomersScreen-DW3BuhBs.cjs.map} +1 -1
- package/dist/{MessagingScreen-CAqiCGjA.cjs → MessagingScreen-40YCQbX9.cjs} +3 -3
- package/dist/{MessagingScreen-CAqiCGjA.cjs.map → MessagingScreen-40YCQbX9.cjs.map} +1 -1
- package/dist/{MessagingScreen-DNxIsd2Q.cjs → MessagingScreen-CrdiB4M3.cjs} +1 -1
- package/dist/{MessagingScreen-BzTN_FU8.mjs → MessagingScreen-RItZgONw.mjs} +3 -3
- package/dist/{MessagingScreen-BzTN_FU8.mjs.map → MessagingScreen-RItZgONw.mjs.map} +1 -1
- package/dist/{OrdersScreen-BlZgI0XT.mjs → OrdersScreen-BV3vJ7xy.mjs} +2 -2
- package/dist/{OrdersScreen-BlZgI0XT.mjs.map → OrdersScreen-BV3vJ7xy.mjs.map} +1 -1
- package/dist/{OrdersScreen-Cr_2QuUc.cjs → OrdersScreen-Cuch7aki.cjs} +1 -1
- package/dist/{OrdersScreen-BrqNjvTY.cjs → OrdersScreen-DPcp2dLW.cjs} +2 -2
- package/dist/{OrdersScreen-BrqNjvTY.cjs.map → OrdersScreen-DPcp2dLW.cjs.map} +1 -1
- package/dist/{ProfileScreen-ZN-A1RDl.cjs → ProfileScreen-CEKbhSRz.cjs} +3 -3
- package/dist/{ProfileScreen-ZN-A1RDl.cjs.map → ProfileScreen-CEKbhSRz.cjs.map} +1 -1
- package/dist/{ProfileScreen-DFkgLmNL.mjs → ProfileScreen-CeD1jq89.mjs} +3 -3
- package/dist/{ProfileScreen-DFkgLmNL.mjs.map → ProfileScreen-CeD1jq89.mjs.map} +1 -1
- package/dist/{ProfileScreen-Urnx0LDK.cjs → ProfileScreen-Dex8VHSB.cjs} +1 -1
- package/dist/{ShareablesScreen-DlrTvvXe.cjs → ShareablesScreen-Bt0E1aya.cjs} +4 -4
- package/dist/{ShareablesScreen-DlrTvvXe.cjs.map → ShareablesScreen-Bt0E1aya.cjs.map} +1 -1
- package/dist/{ShareablesScreen-CvIi80jN.mjs → ShareablesScreen-D3Hfqg9-.mjs} +4 -4
- package/dist/{ShareablesScreen-CvIi80jN.mjs.map → ShareablesScreen-D3Hfqg9-.mjs.map} +1 -1
- package/dist/{ShareablesScreen-Boi-_GvN.cjs → ShareablesScreen-LSyiDa6q.cjs} +1 -1
- package/dist/{ShopScreen-2FSVxXiE.cjs → ShopScreen-BiqZPyiB.cjs} +3 -3
- package/dist/{ShopScreen-2FSVxXiE.cjs.map → ShopScreen-BiqZPyiB.cjs.map} +1 -1
- package/dist/{ShopScreen-BxjZQ0SG.cjs → ShopScreen-Cgro0M1d.cjs} +1 -1
- package/dist/{ShopScreen-Bkuiya9D.mjs → ShopScreen-dAe71cdL.mjs} +3 -3
- package/dist/{ShopScreen-Bkuiya9D.mjs.map → ShopScreen-dAe71cdL.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-B7pAMsaf.mjs → SubscriptionsScreen-CXM2zmF7.mjs} +4 -4
- package/dist/{SubscriptionsScreen-B7pAMsaf.mjs.map → SubscriptionsScreen-CXM2zmF7.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-Cv3C3SVW.cjs → SubscriptionsScreen-DrDSwMXS.cjs} +4 -4
- package/dist/{SubscriptionsScreen-Cv3C3SVW.cjs.map → SubscriptionsScreen-DrDSwMXS.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-BbokDXZD.cjs → SubscriptionsScreen-t5wtDGfB.cjs} +1 -1
- package/dist/index.cjs +149 -172
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +9 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +149 -172
- package/dist/index.mjs.map +1 -1
- package/dist/{query-keys-D3lK70Ea.cjs → query-keys-elu0svUd.cjs} +1 -1
- package/dist/{query-keys-D3lK70Ea.cjs.map → query-keys-elu0svUd.cjs.map} +1 -1
- package/dist/{query-keys-xJy_fapN.mjs → query-keys-oQKvV4jp.mjs} +1 -1
- package/dist/{query-keys-xJy_fapN.mjs.map → query-keys-oQKvV4jp.mjs.map} +1 -1
- package/dist/{use-account-DcBCP06c.cjs → use-account-C1X-VLY-.cjs} +2 -2
- package/dist/{use-account-DcBCP06c.cjs.map → use-account-C1X-VLY-.cjs.map} +1 -1
- package/dist/{use-account-CBMPhhs7.mjs → use-account-C76sphlu.mjs} +2 -2
- package/dist/{use-account-CBMPhhs7.mjs.map → use-account-C76sphlu.mjs.map} +1 -1
- package/dist/{use-store-By_7tzrN.mjs → use-store-C2KBIS41.mjs} +1 -1
- package/dist/{use-store-By_7tzrN.mjs.map → use-store-C2KBIS41.mjs.map} +1 -1
- package/dist/{use-store-lOOUcpRT.cjs → use-store-D2S1FywW.cjs} +1 -1
- package/dist/{use-store-lOOUcpRT.cjs.map → use-store-D2S1FywW.cjs.map} +1 -1
- package/package.json +13 -13
package/dist/index.mjs
CHANGED
|
@@ -25,8 +25,8 @@ import "./MediaRenderer-CqUpv3St.mjs";
|
|
|
25
25
|
import { r as carouselWidgetPropertySchema, t as CarouselWidget } from "./CarouselWidget-CdQhlRrW.mjs";
|
|
26
26
|
import { r as catchUpWidgetPropertySchema, t as CatchUpWidget } from "./CatchUpWidget-BQjtjcGR.mjs";
|
|
27
27
|
import { At as CardTitle, C as Skeleton$1, Dn as Button, Dt as CardDescription, Fn as cn$1, Ot as CardFooter, _t as CollapsibleContent, gt as Collapsible, ht as PopoverTrigger, kt as CardHeader, mt as PopoverContent, pt as Popover, vt as CollapsibleTrigger, wt as Card, x as Toaster } from "./src-pgBBOcJa.mjs";
|
|
28
|
-
import { a as useMessagingConfig, i as createFluidFileUploader, o as useMessagingAuth, r as messagingScreenPropertySchema, t as MessagingScreen } from "./MessagingScreen-
|
|
29
|
-
import { r as subscriptionsScreenPropertySchema, t as SubscriptionsScreen } from "./SubscriptionsScreen-
|
|
28
|
+
import { a as useMessagingConfig, i as createFluidFileUploader, o as useMessagingAuth, r as messagingScreenPropertySchema, t as MessagingScreen } from "./MessagingScreen-RItZgONw.mjs";
|
|
29
|
+
import { r as subscriptionsScreenPropertySchema, t as SubscriptionsScreen } from "./SubscriptionsScreen-CXM2zmF7.mjs";
|
|
30
30
|
import { r as chartWidgetPropertySchema, t as ChartWidget } from "./ChartWidget-obje-Xj9.mjs";
|
|
31
31
|
import { r as containerWidgetPropertySchema, t as ContainerWidget } from "./ContainerWidget-DYThUtiZ.mjs";
|
|
32
32
|
import { r as imageWidgetPropertySchema, t as ImageWidget } from "./ImageWidget-CFTpbu8X.mjs";
|
|
@@ -45,26 +45,26 @@ import { r as tableWidgetPropertySchema, t as TableWidget } from "./TableWidget-
|
|
|
45
45
|
import { r as toDoWidgetPropertySchema, t as ToDoWidget } from "./ToDoWidget-VSaNmtWH.mjs";
|
|
46
46
|
import { r as videoWidgetPropertySchema, t as VideoWidget } from "./VideoWidget-DcWm239R.mjs";
|
|
47
47
|
import { i as useScreenHeaderContext, t as ScreenHeaderProvider } from "./ScreenHeaderContext-Cemdo7bM.mjs";
|
|
48
|
-
import { t as
|
|
49
|
-
import { t as
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
48
|
+
import { t as useStore } from "./use-store-C2KBIS41.mjs";
|
|
49
|
+
import { i as CoreScreenPlaceholder, r as customersScreenPropertySchema, t as CustomersScreen } from "./CustomersScreen-BJOBG5f5.mjs";
|
|
50
|
+
import { n as useAppNavigation, t as AppNavigationProvider } from "./AppNavigationContext-Dvc0yoZF.mjs";
|
|
51
|
+
import { t as useAccount } from "./use-account-C76sphlu.mjs";
|
|
52
52
|
import "./fluid-pay-api-adapter-eNT8m0xB.mjs";
|
|
53
|
-
import { r as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-
|
|
53
|
+
import { r as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-CeD1jq89.mjs";
|
|
54
54
|
import "./dist-PbA1vxAz.mjs";
|
|
55
|
-
import { r as contactsScreenPropertySchema, t as ContactsScreen } from "./ContactsScreen-
|
|
55
|
+
import { r as contactsScreenPropertySchema, t as ContactsScreen } from "./ContactsScreen-CMBERzKU.mjs";
|
|
56
56
|
import "./SearchSort-CFHU38Er.mjs";
|
|
57
57
|
import "./InfiniteScrollSentinel-B_clNL9Y.mjs";
|
|
58
58
|
import "./dist-o2cjwzIa.mjs";
|
|
59
59
|
import "./order-status-badge-Dmo8lLnt.mjs";
|
|
60
|
-
import { r as ordersScreenPropertySchema, t as OrdersScreen } from "./OrdersScreen-
|
|
60
|
+
import { r as ordersScreenPropertySchema, t as OrdersScreen } from "./OrdersScreen-BV3vJ7xy.mjs";
|
|
61
61
|
import "./sortable.esm-C8G00cCP.mjs";
|
|
62
62
|
import { r as mySiteScreenPropertySchema, t as MySiteScreen } from "./MySiteScreen-CN0ZDBgy.mjs";
|
|
63
|
-
import { r as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-
|
|
63
|
+
import { r as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-D3Hfqg9-.mjs";
|
|
64
64
|
import "./PortalProductsApiProvider-BIZg_c4Y.mjs";
|
|
65
|
-
import { r as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-
|
|
65
|
+
import { r as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-dAe71cdL.mjs";
|
|
66
66
|
import "./UpgradeScreen-DnGnWVTf.mjs";
|
|
67
|
-
import "./AppDownloadScreen-
|
|
67
|
+
import "./AppDownloadScreen-DQR40F0y.mjs";
|
|
68
68
|
import * as React$1 from "react";
|
|
69
69
|
import { Component, StrictMode, Suspense, createContext, forwardRef, lazy, memo, useCallback, useContext, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
70
70
|
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
@@ -1650,140 +1650,6 @@ function SdkNavigation({ navItems, currentSlug, onNavigate }) {
|
|
|
1650
1650
|
}) });
|
|
1651
1651
|
}
|
|
1652
1652
|
//#endregion
|
|
1653
|
-
//#region src/navigation/filter-nav-items.ts
|
|
1654
|
-
/**
|
|
1655
|
-
* Filter navigation items by removing rep-only slugs.
|
|
1656
|
-
* Handles nested children: rep-only children are removed, and parents
|
|
1657
|
-
* with no remaining children are also removed.
|
|
1658
|
-
*/
|
|
1659
|
-
function filterRepOnlyNavItems(items) {
|
|
1660
|
-
const result = [];
|
|
1661
|
-
for (const item of items) {
|
|
1662
|
-
if (!item.children?.length) {
|
|
1663
|
-
if (isRepOnlySlug(item.slug)) continue;
|
|
1664
|
-
result.push(item);
|
|
1665
|
-
continue;
|
|
1666
|
-
}
|
|
1667
|
-
if (isRepOnlySlug(item.slug)) continue;
|
|
1668
|
-
const filteredChildren = filterRepOnlyNavItems(item.children);
|
|
1669
|
-
if (filteredChildren.length === 0) continue;
|
|
1670
|
-
result.push({
|
|
1671
|
-
...item,
|
|
1672
|
-
children: filteredChildren
|
|
1673
|
-
});
|
|
1674
|
-
}
|
|
1675
|
-
return result;
|
|
1676
|
-
}
|
|
1677
|
-
/**
|
|
1678
|
-
* Filter system navigation sections by removing rep-only items.
|
|
1679
|
-
* Sections with no remaining items are dropped entirely.
|
|
1680
|
-
*/
|
|
1681
|
-
function filterRepOnlySections(sections) {
|
|
1682
|
-
const filtered = {};
|
|
1683
|
-
for (const [section, items] of Object.entries(sections)) {
|
|
1684
|
-
const allowed = items.filter((item) => !isRepOnlySlug(item.slug));
|
|
1685
|
-
if (allowed.length > 0) filtered[section] = allowed;
|
|
1686
|
-
}
|
|
1687
|
-
return filtered;
|
|
1688
|
-
}
|
|
1689
|
-
//#endregion
|
|
1690
|
-
//#region src/shell/QuickLinksDropdown.tsx
|
|
1691
|
-
function QuickLinksDropdown({ onNavigate }) {
|
|
1692
|
-
const [open, setOpen] = useState(false);
|
|
1693
|
-
const { data: account } = useAccount();
|
|
1694
|
-
const isCustomer = account?.member_type === "customer";
|
|
1695
|
-
const sections = useMemo(() => {
|
|
1696
|
-
const all = getSystemNavigationBySection();
|
|
1697
|
-
return isCustomer ? filterRepOnlySections(all) : all;
|
|
1698
|
-
}, [isCustomer]);
|
|
1699
|
-
return /* @__PURE__ */ jsxs(Popover, {
|
|
1700
|
-
open,
|
|
1701
|
-
onOpenChange: setOpen,
|
|
1702
|
-
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
1703
|
-
asChild: true,
|
|
1704
|
-
children: /* @__PURE__ */ jsx(Button, {
|
|
1705
|
-
variant: "ghost",
|
|
1706
|
-
size: "sm",
|
|
1707
|
-
className: "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shrink-0",
|
|
1708
|
-
"aria-label": "Quick links",
|
|
1709
|
-
children: /* @__PURE__ */ jsx(LayoutGrid, { className: "h-4 w-4" })
|
|
1710
|
-
})
|
|
1711
|
-
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
1712
|
-
align: "end",
|
|
1713
|
-
className: "w-175 max-w-[90vw] overflow-hidden rounded-lg p-0 shadow-lg",
|
|
1714
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
1715
|
-
className: "flex flex-col",
|
|
1716
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
1717
|
-
className: "bg-background flex items-center gap-2 border-b p-4",
|
|
1718
|
-
children: [/* @__PURE__ */ jsx(LayoutGrid, { className: "text-muted-foreground h-5 w-5" }), /* @__PURE__ */ jsx("h3", {
|
|
1719
|
-
className: "text-foreground text-sm font-semibold",
|
|
1720
|
-
children: "Shortcuts"
|
|
1721
|
-
})]
|
|
1722
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
1723
|
-
className: "bg-muted space-y-6 p-6",
|
|
1724
|
-
children: Object.entries(sections).map(([sectionName, items]) => /* @__PURE__ */ jsxs("div", {
|
|
1725
|
-
className: "space-y-3",
|
|
1726
|
-
children: [/* @__PURE__ */ jsx("h3", {
|
|
1727
|
-
className: "text-foreground text-sm font-semibold",
|
|
1728
|
-
children: sectionName
|
|
1729
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
1730
|
-
className: "grid grid-cols-4 gap-2",
|
|
1731
|
-
children: items.map((item) => /* @__PURE__ */ jsxs(Button, {
|
|
1732
|
-
variant: "ghost",
|
|
1733
|
-
className: "text-sidebar-foreground hover:bg-sidebar-primary hover:text-sidebar-primary-foreground h-auto justify-start gap-2 rounded-lg px-3 py-2 text-sm",
|
|
1734
|
-
onClick: () => {
|
|
1735
|
-
if (item.slug) onNavigate(item.slug);
|
|
1736
|
-
setOpen(false);
|
|
1737
|
-
},
|
|
1738
|
-
children: [item.icon && /* @__PURE__ */ jsx(RepIcon, {
|
|
1739
|
-
name: item.icon,
|
|
1740
|
-
className: "h-4 w-4 shrink-0"
|
|
1741
|
-
}), /* @__PURE__ */ jsx("span", {
|
|
1742
|
-
className: "truncate",
|
|
1743
|
-
children: item.label
|
|
1744
|
-
})]
|
|
1745
|
-
}, item.slug))
|
|
1746
|
-
})]
|
|
1747
|
-
}, sectionName))
|
|
1748
|
-
})]
|
|
1749
|
-
})
|
|
1750
|
-
})]
|
|
1751
|
-
});
|
|
1752
|
-
}
|
|
1753
|
-
//#endregion
|
|
1754
|
-
//#region src/shell/SdkMobileQuickLinksGrid.tsx
|
|
1755
|
-
function SdkMobileQuickLinksGrid({ onNavigate }) {
|
|
1756
|
-
const { data: account } = useAccount();
|
|
1757
|
-
const isCustomer = account?.member_type === "customer";
|
|
1758
|
-
const sections = useMemo(() => {
|
|
1759
|
-
const all = getSystemNavigationBySection();
|
|
1760
|
-
return isCustomer ? filterRepOnlySections(all) : all;
|
|
1761
|
-
}, [isCustomer]);
|
|
1762
|
-
return /* @__PURE__ */ jsx("div", {
|
|
1763
|
-
className: "space-y-4",
|
|
1764
|
-
children: Object.entries(sections).map(([sectionName, items]) => /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h4", {
|
|
1765
|
-
className: "text-muted-foreground mb-2 text-xs font-semibold uppercase",
|
|
1766
|
-
children: sectionName
|
|
1767
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
1768
|
-
className: "grid grid-cols-3 gap-2",
|
|
1769
|
-
children: items.map((item) => /* @__PURE__ */ jsxs(Button, {
|
|
1770
|
-
variant: "ghost",
|
|
1771
|
-
className: "text-sidebar-foreground hover:bg-sidebar-primary hover:text-sidebar-primary-foreground h-auto flex-col gap-1 rounded-lg p-2",
|
|
1772
|
-
onClick: () => {
|
|
1773
|
-
if (item.slug) onNavigate(item.slug);
|
|
1774
|
-
},
|
|
1775
|
-
children: [item.icon && /* @__PURE__ */ jsx(RepIcon, {
|
|
1776
|
-
name: item.icon,
|
|
1777
|
-
className: "size-5"
|
|
1778
|
-
}), /* @__PURE__ */ jsx("span", {
|
|
1779
|
-
className: "text-xs",
|
|
1780
|
-
children: item.label
|
|
1781
|
-
})]
|
|
1782
|
-
}, item.slug))
|
|
1783
|
-
})] }, sectionName))
|
|
1784
|
-
});
|
|
1785
|
-
}
|
|
1786
|
-
//#endregion
|
|
1787
1653
|
//#region src/shell/SdkMobileProfileMenu.tsx
|
|
1788
1654
|
function getInitials(name) {
|
|
1789
1655
|
if (!name) return "U";
|
|
@@ -1861,10 +1727,6 @@ function SdkMobileProfileMenu({ onNavigate, onLogout }) {
|
|
|
1861
1727
|
children: [/* @__PURE__ */ jsx(Smartphone, { className: "size-5" }), /* @__PURE__ */ jsx("span", { children: "App Download" })]
|
|
1862
1728
|
})
|
|
1863
1729
|
}),
|
|
1864
|
-
/* @__PURE__ */ jsx("div", {
|
|
1865
|
-
className: "border-border border-b py-4",
|
|
1866
|
-
children: /* @__PURE__ */ jsx(SdkMobileQuickLinksGrid, { onNavigate: handleNavigate })
|
|
1867
|
-
}),
|
|
1868
1730
|
/* @__PURE__ */ jsxs("div", {
|
|
1869
1731
|
className: "space-y-4 py-4",
|
|
1870
1732
|
children: [/* @__PURE__ */ jsxs("button", {
|
|
@@ -1912,7 +1774,6 @@ function SdkHeader({ mobileTabs, currentSlug, onNavigate, onLogout }) {
|
|
|
1912
1774
|
children: /* @__PURE__ */ jsx(Menu, { className: "size-5" })
|
|
1913
1775
|
}),
|
|
1914
1776
|
/* @__PURE__ */ jsx("div", { className: "flex-1" }),
|
|
1915
|
-
/* @__PURE__ */ jsx(QuickLinksDropdown, { onNavigate }),
|
|
1916
1777
|
/* @__PURE__ */ jsx("button", {
|
|
1917
1778
|
type: "button",
|
|
1918
1779
|
onClick: themeMode.cycleMode,
|
|
@@ -2211,17 +2072,17 @@ function AccountManageLayout({ children }) {
|
|
|
2211
2072
|
}
|
|
2212
2073
|
//#endregion
|
|
2213
2074
|
//#region src/shell/system-screen-map.ts
|
|
2214
|
-
const ProfileScreen$1 = lazy(() => import("./ProfileScreen-
|
|
2215
|
-
const OrdersScreen$1 = lazy(() => import("./OrdersScreen-
|
|
2216
|
-
const SubscriptionsScreen$1 = lazy(() => import("./SubscriptionsScreen-
|
|
2217
|
-
const MessagingScreen$1 = lazy(() => import("./MessagingScreen-
|
|
2218
|
-
const ContactsScreen$1 = lazy(() => import("./ContactsScreen-
|
|
2219
|
-
const ShopScreen$1 = lazy(() => import("./ShopScreen-
|
|
2220
|
-
const CustomersScreen$1 = lazy(() => import("./CustomersScreen-
|
|
2221
|
-
const ShareablesScreen$1 = lazy(() => import("./ShareablesScreen-
|
|
2075
|
+
const ProfileScreen$1 = lazy(() => import("./ProfileScreen-CeD1jq89.mjs").then((n) => n.n).then((m) => ({ default: m.ProfileScreen })));
|
|
2076
|
+
const OrdersScreen$1 = lazy(() => import("./OrdersScreen-BV3vJ7xy.mjs").then((n) => n.n).then((m) => ({ default: m.OrdersScreen })));
|
|
2077
|
+
const SubscriptionsScreen$1 = lazy(() => import("./SubscriptionsScreen-CXM2zmF7.mjs").then((n) => n.n).then((m) => ({ default: m.SubscriptionsScreen })));
|
|
2078
|
+
const MessagingScreen$1 = lazy(() => import("./MessagingScreen-RItZgONw.mjs").then((n) => n.n).then((m) => ({ default: m.MessagingScreen })));
|
|
2079
|
+
const ContactsScreen$1 = lazy(() => import("./ContactsScreen-CMBERzKU.mjs").then((n) => n.n).then((m) => ({ default: m.ContactsScreen })));
|
|
2080
|
+
const ShopScreen$1 = lazy(() => import("./ShopScreen-dAe71cdL.mjs").then((n) => n.n).then((m) => ({ default: m.ShopScreen })));
|
|
2081
|
+
const CustomersScreen$1 = lazy(() => import("./CustomersScreen-BJOBG5f5.mjs").then((n) => n.n).then((m) => ({ default: m.CustomersScreen })));
|
|
2082
|
+
const ShareablesScreen$1 = lazy(() => import("./ShareablesScreen-D3Hfqg9-.mjs").then((n) => n.n).then((m) => ({ default: m.ShareablesScreen })));
|
|
2222
2083
|
const MySiteScreen$1 = lazy(() => import("./MySiteScreen-CN0ZDBgy.mjs").then((n) => n.n).then((m) => ({ default: m.MySiteScreen })));
|
|
2223
2084
|
const UpgradeScreen = lazy(() => import("./UpgradeScreen-DnGnWVTf.mjs").then((n) => n.t).then((m) => ({ default: m.UpgradeScreen })));
|
|
2224
|
-
const AppDownloadScreen = lazy(() => import("./AppDownloadScreen-
|
|
2085
|
+
const AppDownloadScreen = lazy(() => import("./AppDownloadScreen-DQR40F0y.mjs").then((n) => n.t).then((m) => ({ default: m.AppDownloadScreen })));
|
|
2225
2086
|
const SYSTEM_SLUG_SCREEN_MAP = {
|
|
2226
2087
|
profile: ProfileScreen$1,
|
|
2227
2088
|
orders: OrdersScreen$1,
|
|
@@ -2251,7 +2112,16 @@ function findScreenByPrefix(slug) {
|
|
|
2251
2112
|
//#endregion
|
|
2252
2113
|
//#region src/shell/PageRouter.tsx
|
|
2253
2114
|
const ACCOUNT_SLUGS = new Set(ACCOUNT_MANAGE_SLUGS);
|
|
2254
|
-
|
|
2115
|
+
/**
|
|
2116
|
+
* Returns true if any nav slug resolves to the given system screen component.
|
|
2117
|
+
* Lets detail routes (e.g. `share/product/:id`) render when their listing
|
|
2118
|
+
* slug (`share/products`) is in the nav, since both map to the same screen.
|
|
2119
|
+
*/
|
|
2120
|
+
function isSystemScreenCoveredByNav(target, navSlugs) {
|
|
2121
|
+
for (const slug of navSlugs) if ((SYSTEM_SLUG_SCREEN_MAP[slug] ?? findScreenByPrefix(slug)) === target) return true;
|
|
2122
|
+
return false;
|
|
2123
|
+
}
|
|
2124
|
+
function PageRouter({ currentSlug, currentNavItem, customPages, screens, baseSlug, restParams, navSlugs }) {
|
|
2255
2125
|
const { data: account } = useAccount();
|
|
2256
2126
|
const isCustomer = account?.member_type === "customer";
|
|
2257
2127
|
const screenById = useMemo(() => {
|
|
@@ -2289,7 +2159,8 @@ function PageRouter({ currentSlug, currentNavItem, customPages, screens, baseSlu
|
|
|
2289
2159
|
});
|
|
2290
2160
|
}
|
|
2291
2161
|
const SystemScreen = SYSTEM_SLUG_SCREEN_MAP[baseSlug] ?? findScreenByPrefix(currentSlug);
|
|
2292
|
-
|
|
2162
|
+
const systemScreenInNav = navSlugs === void 0 || SystemScreen !== void 0 && isSystemScreenCoveredByNav(SystemScreen, navSlugs);
|
|
2163
|
+
if (SystemScreen && systemScreenInNav) {
|
|
2293
2164
|
const content = /* @__PURE__ */ jsx(Suspense, {
|
|
2294
2165
|
fallback: /* @__PURE__ */ jsx("div", {
|
|
2295
2166
|
className: "flex h-full items-center justify-center",
|
|
@@ -2474,6 +2345,43 @@ function SdkLogoutButton({ onLogout }) {
|
|
|
2474
2345
|
}) }) });
|
|
2475
2346
|
}
|
|
2476
2347
|
//#endregion
|
|
2348
|
+
//#region src/navigation/filter-nav-items.ts
|
|
2349
|
+
/**
|
|
2350
|
+
* Filter navigation items by removing rep-only slugs.
|
|
2351
|
+
* Handles nested children: rep-only children are removed, and parents
|
|
2352
|
+
* with no remaining children are also removed.
|
|
2353
|
+
*/
|
|
2354
|
+
function filterRepOnlyNavItems(items) {
|
|
2355
|
+
const result = [];
|
|
2356
|
+
for (const item of items) {
|
|
2357
|
+
if (!item.children?.length) {
|
|
2358
|
+
if (isRepOnlySlug(item.slug)) continue;
|
|
2359
|
+
result.push(item);
|
|
2360
|
+
continue;
|
|
2361
|
+
}
|
|
2362
|
+
if (isRepOnlySlug(item.slug)) continue;
|
|
2363
|
+
const filteredChildren = filterRepOnlyNavItems(item.children);
|
|
2364
|
+
if (filteredChildren.length === 0) continue;
|
|
2365
|
+
result.push({
|
|
2366
|
+
...item,
|
|
2367
|
+
children: filteredChildren
|
|
2368
|
+
});
|
|
2369
|
+
}
|
|
2370
|
+
return result;
|
|
2371
|
+
}
|
|
2372
|
+
/**
|
|
2373
|
+
* Filter system navigation sections by removing rep-only items.
|
|
2374
|
+
* Sections with no remaining items are dropped entirely.
|
|
2375
|
+
*/
|
|
2376
|
+
function filterRepOnlySections(sections) {
|
|
2377
|
+
const filtered = {};
|
|
2378
|
+
for (const [section, items] of Object.entries(sections)) {
|
|
2379
|
+
const allowed = items.filter((item) => !isRepOnlySlug(item.slug));
|
|
2380
|
+
if (allowed.length > 0) filtered[section] = allowed;
|
|
2381
|
+
}
|
|
2382
|
+
return filtered;
|
|
2383
|
+
}
|
|
2384
|
+
//#endregion
|
|
2477
2385
|
//#region src/shell/AppShell.tsx
|
|
2478
2386
|
const THEME_STORAGE_KEY = "portal-theme-mode";
|
|
2479
2387
|
function getInitialThemeMode() {
|
|
@@ -2564,6 +2472,10 @@ function AppShell({ appData: appDataProp, navigation: navigationProp, customPage
|
|
|
2564
2472
|
const filteredMobileNavItems = useMemo(() => isCustomer ? filterRepOnlyNavItems(mobileNavItems) : mobileNavItems, [mobileNavItems, isCustomer]);
|
|
2565
2473
|
const screens = appData?.screens;
|
|
2566
2474
|
const navSlugs = useMemo(() => collectNavSlugs(filteredNavItems), [filteredNavItems]);
|
|
2475
|
+
const allNavSlugs = useMemo(() => {
|
|
2476
|
+
const mobileSlugs = collectNavSlugs(filteredMobileNavItems);
|
|
2477
|
+
return Array.from(new Set([...navSlugs, ...mobileSlugs]));
|
|
2478
|
+
}, [navSlugs, filteredMobileNavItems]);
|
|
2567
2479
|
const [themeMode, setThemeMode] = useState(getInitialThemeMode);
|
|
2568
2480
|
const handleThemeModeChange = useCallback((mode) => {
|
|
2569
2481
|
setThemeMode(mode);
|
|
@@ -2670,7 +2582,8 @@ function AppShell({ appData: appDataProp, navigation: navigationProp, customPage
|
|
|
2670
2582
|
customPages,
|
|
2671
2583
|
screens,
|
|
2672
2584
|
baseSlug,
|
|
2673
|
-
restParams
|
|
2585
|
+
restParams,
|
|
2586
|
+
navSlugs: allNavSlugs
|
|
2674
2587
|
})
|
|
2675
2588
|
})]
|
|
2676
2589
|
}) }) }, activeSlug ?? "");
|
|
@@ -3822,17 +3735,17 @@ z.object({
|
|
|
3822
3735
|
//#endregion
|
|
3823
3736
|
//#region src/screens/index.ts
|
|
3824
3737
|
const screenPropertySchemas = {
|
|
3825
|
-
ProfileScreen: () => import("./ProfileScreen-
|
|
3826
|
-
MessagingScreen: () => import("./MessagingScreen-
|
|
3827
|
-
ContactsScreen: () => import("./ContactsScreen-
|
|
3828
|
-
OrdersScreen: () => import("./OrdersScreen-
|
|
3829
|
-
SubscriptionsScreen: () => import("./SubscriptionsScreen-
|
|
3830
|
-
CustomersScreen: () => import("./CustomersScreen-
|
|
3738
|
+
ProfileScreen: () => import("./ProfileScreen-CeD1jq89.mjs").then((n) => n.n).then((m) => m.profileScreenPropertySchema),
|
|
3739
|
+
MessagingScreen: () => import("./MessagingScreen-RItZgONw.mjs").then((n) => n.n).then((m) => m.messagingScreenPropertySchema),
|
|
3740
|
+
ContactsScreen: () => import("./ContactsScreen-CMBERzKU.mjs").then((n) => n.n).then((m) => m.contactsScreenPropertySchema),
|
|
3741
|
+
OrdersScreen: () => import("./OrdersScreen-BV3vJ7xy.mjs").then((n) => n.n).then((m) => m.ordersScreenPropertySchema),
|
|
3742
|
+
SubscriptionsScreen: () => import("./SubscriptionsScreen-CXM2zmF7.mjs").then((n) => n.n).then((m) => m.subscriptionsScreenPropertySchema),
|
|
3743
|
+
CustomersScreen: () => import("./CustomersScreen-BJOBG5f5.mjs").then((n) => n.n).then((m) => m.customersScreenPropertySchema),
|
|
3831
3744
|
MySiteScreen: () => import("./MySiteScreen-CN0ZDBgy.mjs").then((n) => n.n).then((m) => m.mySiteScreenPropertySchema),
|
|
3832
|
-
ShareablesScreen: () => import("./ShareablesScreen-
|
|
3833
|
-
ShopScreen: () => import("./ShopScreen-
|
|
3745
|
+
ShareablesScreen: () => import("./ShareablesScreen-D3Hfqg9-.mjs").then((n) => n.n).then((m) => m.shareablesScreenPropertySchema),
|
|
3746
|
+
ShopScreen: () => import("./ShopScreen-dAe71cdL.mjs").then((n) => n.n).then((m) => m.shopScreenPropertySchema),
|
|
3834
3747
|
UpgradeScreen: () => import("./UpgradeScreen-DnGnWVTf.mjs").then((n) => n.t).then((m) => m.upgradeScreenPropertySchema),
|
|
3835
|
-
AppDownloadScreen: () => import("./AppDownloadScreen-
|
|
3748
|
+
AppDownloadScreen: () => import("./AppDownloadScreen-DQR40F0y.mjs").then((n) => n.t).then((m) => m.appDownloadScreenPropertySchema)
|
|
3836
3749
|
};
|
|
3837
3750
|
/**
|
|
3838
3751
|
* Core page template IDs
|
|
@@ -4083,6 +3996,70 @@ function registerCorePageTemplates() {
|
|
|
4083
3996
|
}
|
|
4084
3997
|
registerCorePageTemplates();
|
|
4085
3998
|
//#endregion
|
|
3999
|
+
//#region src/shell/QuickLinksDropdown.tsx
|
|
4000
|
+
function QuickLinksDropdown({ onNavigate }) {
|
|
4001
|
+
const [open, setOpen] = useState(false);
|
|
4002
|
+
const { data: account } = useAccount();
|
|
4003
|
+
const isCustomer = account?.member_type === "customer";
|
|
4004
|
+
const sections = useMemo(() => {
|
|
4005
|
+
const all = getSystemNavigationBySection();
|
|
4006
|
+
return isCustomer ? filterRepOnlySections(all) : all;
|
|
4007
|
+
}, [isCustomer]);
|
|
4008
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
4009
|
+
open,
|
|
4010
|
+
onOpenChange: setOpen,
|
|
4011
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
4012
|
+
asChild: true,
|
|
4013
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
4014
|
+
variant: "ghost",
|
|
4015
|
+
size: "sm",
|
|
4016
|
+
className: "text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shrink-0",
|
|
4017
|
+
"aria-label": "Quick links",
|
|
4018
|
+
children: /* @__PURE__ */ jsx(LayoutGrid, { className: "h-4 w-4" })
|
|
4019
|
+
})
|
|
4020
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
4021
|
+
align: "end",
|
|
4022
|
+
className: "w-175 max-w-[90vw] overflow-hidden rounded-lg p-0 shadow-lg",
|
|
4023
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
4024
|
+
className: "flex flex-col",
|
|
4025
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
4026
|
+
className: "bg-background flex items-center gap-2 border-b p-4",
|
|
4027
|
+
children: [/* @__PURE__ */ jsx(LayoutGrid, { className: "text-muted-foreground h-5 w-5" }), /* @__PURE__ */ jsx("h3", {
|
|
4028
|
+
className: "text-foreground text-sm font-semibold",
|
|
4029
|
+
children: "Shortcuts"
|
|
4030
|
+
})]
|
|
4031
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
4032
|
+
className: "bg-muted space-y-6 p-6",
|
|
4033
|
+
children: Object.entries(sections).map(([sectionName, items]) => /* @__PURE__ */ jsxs("div", {
|
|
4034
|
+
className: "space-y-3",
|
|
4035
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
4036
|
+
className: "text-foreground text-sm font-semibold",
|
|
4037
|
+
children: sectionName
|
|
4038
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
4039
|
+
className: "grid grid-cols-4 gap-2",
|
|
4040
|
+
children: items.map((item) => /* @__PURE__ */ jsxs(Button, {
|
|
4041
|
+
variant: "ghost",
|
|
4042
|
+
className: "text-sidebar-foreground hover:bg-sidebar-primary hover:text-sidebar-primary-foreground h-auto justify-start gap-2 rounded-lg px-3 py-2 text-sm",
|
|
4043
|
+
onClick: () => {
|
|
4044
|
+
if (item.slug) onNavigate(item.slug);
|
|
4045
|
+
setOpen(false);
|
|
4046
|
+
},
|
|
4047
|
+
children: [item.icon && /* @__PURE__ */ jsx(RepIcon, {
|
|
4048
|
+
name: item.icon,
|
|
4049
|
+
className: "h-4 w-4 shrink-0"
|
|
4050
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
4051
|
+
className: "truncate",
|
|
4052
|
+
children: item.label
|
|
4053
|
+
})]
|
|
4054
|
+
}, item.slug))
|
|
4055
|
+
})]
|
|
4056
|
+
}, sectionName))
|
|
4057
|
+
})]
|
|
4058
|
+
})
|
|
4059
|
+
})]
|
|
4060
|
+
});
|
|
4061
|
+
}
|
|
4062
|
+
//#endregion
|
|
4086
4063
|
//#region src/shell/AppLink.tsx
|
|
4087
4064
|
/**
|
|
4088
4065
|
* SPA-aware link that renders a real `<a href>` for accessibility
|