@burdenoff/fe-libs 2026.819.5 → 2026.823.2

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 (240) hide show
  1. package/README.md +66 -0
  2. package/dist/button/Button.d.ts +1 -1
  3. package/dist/chrome/AppShellLayout.d.ts +14 -0
  4. package/dist/chrome/AppShellLayout.d.ts.map +1 -1
  5. package/dist/chrome/AppShellLayout.js +13 -10
  6. package/dist/chrome/DynamicFooter.d.ts +6 -1
  7. package/dist/chrome/DynamicFooter.d.ts.map +1 -1
  8. package/dist/chrome/DynamicFooter.js +21 -20
  9. package/dist/chrome/Footer.d.ts +6 -0
  10. package/dist/chrome/Footer.d.ts.map +1 -1
  11. package/dist/chrome/Footer.js +46 -45
  12. package/dist/chrome/FooterBar.d.ts +6 -1
  13. package/dist/chrome/FooterBar.d.ts.map +1 -1
  14. package/dist/chrome/FooterBar.js +28 -26
  15. package/dist/chrome/HeaderBar.d.ts.map +1 -1
  16. package/dist/chrome/HeaderBar.js +3 -0
  17. package/dist/chrome/MobileTabBar.d.ts +26 -0
  18. package/dist/chrome/MobileTabBar.d.ts.map +1 -0
  19. package/dist/chrome/MobileTabBar.js +194 -0
  20. package/dist/chrome/NativePageTransition.d.ts +10 -0
  21. package/dist/chrome/NativePageTransition.d.ts.map +1 -0
  22. package/dist/chrome/NativePageTransition.js +19 -0
  23. package/dist/chrome/NativeTopBar.d.ts +21 -0
  24. package/dist/chrome/NativeTopBar.d.ts.map +1 -0
  25. package/dist/chrome/NativeTopBar.js +72 -0
  26. package/dist/chrome/NotificationCenter.d.ts.map +1 -1
  27. package/dist/chrome/NotificationCenter.js +70 -65
  28. package/dist/chrome/ProductSideNav.d.ts.map +1 -1
  29. package/dist/chrome/ProductSideNav.js +44 -74
  30. package/dist/chrome/SwipeNavigation.d.ts +36 -0
  31. package/dist/chrome/SwipeNavigation.d.ts.map +1 -0
  32. package/dist/chrome/SwipeNavigation.js +111 -0
  33. package/dist/chrome/index.d.ts +14 -7
  34. package/dist/chrome/index.d.ts.map +1 -1
  35. package/dist/chrome/mobileTabBar/selectTabs.d.ts +45 -0
  36. package/dist/chrome/mobileTabBar/selectTabs.d.ts.map +1 -0
  37. package/dist/chrome/mobileTabBar/selectTabs.js +28 -0
  38. package/dist/chrome/mobileTabBar/useMobileTabBarVisible.d.ts +18 -0
  39. package/dist/chrome/mobileTabBar/useMobileTabBarVisible.d.ts.map +1 -0
  40. package/dist/chrome/mobileTabBar/useMobileTabBarVisible.js +16 -0
  41. package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts +18 -0
  42. package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts.map +1 -0
  43. package/dist/chrome/mobileTabBar/useVisibleNavItems.js +41 -0
  44. package/dist/chrome/nativeTopBarTitle.d.ts +15 -0
  45. package/dist/chrome/nativeTopBarTitle.d.ts.map +1 -0
  46. package/dist/chrome/nativeTopBarTitle.js +22 -0
  47. package/dist/chrome/swipe/swipeMath.d.ts +25 -0
  48. package/dist/chrome/swipe/swipeMath.d.ts.map +1 -0
  49. package/dist/chrome/swipe/swipeMath.js +14 -0
  50. package/dist/chrome/swipe/swipeState.d.ts +10 -0
  51. package/dist/chrome/swipe/swipeState.d.ts.map +1 -0
  52. package/dist/chrome/swipe/swipeState.js +11 -0
  53. package/dist/chrome.js +8 -1
  54. package/dist/shared/components/DesktopUpdateToast.d.ts +9 -0
  55. package/dist/shared/components/DesktopUpdateToast.d.ts.map +1 -0
  56. package/dist/shared/components/DesktopUpdateToast.js +39 -0
  57. package/dist/shared/components/PWAInstallBanner.js +1 -1
  58. package/dist/shared/components/SSORedirectGuard.d.ts.map +1 -1
  59. package/dist/shared/components/SSORedirectGuard.js +41 -45
  60. package/dist/shared/components/index.d.ts +2 -0
  61. package/dist/shared/components/index.d.ts.map +1 -1
  62. package/dist/shared/config/authBridgeUrls.d.ts +10 -0
  63. package/dist/shared/config/authBridgeUrls.d.ts.map +1 -1
  64. package/dist/shared/config/authBridgeUrls.js +16 -12
  65. package/dist/shared/config/gatewayUrls.d.ts.map +1 -1
  66. package/dist/shared/config/gatewayUrls.js +22 -19
  67. package/dist/shared/config/index.d.ts +1 -1
  68. package/dist/shared/config/index.d.ts.map +1 -1
  69. package/dist/shared/hooks/shell/useNavRegistry.d.ts +7 -0
  70. package/dist/shared/hooks/shell/useNavRegistry.d.ts.map +1 -1
  71. package/dist/shared/hooks/usePWA.d.ts.map +1 -1
  72. package/dist/shared/hooks/usePWA.js +34 -30
  73. package/dist/shared/native/consumers.d.ts +15 -1
  74. package/dist/shared/native/consumers.d.ts.map +1 -1
  75. package/dist/shared/native/consumers.js +26 -7
  76. package/dist/shared/native/desktop.d.ts +123 -0
  77. package/dist/shared/native/desktop.d.ts.map +1 -0
  78. package/dist/shared/native/desktop.js +280 -0
  79. package/dist/shared/native/entry.d.ts +39 -0
  80. package/dist/shared/native/entry.d.ts.map +1 -0
  81. package/dist/shared/native/entry.js +13 -0
  82. package/dist/shared/native/hooks/index.d.ts +10 -0
  83. package/dist/shared/native/hooks/index.d.ts.map +1 -1
  84. package/dist/shared/native/hooks/index.js +6 -0
  85. package/dist/shared/native/hooks/useActionSheet.d.ts +63 -0
  86. package/dist/shared/native/hooks/useActionSheet.d.ts.map +1 -0
  87. package/dist/shared/native/hooks/useActionSheet.js +45 -0
  88. package/dist/shared/native/hooks/useDesktop.d.ts +15 -0
  89. package/dist/shared/native/hooks/useDesktop.d.ts.map +1 -0
  90. package/dist/shared/native/hooks/useDesktop.js +18 -0
  91. package/dist/shared/native/hooks/useDesktopUpdateState.d.ts +7 -0
  92. package/dist/shared/native/hooks/useDesktopUpdateState.d.ts.map +1 -0
  93. package/dist/shared/native/hooks/useDesktopUpdateState.js +20 -0
  94. package/dist/shared/native/hooks/useDesktopWindowState.d.ts +7 -0
  95. package/dist/shared/native/hooks/useDesktopWindowState.d.ts.map +1 -0
  96. package/dist/shared/native/hooks/useDesktopWindowState.js +9 -0
  97. package/dist/shared/native/hooks/useHaptics.d.ts +1 -0
  98. package/dist/shared/native/hooks/useHaptics.d.ts.map +1 -1
  99. package/dist/shared/native/hooks/useHaptics.js +6 -6
  100. package/dist/shared/native/hooks/useNetworkStatus.d.ts +23 -0
  101. package/dist/shared/native/hooks/useNetworkStatus.d.ts.map +1 -0
  102. package/dist/shared/native/hooks/useNetworkStatus.js +29 -0
  103. package/dist/shared/native/hooks/usePullToRefresh.d.ts +62 -0
  104. package/dist/shared/native/hooks/usePullToRefresh.d.ts.map +1 -0
  105. package/dist/shared/native/hooks/usePullToRefresh.js +84 -0
  106. package/dist/shared/native/index.d.ts +6 -1
  107. package/dist/shared/native/index.d.ts.map +1 -1
  108. package/dist/shared/native/platform.d.ts.map +1 -1
  109. package/dist/shared/native/platform.js +2 -1
  110. package/dist/shared/native/purchases.d.ts +7 -1
  111. package/dist/shared/native/purchases.d.ts.map +1 -1
  112. package/dist/shared/native/purchases.js +3 -3
  113. package/dist/shared/native/types.d.ts +136 -0
  114. package/dist/shared/native/types.d.ts.map +1 -1
  115. package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
  116. package/dist/shared/providers/AppShellProvider.js +117 -115
  117. package/dist/shared/providers/shell/ThemeProvider.d.ts.map +1 -1
  118. package/dist/shared/providers/shell/ThemeProvider.js +64 -51
  119. package/dist/shared/providers/shell/authProvider/useSsoDepositBootGuard.d.ts.map +1 -1
  120. package/dist/shared/providers/shell/authProvider/useSsoDepositBootGuard.js +25 -29
  121. package/dist/shared/utils/gatewayFetchRewrite.d.ts.map +1 -1
  122. package/dist/shared/utils/gatewayFetchRewrite.js +87 -84
  123. package/dist/shared-components.js +2 -1
  124. package/dist/shared-config.js +10 -10
  125. package/dist/shared-native.js +21 -13
  126. package/dist/shared.js +120 -111
  127. package/dist/shell-native/actionSheet.d.ts +7 -0
  128. package/dist/shell-native/actionSheet.d.ts.map +1 -0
  129. package/dist/shell-native/actionSheet.js +26 -0
  130. package/dist/shell-native/app-lifecycle.d.ts +4 -0
  131. package/dist/shell-native/app-lifecycle.d.ts.map +1 -0
  132. package/dist/shell-native/app-lifecycle.js +12 -0
  133. package/dist/shell-native/auth-navigation.d.ts +4 -0
  134. package/dist/shell-native/auth-navigation.d.ts.map +1 -0
  135. package/dist/shell-native/auth-navigation.js +95 -0
  136. package/dist/shell-native/back-button.d.ts +8 -0
  137. package/dist/shell-native/back-button.d.ts.map +1 -0
  138. package/dist/shell-native/back-button.js +49 -0
  139. package/dist/shell-native/boot.d.ts +10 -0
  140. package/dist/shell-native/boot.d.ts.map +1 -0
  141. package/dist/shell-native/boot.js +65 -0
  142. package/dist/shell-native/bridge.d.ts +7 -0
  143. package/dist/shell-native/bridge.d.ts.map +1 -0
  144. package/dist/shell-native/bridge.js +30 -0
  145. package/dist/shell-native/browser.d.ts +12 -0
  146. package/dist/shell-native/browser.d.ts.map +1 -0
  147. package/dist/shell-native/browser.js +45 -0
  148. package/dist/shell-native/capacitor-config.d.ts +21 -0
  149. package/dist/shell-native/capacitor-config.d.ts.map +1 -0
  150. package/dist/shell-native/capacitor-config.js +102 -0
  151. package/dist/shell-native/clipboard.d.ts +3 -0
  152. package/dist/shell-native/clipboard.d.ts.map +1 -0
  153. package/dist/shell-native/clipboard.js +26 -0
  154. package/dist/shell-native/deep-link.d.ts +19 -0
  155. package/dist/shell-native/deep-link.d.ts.map +1 -0
  156. package/dist/shell-native/deep-link.js +53 -0
  157. package/dist/shell-native/desktop-bridge.d.ts +14 -0
  158. package/dist/shell-native/desktop-bridge.d.ts.map +1 -0
  159. package/dist/shell-native/desktop-bridge.js +17 -0
  160. package/dist/shell-native/device.d.ts +4 -0
  161. package/dist/shell-native/device.d.ts.map +1 -0
  162. package/dist/shell-native/device.js +27 -0
  163. package/dist/shell-native/dialog.d.ts +4 -0
  164. package/dist/shell-native/dialog.d.ts.map +1 -0
  165. package/dist/shell-native/dialog.js +13 -0
  166. package/dist/shell-native/feedback.d.ts +6 -0
  167. package/dist/shell-native/feedback.d.ts.map +1 -0
  168. package/dist/shell-native/feedback.js +29 -0
  169. package/dist/shell-native/index.d.ts +54 -0
  170. package/dist/shell-native/index.d.ts.map +1 -0
  171. package/dist/shell-native/keyboard.d.ts +15 -0
  172. package/dist/shell-native/keyboard.d.ts.map +1 -0
  173. package/dist/shell-native/keyboard.js +42 -0
  174. package/dist/shell-native/network.d.ts +9 -0
  175. package/dist/shell-native/network.d.ts.map +1 -0
  176. package/dist/shell-native/network.js +40 -0
  177. package/dist/shell-native/ota.d.ts +3 -0
  178. package/dist/shell-native/ota.d.ts.map +1 -0
  179. package/dist/shell-native/ota.js +21 -0
  180. package/dist/shell-native/platform.d.ts +21 -0
  181. package/dist/shell-native/platform.d.ts.map +1 -0
  182. package/dist/shell-native/platform.js +51 -0
  183. package/dist/shell-native/preview.d.ts +18 -0
  184. package/dist/shell-native/preview.d.ts.map +1 -0
  185. package/dist/shell-native/preview.js +124 -0
  186. package/dist/shell-native/push.d.ts +14 -0
  187. package/dist/shell-native/push.d.ts.map +1 -0
  188. package/dist/shell-native/push.js +62 -0
  189. package/dist/shell-native/pwa.d.ts +14 -0
  190. package/dist/shell-native/pwa.d.ts.map +1 -0
  191. package/dist/shell-native/pwa.js +49 -0
  192. package/dist/shell-native/service-worker.d.ts +5 -0
  193. package/dist/shell-native/service-worker.d.ts.map +1 -0
  194. package/dist/shell-native/service-worker.js +144 -0
  195. package/dist/shell-native/share.d.ts +4 -0
  196. package/dist/shell-native/share.d.ts.map +1 -0
  197. package/dist/shell-native/share.js +19 -0
  198. package/dist/shell-native/splash.d.ts +16 -0
  199. package/dist/shell-native/splash.d.ts.map +1 -0
  200. package/dist/shell-native/splash.js +25 -0
  201. package/dist/shell-native/system-bars.d.ts +24 -0
  202. package/dist/shell-native/system-bars.d.ts.map +1 -0
  203. package/dist/shell-native/system-bars.js +49 -0
  204. package/dist/shell-native/toast.d.ts +4 -0
  205. package/dist/shell-native/toast.d.ts.map +1 -0
  206. package/dist/shell-native/toast.js +16 -0
  207. package/dist/shell-native/types.d.ts +292 -0
  208. package/dist/shell-native/types.d.ts.map +1 -0
  209. package/dist/shell-native/web-manifest.d.ts +36 -0
  210. package/dist/shell-native/web-manifest.d.ts.map +1 -0
  211. package/dist/shell-native/web-manifest.js +55 -0
  212. package/dist/shell-native.d.ts +2 -0
  213. package/dist/shell-native.js +29 -0
  214. package/dist/ui/action-sheet.d.ts +29 -0
  215. package/dist/ui/action-sheet.d.ts.map +1 -0
  216. package/dist/ui/action-sheet.js +53 -0
  217. package/dist/ui/badge.d.ts +1 -1
  218. package/dist/ui/button.d.ts +1 -1
  219. package/dist/ui/index.d.ts +6 -0
  220. package/dist/ui/index.d.ts.map +1 -1
  221. package/dist/ui/native-welcome.d.ts +61 -0
  222. package/dist/ui/native-welcome.d.ts.map +1 -0
  223. package/dist/ui/native-welcome.js +152 -0
  224. package/dist/ui/offline-banner.d.ts +22 -0
  225. package/dist/ui/offline-banner.d.ts.map +1 -0
  226. package/dist/ui/offline-banner.js +34 -0
  227. package/dist/ui/pull-to-refresh.d.ts +29 -0
  228. package/dist/ui/pull-to-refresh.d.ts.map +1 -0
  229. package/dist/ui/pull-to-refresh.js +44 -0
  230. package/dist/ui/pwa-update-toast.d.ts +34 -0
  231. package/dist/ui/pwa-update-toast.d.ts.map +1 -0
  232. package/dist/ui/pwa-update-toast.js +43 -0
  233. package/dist/ui/select.d.ts +38 -0
  234. package/dist/ui/select.d.ts.map +1 -1
  235. package/dist/ui/select.js +162 -61
  236. package/dist/ui.js +40 -35
  237. package/package.json +93 -4
  238. package/src/shared/styles/app-shell.css +3 -0
  239. package/src/shared/styles/native.css +577 -0
  240. package/dist/node_modules/@capacitor/core/dist/index.js +0 -268
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tiny shared flag between SwipeNavigation and NativePageTransition: when a
3
+ * swipe gesture just committed a navigation, the page-transition wrapper must
4
+ * skip its enter animation ONCE (the swipe already animated the exit — a
5
+ * second slide would double-animate).
6
+ */
7
+ export declare function markSwipeCommitted(): void;
8
+ /** Read-and-clear. Returns true at most once per committed swipe. */
9
+ export declare function consumeSwipeCommitted(): boolean;
10
+ //# sourceMappingURL=swipeState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipeState.d.ts","sourceRoot":"","sources":["../../../src/chrome/swipe/swipeState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,IAAI,OAAO,CAI/C"}
@@ -0,0 +1,11 @@
1
+ //#region src/chrome/swipe/swipeState.ts
2
+ var e = !1;
3
+ function t() {
4
+ e = !0;
5
+ }
6
+ function n() {
7
+ let t = e;
8
+ return e = !1, t;
9
+ }
10
+ //#endregion
11
+ export { n as consumeSwipeCommitted, t as markSwipeCommitted };
package/dist/chrome.js CHANGED
@@ -37,4 +37,11 @@ import { PluginToolbar as W } from "./chrome/PluginToolbar.js";
37
37
  import { PluginWidgetGrid as G } from "./chrome/PluginWidgetGrid.js";
38
38
  import { PluginContextMenuTarget as K } from "./chrome/PluginContextMenuTarget.js";
39
39
  import { ThemePreferences as q } from "./chrome/ThemePreferences.js";
40
- export { k as AccountSwitcher, t as AppShellLayout, A as AutoBreadcrumbs, L as BrandMark, _ as Breadcrumbs, g as CommandPalette, w as ContextSwitcher, o as DEFAULT_FOOTER_COLUMNS, s as DEFAULT_SOCIAL_LINKS, R as DynamicFooter, c as Footer, i as FooterBar, T as GeographySwitcher, h as GlobalSearch, r as HeaderBar, D as LanguagePickerSheet, C as LanguageSwitcher, l as NAV_MORE_ID_PREFIX, N as NavCustomizeDialog, v as NavLink, E as NotificationCenter, n as PageHeader, B as PanelContainer, z as PanelTabs, P as PersonaSimulationPill, F as PersonaSurfaceControls, K as PluginContextMenuTarget, a as PluginFooterStrip, H as PluginRoutes, U as PluginSettingsPage, W as PluginToolbar, G as PluginWidgetGrid, O as ProductPickerSheet, I as ProductSideNav, S as ProductSwitcher, x as ProfileSwitcher, e as ShortcutHelpDialog, m as SideNavigation, b as Sidebar, V as StatusBar, y as Tabs, q as ThemePreferences, u as applyNavVisibility, d as applyPermissionFilter, f as applySurfaceVisibility, p as isItemEffectivelyShown, j as registerBreadcrumbName, M as unregisterBreadcrumbName };
40
+ import { selectMobileTabs as J } from "./chrome/mobileTabBar/selectTabs.js";
41
+ import { useMobileTabBarVisible as Y } from "./chrome/mobileTabBar/useMobileTabBarVisible.js";
42
+ import { MobileTabBar as X } from "./chrome/MobileTabBar.js";
43
+ import { NativeTopBar as Z } from "./chrome/NativeTopBar.js";
44
+ import { SwipeNavigation as Q } from "./chrome/SwipeNavigation.js";
45
+ import { NativePageTransition as $ } from "./chrome/NativePageTransition.js";
46
+ import { findNavTitle as ee, useNativeTopBarTitle as te } from "./chrome/nativeTopBarTitle.js";
47
+ export { k as AccountSwitcher, t as AppShellLayout, A as AutoBreadcrumbs, L as BrandMark, _ as Breadcrumbs, g as CommandPalette, w as ContextSwitcher, o as DEFAULT_FOOTER_COLUMNS, s as DEFAULT_SOCIAL_LINKS, R as DynamicFooter, c as Footer, i as FooterBar, T as GeographySwitcher, h as GlobalSearch, r as HeaderBar, D as LanguagePickerSheet, C as LanguageSwitcher, X as MobileTabBar, l as NAV_MORE_ID_PREFIX, $ as NativePageTransition, Z as NativeTopBar, N as NavCustomizeDialog, v as NavLink, E as NotificationCenter, n as PageHeader, B as PanelContainer, z as PanelTabs, P as PersonaSimulationPill, F as PersonaSurfaceControls, K as PluginContextMenuTarget, a as PluginFooterStrip, H as PluginRoutes, U as PluginSettingsPage, W as PluginToolbar, G as PluginWidgetGrid, O as ProductPickerSheet, I as ProductSideNav, S as ProductSwitcher, x as ProfileSwitcher, e as ShortcutHelpDialog, m as SideNavigation, b as Sidebar, V as StatusBar, Q as SwipeNavigation, y as Tabs, q as ThemePreferences, u as applyNavVisibility, d as applyPermissionFilter, f as applySurfaceVisibility, ee as findNavTitle, p as isItemEffectivelyShown, j as registerBreadcrumbName, J as selectMobileTabs, M as unregisterBreadcrumbName, Y as useMobileTabBarVisible, te as useNativeTopBarTitle };
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ export interface DesktopUpdateToastProps {
3
+ /** Toast title. `{version}` is replaced with the downloaded version. */
4
+ readyMessage?: string;
5
+ restartLabel?: string;
6
+ laterLabel?: string;
7
+ }
8
+ export declare const DesktopUpdateToast: FC<DesktopUpdateToastProps>;
9
+ //# sourceMappingURL=DesktopUpdateToast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesktopUpdateToast.d.ts","sourceRoot":"","sources":["../../../src/shared/components/DesktopUpdateToast.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAMnD,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA2C1D,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { desktopInstallUpdate as e, isDesktop as t } from "../native/desktop.js";
2
+ import { useDesktopUpdateState as n } from "../native/hooks/useDesktopUpdateState.js";
3
+ import "../native/hooks/index.js";
4
+ import { useEffect as r, useRef as i } from "react";
5
+ import { toast as a } from "sonner";
6
+ //#region src/shared/components/DesktopUpdateToast.tsx
7
+ var o = "Update {version} ready", s = "Restart", c = "Later", l = ({ readyMessage: l = o, restartLabel: u = s, laterLabel: d = c }) => {
8
+ let f = n(), p = i(null), m = i(null);
9
+ return r(() => {
10
+ if (!t()) return;
11
+ if (f.status === "error") {
12
+ let e = f.error ?? "unknown error";
13
+ m.current !== e && (m.current = e, console.warn("[desktop-update] auto-update failed:", e));
14
+ return;
15
+ }
16
+ if (f.status !== "downloaded") return;
17
+ let n = f.version ?? "latest";
18
+ p.current !== n && (p.current = n, a(l.replace("{version}", n), {
19
+ duration: Infinity,
20
+ action: {
21
+ label: u,
22
+ onClick: () => {
23
+ e();
24
+ }
25
+ },
26
+ cancel: {
27
+ label: d,
28
+ onClick: () => void 0
29
+ }
30
+ }));
31
+ }, [
32
+ f,
33
+ l,
34
+ u,
35
+ d
36
+ ]), null;
37
+ };
38
+ //#endregion
39
+ export { l as DesktopUpdateToast };
@@ -79,7 +79,7 @@ function c({ productName: c = "App", brandInitial: l = "B" }) {
79
79
  /* @__PURE__ */ o("div", {
80
80
  className: "flex-shrink-0",
81
81
  children: /* @__PURE__ */ o("div", {
82
- className: "size-10 rounded-lg bg-gradient-to-br from-brand-primary to-brand-secondary flex items-center justify-center text-white font-bold",
82
+ className: "size-10 rounded-lg bg-action-primary-bg text-action-primary-text flex items-center justify-center font-bold",
83
83
  children: l
84
84
  })
85
85
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsDH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AA2CD,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAmDD,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4CpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAEjC"}
1
+ {"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuDH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AA2CD,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAsCD,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4CpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAEjC"}
@@ -1,15 +1,16 @@
1
1
  import { resolveAuthBridgeConfig as e } from "../config/authBridgeUrls.js";
2
2
  import { clearActiveContextStorage as t } from "../providers/shell/ActiveContextStorage.js";
3
3
  import { clearShellSsoCookies as n, isLocalDevSsoHost as r, isSharedSsoCookieDomain as i, isTrustedSsoOrigin as a, readShellSsoCookie as o } from "../utils/authCookie.js";
4
- import { BrandedSplash as s } from "../../ui/branded-splash.js";
5
- import { jsx as c } from "react/jsx-runtime";
4
+ import { isElectron as s, isNative as c } from "../native/platform.js";
5
+ import { BrandedSplash as l } from "../../ui/branded-splash.js";
6
+ import { jsx as u } from "react/jsx-runtime";
6
7
  //#region src/shared/components/SSORedirectGuard.tsx
7
- var l = "bf-sso-relay-attempt", u = 120 * 1e3, d = [
8
+ var d = "bf-sso-relay-attempt", f = 120 * 1e3, p = [
8
9
  "sso_failed",
9
10
  "sso-failed",
10
11
  "sso-attempted"
11
12
  ];
12
- function f(e) {
13
+ function m(e) {
13
14
  if (typeof window > "u") return null;
14
15
  try {
15
16
  let t = `${window.location.pathname}${window.location.search}${window.location.hash}`, n = new URL(e ?? t, window.location.origin);
@@ -18,102 +19,97 @@ function f(e) {
18
19
  return null;
19
20
  }
20
21
  }
21
- function p(e) {
22
+ function h(e) {
22
23
  return e === "/auth" || e.startsWith("/auth/");
23
24
  }
24
- function m(e) {
25
- return d.some((t) => e.searchParams.has(t));
25
+ function g(e) {
26
+ return p.some((t) => e.searchParams.has(t));
26
27
  }
27
- function h(e) {
28
- if (m(e)) return n(), !0;
29
- if (p(e.pathname)) return !0;
28
+ function _(e) {
29
+ if (g(e)) return n(), !0;
30
+ if (h(e.pathname)) return !0;
30
31
  let t = e.searchParams.get("reason");
31
32
  return t === "session-expired" || t === "logout";
32
33
  }
33
- function g() {
34
+ function v() {
34
35
  try {
35
- sessionStorage.removeItem(l);
36
+ sessionStorage.removeItem(d);
36
37
  } catch {}
37
38
  }
38
- function _() {
39
+ function y() {
39
40
  if (typeof window > "u") return null;
40
41
  try {
41
- let e = sessionStorage.getItem(l);
42
+ let e = sessionStorage.getItem(d);
42
43
  if (!e) return null;
43
44
  let t = JSON.parse(e);
44
- return typeof t.relayOrigin != "string" || typeof t.returnTo != "string" || typeof t.startedAt != "number" || Date.now() - t.startedAt > u ? (g(), null) : {
45
+ return typeof t.relayOrigin != "string" || typeof t.returnTo != "string" || typeof t.startedAt != "number" || Date.now() - t.startedAt > f ? (v(), null) : {
45
46
  relayOrigin: t.relayOrigin,
46
47
  returnTo: t.returnTo,
47
48
  startedAt: t.startedAt
48
49
  };
49
50
  } catch {
50
- return g(), null;
51
+ return v(), null;
51
52
  }
52
53
  }
53
- function v(e) {
54
+ function b(e) {
54
55
  try {
55
56
  return new URL(e).origin;
56
57
  } catch {
57
58
  return null;
58
59
  }
59
60
  }
60
- function y(e) {
61
- let t = f(e);
62
- return !t || h(t);
61
+ function x(e) {
62
+ let t = m(e);
63
+ return !t || _(t);
63
64
  }
64
- function b(e, t) {
65
- let n = v(e), r = f(t), i = _();
65
+ function S(e, t) {
66
+ let n = b(e), r = m(t), i = y();
66
67
  return !!(n && r && i?.returnTo === r.href);
67
68
  }
68
- function x(e, t) {
69
+ function C(e, t) {
69
70
  if (typeof window > "u") return;
70
- let n = v(e), r = f(t);
71
+ let n = b(e), r = m(t);
71
72
  if (!(!n || !r)) try {
72
73
  let e = {
73
74
  relayOrigin: n,
74
75
  returnTo: r.href,
75
76
  startedAt: Date.now()
76
77
  };
77
- sessionStorage.setItem(l, JSON.stringify(e));
78
+ sessionStorage.setItem(d, JSON.stringify(e));
78
79
  } catch {}
79
80
  }
80
- function S() {
81
- if (typeof window > "u") return !1;
82
- try {
83
- let e = window.Capacitor;
84
- if (typeof e?.isNativePlatform == "function" && e.isNativePlatform()) return !0;
85
- } catch {}
86
- return !!(typeof navigator < "u" && /Electron/i.test(navigator.userAgent || ""));
81
+ function w() {
82
+ return c() || s();
87
83
  }
88
- function C(t) {
89
- if (S()) return null;
84
+ function T(t) {
85
+ if (w()) return null;
90
86
  try {
91
- let n = f(t);
92
- if (!n || h(n) || r()) return null;
87
+ let n = m(t);
88
+ if (!n || _(n) || r()) return null;
93
89
  let i = window.location.origin, s = o();
94
90
  if (s?.origin && a(s.origin)) {
95
91
  let e = new URL(s.origin).origin;
96
- if (e && e !== i && !b(e, n.href)) return x(e, n.href), `${e}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
92
+ if (e && e !== i && !S(e, n.href)) return C(e, n.href), `${e}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
97
93
  }
98
94
  try {
99
95
  let t = e(), r = new URL(t.url).origin;
100
- if (r && r !== i && !b(r, n.href)) return x(r, n.href), `${r}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
96
+ if (r && r !== i && !S(r, n.href)) return C(r, n.href), `${r}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
101
97
  } catch {}
102
98
  return null;
103
99
  } catch {
104
100
  return null;
105
101
  }
106
102
  }
107
- function w() {
103
+ function E() {
108
104
  try {
109
105
  if (o()) return !1;
110
106
  let e = sessionStorage.getItem("bf-active-profile");
111
- return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !i() ? !1 : (E(), !0);
107
+ return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !i() ? !1 : (O(), !0);
112
108
  } catch {
113
109
  return !1;
114
110
  }
115
111
  }
116
- async function T(e, t) {
112
+ async function D(e, t) {
117
113
  try {
118
114
  let n = await fetch(e, {
119
115
  method: "POST",
@@ -130,7 +126,7 @@ async function T(e, t) {
130
126
  return !1;
131
127
  }
132
128
  }
133
- function E() {
129
+ function O() {
134
130
  try {
135
131
  let e = localStorage.getItem("bf-profiles");
136
132
  if (e) {
@@ -141,8 +137,8 @@ function E() {
141
137
  localStorage.removeItem("bf-profiles"), localStorage.removeItem("auth-storage"), sessionStorage.removeItem("bf-active-profile"), t(), n(), window.dispatchEvent(new Event("bf-auth-state-cleared")), window.dispatchEvent(new Event("bf-profile-storage-change"));
142
138
  } catch {}
143
139
  }
144
- function D() {
145
- return /* @__PURE__ */ c(s, { label: "Signing you in…" });
140
+ function k() {
141
+ return /* @__PURE__ */ u(l, { label: "Signing you in…" });
146
142
  }
147
143
  //#endregion
148
- export { D as SSORedirectSpinner, T as checkRemoteSLO, w as checkSLO, E as clearLocalAuthState, g as clearSSORelayAttempt, C as getSSORedirectUrl, b as hasRecentSSORedirectAttempt, x as markSSORedirectAttempt, y as shouldSkipSSORedirect };
144
+ export { k as SSORedirectSpinner, D as checkRemoteSLO, E as checkSLO, O as clearLocalAuthState, v as clearSSORelayAttempt, T as getSSORedirectUrl, S as hasRecentSSORedirectAttempt, C as markSSORedirectAttempt, x as shouldSkipSSORedirect };
@@ -33,4 +33,6 @@ export type { UseVoiceInputReturn } from './assistantWidget/useVoiceInput';
33
33
  export type { AssistantTransport, AssistantSendArgs, AssistantSessionSummary, AssistantWidgetMessage, AssistantWidgetRole, } from './assistantWidget/types';
34
34
  export { Markdown } from './Markdown';
35
35
  export type { MarkdownProps } from './Markdown';
36
+ export { DesktopUpdateToast } from './DesktopUpdateToast';
37
+ export type { DesktopUpdateToastProps } from './DesktopUpdateToast';
36
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACnG,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACnG,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -24,4 +24,14 @@ export interface RuntimeAuthBridgeConfig {
24
24
  * 3. Everything else -> local development bridge (app.local.burdenoff.com)
25
25
  */
26
26
  export declare function resolveAuthBridgeConfig(): RuntimeAuthBridgeConfig;
27
+ /**
28
+ * Auth bridge config for an app shell, desktop-aware.
29
+ *
30
+ * Desktop (Electron) shells must NOT stand up the cross-TLD iframe bridge: the
31
+ * window is served from a custom scheme, the hidden iframe can never share a
32
+ * cookie jar with it, and the desktop shell owns its own session. Returning
33
+ * `undefined` there mirrors the per-shell `resolveAppAuthBridgeConfig()` that
34
+ * products implement today (see vibecontrols-app `src/electronRuntime.ts`).
35
+ */
36
+ export declare function resolveShellAuthBridgeConfig(): RuntimeAuthBridgeConfig | undefined;
27
37
  //# sourceMappingURL=authBridgeUrls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authBridgeUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/authBridgeUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAyCD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,uBAAuB,CAcjE"}
1
+ {"version":3,"file":"authBridgeUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/authBridgeUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAyCD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,uBAAuB,CAcjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,IAAI,uBAAuB,GAAG,SAAS,CAGlF"}
@@ -1,31 +1,35 @@
1
- import { ALL_PRODUCT_DOMAINS as e, ALPHA_HOSTS as t, PROD_HOSTS as n, getCurrentHostname as r } from "./gatewayUrls.js";
1
+ import { isDesktop as e } from "../native/desktop.js";
2
+ import { ALL_PRODUCT_DOMAINS as t, ALPHA_HOSTS as n, PROD_HOSTS as r, getCurrentHostname as i } from "./gatewayUrls.js";
2
3
  //#region src/shared/config/authBridgeUrls.ts
3
- var i = {
4
+ var a = {
4
5
  url: "https://app.burdenoff.com/auth/session-bridge",
5
- allowedOrigins: e.map((e) => `https://app.${e}`).join(","),
6
+ allowedOrigins: t.map((e) => `https://app.${e}`).join(","),
6
7
  debug: !1
7
- }, a = {
8
+ }, o = {
8
9
  url: "https://alphaapp.burdenoff.com/auth/session-bridge",
9
- allowedOrigins: e.map((e) => `https://alphaapp.${e}`).join(","),
10
+ allowedOrigins: t.map((e) => `https://alphaapp.${e}`).join(","),
10
11
  debug: !1
11
- }, o = {
12
+ }, s = {
12
13
  url: "https://app.local.burdenoff.com/auth/session-bridge",
13
14
  allowedOrigins: "*",
14
15
  debug: !0
15
16
  };
16
- function s(e) {
17
+ function c(e) {
17
18
  return e ? e === "localhost" || e === "127.0.0.1" || e === "0.0.0.0" || e === "[::1]" || e === "::1" || e.endsWith(".localhost") : !1;
18
19
  }
19
- function c() {
20
+ function l() {
20
21
  return {
21
22
  url: `${typeof window > "u" ? "" : window.location.origin}/auth/session-bridge`,
22
23
  allowedOrigins: "*",
23
24
  debug: !0
24
25
  };
25
26
  }
26
- function l() {
27
- let e = r();
28
- return n.has(e) ? i : t.has(e) ? a : s(e) ? c() : o;
27
+ function u() {
28
+ let e = i();
29
+ return r.has(e) ? a : n.has(e) ? o : c(e) ? l() : s;
30
+ }
31
+ function d() {
32
+ if (!e()) return u();
29
33
  }
30
34
  //#endregion
31
- export { l as resolveAuthBridgeConfig };
35
+ export { u as resolveAuthBridgeConfig, d as resolveShellAuthBridgeConfig };
@@ -1 +1 @@
1
- {"version":3,"file":"gatewayUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/gatewayUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAoBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UA+C/B,CAAC;AAEF,eAAO,MAAM,UAAU,aAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,aAOtB,CAAC;AAEH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAuCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CA6BvD"}
1
+ {"version":3,"file":"gatewayUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/gatewayUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAoBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UA+C/B,CAAC;AAEF,eAAO,MAAM,UAAU,aAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,aAOtB,CAAC;AAEH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAuCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CAqCvD"}
@@ -1,21 +1,22 @@
1
+ import { getDesktopGatewayUrls as e } from "../native/desktop.js";
1
2
  //#region src/shared/config/gatewayUrls.ts
2
- var e = {
3
+ var t = {
3
4
  workspaceBaseUrl: "https://alphagraphqlworkspaces.burdenoff.com",
4
5
  globalBaseUrl: "https://alphagraphql.burdenoff.com",
5
6
  publicStoreBaseUrl: "https://alphagraphql.burdenoff.com"
6
- }, t = {
7
+ }, n = {
7
8
  workspaceBaseUrl: "https://graphqlworkspaces.burdenoff.com",
8
9
  globalBaseUrl: "https://graphql.burdenoff.com",
9
10
  publicStoreBaseUrl: "https://graphql.burdenoff.com"
10
- }, n = {
11
+ }, r = {
11
12
  workspaceBaseUrl: "https://gw-wspace.local.burdenoff.com",
12
13
  globalBaseUrl: "https://gw-global.local.burdenoff.com",
13
14
  publicStoreBaseUrl: "https://gw-global.local.burdenoff.com"
14
- }, r = /* @__PURE__ */ "burdenoff.com,vibecontrols.com,fluidgrids.com,fluidgrids.ai,botlit.ai,botmanor.com,bigconsole.com,gethealthybowl.com,headshotmarketing.com,timecampus.com,ggnomad.com,movethewheels.com,crewfoundry.com,planmagnet.com,eventfullymanaged.com,kadaikodi.com,assethandler.com,technospam.com,semanticfed.com,manufacturedops.com,theglobalfuel.com,housingvista.com,proserviceworld.com,mybodyshield.com,artistrybase.com,collabkin.com,brainyrich.com,theculturepost.com,comradecircle.com,cosmicintersection.com,govcitizenhub.com,intelwatchtower.com,ecoimpacthub.com,buildmyiq.com,fluidgrids.ai,atheletebridge.com,adaptercloud.com,coolandlovely.com,subscriberbot.com,labsofscience.com,hookmovies.com".split(","), i = new Set([...r.map((e) => `app.${e}`), "admin.burdenoff.com"]), a = new Set([...r.map((e) => `alphaapp.${e}`), "alphaadmin.burdenoff.com"]);
15
- function o() {
15
+ }, i = /* @__PURE__ */ "burdenoff.com,vibecontrols.com,fluidgrids.com,fluidgrids.ai,botlit.ai,botmanor.com,bigconsole.com,gethealthybowl.com,headshotmarketing.com,timecampus.com,ggnomad.com,movethewheels.com,crewfoundry.com,planmagnet.com,eventfullymanaged.com,kadaikodi.com,assethandler.com,technospam.com,semanticfed.com,manufacturedops.com,theglobalfuel.com,housingvista.com,proserviceworld.com,mybodyshield.com,artistrybase.com,collabkin.com,brainyrich.com,theculturepost.com,comradecircle.com,cosmicintersection.com,govcitizenhub.com,intelwatchtower.com,ecoimpacthub.com,buildmyiq.com,fluidgrids.ai,atheletebridge.com,adaptercloud.com,coolandlovely.com,subscriberbot.com,labsofscience.com,hookmovies.com".split(","), a = new Set([...i.map((e) => `app.${e}`), "admin.burdenoff.com"]), o = new Set([...i.map((e) => `alphaapp.${e}`), "alphaadmin.burdenoff.com"]);
16
+ function s() {
16
17
  return typeof window > "u" ? "" : window.location.hostname.toLowerCase();
17
18
  }
18
- function s(e) {
19
+ function c(e) {
19
20
  let t = `https://${e}`;
20
21
  return {
21
22
  workspaceBaseUrl: t,
@@ -23,22 +24,24 @@ function s(e) {
23
24
  publicStoreBaseUrl: t
24
25
  };
25
26
  }
26
- function c(e) {
27
+ function l(e) {
27
28
  return e ? e === "localhost" || e === "127.0.0.1" || e === "0.0.0.0" || e === "[::1]" || e === "::1" || e.endsWith(".localhost") || e.endsWith(".local.burdenoff.com") : !1;
28
29
  }
29
- var l = !1;
30
- function u() {
31
- let r = o();
32
- if (i.has(r)) return t;
33
- if (a.has(r)) return s(r);
34
- if (c(r)) {
35
- let n = d();
36
- if (n === "prod") return l || (l = !0, console.warn("[gatewayUrls] WARNING: localhost dev server is configured to hit PRODUCTION backends (VITE_GATEWAY_TARGET=prod). Any mutation will modify real prod data. Remove the env var or delete .env.local to disable.")), t;
37
- if (n === "alpha") return e;
30
+ var u = !1;
31
+ function d() {
32
+ let i = e();
33
+ if (i) return i;
34
+ let d = s();
35
+ if (a.has(d)) return n;
36
+ if (o.has(d)) return c(d);
37
+ if (l(d)) {
38
+ let e = f();
39
+ if (e === "prod") return u || (u = !0, console.warn("[gatewayUrls] WARNING: localhost dev server is configured to hit PRODUCTION backends (VITE_GATEWAY_TARGET=prod). Any mutation will modify real prod data. Remove the env var or delete .env.local to disable.")), n;
40
+ if (e === "alpha") return t;
38
41
  }
39
- return n;
42
+ return r;
40
43
  }
41
- function d() {
44
+ function f() {
42
45
  try {
43
46
  return {
44
47
  BASE_URL: "/",
@@ -52,4 +55,4 @@ function d() {
52
55
  }
53
56
  }
54
57
  //#endregion
55
- export { r as ALL_PRODUCT_DOMAINS, a as ALPHA_HOSTS, i as PROD_HOSTS, o as getCurrentHostname, u as resolveGatewayUrls };
58
+ export { i as ALL_PRODUCT_DOMAINS, o as ALPHA_HOSTS, a as PROD_HOSTS, s as getCurrentHostname, d as resolveGatewayUrls };
@@ -66,7 +66,7 @@ export declare function getGatewayConfig(gateway: Gateway): {
66
66
  export declare function getGatewayUrl(baseUrl: string | undefined, gateway: Gateway): string;
67
67
  export { resolveGatewayUrls } from './gatewayUrls';
68
68
  export type { RuntimeGatewayUrls } from './gatewayUrls';
69
- export { resolveAuthBridgeConfig } from './authBridgeUrls';
69
+ export { resolveAuthBridgeConfig, resolveShellAuthBridgeConfig } from './authBridgeUrls';
70
70
  export type { RuntimeAuthBridgeConfig } from './authBridgeUrls';
71
71
  export { PRODUCTS, PRODUCT_URLS, getProductUrl, getProductsWithUrls } from './products';
72
72
  export type { ProductConfig } from './products';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;QAEjB,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;;;QAI7F,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;QAE7F,uDAAuD;;;CAGjD,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE5C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAMlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;IApC7C,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;;IAI7F,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;IAE7F,uDAAuD;;EAwB1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKnF;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;QAEjB,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;;;QAI7F,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;QAE7F,uDAAuD;;;CAGjD,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE5C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAMlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;IApC7C,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;;IAI7F,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;IAE7F,uDAAuD;;EAwB1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKnF;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -22,6 +22,13 @@ export interface NavItem {
22
22
  * UI shaping only: the gateway `@rbac` layer stays the enforcement point.
23
23
  */
24
24
  requiredPermission?: string | string[];
25
+ /**
26
+ * Priority for the installed-app bottom tab bar (`MobileTabBar`). Items that
27
+ * declare one are promoted into the visible tabs first, ascending (0 = most
28
+ * important); items without it fall back to registry `order`. Optional —
29
+ * the tab bar works without it.
30
+ */
31
+ mobilePriority?: number;
25
32
  }
26
33
  interface NavRegistryStore {
27
34
  items: NavItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"useNavRegistry.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/useNavRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACxC;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,mBAAmB,+EAa7B,CAAC"}
1
+ {"version":3,"file":"useNavRegistry.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/useNavRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,mBAAmB,+EAa7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePWA.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/usePWA.ts"],"names":[],"mappings":"AAWA,UAAU,QAAQ;IAChB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAa,SAAQ,QAAQ;IACrC,iCAAiC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,gCAAgC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iCAAiC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,UAAU,aAAa;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAqLhE"}
1
+ {"version":3,"file":"usePWA.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/usePWA.ts"],"names":[],"mappings":"AAsBA,UAAU,QAAQ;IAChB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAa,SAAQ,QAAQ;IACrC,iCAAiC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,gCAAgC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iCAAiC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,UAAU,aAAa;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAiNhE"}
@@ -1,29 +1,30 @@
1
1
  import { useCallback as e, useEffect as t, useState as n } from "react";
2
2
  //#region src/shared/hooks/usePWA.ts
3
- function r(r = {}) {
4
- let { autoUpdate: i = !0, updateCheckIntervalMs: a = 6e4 } = r, [o, s] = n(null), [c, l] = n(!1), [u, d] = n(!1), [f, p] = n(!1), [m, h] = n(!1), [g, _] = n(!1), [v, y] = n(null);
3
+ var r = "burdenoff:pwaInstallAvailable", i = "burdenoff:pwaInstalled", a = "burdenoff:pwaUpdateReady";
4
+ function o(o = {}) {
5
+ let { autoUpdate: s = !0, updateCheckIntervalMs: c = 6e4 } = o, [l, u] = n(null), [d, f] = n(!1), [p, m] = n(!1), [h, g] = n(!1), [_, v] = n(!1), [y, b] = n(!1), [x, S] = n(null);
5
6
  return t(() => {
6
7
  let e = setTimeout(() => {
7
8
  let e = window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === !0;
8
- p(e), d(e);
9
+ g(e), m(e);
9
10
  }, 0);
10
11
  return () => clearTimeout(e);
11
12
  }, []), t(() => {
12
13
  if (!("serviceWorker" in navigator)) return;
13
- let e = !1, t, n, r = !1, o = () => {
14
+ let e = !1, t, n, r = !1, i = () => {
14
15
  navigator.serviceWorker.addEventListener("controllerchange", () => {
15
16
  r || (r = !0, window.location.reload());
16
17
  });
17
18
  };
18
19
  return navigator.serviceWorker.register("/sw.js").then((r) => {
19
- e || (y(r), h(!0), i && r.waiting && navigator.serviceWorker.controller && (o(), r.waiting.postMessage("skipWaiting")), r.addEventListener("updatefound", () => {
20
+ e || (S(r), v(!0), s && r.waiting && navigator.serviceWorker.controller && (i(), r.waiting.postMessage("skipWaiting")), r.addEventListener("updatefound", () => {
20
21
  let e = r.installing;
21
22
  e && e.addEventListener("statechange", () => {
22
- e.state === "installed" && navigator.serviceWorker.controller && (_(!0), i && (o(), e.postMessage("skipWaiting")));
23
+ e.state === "installed" && navigator.serviceWorker.controller && (b(!0), s && (i(), e.postMessage("skipWaiting")));
23
24
  });
24
- }), a > 0 && (t = setInterval(() => {
25
+ }), c > 0 && (t = setInterval(() => {
25
26
  r.update().catch(() => void 0);
26
- }, a)), n = () => {
27
+ }, c)), n = () => {
27
28
  document.visibilityState === "visible" && r.update().catch(() => void 0);
28
29
  }, document.addEventListener("visibilitychange", n));
29
30
  }).catch((e) => {
@@ -31,38 +32,41 @@ function r(r = {}) {
31
32
  }), () => {
32
33
  e = !0, t && clearInterval(t), n && document.removeEventListener("visibilitychange", n);
33
34
  };
34
- }, [i, a]), t(() => {
35
- let e = (e) => {
36
- e.preventDefault(), s(e), l(!0);
37
- }, t = () => {
38
- d(!0), l(!1), s(null);
39
- };
40
- return window.addEventListener("beforeinstallprompt", e), window.addEventListener("appinstalled", t), () => {
41
- window.removeEventListener("beforeinstallprompt", e), window.removeEventListener("appinstalled", t);
35
+ }, [s, c]), t(() => {
36
+ let e = () => {
37
+ let e = window.__burdenoffPwaInstallPrompt;
38
+ e && (u(e), f(!0));
39
+ }, t = (e) => {
40
+ e.preventDefault(), u(e), f(!0);
41
+ }, n = () => {
42
+ m(!0), f(!1), u(null);
43
+ }, o = () => b(!0);
44
+ return e(), window.addEventListener("beforeinstallprompt", t), window.addEventListener("appinstalled", n), window.addEventListener(r, e), window.addEventListener(i, n), window.addEventListener(a, o), () => {
45
+ window.removeEventListener("beforeinstallprompt", t), window.removeEventListener("appinstalled", n), window.removeEventListener(r, e), window.removeEventListener(i, n), window.removeEventListener(a, o);
42
46
  };
43
47
  }, []), {
44
- canInstall: c,
45
- isInstalled: u,
46
- isStandalone: f,
47
- isServiceWorkerReady: m,
48
- hasUpdate: g,
48
+ canInstall: d,
49
+ isInstalled: p,
50
+ isStandalone: h,
51
+ isServiceWorkerReady: _,
52
+ hasUpdate: y,
49
53
  install: e(async () => {
50
- if (!o) return !1;
54
+ if (!l) return !1;
51
55
  try {
52
- await o.prompt();
53
- let { outcome: e } = await o.userChoice;
54
- return e === "accepted" && (d(!0), l(!1)), s(null), e === "accepted";
56
+ await l.prompt();
57
+ let e = (await l.userChoice)?.outcome;
58
+ return e === "accepted" && (m(!0), f(!1)), u(null), window.__burdenoffPwaInstallPrompt = null, e === "accepted";
55
59
  } catch (e) {
56
60
  return console.error("[PWA] Install failed:", e), !1;
57
61
  }
58
- }, [o]),
62
+ }, [l]),
59
63
  update: e(() => {
60
- v?.waiting && (v.waiting.postMessage("skipWaiting"), window.location.reload());
61
- }, [v]),
64
+ x?.waiting && (x.waiting.postMessage("skipWaiting"), window.location.reload());
65
+ }, [x]),
62
66
  dismissInstall: e(() => {
63
- l(!1), localStorage.setItem("pwa-install-dismissed", Date.now().toString());
67
+ f(!1), localStorage.setItem("pwa-install-dismissed", Date.now().toString());
64
68
  }, [])
65
69
  };
66
70
  }
67
71
  //#endregion
68
- export { r as usePWA };
72
+ export { o as usePWA };