@fluid-app/rep-sdk 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkV3IMQZIG_cjs = require('./chunk-V3IMQZIG.cjs');
3
+ var chunkOE62VIZU_cjs = require('./chunk-OE62VIZU.cjs');
4
4
  var chunkEOXYOOWS_cjs = require('./chunk-EOXYOOWS.cjs');
5
5
  var chunkFG2CI6HA_cjs = require('./chunk-FG2CI6HA.cjs');
6
6
  var chunkMHPK7YQ2_cjs = require('./chunk-MHPK7YQ2.cjs');
7
7
  var chunk5UBEM3AX_cjs = require('./chunk-5UBEM3AX.cjs');
8
8
  var chunkB6S6BEPL_cjs = require('./chunk-B6S6BEPL.cjs');
9
9
  require('./chunk-HDQ2JUQT.cjs');
10
- var react = require('react');
10
+ var React2 = require('react');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
12
  var reactQuery = require('@tanstack/react-query');
13
13
  var types = require('@fluid-app/rep-core/types');
@@ -17,10 +17,12 @@ var registries = require('@fluid-app/rep-core/registries');
17
17
  var AppShellLayout = require('@fluid-app/rep-core/shell/AppShellLayout');
18
18
  var ThemeModeContext = require('@fluid-app/rep-core/shell/ThemeModeContext');
19
19
  var systemNavigationItems = require('@fluid-app/rep-core/navigation/system-navigation-items');
20
- var theme = require('@fluid-app/rep-core/theme');
21
- var sidebar = require('@fluid-app/rep-core/shell/sidebar');
22
- var RepIcon = require('@fluid-app/rep-core/components/RepIcon');
23
20
  var reactFontawesome = require('@fortawesome/react-fontawesome');
21
+ var faEllipsis = require('@fortawesome/pro-regular-svg-icons/faEllipsis');
22
+ var faXmark = require('@fortawesome/pro-regular-svg-icons/faXmark');
23
+ var RepIcon = require('@fluid-app/rep-core/components/RepIcon');
24
+ var sidebar = require('@fluid-app/rep-core/shell/sidebar');
25
+ var theme = require('@fluid-app/rep-core/theme');
24
26
  var faBars = require('@fortawesome/pro-regular-svg-icons/faBars');
25
27
  var faSun = require('@fortawesome/pro-regular-svg-icons/faSun');
26
28
  var faMoon = require('@fortawesome/pro-regular-svg-icons/faMoon');
@@ -28,6 +30,26 @@ var faTableCellsLarge = require('@fortawesome/pro-regular-svg-icons/faTableCells
28
30
  var DataAwareWidget = require('@fluid-app/rep-core/data-sources/DataAwareWidget');
29
31
  var contexts = require('@fluid-app/rep-widgets/contexts');
30
32
 
33
+ function _interopNamespace(e) {
34
+ if (e && e.__esModule) return e;
35
+ var n = Object.create(null);
36
+ if (e) {
37
+ Object.keys(e).forEach(function (k) {
38
+ if (k !== 'default') {
39
+ var d = Object.getOwnPropertyDescriptor(e, k);
40
+ Object.defineProperty(n, k, d.get ? d : {
41
+ enumerable: true,
42
+ get: function () { return e[k]; }
43
+ });
44
+ }
45
+ });
46
+ }
47
+ n.default = e;
48
+ return Object.freeze(n);
49
+ }
50
+
51
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
52
+
31
53
  // src/types/page-template.ts
32
54
  var PAGE_CATEGORIES = {
33
55
  CORE: "core",
@@ -244,16 +266,16 @@ function validateNavigationPages(navigation) {
244
266
  };
245
267
  }
246
268
  var EMPTY_TEMPLATES = [];
247
- var PageTemplateContext = react.createContext(
269
+ var PageTemplateContext = React2.createContext(
248
270
  null
249
271
  );
250
272
  function PageTemplateProvider({
251
273
  children,
252
274
  templates = EMPTY_TEMPLATES
253
275
  }) {
254
- const registeredIds = react.useRef([]);
276
+ const registeredIds = React2.useRef([]);
255
277
  const templateKey = templates.map((t) => t.id).join(",");
256
- react.useEffect(() => {
278
+ React2.useEffect(() => {
257
279
  const registered = [];
258
280
  for (const template of templates) {
259
281
  if (!PageTemplateRegistry.has(template.id)) {
@@ -276,7 +298,7 @@ function PageTemplateProvider({
276
298
  registeredIds.current = [];
277
299
  };
278
300
  }, [templateKey]);
279
- const contextValue = react.useMemo(
301
+ const contextValue = React2.useMemo(
280
302
  () => ({
281
303
  resolvePages: resolveNavigationPages,
282
304
  listTemplates: () => PageTemplateRegistry.listAll(),
@@ -288,7 +310,7 @@ function PageTemplateProvider({
288
310
  return /* @__PURE__ */ jsxRuntime.jsx(PageTemplateContext.Provider, { value: contextValue, children });
289
311
  }
290
312
  function usePageTemplates() {
291
- const context = react.useContext(PageTemplateContext);
313
+ const context = React2.useContext(PageTemplateContext);
292
314
  if (!context) {
293
315
  throw new Error(
294
316
  "usePageTemplates must be used within a PageTemplateProvider"
@@ -298,11 +320,11 @@ function usePageTemplates() {
298
320
  }
299
321
  function useResolvedPages(navigation) {
300
322
  const { resolvePages } = usePageTemplates();
301
- return react.useMemo(() => resolvePages(navigation), [resolvePages, navigation]);
323
+ return React2.useMemo(() => resolvePages(navigation), [resolvePages, navigation]);
302
324
  }
303
325
  var PROFILE_QUERY_KEY = ["fluid", "profile"];
304
326
  function useFluidProfile() {
305
- const api = chunkV3IMQZIG_cjs.useFluidApi();
327
+ const api = chunkOE62VIZU_cjs.useFluidApi();
306
328
  return reactQuery.useQuery({
307
329
  queryKey: PROFILE_QUERY_KEY,
308
330
  queryFn: () => api.profile.get()
@@ -855,24 +877,24 @@ function createPersister() {
855
877
  var APP_DATA_QUERY_KEY = ["fluid", "app"];
856
878
  var appDataPersister = typeof window !== "undefined" ? createPersister() : void 0;
857
879
  function useFluidApp(options) {
858
- const api = chunkV3IMQZIG_cjs.useFluidApi();
880
+ const api = chunkOE62VIZU_cjs.useFluidApi();
859
881
  return reactQuery.useQuery({
860
882
  queryKey: APP_DATA_QUERY_KEY,
861
883
  queryFn: () => api.app.getRaw(),
862
- select: chunkV3IMQZIG_cjs.transformManifestToRepAppData,
884
+ select: chunkOE62VIZU_cjs.transformManifestToRepAppData,
863
885
  ...appDataPersister && { persister: appDataPersister.persisterFn },
864
886
  ...options?.enabled !== void 0 && { enabled: options.enabled }
865
887
  });
866
888
  }
867
889
  var PERMISSIONS_QUERY_KEY = ["fluid", "permissions"];
868
890
  function useFluidPermissions() {
869
- const api = chunkV3IMQZIG_cjs.useFluidApi();
891
+ const api = chunkOE62VIZU_cjs.useFluidApi();
870
892
  const query = reactQuery.useQuery({
871
893
  queryKey: PERMISSIONS_QUERY_KEY,
872
894
  queryFn: () => api.permissions.get()
873
895
  });
874
896
  const permissions = query.data;
875
- const can = react.useMemo(() => {
897
+ const can = React2.useMemo(() => {
876
898
  return (resource, action = "view") => {
877
899
  if (!permissions) {
878
900
  return false;
@@ -898,7 +920,7 @@ function useFluidPermissions() {
898
920
 
899
921
  // src/hooks/use-fluid-theme.ts
900
922
  function useFluidTheme() {
901
- const { currentTheme, setTheme, setThemeMode, mode } = chunkV3IMQZIG_cjs.useThemeContext();
923
+ const { currentTheme, setTheme, setThemeMode, mode } = chunkOE62VIZU_cjs.useThemeContext();
902
924
  return {
903
925
  currentTheme,
904
926
  setTheme,
@@ -908,7 +930,7 @@ function useFluidTheme() {
908
930
  }
909
931
  var CURRENT_REP_QUERY_KEY = ["fluid", "currentRep"];
910
932
  function useCurrentRep() {
911
- const api = chunkV3IMQZIG_cjs.useFluidApi();
933
+ const api = chunkOE62VIZU_cjs.useFluidApi();
912
934
  return reactQuery.useQuery({
913
935
  queryKey: CURRENT_REP_QUERY_KEY,
914
936
  queryFn: () => api.reps.current()
@@ -917,7 +939,7 @@ function useCurrentRep() {
917
939
 
918
940
  // src/hooks/use-fluid-auth.ts
919
941
  function useFluidAuth() {
920
- return chunkV3IMQZIG_cjs.useFluidAuthContext();
942
+ return chunkOE62VIZU_cjs.useFluidAuthContext();
921
943
  }
922
944
 
923
945
  // src/hooks/demo-data/calendar-events.ts
@@ -1588,7 +1610,7 @@ function ensureSpinStyle() {
1588
1610
  document.head.appendChild(style);
1589
1611
  }
1590
1612
  function AuthLoading() {
1591
- react.useEffect(() => {
1613
+ React2.useEffect(() => {
1592
1614
  ensureSpinStyle();
1593
1615
  }, []);
1594
1616
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1649,7 +1671,7 @@ function RequireAuth({
1649
1671
 
1650
1672
  // src/screens/index.ts
1651
1673
  var screenPropertySchemas = {
1652
- MessagingScreen: () => import('./MessagingScreen-UPFXQZV3.cjs').then((m) => m.messagingScreenPropertySchema),
1674
+ MessagingScreen: () => import('./MessagingScreen-JC7I55NG.cjs').then((m) => m.messagingScreenPropertySchema),
1653
1675
  ContactsScreen: () => import('./ContactsScreen-ATASCZO2.cjs').then((m) => m.contactsScreenPropertySchema),
1654
1676
  OrdersScreen: () => import('./OrdersScreen-X7FYUROL.cjs').then((m) => m.ordersScreenPropertySchema),
1655
1677
  CustomersScreen: () => import('./CustomersScreen-XMPMKSQA.cjs').then((m) => m.customersScreenPropertySchema),
@@ -1755,6 +1777,113 @@ function registerCorePageTemplates() {
1755
1777
  });
1756
1778
  }
1757
1779
  registerCorePageTemplates();
1780
+ function isInSection(item, currentSlug) {
1781
+ const normalized = systemNavigationItems.normalizeSlug(currentSlug);
1782
+ if (systemNavigationItems.normalizeSlug(item.slug) === normalized) return true;
1783
+ return item.children?.some((child) => systemNavigationItems.normalizeSlug(child.slug) === normalized) ?? false;
1784
+ }
1785
+ function getNavTarget(item) {
1786
+ if (item.slug && (!item.children || item.children.length === 0)) {
1787
+ return systemNavigationItems.normalizeSlug(item.slug);
1788
+ }
1789
+ if (item.children && item.children.length > 0) {
1790
+ const firstChild = item.children[0];
1791
+ if (firstChild?.slug) return systemNavigationItems.normalizeSlug(firstChild.slug);
1792
+ }
1793
+ return null;
1794
+ }
1795
+ function SdkBottomNav({
1796
+ navItems,
1797
+ currentSlug,
1798
+ onNavigate,
1799
+ maxVisibleItems = 5
1800
+ }) {
1801
+ const { isMobile, useBottomNav } = sidebar.useSidebar();
1802
+ const [moreOpen, setMoreOpen] = React2__namespace.useState(false);
1803
+ if (!isMobile || !useBottomNav) return null;
1804
+ const navigableItems = navItems.filter((item) => !item.parent_id).filter((item) => item.slug || item.children && item.children.length > 0);
1805
+ const hasOverflow = navigableItems.length > maxVisibleItems;
1806
+ const visibleItems = hasOverflow ? navigableItems.slice(0, maxVisibleItems - 1) : navigableItems;
1807
+ const overflowItems = hasOverflow ? navigableItems.slice(maxVisibleItems - 1) : [];
1808
+ const handleItemClick = (item) => {
1809
+ const target = getNavTarget(item);
1810
+ if (target) onNavigate(target);
1811
+ setMoreOpen(false);
1812
+ };
1813
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1814
+ /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: "fixed right-0 bottom-0 left-0 z-40 flex h-16 items-end justify-around border-t border-border bg-sidebar pb-[env(safe-area-inset-bottom)]", children: [
1815
+ visibleItems.map((item) => {
1816
+ const isActive = isInSection(item, currentSlug);
1817
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1818
+ "button",
1819
+ {
1820
+ type: "button",
1821
+ onClick: () => handleItemClick(item),
1822
+ className: `flex flex-1 flex-col items-center justify-center gap-0.5 py-2 text-[10px] font-medium transition-colors ${isActive ? "text-primary" : "text-muted-foreground"}`,
1823
+ children: [
1824
+ item.icon ? /* @__PURE__ */ jsxRuntime.jsx(RepIcon.RepIcon, { name: item.icon, className: "size-5" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-5" }),
1825
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[72px] truncate", children: item.label })
1826
+ ]
1827
+ },
1828
+ item.id ?? item.slug ?? item.label
1829
+ );
1830
+ }),
1831
+ hasOverflow && /* @__PURE__ */ jsxRuntime.jsxs(
1832
+ "button",
1833
+ {
1834
+ type: "button",
1835
+ onClick: () => setMoreOpen(true),
1836
+ className: `flex flex-1 flex-col items-center justify-center gap-0.5 py-2 text-[10px] font-medium transition-colors ${overflowItems.some((item) => isInSection(item, currentSlug)) ? "text-primary" : "text-muted-foreground"}`,
1837
+ children: [
1838
+ /* @__PURE__ */ jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, { icon: faEllipsis.faEllipsis, className: "size-5" }),
1839
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "More" })
1840
+ ]
1841
+ }
1842
+ )
1843
+ ] }),
1844
+ moreOpen && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50 flex flex-col", children: [
1845
+ /* @__PURE__ */ jsxRuntime.jsx(
1846
+ "div",
1847
+ {
1848
+ className: "flex-1 bg-black/50",
1849
+ onClick: () => setMoreOpen(false),
1850
+ "aria-hidden": "true"
1851
+ }
1852
+ ),
1853
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-t-2xl bg-sidebar pb-[env(safe-area-inset-bottom)]", children: [
1854
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-4 pt-4 pb-2", children: [
1855
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold text-foreground", children: "More" }),
1856
+ /* @__PURE__ */ jsxRuntime.jsx(
1857
+ "button",
1858
+ {
1859
+ type: "button",
1860
+ onClick: () => setMoreOpen(false),
1861
+ className: "flex items-center justify-center rounded-full p-1 text-muted-foreground hover:bg-sidebar-accent",
1862
+ "aria-label": "Close",
1863
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, { icon: faXmark.faXmark, className: "size-5" })
1864
+ }
1865
+ )
1866
+ ] }),
1867
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 pb-4", children: overflowItems.map((item) => {
1868
+ const isActive = isInSection(item, currentSlug);
1869
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1870
+ "button",
1871
+ {
1872
+ type: "button",
1873
+ onClick: () => handleItemClick(item),
1874
+ className: `flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-sm font-medium transition-colors ${isActive ? "bg-sidebar-primary text-sidebar-primary-foreground" : "text-sidebar-foreground hover:bg-sidebar-accent"}`,
1875
+ children: [
1876
+ item.icon && /* @__PURE__ */ jsxRuntime.jsx(RepIcon.RepIcon, { name: item.icon, className: "size-5" }),
1877
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label })
1878
+ ]
1879
+ },
1880
+ item.id ?? item.slug ?? item.label
1881
+ );
1882
+ }) })
1883
+ ] })
1884
+ ] })
1885
+ ] });
1886
+ }
1758
1887
  var SPIN_STYLE_ID2 = "fluid-app-shell-loading-spin";
1759
1888
  function ensureSpinStyle2() {
1760
1889
  if (typeof document === "undefined") return;
@@ -1765,7 +1894,7 @@ function ensureSpinStyle2() {
1765
1894
  document.head.appendChild(style);
1766
1895
  }
1767
1896
  function AppShellLoading() {
1768
- react.useEffect(() => {
1897
+ React2.useEffect(() => {
1769
1898
  ensureSpinStyle2();
1770
1899
  }, []);
1771
1900
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1877,11 +2006,11 @@ function SdkNavigation({
1877
2006
  }) });
1878
2007
  }
1879
2008
  function QuickLinksDropdown({ onNavigate }) {
1880
- const [open, setOpen] = react.useState(false);
1881
- const panelRef = react.useRef(null);
1882
- const buttonRef = react.useRef(null);
1883
- const close = react.useCallback(() => setOpen(false), []);
1884
- react.useEffect(() => {
2009
+ const [open, setOpen] = React2.useState(false);
2010
+ const panelRef = React2.useRef(null);
2011
+ const buttonRef = React2.useRef(null);
2012
+ const close = React2.useCallback(() => setOpen(false), []);
2013
+ React2.useEffect(() => {
1885
2014
  if (!open) return;
1886
2015
  const handleMouseDown = (e) => {
1887
2016
  if (panelRef.current && !panelRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
@@ -1961,6 +2090,7 @@ function QuickLinksDropdown({ onNavigate }) {
1961
2090
  }
1962
2091
  function SdkHeader({
1963
2092
  tabs,
2093
+ mobileTabs,
1964
2094
  currentSlug,
1965
2095
  onNavigate,
1966
2096
  navSlugs
@@ -1970,8 +2100,9 @@ function SdkHeader({
1970
2100
  const match = matchSlugPrefix(currentSlug, navSlugs);
1971
2101
  const baseSlug = match?.matchedSlug ?? systemNavigationItems.normalizeSlug(currentSlug);
1972
2102
  const themeIcon = themeMode.mode === "dark" ? faMoon.faMoon : faSun.faSun;
2103
+ const activeTabs = sidebar$1.isMobile && sidebar$1.useBottomNav && mobileTabs ? mobileTabs : tabs;
1973
2104
  return /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex h-[52px] shrink-0 items-center gap-2 bg-sidebar px-6", children: [
1974
- sidebar$1.isMobile && /* @__PURE__ */ jsxRuntime.jsx(
2105
+ sidebar$1.isMobile && !sidebar$1.useBottomNav && /* @__PURE__ */ jsxRuntime.jsx(
1975
2106
  "button",
1976
2107
  {
1977
2108
  type: "button",
@@ -1981,7 +2112,7 @@ function SdkHeader({
1981
2112
  children: /* @__PURE__ */ jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, { icon: faBars.faBars, className: "size-5" })
1982
2113
  }
1983
2114
  ),
1984
- /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "scrollbar-none flex flex-1 items-center gap-1 overflow-x-auto", children: tabs.map((tab) => {
2115
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "scrollbar-none flex flex-1 items-center gap-1 overflow-x-auto", children: activeTabs.map((tab) => {
1985
2116
  const tabSlug = systemNavigationItems.normalizeSlug(tab.slug);
1986
2117
  if (!tabSlug) return null;
1987
2118
  const isActive = tabSlug === baseSlug;
@@ -2040,9 +2171,9 @@ function BuilderScreenViewImpl({ screen, className }) {
2040
2171
  );
2041
2172
  }) });
2042
2173
  }
2043
- var BuilderScreenView = react.memo(BuilderScreenViewImpl);
2174
+ var BuilderScreenView = React2.memo(BuilderScreenViewImpl);
2044
2175
  var SYSTEM_SLUG_SCREEN_MAP = {
2045
- messages: chunkV3IMQZIG_cjs.MessagingScreen,
2176
+ messages: chunkOE62VIZU_cjs.MessagingScreen,
2046
2177
  contacts: chunkEOXYOOWS_cjs.ContactsScreen,
2047
2178
  shop: chunkFG2CI6HA_cjs.OrdersScreen,
2048
2179
  customers: chunkMHPK7YQ2_cjs.CustomersScreen,
@@ -2056,15 +2187,15 @@ function PageRouter({
2056
2187
  baseSlug,
2057
2188
  restParams
2058
2189
  }) {
2059
- const screenById = react.useMemo(() => {
2190
+ const screenById = React2.useMemo(() => {
2060
2191
  if (!screens || screens.length === 0) return void 0;
2061
2192
  return new Map(screens.map((s) => [s.id, s]));
2062
2193
  }, [screens]);
2063
- const screenBySlug = react.useMemo(() => {
2194
+ const screenBySlug = React2.useMemo(() => {
2064
2195
  if (!screens || screens.length === 0) return void 0;
2065
2196
  return new Map(screens.filter((s) => s.slug).map((s) => [s.slug, s]));
2066
2197
  }, [screens]);
2067
- const builderScreen = react.useMemo(() => {
2198
+ const builderScreen = React2.useMemo(() => {
2068
2199
  if (currentNavItem?.screen_id && screenById) {
2069
2200
  const byId = screenById.get(currentNavItem.screen_id);
2070
2201
  if (byId) return byId;
@@ -2102,7 +2233,7 @@ function PageRouter({
2102
2233
  }
2103
2234
  return /* @__PURE__ */ jsxRuntime.jsx(chunkB6S6BEPL_cjs.CoreScreenPlaceholder, { name: currentNavItem?.label ?? currentSlug });
2104
2235
  }
2105
- var AppNavigationContext = react.createContext(
2236
+ var AppNavigationContext = React2.createContext(
2106
2237
  null
2107
2238
  );
2108
2239
  function AppNavigationProvider({
@@ -2111,20 +2242,20 @@ function AppNavigationProvider({
2111
2242
  navigate,
2112
2243
  children
2113
2244
  }) {
2114
- const buildHref = react.useMemo(() => {
2245
+ const buildHref = React2.useMemo(() => {
2115
2246
  return (slug) => {
2116
2247
  if (basePath === "/") return `/${slug}`;
2117
2248
  return `${basePath}/${slug}`;
2118
2249
  };
2119
2250
  }, [basePath]);
2120
- const value = react.useMemo(
2251
+ const value = React2.useMemo(
2121
2252
  () => ({ currentSlug, basePath, navigate, buildHref }),
2122
2253
  [currentSlug, basePath, navigate, buildHref]
2123
2254
  );
2124
2255
  return /* @__PURE__ */ jsxRuntime.jsx(AppNavigationContext.Provider, { value, children });
2125
2256
  }
2126
2257
  function useAppNavigation() {
2127
- const ctx = react.useContext(AppNavigationContext);
2258
+ const ctx = React2.useContext(AppNavigationContext);
2128
2259
  if (!ctx) {
2129
2260
  throw new Error(
2130
2261
  "useAppNavigation must be used within an <AppShell> or <AppNavigationProvider>"
@@ -2192,7 +2323,7 @@ function AppShell({
2192
2323
  sidebarFooter,
2193
2324
  children
2194
2325
  }) {
2195
- const normalizedBasePath = react.useMemo(() => {
2326
+ const normalizedBasePath = React2.useMemo(() => {
2196
2327
  const stripped = basePath.replace(/^\/|\/$/g, "");
2197
2328
  return stripped ? `/${stripped}` : "/";
2198
2329
  }, [basePath]);
@@ -2200,13 +2331,13 @@ function AppShell({
2200
2331
  enabled: !appDataProp
2201
2332
  });
2202
2333
  const appData = appDataProp ?? fetchedAppData;
2203
- const activeTheme = react.useMemo(() => {
2334
+ const activeTheme = React2.useMemo(() => {
2204
2335
  if (!appData?.profile?.themes?.length) return void 0;
2205
2336
  const themes = appData.profile.themes;
2206
2337
  const activeId = appData.profile.activeThemeId;
2207
2338
  return activeId ? themes.find((t) => t.id === activeId) ?? themes[0] : themes[0];
2208
2339
  }, [appData?.profile?.themes, appData?.profile?.activeThemeId]);
2209
- react.useEffect(() => {
2340
+ React2.useEffect(() => {
2210
2341
  if (!activeTheme) return;
2211
2342
  const resolved = theme.resolveTheme(activeTheme);
2212
2343
  theme.applyTheme(resolved);
@@ -2214,29 +2345,34 @@ function AppShell({
2214
2345
  theme.removeAllThemes();
2215
2346
  };
2216
2347
  }, [activeTheme]);
2217
- const navItems = react.useMemo(() => {
2348
+ const navItems = React2.useMemo(() => {
2218
2349
  if (navigationProp) return navigationProp;
2219
2350
  const profileNav = appData?.profile?.navigation?.navigation_items;
2220
2351
  if (profileNav && profileNav.length > 0) return profileNav;
2221
2352
  return DEFAULT_NAVIGATION;
2222
2353
  }, [navigationProp, appData?.profile?.navigation?.navigation_items]);
2354
+ const mobileNavItems = React2.useMemo(() => {
2355
+ const mobileNav = appData?.profile?.mobile_navigation?.navigation_items;
2356
+ if (mobileNav && mobileNav.length > 0) return mobileNav;
2357
+ return navItems;
2358
+ }, [appData?.profile?.mobile_navigation?.navigation_items, navItems]);
2223
2359
  const screens = appData?.screens;
2224
- const navSlugs = react.useMemo(() => collectNavSlugs(navItems), [navItems]);
2225
- const [themeMode, setThemeMode] = react.useState(getInitialThemeMode);
2226
- const handleThemeModeChange = react.useCallback((mode) => {
2360
+ const navSlugs = React2.useMemo(() => collectNavSlugs(navItems), [navItems]);
2361
+ const [themeMode, setThemeMode] = React2.useState(getInitialThemeMode);
2362
+ const handleThemeModeChange = React2.useCallback((mode) => {
2227
2363
  setThemeMode(mode);
2228
2364
  if (typeof window !== "undefined") {
2229
2365
  localStorage.setItem(THEME_STORAGE_KEY, mode);
2230
2366
  }
2231
2367
  }, []);
2232
- const [pathSlug, setPathSlug] = react.useState(() => {
2368
+ const [pathSlug, setPathSlug] = React2.useState(() => {
2233
2369
  if (typeof window === "undefined") return "";
2234
2370
  return extractSlugFromPathname(
2235
2371
  window.location.pathname,
2236
2372
  normalizedBasePath
2237
2373
  );
2238
2374
  });
2239
- react.useEffect(() => {
2375
+ React2.useEffect(() => {
2240
2376
  if (controlledSlug !== void 0) return;
2241
2377
  if (typeof window === "undefined") return;
2242
2378
  const currentPath = extractSlugFromPathname(
@@ -2252,7 +2388,7 @@ function AppShell({
2252
2388
  }
2253
2389
  }
2254
2390
  }, [navItems, controlledSlug, normalizedBasePath]);
2255
- react.useEffect(() => {
2391
+ React2.useEffect(() => {
2256
2392
  if (controlledSlug !== void 0) return;
2257
2393
  const handlePopState = () => {
2258
2394
  const slug = extractSlugFromPathname(
@@ -2265,7 +2401,7 @@ function AppShell({
2265
2401
  return () => window.removeEventListener("popstate", handlePopState);
2266
2402
  }, [controlledSlug, normalizedBasePath]);
2267
2403
  const activeSlug = controlledSlug ?? pathSlug;
2268
- const handleNavigate = react.useCallback(
2404
+ const handleNavigate = React2.useCallback(
2269
2405
  (slug) => {
2270
2406
  if (onNavigateProp) {
2271
2407
  onNavigateProp(slug);
@@ -2277,7 +2413,7 @@ function AppShell({
2277
2413
  },
2278
2414
  [onNavigateProp, normalizedBasePath]
2279
2415
  );
2280
- const slugMatch = react.useMemo(
2416
+ const slugMatch = React2.useMemo(
2281
2417
  () => matchSlugPrefix(activeSlug, navSlugs),
2282
2418
  [activeSlug, navSlugs]
2283
2419
  );
@@ -2285,6 +2421,8 @@ function AppShell({
2285
2421
  const restParams = slugMatch?.rest ?? "";
2286
2422
  const currentSection = findCurrentSection(navItems, baseSlug);
2287
2423
  const secondLevelTabs = currentSection?.children ?? [];
2424
+ const mobileCurrentSection = findCurrentSection(mobileNavItems, baseSlug);
2425
+ const mobileSecondLevelTabs = mobileCurrentSection?.children ?? [];
2288
2426
  const currentNavItem = findNavItem(navItems, baseSlug);
2289
2427
  const content = typeof children === "function" ? children({ currentSlug: activeSlug, currentNavItem }) : children ?? /* @__PURE__ */ jsxRuntime.jsx(
2290
2428
  PageRouter,
@@ -2333,6 +2471,7 @@ function AppShell({
2333
2471
  SdkHeader,
2334
2472
  {
2335
2473
  tabs: secondLevelTabs,
2474
+ mobileTabs: mobileSecondLevelTabs,
2336
2475
  currentSlug: activeSlug,
2337
2476
  onNavigate: handleNavigate,
2338
2477
  navSlugs
@@ -2340,6 +2479,15 @@ function AppShell({
2340
2479
  ),
2341
2480
  sidebarHeader,
2342
2481
  sidebarFooter,
2482
+ useBottomNav: true,
2483
+ afterContent: /* @__PURE__ */ jsxRuntime.jsx(
2484
+ SdkBottomNav,
2485
+ {
2486
+ navItems: mobileNavItems,
2487
+ currentSlug: activeSlug,
2488
+ onNavigate: handleNavigate
2489
+ }
2490
+ ),
2343
2491
  children: content
2344
2492
  }
2345
2493
  )
@@ -2350,7 +2498,7 @@ function AppShell({
2350
2498
  }
2351
2499
  );
2352
2500
  }
2353
- var AppLink = react.forwardRef(
2501
+ var AppLink = React2.forwardRef(
2354
2502
  function AppLink2({ to, onClick, children, ...rest }, ref) {
2355
2503
  const { navigate, buildHref } = useAppNavigation();
2356
2504
  const handleClick = (e) => {
@@ -2365,211 +2513,211 @@ var AppLink = react.forwardRef(
2365
2513
  return /* @__PURE__ */ jsxRuntime.jsx("a", { ref, href: buildHref(to), onClick: handleClick, ...rest, children });
2366
2514
  }
2367
2515
  );
2368
- var export_DEFAULT_COLORS = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_COLORS;
2369
- var export_DEFAULT_FONT_FAMILIES = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_FONT_FAMILIES;
2370
- var export_DEFAULT_FONT_SIZES = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_FONT_SIZES;
2371
- var export_DEFAULT_RADII = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_RADII;
2372
- var export_DEFAULT_SPACING = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_SPACING;
2373
- var export_DEFAULT_THEME_ID = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_THEME_ID;
2374
- var export_DEFAULT_THEME_NAME = chunkV3IMQZIG_cjs.themes_exports.DEFAULT_THEME_NAME;
2375
- var export_FONT_FAMILY_KEYS = chunkV3IMQZIG_cjs.themes_exports.FONT_FAMILY_KEYS;
2376
- var export_FONT_SIZE_KEYS = chunkV3IMQZIG_cjs.themes_exports.FONT_SIZE_KEYS;
2377
- var export_RADIUS_KEYS = chunkV3IMQZIG_cjs.themes_exports.RADIUS_KEYS;
2378
- var export_SEMANTIC_COLOR_NAMES = chunkV3IMQZIG_cjs.themes_exports.SEMANTIC_COLOR_NAMES;
2379
- var export_SHADE_STEPS = chunkV3IMQZIG_cjs.themes_exports.SHADE_STEPS;
2380
- var export_applyTheme = chunkV3IMQZIG_cjs.themes_exports.applyTheme;
2381
- var export_deriveDarkVariant = chunkV3IMQZIG_cjs.themes_exports.deriveDarkVariant;
2382
- var export_deserialiseTheme = chunkV3IMQZIG_cjs.themes_exports.deserialiseTheme;
2383
- var export_generateShades = chunkV3IMQZIG_cjs.themes_exports.generateShades;
2384
- var export_generateThemeCSS = chunkV3IMQZIG_cjs.themes_exports.generateThemeCSS;
2385
- var export_getDefaultThemeDefinition = chunkV3IMQZIG_cjs.themes_exports.getDefaultThemeDefinition;
2386
- var export_getForegroundColor = chunkV3IMQZIG_cjs.themes_exports.getForegroundColor;
2387
- var export_mergeDarkOverrides = chunkV3IMQZIG_cjs.themes_exports.mergeDarkOverrides;
2388
- var export_parseColor = chunkV3IMQZIG_cjs.themes_exports.parseColor;
2389
- var export_removeAllThemes = chunkV3IMQZIG_cjs.themes_exports.removeAllThemes;
2390
- var export_removeTheme = chunkV3IMQZIG_cjs.themes_exports.removeTheme;
2391
- var export_resolveTheme = chunkV3IMQZIG_cjs.themes_exports.resolveTheme;
2392
- var export_serialiseTheme = chunkV3IMQZIG_cjs.themes_exports.serialiseTheme;
2516
+ var export_DEFAULT_COLORS = chunkOE62VIZU_cjs.themes_exports.DEFAULT_COLORS;
2517
+ var export_DEFAULT_FONT_FAMILIES = chunkOE62VIZU_cjs.themes_exports.DEFAULT_FONT_FAMILIES;
2518
+ var export_DEFAULT_FONT_SIZES = chunkOE62VIZU_cjs.themes_exports.DEFAULT_FONT_SIZES;
2519
+ var export_DEFAULT_RADII = chunkOE62VIZU_cjs.themes_exports.DEFAULT_RADII;
2520
+ var export_DEFAULT_SPACING = chunkOE62VIZU_cjs.themes_exports.DEFAULT_SPACING;
2521
+ var export_DEFAULT_THEME_ID = chunkOE62VIZU_cjs.themes_exports.DEFAULT_THEME_ID;
2522
+ var export_DEFAULT_THEME_NAME = chunkOE62VIZU_cjs.themes_exports.DEFAULT_THEME_NAME;
2523
+ var export_FONT_FAMILY_KEYS = chunkOE62VIZU_cjs.themes_exports.FONT_FAMILY_KEYS;
2524
+ var export_FONT_SIZE_KEYS = chunkOE62VIZU_cjs.themes_exports.FONT_SIZE_KEYS;
2525
+ var export_RADIUS_KEYS = chunkOE62VIZU_cjs.themes_exports.RADIUS_KEYS;
2526
+ var export_SEMANTIC_COLOR_NAMES = chunkOE62VIZU_cjs.themes_exports.SEMANTIC_COLOR_NAMES;
2527
+ var export_SHADE_STEPS = chunkOE62VIZU_cjs.themes_exports.SHADE_STEPS;
2528
+ var export_applyTheme = chunkOE62VIZU_cjs.themes_exports.applyTheme;
2529
+ var export_deriveDarkVariant = chunkOE62VIZU_cjs.themes_exports.deriveDarkVariant;
2530
+ var export_deserialiseTheme = chunkOE62VIZU_cjs.themes_exports.deserialiseTheme;
2531
+ var export_generateShades = chunkOE62VIZU_cjs.themes_exports.generateShades;
2532
+ var export_generateThemeCSS = chunkOE62VIZU_cjs.themes_exports.generateThemeCSS;
2533
+ var export_getDefaultThemeDefinition = chunkOE62VIZU_cjs.themes_exports.getDefaultThemeDefinition;
2534
+ var export_getForegroundColor = chunkOE62VIZU_cjs.themes_exports.getForegroundColor;
2535
+ var export_mergeDarkOverrides = chunkOE62VIZU_cjs.themes_exports.mergeDarkOverrides;
2536
+ var export_parseColor = chunkOE62VIZU_cjs.themes_exports.parseColor;
2537
+ var export_removeAllThemes = chunkOE62VIZU_cjs.themes_exports.removeAllThemes;
2538
+ var export_removeTheme = chunkOE62VIZU_cjs.themes_exports.removeTheme;
2539
+ var export_resolveTheme = chunkOE62VIZU_cjs.themes_exports.resolveTheme;
2540
+ var export_serialiseTheme = chunkOE62VIZU_cjs.themes_exports.serialiseTheme;
2393
2541
 
2394
2542
  Object.defineProperty(exports, "AUTH_CONSTANTS", {
2395
2543
  enumerable: true,
2396
- get: function () { return chunkV3IMQZIG_cjs.AUTH_CONSTANTS; }
2544
+ get: function () { return chunkOE62VIZU_cjs.AUTH_CONSTANTS; }
2397
2545
  });
2398
2546
  Object.defineProperty(exports, "ApiError", {
2399
2547
  enumerable: true,
2400
- get: function () { return chunkV3IMQZIG_cjs.ApiError; }
2548
+ get: function () { return chunkOE62VIZU_cjs.ApiError; }
2401
2549
  });
2402
2550
  Object.defineProperty(exports, "DEFAULT_AUTH_URL", {
2403
2551
  enumerable: true,
2404
- get: function () { return chunkV3IMQZIG_cjs.DEFAULT_AUTH_URL; }
2552
+ get: function () { return chunkOE62VIZU_cjs.DEFAULT_AUTH_URL; }
2405
2553
  });
2406
2554
  Object.defineProperty(exports, "DEFAULT_SDK_WIDGET_REGISTRY", {
2407
2555
  enumerable: true,
2408
- get: function () { return chunkV3IMQZIG_cjs.DEFAULT_SDK_WIDGET_REGISTRY; }
2556
+ get: function () { return chunkOE62VIZU_cjs.DEFAULT_SDK_WIDGET_REGISTRY; }
2409
2557
  });
2410
2558
  Object.defineProperty(exports, "FluidAuthProvider", {
2411
2559
  enumerable: true,
2412
- get: function () { return chunkV3IMQZIG_cjs.FluidAuthProvider; }
2560
+ get: function () { return chunkOE62VIZU_cjs.FluidAuthProvider; }
2413
2561
  });
2414
2562
  Object.defineProperty(exports, "FluidProvider", {
2415
2563
  enumerable: true,
2416
- get: function () { return chunkV3IMQZIG_cjs.FluidProvider; }
2564
+ get: function () { return chunkOE62VIZU_cjs.FluidProvider; }
2417
2565
  });
2418
2566
  Object.defineProperty(exports, "FluidThemeProvider", {
2419
2567
  enumerable: true,
2420
- get: function () { return chunkV3IMQZIG_cjs.FluidThemeProvider; }
2568
+ get: function () { return chunkOE62VIZU_cjs.FluidThemeProvider; }
2421
2569
  });
2422
2570
  Object.defineProperty(exports, "MessagingScreen", {
2423
2571
  enumerable: true,
2424
- get: function () { return chunkV3IMQZIG_cjs.MessagingScreen; }
2572
+ get: function () { return chunkOE62VIZU_cjs.MessagingScreen; }
2425
2573
  });
2426
2574
  Object.defineProperty(exports, "STORAGE_KEYS", {
2427
2575
  enumerable: true,
2428
- get: function () { return chunkV3IMQZIG_cjs.STORAGE_KEYS; }
2576
+ get: function () { return chunkOE62VIZU_cjs.STORAGE_KEYS; }
2429
2577
  });
2430
2578
  Object.defineProperty(exports, "URL_PARAMS", {
2431
2579
  enumerable: true,
2432
- get: function () { return chunkV3IMQZIG_cjs.URL_PARAMS; }
2580
+ get: function () { return chunkOE62VIZU_cjs.URL_PARAMS; }
2433
2581
  });
2434
2582
  Object.defineProperty(exports, "USER_TYPES", {
2435
2583
  enumerable: true,
2436
- get: function () { return chunkV3IMQZIG_cjs.USER_TYPES; }
2584
+ get: function () { return chunkOE62VIZU_cjs.USER_TYPES; }
2437
2585
  });
2438
2586
  Object.defineProperty(exports, "buildThemeDefinition", {
2439
2587
  enumerable: true,
2440
- get: function () { return chunkV3IMQZIG_cjs.buildThemeDefinition; }
2588
+ get: function () { return chunkOE62VIZU_cjs.buildThemeDefinition; }
2441
2589
  });
2442
2590
  Object.defineProperty(exports, "cleanTokenFromUrl", {
2443
2591
  enumerable: true,
2444
- get: function () { return chunkV3IMQZIG_cjs.cleanTokenFromUrl; }
2592
+ get: function () { return chunkOE62VIZU_cjs.cleanTokenFromUrl; }
2445
2593
  });
2446
2594
  Object.defineProperty(exports, "clearTokens", {
2447
2595
  enumerable: true,
2448
- get: function () { return chunkV3IMQZIG_cjs.clearTokens; }
2596
+ get: function () { return chunkOE62VIZU_cjs.clearTokens; }
2449
2597
  });
2450
2598
  Object.defineProperty(exports, "createDefaultAuthRedirect", {
2451
2599
  enumerable: true,
2452
- get: function () { return chunkV3IMQZIG_cjs.createDefaultAuthRedirect; }
2600
+ get: function () { return chunkOE62VIZU_cjs.createDefaultAuthRedirect; }
2453
2601
  });
2454
2602
  Object.defineProperty(exports, "createFluidClient", {
2455
2603
  enumerable: true,
2456
- get: function () { return chunkV3IMQZIG_cjs.createFluidClient; }
2604
+ get: function () { return chunkOE62VIZU_cjs.createFluidClient; }
2457
2605
  });
2458
2606
  Object.defineProperty(exports, "createFluidFileUploader", {
2459
2607
  enumerable: true,
2460
- get: function () { return chunkV3IMQZIG_cjs.createFluidFileUploader; }
2608
+ get: function () { return chunkOE62VIZU_cjs.createFluidFileUploader; }
2461
2609
  });
2462
2610
  Object.defineProperty(exports, "decodeToken", {
2463
2611
  enumerable: true,
2464
- get: function () { return chunkV3IMQZIG_cjs.decodeToken; }
2612
+ get: function () { return chunkOE62VIZU_cjs.decodeToken; }
2465
2613
  });
2466
2614
  Object.defineProperty(exports, "extractAllTokensFromUrl", {
2467
2615
  enumerable: true,
2468
- get: function () { return chunkV3IMQZIG_cjs.extractAllTokensFromUrl; }
2616
+ get: function () { return chunkOE62VIZU_cjs.extractAllTokensFromUrl; }
2469
2617
  });
2470
2618
  Object.defineProperty(exports, "extractCompanyTokenFromUrl", {
2471
2619
  enumerable: true,
2472
- get: function () { return chunkV3IMQZIG_cjs.extractCompanyTokenFromUrl; }
2620
+ get: function () { return chunkOE62VIZU_cjs.extractCompanyTokenFromUrl; }
2473
2621
  });
2474
2622
  Object.defineProperty(exports, "extractTokenFromUrl", {
2475
2623
  enumerable: true,
2476
- get: function () { return chunkV3IMQZIG_cjs.extractTokenFromUrl; }
2624
+ get: function () { return chunkOE62VIZU_cjs.extractTokenFromUrl; }
2477
2625
  });
2478
2626
  Object.defineProperty(exports, "getActiveThemeId", {
2479
2627
  enumerable: true,
2480
- get: function () { return chunkV3IMQZIG_cjs.getActiveThemeId; }
2628
+ get: function () { return chunkOE62VIZU_cjs.getActiveThemeId; }
2481
2629
  });
2482
2630
  Object.defineProperty(exports, "getStoredToken", {
2483
2631
  enumerable: true,
2484
- get: function () { return chunkV3IMQZIG_cjs.getStoredToken; }
2632
+ get: function () { return chunkOE62VIZU_cjs.getStoredToken; }
2485
2633
  });
2486
2634
  Object.defineProperty(exports, "getTokenExpiration", {
2487
2635
  enumerable: true,
2488
- get: function () { return chunkV3IMQZIG_cjs.getTokenExpiration; }
2636
+ get: function () { return chunkOE62VIZU_cjs.getTokenExpiration; }
2489
2637
  });
2490
2638
  Object.defineProperty(exports, "getTokenTimeRemaining", {
2491
2639
  enumerable: true,
2492
- get: function () { return chunkV3IMQZIG_cjs.getTokenTimeRemaining; }
2640
+ get: function () { return chunkOE62VIZU_cjs.getTokenTimeRemaining; }
2493
2641
  });
2494
2642
  Object.defineProperty(exports, "hasStoredToken", {
2495
2643
  enumerable: true,
2496
- get: function () { return chunkV3IMQZIG_cjs.hasStoredToken; }
2644
+ get: function () { return chunkOE62VIZU_cjs.hasStoredToken; }
2497
2645
  });
2498
2646
  Object.defineProperty(exports, "hasTokenInUrl", {
2499
2647
  enumerable: true,
2500
- get: function () { return chunkV3IMQZIG_cjs.hasTokenInUrl; }
2648
+ get: function () { return chunkOE62VIZU_cjs.hasTokenInUrl; }
2501
2649
  });
2502
2650
  Object.defineProperty(exports, "isApiError", {
2503
2651
  enumerable: true,
2504
- get: function () { return chunkV3IMQZIG_cjs.isApiError; }
2652
+ get: function () { return chunkOE62VIZU_cjs.isApiError; }
2505
2653
  });
2506
2654
  Object.defineProperty(exports, "isTokenExpired", {
2507
2655
  enumerable: true,
2508
- get: function () { return chunkV3IMQZIG_cjs.isTokenExpired; }
2656
+ get: function () { return chunkOE62VIZU_cjs.isTokenExpired; }
2509
2657
  });
2510
2658
  Object.defineProperty(exports, "isUserType", {
2511
2659
  enumerable: true,
2512
- get: function () { return chunkV3IMQZIG_cjs.isUserType; }
2660
+ get: function () { return chunkOE62VIZU_cjs.isUserType; }
2513
2661
  });
2514
2662
  Object.defineProperty(exports, "isValidToken", {
2515
2663
  enumerable: true,
2516
- get: function () { return chunkV3IMQZIG_cjs.isValidToken; }
2664
+ get: function () { return chunkOE62VIZU_cjs.isValidToken; }
2517
2665
  });
2518
2666
  Object.defineProperty(exports, "messagingScreenPropertySchema", {
2519
2667
  enumerable: true,
2520
- get: function () { return chunkV3IMQZIG_cjs.messagingScreenPropertySchema; }
2668
+ get: function () { return chunkOE62VIZU_cjs.messagingScreenPropertySchema; }
2521
2669
  });
2522
2670
  Object.defineProperty(exports, "normalizeComponentTree", {
2523
2671
  enumerable: true,
2524
- get: function () { return chunkV3IMQZIG_cjs.normalizeComponentTree; }
2672
+ get: function () { return chunkOE62VIZU_cjs.normalizeComponentTree; }
2525
2673
  });
2526
2674
  Object.defineProperty(exports, "storeToken", {
2527
2675
  enumerable: true,
2528
- get: function () { return chunkV3IMQZIG_cjs.storeToken; }
2676
+ get: function () { return chunkOE62VIZU_cjs.storeToken; }
2529
2677
  });
2530
2678
  Object.defineProperty(exports, "toNavigationItem", {
2531
2679
  enumerable: true,
2532
- get: function () { return chunkV3IMQZIG_cjs.toNavigationItem; }
2680
+ get: function () { return chunkOE62VIZU_cjs.toNavigationItem; }
2533
2681
  });
2534
2682
  Object.defineProperty(exports, "toScreenDefinition", {
2535
2683
  enumerable: true,
2536
- get: function () { return chunkV3IMQZIG_cjs.toScreenDefinition; }
2684
+ get: function () { return chunkOE62VIZU_cjs.toScreenDefinition; }
2537
2685
  });
2538
2686
  Object.defineProperty(exports, "transformManifestToRepAppData", {
2539
2687
  enumerable: true,
2540
- get: function () { return chunkV3IMQZIG_cjs.transformManifestToRepAppData; }
2688
+ get: function () { return chunkOE62VIZU_cjs.transformManifestToRepAppData; }
2541
2689
  });
2542
2690
  Object.defineProperty(exports, "transformThemes", {
2543
2691
  enumerable: true,
2544
- get: function () { return chunkV3IMQZIG_cjs.transformThemes; }
2692
+ get: function () { return chunkOE62VIZU_cjs.transformThemes; }
2545
2693
  });
2546
2694
  Object.defineProperty(exports, "useFluidApi", {
2547
2695
  enumerable: true,
2548
- get: function () { return chunkV3IMQZIG_cjs.useFluidApi; }
2696
+ get: function () { return chunkOE62VIZU_cjs.useFluidApi; }
2549
2697
  });
2550
2698
  Object.defineProperty(exports, "useFluidAuthContext", {
2551
2699
  enumerable: true,
2552
- get: function () { return chunkV3IMQZIG_cjs.useFluidAuthContext; }
2700
+ get: function () { return chunkOE62VIZU_cjs.useFluidAuthContext; }
2553
2701
  });
2554
2702
  Object.defineProperty(exports, "useFluidContext", {
2555
2703
  enumerable: true,
2556
- get: function () { return chunkV3IMQZIG_cjs.useFluidContext; }
2704
+ get: function () { return chunkOE62VIZU_cjs.useFluidContext; }
2557
2705
  });
2558
2706
  Object.defineProperty(exports, "useMessagingAuth", {
2559
2707
  enumerable: true,
2560
- get: function () { return chunkV3IMQZIG_cjs.useMessagingAuth; }
2708
+ get: function () { return chunkOE62VIZU_cjs.useMessagingAuth; }
2561
2709
  });
2562
2710
  Object.defineProperty(exports, "useMessagingConfig", {
2563
2711
  enumerable: true,
2564
- get: function () { return chunkV3IMQZIG_cjs.useMessagingConfig; }
2712
+ get: function () { return chunkOE62VIZU_cjs.useMessagingConfig; }
2565
2713
  });
2566
2714
  Object.defineProperty(exports, "useThemeContext", {
2567
2715
  enumerable: true,
2568
- get: function () { return chunkV3IMQZIG_cjs.useThemeContext; }
2716
+ get: function () { return chunkOE62VIZU_cjs.useThemeContext; }
2569
2717
  });
2570
2718
  Object.defineProperty(exports, "validateToken", {
2571
2719
  enumerable: true,
2572
- get: function () { return chunkV3IMQZIG_cjs.validateToken; }
2720
+ get: function () { return chunkOE62VIZU_cjs.validateToken; }
2573
2721
  });
2574
2722
  Object.defineProperty(exports, "ContactsScreen", {
2575
2723
  enumerable: true,