@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.
Files changed (68) hide show
  1. package/dist/{AppDownloadScreen-B0YwMqYM.cjs → AppDownloadScreen-BXnl23_d.cjs} +2 -2
  2. package/dist/{AppDownloadScreen-B0YwMqYM.cjs.map → AppDownloadScreen-BXnl23_d.cjs.map} +1 -1
  3. package/dist/{AppDownloadScreen-CT_TvZfy.mjs → AppDownloadScreen-DQR40F0y.mjs} +2 -2
  4. package/dist/{AppDownloadScreen-CT_TvZfy.mjs.map → AppDownloadScreen-DQR40F0y.mjs.map} +1 -1
  5. package/dist/{AppNavigationContext-BDs1cOuG.cjs → AppNavigationContext-C1-hd9Rw.cjs} +1 -1
  6. package/dist/{AppNavigationContext-BDs1cOuG.cjs.map → AppNavigationContext-C1-hd9Rw.cjs.map} +1 -1
  7. package/dist/{AppNavigationContext-DNod9mf6.mjs → AppNavigationContext-Dvc0yoZF.mjs} +1 -1
  8. package/dist/{AppNavigationContext-DNod9mf6.mjs.map → AppNavigationContext-Dvc0yoZF.mjs.map} +1 -1
  9. package/dist/{ContactsScreen-BaILrn_J.cjs → ContactsScreen-CH_P8WxC.cjs} +1 -1
  10. package/dist/{ContactsScreen-C0TixAga.mjs → ContactsScreen-CMBERzKU.mjs} +2 -2
  11. package/dist/{ContactsScreen-C0TixAga.mjs.map → ContactsScreen-CMBERzKU.mjs.map} +1 -1
  12. package/dist/{ContactsScreen-Cgpeq_3G.cjs → ContactsScreen-Cj0_VI0d.cjs} +2 -2
  13. package/dist/{ContactsScreen-Cgpeq_3G.cjs.map → ContactsScreen-Cj0_VI0d.cjs.map} +1 -1
  14. package/dist/{CustomersScreen-DJzgMofN.mjs → CustomersScreen-BJOBG5f5.mjs} +1 -1
  15. package/dist/{CustomersScreen-DJzgMofN.mjs.map → CustomersScreen-BJOBG5f5.mjs.map} +1 -1
  16. package/dist/{CustomersScreen-GROLIynQ.cjs → CustomersScreen-DW3BuhBs.cjs} +1 -1
  17. package/dist/{CustomersScreen-GROLIynQ.cjs.map → CustomersScreen-DW3BuhBs.cjs.map} +1 -1
  18. package/dist/{MessagingScreen-CAqiCGjA.cjs → MessagingScreen-40YCQbX9.cjs} +3 -3
  19. package/dist/{MessagingScreen-CAqiCGjA.cjs.map → MessagingScreen-40YCQbX9.cjs.map} +1 -1
  20. package/dist/{MessagingScreen-DNxIsd2Q.cjs → MessagingScreen-CrdiB4M3.cjs} +1 -1
  21. package/dist/{MessagingScreen-BzTN_FU8.mjs → MessagingScreen-RItZgONw.mjs} +3 -3
  22. package/dist/{MessagingScreen-BzTN_FU8.mjs.map → MessagingScreen-RItZgONw.mjs.map} +1 -1
  23. package/dist/{OrdersScreen-BlZgI0XT.mjs → OrdersScreen-BV3vJ7xy.mjs} +2 -2
  24. package/dist/{OrdersScreen-BlZgI0XT.mjs.map → OrdersScreen-BV3vJ7xy.mjs.map} +1 -1
  25. package/dist/{OrdersScreen-Cr_2QuUc.cjs → OrdersScreen-Cuch7aki.cjs} +1 -1
  26. package/dist/{OrdersScreen-BrqNjvTY.cjs → OrdersScreen-DPcp2dLW.cjs} +2 -2
  27. package/dist/{OrdersScreen-BrqNjvTY.cjs.map → OrdersScreen-DPcp2dLW.cjs.map} +1 -1
  28. package/dist/{ProfileScreen-ZN-A1RDl.cjs → ProfileScreen-CEKbhSRz.cjs} +3 -3
  29. package/dist/{ProfileScreen-ZN-A1RDl.cjs.map → ProfileScreen-CEKbhSRz.cjs.map} +1 -1
  30. package/dist/{ProfileScreen-DFkgLmNL.mjs → ProfileScreen-CeD1jq89.mjs} +3 -3
  31. package/dist/{ProfileScreen-DFkgLmNL.mjs.map → ProfileScreen-CeD1jq89.mjs.map} +1 -1
  32. package/dist/{ProfileScreen-Urnx0LDK.cjs → ProfileScreen-Dex8VHSB.cjs} +1 -1
  33. package/dist/{ShareablesScreen-DlrTvvXe.cjs → ShareablesScreen-Bt0E1aya.cjs} +4 -4
  34. package/dist/{ShareablesScreen-DlrTvvXe.cjs.map → ShareablesScreen-Bt0E1aya.cjs.map} +1 -1
  35. package/dist/{ShareablesScreen-CvIi80jN.mjs → ShareablesScreen-D3Hfqg9-.mjs} +4 -4
  36. package/dist/{ShareablesScreen-CvIi80jN.mjs.map → ShareablesScreen-D3Hfqg9-.mjs.map} +1 -1
  37. package/dist/{ShareablesScreen-Boi-_GvN.cjs → ShareablesScreen-LSyiDa6q.cjs} +1 -1
  38. package/dist/{ShopScreen-2FSVxXiE.cjs → ShopScreen-BiqZPyiB.cjs} +3 -3
  39. package/dist/{ShopScreen-2FSVxXiE.cjs.map → ShopScreen-BiqZPyiB.cjs.map} +1 -1
  40. package/dist/{ShopScreen-BxjZQ0SG.cjs → ShopScreen-Cgro0M1d.cjs} +1 -1
  41. package/dist/{ShopScreen-Bkuiya9D.mjs → ShopScreen-dAe71cdL.mjs} +3 -3
  42. package/dist/{ShopScreen-Bkuiya9D.mjs.map → ShopScreen-dAe71cdL.mjs.map} +1 -1
  43. package/dist/{SubscriptionsScreen-B7pAMsaf.mjs → SubscriptionsScreen-CXM2zmF7.mjs} +4 -4
  44. package/dist/{SubscriptionsScreen-B7pAMsaf.mjs.map → SubscriptionsScreen-CXM2zmF7.mjs.map} +1 -1
  45. package/dist/{SubscriptionsScreen-Cv3C3SVW.cjs → SubscriptionsScreen-DrDSwMXS.cjs} +4 -4
  46. package/dist/{SubscriptionsScreen-Cv3C3SVW.cjs.map → SubscriptionsScreen-DrDSwMXS.cjs.map} +1 -1
  47. package/dist/{SubscriptionsScreen-BbokDXZD.cjs → SubscriptionsScreen-t5wtDGfB.cjs} +1 -1
  48. package/dist/index.cjs +149 -172
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.d.cts +9 -1
  51. package/dist/index.d.cts.map +1 -1
  52. package/dist/index.d.mts +9 -1
  53. package/dist/index.d.mts.map +1 -1
  54. package/dist/index.mjs +149 -172
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/{query-keys-D3lK70Ea.cjs → query-keys-elu0svUd.cjs} +1 -1
  57. package/dist/{query-keys-D3lK70Ea.cjs.map → query-keys-elu0svUd.cjs.map} +1 -1
  58. package/dist/{query-keys-xJy_fapN.mjs → query-keys-oQKvV4jp.mjs} +1 -1
  59. package/dist/{query-keys-xJy_fapN.mjs.map → query-keys-oQKvV4jp.mjs.map} +1 -1
  60. package/dist/{use-account-DcBCP06c.cjs → use-account-C1X-VLY-.cjs} +2 -2
  61. package/dist/{use-account-DcBCP06c.cjs.map → use-account-C1X-VLY-.cjs.map} +1 -1
  62. package/dist/{use-account-CBMPhhs7.mjs → use-account-C76sphlu.mjs} +2 -2
  63. package/dist/{use-account-CBMPhhs7.mjs.map → use-account-C76sphlu.mjs.map} +1 -1
  64. package/dist/{use-store-By_7tzrN.mjs → use-store-C2KBIS41.mjs} +1 -1
  65. package/dist/{use-store-By_7tzrN.mjs.map → use-store-C2KBIS41.mjs.map} +1 -1
  66. package/dist/{use-store-lOOUcpRT.cjs → use-store-D2S1FywW.cjs} +1 -1
  67. package/dist/{use-store-lOOUcpRT.cjs.map → use-store-D2S1FywW.cjs.map} +1 -1
  68. 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-BzTN_FU8.mjs";
29
- import { r as subscriptionsScreenPropertySchema, t as SubscriptionsScreen } from "./SubscriptionsScreen-B7pAMsaf.mjs";
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 useAccount } from "./use-account-CBMPhhs7.mjs";
49
- import { t as useStore } from "./use-store-By_7tzrN.mjs";
50
- import { i as CoreScreenPlaceholder, r as customersScreenPropertySchema, t as CustomersScreen } from "./CustomersScreen-DJzgMofN.mjs";
51
- import { n as useAppNavigation, t as AppNavigationProvider } from "./AppNavigationContext-DNod9mf6.mjs";
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-DFkgLmNL.mjs";
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-C0TixAga.mjs";
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-BlZgI0XT.mjs";
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-CvIi80jN.mjs";
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-Bkuiya9D.mjs";
65
+ import { r as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-dAe71cdL.mjs";
66
66
  import "./UpgradeScreen-DnGnWVTf.mjs";
67
- import "./AppDownloadScreen-CT_TvZfy.mjs";
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-DFkgLmNL.mjs").then((n) => n.n).then((m) => ({ default: m.ProfileScreen })));
2215
- const OrdersScreen$1 = lazy(() => import("./OrdersScreen-BlZgI0XT.mjs").then((n) => n.n).then((m) => ({ default: m.OrdersScreen })));
2216
- const SubscriptionsScreen$1 = lazy(() => import("./SubscriptionsScreen-B7pAMsaf.mjs").then((n) => n.n).then((m) => ({ default: m.SubscriptionsScreen })));
2217
- const MessagingScreen$1 = lazy(() => import("./MessagingScreen-BzTN_FU8.mjs").then((n) => n.n).then((m) => ({ default: m.MessagingScreen })));
2218
- const ContactsScreen$1 = lazy(() => import("./ContactsScreen-C0TixAga.mjs").then((n) => n.n).then((m) => ({ default: m.ContactsScreen })));
2219
- const ShopScreen$1 = lazy(() => import("./ShopScreen-Bkuiya9D.mjs").then((n) => n.n).then((m) => ({ default: m.ShopScreen })));
2220
- const CustomersScreen$1 = lazy(() => import("./CustomersScreen-DJzgMofN.mjs").then((n) => n.n).then((m) => ({ default: m.CustomersScreen })));
2221
- const ShareablesScreen$1 = lazy(() => import("./ShareablesScreen-CvIi80jN.mjs").then((n) => n.n).then((m) => ({ default: m.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-CT_TvZfy.mjs").then((n) => n.t).then((m) => ({ default: m.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
- function PageRouter({ currentSlug, currentNavItem, customPages, screens, baseSlug, restParams }) {
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
- if (SystemScreen) {
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-DFkgLmNL.mjs").then((n) => n.n).then((m) => m.profileScreenPropertySchema),
3826
- MessagingScreen: () => import("./MessagingScreen-BzTN_FU8.mjs").then((n) => n.n).then((m) => m.messagingScreenPropertySchema),
3827
- ContactsScreen: () => import("./ContactsScreen-C0TixAga.mjs").then((n) => n.n).then((m) => m.contactsScreenPropertySchema),
3828
- OrdersScreen: () => import("./OrdersScreen-BlZgI0XT.mjs").then((n) => n.n).then((m) => m.ordersScreenPropertySchema),
3829
- SubscriptionsScreen: () => import("./SubscriptionsScreen-B7pAMsaf.mjs").then((n) => n.n).then((m) => m.subscriptionsScreenPropertySchema),
3830
- CustomersScreen: () => import("./CustomersScreen-DJzgMofN.mjs").then((n) => n.n).then((m) => m.customersScreenPropertySchema),
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-CvIi80jN.mjs").then((n) => n.n).then((m) => m.shareablesScreenPropertySchema),
3833
- ShopScreen: () => import("./ShopScreen-Bkuiya9D.mjs").then((n) => n.n).then((m) => m.shopScreenPropertySchema),
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-CT_TvZfy.mjs").then((n) => n.t).then((m) => m.appDownloadScreenPropertySchema)
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