@burdenoff/fe-libs 2026.1021.13 → 2026.1021.14

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.
@@ -0,0 +1,56 @@
1
+ import { AnchorHTMLAttributes, ReactNode } from 'react';
2
+ import { DocsEnvironment } from '../config/docsUrls';
3
+ export declare const PUBLIC_PRODUCT_DOCS_URL_QUERY: import('graphql').DocumentNode;
4
+ /** Minimal client surface the registry lookup needs (an ApolloClient satisfies it). */
5
+ export interface DocsRegistryClient {
6
+ query: (options: {
7
+ query: typeof PUBLIC_PRODUCT_DOCS_URL_QUERY;
8
+ variables: {
9
+ slug: string;
10
+ };
11
+ fetchPolicy: 'cache-first';
12
+ }) => Promise<{
13
+ data?: unknown;
14
+ }>;
15
+ }
16
+ /** Read `publicProduct.docsUrl` out of a query result, trusted origins only. */
17
+ export declare function readRegistryDocsUrl(data: unknown): string | null;
18
+ /** The cached registry docsUrl for a slug: string, `null` (none), or undefined (not fetched). */
19
+ export declare function getCachedRegistryDocsUrl(productSlug: string): string | null | undefined;
20
+ /**
21
+ * Look up the registry docsUrl once per slug. Failures resolve to `null` (the
22
+ * catalog default stays in use) and are not cached, so a later mount retries.
23
+ */
24
+ export declare function fetchRegistryDocsUrl(client: DocsRegistryClient, productSlug: string): Promise<string | null>;
25
+ /** Test seam: forget every cached registry answer. */
26
+ export declare function resetRegistryDocsUrlCache(): void;
27
+ export interface UseProductDocsOptions {
28
+ /** Another product's docs instead of the running shell's. */
29
+ productSlug?: string;
30
+ /** Skip the registry lookup and use the static catalog default only. */
31
+ registry?: boolean;
32
+ /** Override the detected environment (tests, previews). */
33
+ environment?: DocsEnvironment;
34
+ }
35
+ /**
36
+ * The environment-correct docs origin for the running shell's product, e.g.
37
+ * `https://docs.vibecontrols.com` or `https://alphadocs.vibecontrols.com`.
38
+ */
39
+ export declare function useProductDocsOrigin(options?: UseProductDocsOptions): string | undefined;
40
+ /**
41
+ * The environment-correct docs URL for a page of the running shell's product.
42
+ * `path` is site-relative (`/users/workflows`); undefined when it is not, or
43
+ * when the product has no trusted docs host.
44
+ */
45
+ export declare function useProductDocsUrl(path?: string, options?: UseProductDocsOptions): string | undefined;
46
+ export interface DocsLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'rel'>, UseProductDocsOptions {
47
+ /** Site-relative docs path, e.g. `/users/workflows`. Defaults to the docs home. */
48
+ path?: string;
49
+ children: ReactNode;
50
+ }
51
+ /**
52
+ * A new-tab link to the product's docs for the current environment. Renders
53
+ * its children without a link when no trusted docs URL resolves, so a page
54
+ * never shows a dead "Learn more".
55
+ */
56
+ export declare function DocsLink({ path, productSlug, registry, environment, children, ...anchorProps }: DocsLinkProps): import('react/jsx-runtime').JSX.Element;
@@ -0,0 +1,97 @@
1
+ import { normalizeProductSlug as e } from "../config/productSlug.js";
2
+ import { buildProductDocsUrl as t, resolveProductDocsOrigin as n, toTrustedDocsOrigin as r } from "../config/docsUrls.js";
3
+ import { useSafeGateway as i } from "../graphql/GatewayContext.js";
4
+ import { useAppShell as a } from "../providers/shell/AppShellContext.js";
5
+ import { useEffect as o, useState as s } from "react";
6
+ import { Fragment as c, jsx as l } from "react/jsx-runtime";
7
+ import { gql as u } from "@apollo/client/core";
8
+ //#region src/shared/components/DocsLink.tsx
9
+ var d = u`
10
+ query PublicProductDocsUrl($slug: String!) {
11
+ publicProduct(slug: $slug) {
12
+ docsUrl
13
+ }
14
+ }
15
+ `, f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
16
+ function m(e) {
17
+ if (!e || typeof e != "object") return null;
18
+ let t = e.publicProduct;
19
+ if (!t || typeof t != "object") return null;
20
+ let n = t.docsUrl;
21
+ return typeof n == "string" && r(n) ? n : null;
22
+ }
23
+ function h(t) {
24
+ return f.get(e(t));
25
+ }
26
+ function g(t, n) {
27
+ let r = e(n), i = f.get(r);
28
+ if (i !== void 0) return Promise.resolve(i);
29
+ let a = p.get(r);
30
+ if (a) return a;
31
+ let o = t.query({
32
+ query: d,
33
+ variables: { slug: r },
34
+ fetchPolicy: "cache-first"
35
+ }).then((e) => {
36
+ let t = m(e.data);
37
+ return f.set(r, t), t;
38
+ }).catch(() => null).finally(() => {
39
+ p.delete(r);
40
+ });
41
+ return p.set(r, o), o;
42
+ }
43
+ function _(e, t) {
44
+ let n = i(), [r, a] = s(() => h(e) ?? null);
45
+ return o(() => {
46
+ if (!t || !n) return;
47
+ let r = h(e);
48
+ if (r !== void 0) {
49
+ a(r);
50
+ return;
51
+ }
52
+ a(null);
53
+ let i = !0;
54
+ return g(n.getClient("global"), e).then((e) => {
55
+ i && a(e);
56
+ }), () => {
57
+ i = !1;
58
+ };
59
+ }, [
60
+ t,
61
+ n,
62
+ e
63
+ ]), t ? r : null;
64
+ }
65
+ function v(e = {}) {
66
+ let t = a(), r = e.productSlug ?? t.productSlug;
67
+ return n(r, {
68
+ registryDocsUrl: _(r, e.registry !== !1),
69
+ domain: e.productSlug ? void 0 : t.domain,
70
+ environment: e.environment
71
+ });
72
+ }
73
+ function y(e, n = {}) {
74
+ let r = a(), i = n.productSlug ?? r.productSlug;
75
+ return t(i, e, {
76
+ registryDocsUrl: _(i, n.registry !== !1),
77
+ domain: n.productSlug ? void 0 : r.domain,
78
+ environment: n.environment
79
+ });
80
+ }
81
+ function b({ path: e, productSlug: t, registry: n, environment: r, children: i, ...a }) {
82
+ let o = y(e, {
83
+ productSlug: t,
84
+ registry: n,
85
+ environment: r
86
+ });
87
+ return o ? /* @__PURE__ */ l("a", {
88
+ ...a,
89
+ href: o,
90
+ target: "_blank",
91
+ rel: "noopener noreferrer",
92
+ "data-docs-link": "",
93
+ children: i
94
+ }) : /* @__PURE__ */ l(c, { children: i });
95
+ }
96
+ //#endregion
97
+ export { b as DocsLink, d as PUBLIC_PRODUCT_DOCS_URL_QUERY, g as fetchRegistryDocsUrl, m as readRegistryDocsUrl, v as useProductDocsOrigin, y as useProductDocsUrl };
@@ -30,6 +30,8 @@ export type { QuotaUpgradeBridgeProps, QuotaUpgradeBridgeOptions, QuotaUpgradeCo
30
30
  export { getSSORedirectUrl, redirectToSSO, SSORedirectSpinner, checkSLO, checkRemoteSLO, clearLocalAuthState, } from './SSORedirectGuard';
31
31
  export { MAIN_CONTENT_ID, MainLandmark, PublicLayout, SkipToContentLink, focusSkipTarget, useInsideMainLandmark, } from './SkipToContent';
32
32
  export type { MainLandmarkProps, PublicLayoutProps, SkipTarget, SkipToContentLinkProps, } from './SkipToContent';
33
+ export { DocsLink, useProductDocsOrigin, useProductDocsUrl, fetchRegistryDocsUrl, readRegistryDocsUrl, PUBLIC_PRODUCT_DOCS_URL_QUERY, } from './DocsLink';
34
+ export type { DocsLinkProps, DocsRegistryClient, UseProductDocsOptions } from './DocsLink';
33
35
  export { LandingOrDashboardRedirect, LandingGateView, resolveLandingGate, hasStoredValidSession, } from './LandingOrDashboardRedirect';
34
36
  export type { LandingOrDashboardRedirectProps, LandingGateViewProps, LandingGateDecision, LandingGateInput, } from './LandingOrDashboardRedirect';
35
37
  export { AssistantWidget, ASSISTANT_WIDGET_TOGGLE_EVENT } from './assistantWidget/AssistantWidget';
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Environment-aware product documentation URLs (G91).
3
+ *
4
+ * Every product publishes its docs at `docs.<product-domain>` in production
5
+ * and `alphadocs.<product-domain>` in alpha (behind Cloudflare Access, like
6
+ * every other alpha host). In-app "Learn more" and Help links must follow the
7
+ * environment the shell is running in: an alpha shell that links to the prod
8
+ * docs shows readers documentation for a build they are not using.
9
+ *
10
+ * Resolution, highest precedence first:
11
+ * 1. The product registry `docsUrl` (`publicProduct(slug).docsUrl`), when it
12
+ * is an https URL on a trusted product domain.
13
+ * 2. The static catalog: the product's production app host with `app.`
14
+ * swapped for `docs.`.
15
+ * 3. `docs.<domain>` from the shell's own `domain`, for a product the static
16
+ * catalog does not know yet.
17
+ *
18
+ * The chosen origin is then canonicalised (legacy docs hosts are mapped to
19
+ * their canonical twin — FluidGrids' canonical domain is fluidgrids.ai) and
20
+ * converted to the current environment (`docs.` ↔ `alphadocs.`).
21
+ *
22
+ * @module @burdenoff/fe-libs/shared/config/docsUrls
23
+ */
24
+ /** The docs estate a link should point at. Local dev servers read the prod docs. */
25
+ export type DocsEnvironment = 'prod' | 'alpha';
26
+ /**
27
+ * Legacy docs hosts and the canonical host each one 301s to. A registry row or
28
+ * shell config that still carries the legacy host resolves straight to the
29
+ * canonical one, so a link never relies on the redirect.
30
+ */
31
+ export declare const CANONICAL_DOCS_HOSTS: Readonly<Record<string, string>>;
32
+ /**
33
+ * Parse a docs base URL and return its `https://host` origin, or null when it
34
+ * is not a usable docs origin: not https, not on a known product domain,
35
+ * or not parseable. Registry values are user-editable admin data, so an
36
+ * arbitrary host must never become an in-app link.
37
+ */
38
+ export declare function toTrustedDocsOrigin(url: string | null | undefined): string | null;
39
+ /** Map a legacy docs origin to its canonical twin; other origins are returned unchanged. */
40
+ export declare function canonicalizeDocsOrigin(origin: string): string;
41
+ /**
42
+ * Convert a docs origin to the given environment: `docs.x` ↔ `alphadocs.x`.
43
+ * An origin that follows neither convention is returned unchanged, because
44
+ * guessing an alpha twin for it could produce a host that does not exist.
45
+ */
46
+ export declare function toEnvironmentDocsOrigin(origin: string, environment: DocsEnvironment): string;
47
+ /**
48
+ * The default prod docs origin for a product from the static catalog
49
+ * (`app.<domain>` → `docs.<domain>`), canonicalised. Undefined when the
50
+ * catalog does not know the product.
51
+ */
52
+ export declare function getCatalogDocsOrigin(productSlug: string): string | undefined;
53
+ /**
54
+ * Which docs estate the running shell belongs to.
55
+ *
56
+ * - Desktop (Electron): the baked runtime config's `environment`.
57
+ * - Capacitor: the build's deploy target (the WebView origin is always localhost).
58
+ * - Web: `alphaapp.*` / `alphaadmin.*` hosts are alpha; everything else is prod.
59
+ * A localhost dev server built for alpha (`VITE_DEPLOY_ENV=alpha` or
60
+ * `VITE_GATEWAY_TARGET=alpha`) reads the alpha docs; otherwise prod, because
61
+ * docs are not served by the local stack.
62
+ */
63
+ export declare function resolveDocsEnvironment(hostname?: string): DocsEnvironment;
64
+ export interface ResolveDocsOriginOptions {
65
+ /** The registry's `docsUrl` for the product, when the shell has it. */
66
+ registryDocsUrl?: string | null;
67
+ /** The shell's own domain (AppShellConfig `domain`), for products missing from the catalog. */
68
+ domain?: string;
69
+ /** Override the detected environment (tests, previews). */
70
+ environment?: DocsEnvironment;
71
+ }
72
+ /**
73
+ * The environment-correct docs origin for a product, e.g.
74
+ * `https://alphadocs.vibecontrols.com` on alphaapp.vibecontrols.com.
75
+ * Undefined only when no source names a trusted docs host.
76
+ */
77
+ export declare function resolveProductDocsOrigin(productSlug: string, options?: ResolveDocsOriginOptions): string | undefined;
78
+ /**
79
+ * Normalise a docs path: must be site-relative. Absolute URLs and
80
+ * protocol-relative `//host` paths are rejected (they would let a caller turn
81
+ * a "docs" link into an arbitrary external link). Query and hash are kept.
82
+ */
83
+ export declare function normalizeDocsPath(path: string | undefined): string | null;
84
+ /**
85
+ * Full docs URL for a product page, e.g.
86
+ * `buildProductDocsUrl('fluidgrids', '/users/workflows')` →
87
+ * `https://docs.fluidgrids.ai/users/workflows` in prod and
88
+ * `https://alphadocs.fluidgrids.ai/users/workflows` in alpha.
89
+ * Undefined when there is no trusted docs origin or the path is not site-relative.
90
+ */
91
+ export declare function buildProductDocsUrl(productSlug: string, path?: string, options?: ResolveDocsOriginOptions): string | undefined;
@@ -0,0 +1,70 @@
1
+ import { isCapacitorNative as e } from "../native/capacitor.js";
2
+ import { getDesktopRuntimeConfig as t } from "../native/desktop.js";
3
+ import { ALL_PRODUCT_DOMAINS as n, ALPHA_HOSTS as r, getCurrentHostname as i, resolveNativeDeployTarget as a } from "./gatewayUrls.js";
4
+ import { legacyProductSlug as o, normalizeProductSlug as s } from "./productSlug.js";
5
+ import { PRODUCT_URLS as c } from "./products.js";
6
+ //#region src/shared/config/docsUrls.ts
7
+ var l = "docs.", u = "alphadocs.", d = {
8
+ "docs.fluidgrids.com": "docs.fluidgrids.ai",
9
+ "alphadocs.fluidgrids.com": "alphadocs.fluidgrids.ai"
10
+ }, f = new Set(n);
11
+ function p(e) {
12
+ let t = e.toLowerCase();
13
+ for (let e of f) if (t === e || t.endsWith(`.${e}`)) return !0;
14
+ return !1;
15
+ }
16
+ function m(e) {
17
+ if (typeof e != "string" || e.trim() === "") return null;
18
+ let t;
19
+ try {
20
+ t = new URL(e.trim());
21
+ } catch {
22
+ return null;
23
+ }
24
+ return t.protocol !== "https:" || t.username || t.password || t.port || !p(t.hostname) ? null : `https://${t.hostname.toLowerCase()}`;
25
+ }
26
+ function h(e) {
27
+ let t = d[e.replace(/^https:\/\//, "")];
28
+ return t ? `https://${t}` : e;
29
+ }
30
+ function g(e, t) {
31
+ let n = e.replace(/^https:\/\//, ""), r = null;
32
+ return n.startsWith(u) ? r = n.slice(10) : n.startsWith(l) && (r = n.slice(5)), r ? `https://${t === "alpha" ? u : l}${r}` : e;
33
+ }
34
+ function _(e) {
35
+ let t = c.production, n = s(e), r = t[n] ?? t[o(n)];
36
+ if (!r) return;
37
+ let i;
38
+ try {
39
+ i = new URL(r).hostname;
40
+ } catch {
41
+ return;
42
+ }
43
+ return h(`https://${l}${i.startsWith("app.") ? i.slice(4) : i}`);
44
+ }
45
+ function v(n = i()) {
46
+ let o = t()?.environment;
47
+ if (o) return o === "alpha" ? "alpha" : "prod";
48
+ if (e()) return a() === "alpha" ? "alpha" : "prod";
49
+ let s = n.toLowerCase(), c = () => a() === "alpha" ? "alpha" : "prod";
50
+ return r.has(s) ? "alpha" : s.endsWith(".local.burdenoff.com") ? c() : s.startsWith("alpha") && p(s) ? "alpha" : p(s) ? "prod" : c();
51
+ }
52
+ function y(e, t = {}) {
53
+ let n = t.domain ? m(`https://${l}${t.domain.replace(/^www\./, "")}`) : null, r = m(t.registryDocsUrl) ?? _(e) ?? n ?? void 0;
54
+ if (!r) return;
55
+ let i = t.environment ?? v();
56
+ return g(h(r), i);
57
+ }
58
+ function b(e) {
59
+ if (e === void 0 || e === "") return "";
60
+ let t = e.trim();
61
+ return /^[a-z][a-z0-9+.-]*:/i.test(t) || t.startsWith("//") || t.includes("\\") ? null : t.startsWith("/") || t.startsWith("#") || t.startsWith("?") ? t : `/${t}`;
62
+ }
63
+ function x(e, t, n = {}) {
64
+ let r = y(e, n);
65
+ if (!r) return;
66
+ let i = b(t);
67
+ if (i !== null) return `${r}${i}`;
68
+ }
69
+ //#endregion
70
+ export { d as CANONICAL_DOCS_HOSTS, x as buildProductDocsUrl, h as canonicalizeDocsOrigin, _ as getCatalogDocsOrigin, b as normalizeDocsPath, v as resolveDocsEnvironment, y as resolveProductDocsOrigin, g as toEnvironmentDocsOrigin, m as toTrustedDocsOrigin };
@@ -68,6 +68,8 @@ export { resolveGatewayUrls } from './gatewayUrls';
68
68
  export type { RuntimeGatewayUrls } from './gatewayUrls';
69
69
  export { resolveAuthBridgeConfig, resolveShellAuthBridgeConfig } from './authBridgeUrls';
70
70
  export type { RuntimeAuthBridgeConfig } from './authBridgeUrls';
71
+ export { CANONICAL_DOCS_HOSTS, buildProductDocsUrl, canonicalizeDocsOrigin, getCatalogDocsOrigin, normalizeDocsPath, resolveDocsEnvironment, resolveProductDocsOrigin, toEnvironmentDocsOrigin, toTrustedDocsOrigin, } from './docsUrls';
72
+ export type { DocsEnvironment, ResolveDocsOriginOptions } from './docsUrls';
71
73
  export { PRODUCTS, PRODUCT_URLS, BOTMANOR_PRODUCT_SLUG, getProductUrl, getProductsWithUrls, findProductConfig, } from './products';
72
74
  export type { ProductConfig } from './products';
73
75
  export { PRODUCT_SLUG_RENAMES, PRODUCT_SLUG_EMIT, normalizeProductSlug, legacyProductSlug, isSameProductSlug, emitProductSlug, } from './productSlug';
@@ -16,9 +16,10 @@ import { QuotaMeter as A } from "./shared/components/QuotaMeter.js";
16
16
  import { UPGRADE_PROMPT_EVENT as j, UpgradePromptModal as M, dispatchUpgradePrompt as N } from "./shared/components/UpgradePromptModal.js";
17
17
  import { UpgradeInlineBanner as P } from "./shared/components/UpgradeInlineBanner.js";
18
18
  import { DEFAULT_QUOTA_UPGRADE_COPY as F, QuotaUpgradeBridge as I, captureQuotaDialogOwners as L, claimQuotaDialog as R, dispatchProductQuotaExhausted as z, quotaEventKind as B, resolveQuotaUpgradeCopy as V, useQuotaDialogOwnership as H, useQuotaUpgradeBridge as U, withQuotaDialogOwnership as W } from "./shared/components/QuotaUpgradeBridge.js";
19
- import { LandingGateView as G, LandingOrDashboardRedirect as K, hasStoredValidSession as q, resolveLandingGate as J } from "./shared/components/LandingOrDashboardRedirect.js";
20
- import { useVoiceInput as Y } from "./shared/components/assistantWidget/useVoiceInput.js";
21
- import { ASSISTANT_WIDGET_TOGGLE_EVENT as X, AssistantWidget as Z } from "./shared/components/assistantWidget/AssistantWidget.js";
22
- import { Markdown as Q } from "./shared/components/Markdown.js";
23
- import { DesktopUpdateToast as $ } from "./shared/components/DesktopUpdateToast.js";
24
- export { X as ASSISTANT_WIDGET_TOGGLE_EVENT, v as AccessDenied, D as AppErrorBoundary, Z as AssistantWidget, T as ConditionalShell, O as ContextConversationWidget, F as DEFAULT_QUOTA_UPGRADE_COPY, $ as DesktopUpdateToast, f as ErrorBoundary, b as ErrorFallback, k as KeyboardHelpDialogWrapper, G as LandingGateView, K as LandingOrDashboardRedirect, x as LoadingFallback, o as MAIN_CONTENT_ID, s as MainLandmark, Q as Markdown, w as MicrofrontendErrorBoundary, E as PWAInstallBanner, S as PageLoadingFallback, h as PermissionButton, y as PermissionDenied, g as PermissionGate, _ as PermissionLink, c as PublicLayout, A as QuotaMeter, I as QuotaUpgradeBridge, p as RequireAuth, m as RequireGuest, e as SSORedirectSpinner, C as SectionLoadingFallback, l as SkipToContentLink, j as UPGRADE_PROMPT_EVENT, P as UpgradeInlineBanner, M as UpgradePromptModal, L as captureQuotaDialogOwners, t as checkRemoteSLO, n as checkSLO, R as claimQuotaDialog, r as clearLocalAuthState, z as dispatchProductQuotaExhausted, N as dispatchUpgradePrompt, u as focusSkipTarget, i as getSSORedirectUrl, q as hasStoredValidSession, B as quotaEventKind, a as redirectToSSO, J as resolveLandingGate, V as resolveQuotaUpgradeCopy, d as useInsideMainLandmark, H as useQuotaDialogOwnership, U as useQuotaUpgradeBridge, Y as useVoiceInput, W as withQuotaDialogOwnership };
19
+ import { DocsLink as G, PUBLIC_PRODUCT_DOCS_URL_QUERY as K, fetchRegistryDocsUrl as q, readRegistryDocsUrl as J, useProductDocsOrigin as Y, useProductDocsUrl as X } from "./shared/components/DocsLink.js";
20
+ import { LandingGateView as Z, LandingOrDashboardRedirect as Q, hasStoredValidSession as $, resolveLandingGate as ee } from "./shared/components/LandingOrDashboardRedirect.js";
21
+ import { useVoiceInput as te } from "./shared/components/assistantWidget/useVoiceInput.js";
22
+ import { ASSISTANT_WIDGET_TOGGLE_EVENT as ne, AssistantWidget as re } from "./shared/components/assistantWidget/AssistantWidget.js";
23
+ import { Markdown as ie } from "./shared/components/Markdown.js";
24
+ import { DesktopUpdateToast as ae } from "./shared/components/DesktopUpdateToast.js";
25
+ export { ne as ASSISTANT_WIDGET_TOGGLE_EVENT, v as AccessDenied, D as AppErrorBoundary, re as AssistantWidget, T as ConditionalShell, O as ContextConversationWidget, F as DEFAULT_QUOTA_UPGRADE_COPY, ae as DesktopUpdateToast, G as DocsLink, f as ErrorBoundary, b as ErrorFallback, k as KeyboardHelpDialogWrapper, Z as LandingGateView, Q as LandingOrDashboardRedirect, x as LoadingFallback, o as MAIN_CONTENT_ID, s as MainLandmark, ie as Markdown, w as MicrofrontendErrorBoundary, K as PUBLIC_PRODUCT_DOCS_URL_QUERY, E as PWAInstallBanner, S as PageLoadingFallback, h as PermissionButton, y as PermissionDenied, g as PermissionGate, _ as PermissionLink, c as PublicLayout, A as QuotaMeter, I as QuotaUpgradeBridge, p as RequireAuth, m as RequireGuest, e as SSORedirectSpinner, C as SectionLoadingFallback, l as SkipToContentLink, j as UPGRADE_PROMPT_EVENT, P as UpgradeInlineBanner, M as UpgradePromptModal, L as captureQuotaDialogOwners, t as checkRemoteSLO, n as checkSLO, R as claimQuotaDialog, r as clearLocalAuthState, z as dispatchProductQuotaExhausted, N as dispatchUpgradePrompt, q as fetchRegistryDocsUrl, u as focusSkipTarget, i as getSSORedirectUrl, $ as hasStoredValidSession, B as quotaEventKind, J as readRegistryDocsUrl, a as redirectToSSO, ee as resolveLandingGate, V as resolveQuotaUpgradeCopy, d as useInsideMainLandmark, Y as useProductDocsOrigin, X as useProductDocsUrl, H as useQuotaDialogOwnership, U as useQuotaUpgradeBridge, te as useVoiceInput, W as withQuotaDialogOwnership };
@@ -2,9 +2,10 @@ import { resolveGatewayUrls as e } from "./shared/config/gatewayUrls.js";
2
2
  import { resolveAuthBridgeConfig as t, resolveShellAuthBridgeConfig as n } from "./shared/config/authBridgeUrls.js";
3
3
  import { PRODUCT_SLUG_EMIT as r, PRODUCT_SLUG_RENAMES as i, emitProductSlug as a, isSameProductSlug as o, legacyProductSlug as s, normalizeProductSlug as c } from "./shared/config/productSlug.js";
4
4
  import { BOTMANOR_PRODUCT_SLUG as l, PRODUCTS as u, PRODUCT_URLS as d, findProductConfig as f, getProductUrl as p, getProductsWithUrls as m } from "./shared/config/products.js";
5
- import { COMMON_SHELL_LESS_ROUTES as h, DEFAULT_SHELL_CONFIG as g, getShellConfig as _, isShellLessRoute as v, shouldShowBreadcrumb as y, shouldShowSidebar as b } from "./shared/config/shellRoutes.js";
5
+ import { CANONICAL_DOCS_HOSTS as h, buildProductDocsUrl as g, canonicalizeDocsOrigin as _, getCatalogDocsOrigin as v, normalizeDocsPath as y, resolveDocsEnvironment as b, resolveProductDocsOrigin as x, toEnvironmentDocsOrigin as S, toTrustedDocsOrigin as C } from "./shared/config/docsUrls.js";
6
+ import { COMMON_SHELL_LESS_ROUTES as w, DEFAULT_SHELL_CONFIG as T, getShellConfig as E, isShellLessRoute as D, shouldShowBreadcrumb as O, shouldShowSidebar as k } from "./shared/config/shellRoutes.js";
6
7
  //#region src/shared/config/index.ts
7
- var x = 20, S = {
8
+ var A = 20, j = {
8
9
  workspace: {
9
10
  defaultBaseUrl: "https://gw-wspace.local.burdenoff.com",
10
11
  graphql: "/workspaces/graphql",
@@ -17,18 +18,18 @@ var x = 20, S = {
17
18
  ws: "/global/graphql/ws"
18
19
  }
19
20
  };
20
- function C(e, t) {
21
+ function M(e, t) {
21
22
  let n = e.endsWith("/") ? e.slice(0, -1) : e;
22
23
  return t === "workspaces" ? `${n}/workspaces/graphql` : `${n}/global/graphql`;
23
24
  }
24
- function w(e) {
25
- return S[e];
25
+ function N(e) {
26
+ return j[e];
26
27
  }
27
- function T(e, t) {
28
- let n = S[t], r = e || E(t) || n.defaultBaseUrl;
28
+ function P(e, t) {
29
+ let n = j[t], r = e || F(t) || n.defaultBaseUrl;
29
30
  return `${r.endsWith("/") ? r.slice(0, -1) : r}${n.graphql}`;
30
31
  }
31
- function E(t) {
32
+ function F(t) {
32
33
  try {
33
34
  let n = e();
34
35
  return t === "workspace" ? n.workspaceBaseUrl : n.globalBaseUrl;
@@ -37,4 +38,4 @@ function E(t) {
37
38
  }
38
39
  }
39
40
  //#endregion
40
- export { l as BOTMANOR_PRODUCT_SLUG, h as COMMON_SHELL_LESS_ROUTES, x as DEFAULT_PAGE_SIZE, g as DEFAULT_SHELL_CONFIG, S as GATEWAYS, u as PRODUCTS, r as PRODUCT_SLUG_EMIT, i as PRODUCT_SLUG_RENAMES, d as PRODUCT_URLS, a as emitProductSlug, f as findProductConfig, w as getGatewayConfig, T as getGatewayUrl, C as getGraphQLEndpoint, p as getProductUrl, m as getProductsWithUrls, _ as getShellConfig, o as isSameProductSlug, v as isShellLessRoute, s as legacyProductSlug, c as normalizeProductSlug, t as resolveAuthBridgeConfig, e as resolveGatewayUrls, n as resolveShellAuthBridgeConfig, y as shouldShowBreadcrumb, b as shouldShowSidebar };
41
+ export { l as BOTMANOR_PRODUCT_SLUG, h as CANONICAL_DOCS_HOSTS, w as COMMON_SHELL_LESS_ROUTES, A as DEFAULT_PAGE_SIZE, T as DEFAULT_SHELL_CONFIG, j as GATEWAYS, u as PRODUCTS, r as PRODUCT_SLUG_EMIT, i as PRODUCT_SLUG_RENAMES, d as PRODUCT_URLS, g as buildProductDocsUrl, _ as canonicalizeDocsOrigin, a as emitProductSlug, f as findProductConfig, v as getCatalogDocsOrigin, N as getGatewayConfig, P as getGatewayUrl, M as getGraphQLEndpoint, p as getProductUrl, m as getProductsWithUrls, E as getShellConfig, o as isSameProductSlug, D as isShellLessRoute, s as legacyProductSlug, y as normalizeDocsPath, c as normalizeProductSlug, t as resolveAuthBridgeConfig, b as resolveDocsEnvironment, e as resolveGatewayUrls, x as resolveProductDocsOrigin, n as resolveShellAuthBridgeConfig, O as shouldShowBreadcrumb, k as shouldShowSidebar, S as toEnvironmentDocsOrigin, C as toTrustedDocsOrigin };
package/dist/shared.js CHANGED
@@ -12,140 +12,142 @@ import { installGatewayFetchRewrite as Oe, resolveGatewayBases as ke, suppressCo
12
12
  import { resolveAuthBridgeConfig as je, resolveShellAuthBridgeConfig as Me } from "./shared/config/authBridgeUrls.js";
13
13
  import { PRODUCT_SLUG_EMIT as Ne, PRODUCT_SLUG_RENAMES as Pe, emitProductSlug as Fe, isSameProductSlug as Ie, legacyProductSlug as Le, normalizeProductSlug as Re } from "./shared/config/productSlug.js";
14
14
  import { BOTMANOR_PRODUCT_SLUG as ze, PRODUCTS as Be, PRODUCT_URLS as Ve, findProductConfig as He, getProductUrl as Ue, getProductsWithUrls as We } from "./shared/config/products.js";
15
- import { COMMON_SHELL_LESS_ROUTES as Ge, DEFAULT_SHELL_CONFIG as Ke, getShellConfig as qe, isShellLessRoute as Je, shouldShowBreadcrumb as Ye, shouldShowSidebar as Xe } from "./shared/config/shellRoutes.js";
16
- import { DEFAULT_PAGE_SIZE as Ze, GATEWAYS as Qe, getGatewayConfig as $e, getGatewayUrl as et, getGraphQLEndpoint as tt } from "./shared-config.js";
17
- import { getWorkspaceTokenPayload as nt, isWorkspaceTokenValidForContext as rt } from "./shared/graphql/workspaceToken.js";
18
- import { BACKEND_ERROR_EVENT as it, CONNECTION_STATUS_EVENT as at, dispatchBackendErrorEvent as ot, extractBackendError as st, isAbortError as ct, isBackendErrorDisplay as lt, isTransportError as ut, markConnectionHealthy as dt, shouldToastBackendError as ft } from "./shared/utils/backendErrors.js";
19
- import { clearGraphqlFetchResponseCache as pt, getStoredAuthToken as mt, getStoredLocale as ht, getStoredOrganizationId as gt, getStoredProjectId as _t, getStoredWorkspaceId as vt, getStoredWorkspaceToken as yt, graphqlFetch as bt, resolveGatewayUrl as xt } from "./shared/graphql/fetch.js";
20
- import { SSELink as St } from "./shared/graphql/links/sse-link.js";
21
- import { createGraphQLClient as Ct, getGlobalClient as wt, getWorkspaceClient as Tt, initializeAppClients as Et, resetAppClients as Dt } from "./shared/graphql/client.js";
22
- import { GatewayProvider as Ot, useGateway as kt, useGatewayClient as At, useSafeGateway as jt, useSafeGatewayClient as Mt } from "./shared/graphql/GatewayContext.js";
23
- import { useHasAuthToken as Nt } from "./shared/graphql/useHasAuthToken.js";
24
- import { WsLink as Pt } from "./shared/graphql/links/ws-link.js";
25
- import { prepareWorkspaceRequest as Ft } from "./shared/graphql/prepareWorkspaceRequest.js";
26
- import { ApolloClient as It, ApolloProvider as Lt, InMemoryCache as Rt, gql as zt, useApolloClient as Bt, useLazyQuery as Vt, useMutation as Ht, useQuery as Ut, useSubscription as Wt } from "./shared-graphql.js";
27
- import { attemptTokenRefresh as Gt, clearAuthSessionStorage as Kt, hasAuthGraphQLErrors as qt, isAuthGraphQLError as Jt, isAuthNetworkError as Yt, redirectToLogin as Xt } from "./shared/utils/authErrorHandling.js";
28
- import { clearSSoCookie as Zt, clearShellSsoCookies as Qt, getSSoCookie as $t, isSharedSsoCookieDomain as en, isTrustedSsoOrigin as tn, readShellSsoCookie as nn, setSSoCookie as rn, setShellSsoCookies as an } from "./shared/utils/authCookie.js";
29
- import { getNativeBridge as on } from "./shared/native/bridge.js";
30
- import { getPlatform as sn, isAndroid as cn, isElectron as ln, isIOS as un, isInstalledApp as dn, isNative as fn, isStandalonePWA as pn, isWeb as mn, isWebBrowser as hn } from "./shared/native/platform.js";
31
- import { assignLocationWithAllowlist as gn, isAllowedRedirectUrl as _n, openUrlInNewTabWithAllowlist as vn, replaceLocationWithAllowlist as yn } from "./shared/utils/redirectAllowlist.js";
32
- import { SSORedirectSpinner as bn, checkRemoteSLO as xn, checkSLO as Sn, clearLocalAuthState as Cn, getSSORedirectUrl as wn, redirectToSSO as Tn } from "./shared/components/SSORedirectGuard.js";
33
- import { SSO_DEPOSITED_PARAM as En, beginSsoNavigation as Dn, buildSsoDepositUrl as On, clearSsoDepositState as kn, clearSsoNavigation as An, consumeSsoDepositMarker as jn, isSsoNavigationPending as Mn, markSsoDepositDone as Nn, markSsoDepositPending as Pn, mintSsoSessionTokens as Fn, readSsoDepositState as In, shouldAttemptSsoDeposit as Ln } from "./shared/utils/ssoDeposit.js";
34
- import { AppInitializer as Rn, useRegistryHelpers as zn, useShellNavigate as Bn } from "./shared/utils/appHelpers.js";
35
- import { LogLevel as Vn } from "./shared/logger/types.js";
36
- import { Logger as Hn } from "./shared/logger/Logger.js";
37
- import { LogManager as Un, logManager as Wn } from "./shared/logger/LogManager.js";
38
- import { ConsoleTransport as Gn } from "./shared/logger/ConsoleTransport.js";
39
- import { clearUserContext as Kn, initializeLogger as qn, setUserContext as Jn } from "./shared/utils/loggerInit.js";
40
- import { createProfileScopedStorage as Yn, getProfileScopedKey as Xn } from "./shared/utils/profileScopedStorage.js";
41
- import { QUOTA_EXHAUSTED_CODE as Zn, RESOURCE_CAP_EXCEEDED_CODE as Qn, STORAGE_QUOTA_EXCEEDED_CODE as $n, UPGRADE_ERROR_CODES as er, buildQuotaExhaustedMessage as tr, extractQuotaExhaustedExtensions as nr, extractUpgradeErrorExtensions as rr, isQuotaExhaustedError as ir, isUpgradeError as ar } from "./shared/utils/quotaErrors.js";
42
- import { INLINE_ENCODE as or, downscaleImage as sr, selectInlineBase64 as cr } from "./shared/utils/imageDownscale.js";
43
- import { cn as lr } from "./shared-utils.js";
44
- import { nativeActionSheet as ur, nativeConfirm as dr, nativeCopyText as fr, nativeImpact as pr, nativeNotify as mr, nativeOpenUrl as hr, nativeSelection as gr, nativeShare as _r, nativeToast as vr } from "./shared/native/consumers.js";
45
- import { MAIN_CONTENT_ID as yr, MainLandmark as br, PublicLayout as xr, SkipToContentLink as Sr, focusSkipTarget as Cr, useInsideMainLandmark as wr } from "./shared/components/SkipToContent.js";
46
- import { SafeAreaView as Tr } from "./shared/native/SafeAreaView.js";
47
- import { readInitialNetworkStatus as Er, reduceNetworkStatus as Dr, useNetworkStatus as Or } from "./shared/native/hooks/useNetworkStatus.js";
48
- import { PULL_TO_REFRESH_THRESHOLD as kr, computePullOffset as Ar, computePullProgress as jr, usePullToRefresh as Mr } from "./shared/native/hooks/usePullToRefresh.js";
49
- import { useReturnFocus as Nr } from "./shared/hooks/useReturnFocus.js";
50
- import { ActorIdentity as Pr } from "./shared/actors/ActorIdentity.js";
51
- import { buildActorFallback as Fr, useActorProfiles as Ir } from "./shared/actors/useActorProfiles.js";
52
- import { ErrorBoundary as Lr } from "./shared/components/ErrorBoundary.js";
53
- import { RequireAuth as Rr, RequireGuest as zr } from "./shared/components/RequireAuth.js";
54
- import { PermissionButton as Br, PermissionGate as Vr, PermissionLink as Hr } from "./shared/components/PermissionGate.js";
55
- import { AccessDenied as Ur, PermissionDenied as Wr } from "./shared/components/AccessDenied.js";
56
- import { ErrorFallback as Gr } from "./shared/components/ErrorFallback.js";
57
- import { LoadingFallback as Kr, PageLoadingFallback as qr, SectionLoadingFallback as Jr } from "./shared/components/LoadingFallback.js";
58
- import { MicrofrontendErrorBoundary as Yr } from "./shared/components/MicrofrontendErrorBoundary.js";
59
- import { ConditionalShell as Xr } from "./shared/components/ConditionalShell.js";
60
- import { usePWA as Zr } from "./shared/hooks/usePWA.js";
61
- import { PWAInstallBanner as Qr } from "./shared/components/PWAInstallBanner.js";
62
- import { ErrorBoundary as $r } from "./shared/components/AppErrorBoundary.js";
63
- import { FeatureFlagProvider as ei, useFeatureFlags as ti } from "./shared/feature-flags/FeatureFlagProvider.js";
64
- import { useFeatureFlag as ni, useFeatureFlagDetails as ri, useFeatureFlagValue as ii } from "./shared/feature-flags/useFeatureFlag.js";
65
- import { FeatureGate as ai } from "./shared/feature-flags/FeatureGate.js";
15
+ import { CANONICAL_DOCS_HOSTS as Ge, buildProductDocsUrl as Ke, canonicalizeDocsOrigin as qe, getCatalogDocsOrigin as Je, normalizeDocsPath as Ye, resolveDocsEnvironment as Xe, resolveProductDocsOrigin as Ze, toEnvironmentDocsOrigin as Qe, toTrustedDocsOrigin as $e } from "./shared/config/docsUrls.js";
16
+ import { COMMON_SHELL_LESS_ROUTES as et, DEFAULT_SHELL_CONFIG as tt, getShellConfig as nt, isShellLessRoute as rt, shouldShowBreadcrumb as it, shouldShowSidebar as at } from "./shared/config/shellRoutes.js";
17
+ import { DEFAULT_PAGE_SIZE as ot, GATEWAYS as st, getGatewayConfig as ct, getGatewayUrl as lt, getGraphQLEndpoint as ut } from "./shared-config.js";
18
+ import { getWorkspaceTokenPayload as dt, isWorkspaceTokenValidForContext as ft } from "./shared/graphql/workspaceToken.js";
19
+ import { BACKEND_ERROR_EVENT as pt, CONNECTION_STATUS_EVENT as mt, dispatchBackendErrorEvent as ht, extractBackendError as gt, isAbortError as _t, isBackendErrorDisplay as vt, isTransportError as yt, markConnectionHealthy as bt, shouldToastBackendError as xt } from "./shared/utils/backendErrors.js";
20
+ import { clearGraphqlFetchResponseCache as St, getStoredAuthToken as Ct, getStoredLocale as wt, getStoredOrganizationId as Tt, getStoredProjectId as Et, getStoredWorkspaceId as Dt, getStoredWorkspaceToken as Ot, graphqlFetch as kt, resolveGatewayUrl as At } from "./shared/graphql/fetch.js";
21
+ import { SSELink as jt } from "./shared/graphql/links/sse-link.js";
22
+ import { createGraphQLClient as Mt, getGlobalClient as Nt, getWorkspaceClient as Pt, initializeAppClients as Ft, resetAppClients as It } from "./shared/graphql/client.js";
23
+ import { GatewayProvider as Lt, useGateway as Rt, useGatewayClient as zt, useSafeGateway as Bt, useSafeGatewayClient as Vt } from "./shared/graphql/GatewayContext.js";
24
+ import { useHasAuthToken as Ht } from "./shared/graphql/useHasAuthToken.js";
25
+ import { WsLink as Ut } from "./shared/graphql/links/ws-link.js";
26
+ import { prepareWorkspaceRequest as Wt } from "./shared/graphql/prepareWorkspaceRequest.js";
27
+ import { ApolloClient as Gt, ApolloProvider as Kt, InMemoryCache as qt, gql as Jt, useApolloClient as Yt, useLazyQuery as Xt, useMutation as Zt, useQuery as Qt, useSubscription as $t } from "./shared-graphql.js";
28
+ import { attemptTokenRefresh as en, clearAuthSessionStorage as tn, hasAuthGraphQLErrors as nn, isAuthGraphQLError as rn, isAuthNetworkError as an, redirectToLogin as on } from "./shared/utils/authErrorHandling.js";
29
+ import { clearSSoCookie as sn, clearShellSsoCookies as cn, getSSoCookie as ln, isSharedSsoCookieDomain as un, isTrustedSsoOrigin as dn, readShellSsoCookie as fn, setSSoCookie as pn, setShellSsoCookies as mn } from "./shared/utils/authCookie.js";
30
+ import { getNativeBridge as hn } from "./shared/native/bridge.js";
31
+ import { getPlatform as gn, isAndroid as _n, isElectron as vn, isIOS as yn, isInstalledApp as bn, isNative as xn, isStandalonePWA as Sn, isWeb as Cn, isWebBrowser as wn } from "./shared/native/platform.js";
32
+ import { assignLocationWithAllowlist as Tn, isAllowedRedirectUrl as En, openUrlInNewTabWithAllowlist as Dn, replaceLocationWithAllowlist as On } from "./shared/utils/redirectAllowlist.js";
33
+ import { SSORedirectSpinner as kn, checkRemoteSLO as An, checkSLO as jn, clearLocalAuthState as Mn, getSSORedirectUrl as Nn, redirectToSSO as Pn } from "./shared/components/SSORedirectGuard.js";
34
+ import { SSO_DEPOSITED_PARAM as Fn, beginSsoNavigation as In, buildSsoDepositUrl as Ln, clearSsoDepositState as Rn, clearSsoNavigation as zn, consumeSsoDepositMarker as Bn, isSsoNavigationPending as Vn, markSsoDepositDone as Hn, markSsoDepositPending as Un, mintSsoSessionTokens as Wn, readSsoDepositState as Gn, shouldAttemptSsoDeposit as Kn } from "./shared/utils/ssoDeposit.js";
35
+ import { AppInitializer as qn, useRegistryHelpers as Jn, useShellNavigate as Yn } from "./shared/utils/appHelpers.js";
36
+ import { LogLevel as Xn } from "./shared/logger/types.js";
37
+ import { Logger as Zn } from "./shared/logger/Logger.js";
38
+ import { LogManager as Qn, logManager as $n } from "./shared/logger/LogManager.js";
39
+ import { ConsoleTransport as er } from "./shared/logger/ConsoleTransport.js";
40
+ import { clearUserContext as tr, initializeLogger as nr, setUserContext as rr } from "./shared/utils/loggerInit.js";
41
+ import { createProfileScopedStorage as ir, getProfileScopedKey as ar } from "./shared/utils/profileScopedStorage.js";
42
+ import { QUOTA_EXHAUSTED_CODE as or, RESOURCE_CAP_EXCEEDED_CODE as sr, STORAGE_QUOTA_EXCEEDED_CODE as cr, UPGRADE_ERROR_CODES as lr, buildQuotaExhaustedMessage as ur, extractQuotaExhaustedExtensions as dr, extractUpgradeErrorExtensions as fr, isQuotaExhaustedError as pr, isUpgradeError as mr } from "./shared/utils/quotaErrors.js";
43
+ import { INLINE_ENCODE as hr, downscaleImage as gr, selectInlineBase64 as _r } from "./shared/utils/imageDownscale.js";
44
+ import { cn as vr } from "./shared-utils.js";
45
+ import { nativeActionSheet as yr, nativeConfirm as br, nativeCopyText as xr, nativeImpact as Sr, nativeNotify as Cr, nativeOpenUrl as wr, nativeSelection as Tr, nativeShare as Er, nativeToast as Dr } from "./shared/native/consumers.js";
46
+ import { MAIN_CONTENT_ID as Or, MainLandmark as kr, PublicLayout as Ar, SkipToContentLink as jr, focusSkipTarget as Mr, useInsideMainLandmark as Nr } from "./shared/components/SkipToContent.js";
47
+ import { SafeAreaView as Pr } from "./shared/native/SafeAreaView.js";
48
+ import { readInitialNetworkStatus as Fr, reduceNetworkStatus as Ir, useNetworkStatus as Lr } from "./shared/native/hooks/useNetworkStatus.js";
49
+ import { PULL_TO_REFRESH_THRESHOLD as Rr, computePullOffset as zr, computePullProgress as Br, usePullToRefresh as Vr } from "./shared/native/hooks/usePullToRefresh.js";
50
+ import { useReturnFocus as Hr } from "./shared/hooks/useReturnFocus.js";
51
+ import { ActorIdentity as Ur } from "./shared/actors/ActorIdentity.js";
52
+ import { buildActorFallback as Wr, useActorProfiles as Gr } from "./shared/actors/useActorProfiles.js";
53
+ import { ErrorBoundary as Kr } from "./shared/components/ErrorBoundary.js";
54
+ import { RequireAuth as qr, RequireGuest as Jr } from "./shared/components/RequireAuth.js";
55
+ import { PermissionButton as Yr, PermissionGate as Xr, PermissionLink as Zr } from "./shared/components/PermissionGate.js";
56
+ import { AccessDenied as Qr, PermissionDenied as $r } from "./shared/components/AccessDenied.js";
57
+ import { ErrorFallback as ei } from "./shared/components/ErrorFallback.js";
58
+ import { LoadingFallback as ti, PageLoadingFallback as ni, SectionLoadingFallback as ri } from "./shared/components/LoadingFallback.js";
59
+ import { MicrofrontendErrorBoundary as ii } from "./shared/components/MicrofrontendErrorBoundary.js";
60
+ import { ConditionalShell as ai } from "./shared/components/ConditionalShell.js";
61
+ import { usePWA as oi } from "./shared/hooks/usePWA.js";
62
+ import { PWAInstallBanner as si } from "./shared/components/PWAInstallBanner.js";
63
+ import { ErrorBoundary as ci } from "./shared/components/AppErrorBoundary.js";
64
+ import { FeatureFlagProvider as li, useFeatureFlags as ui } from "./shared/feature-flags/FeatureFlagProvider.js";
65
+ import { useFeatureFlag as di, useFeatureFlagDetails as fi, useFeatureFlagValue as pi } from "./shared/feature-flags/useFeatureFlag.js";
66
+ import { FeatureGate as mi } from "./shared/feature-flags/FeatureGate.js";
66
67
  import "./shared-feature-flags.js";
67
- import { ContextConversationWidget as oi } from "./shared/components/ContextConversationWidget.js";
68
- import { detectPlatform as si, formatKeyCombo as ci, getDisplayKeysForPlatform as li, getShortcutLabel as ui, isMac as di, isMobileDevice as fi, isTabletDevice as pi, matchesKeyCombo as mi, normalizeKey as hi, normalizePlatformCombo as gi, parseKeyCombo as _i, shouldEnableKeyboardShortcuts as vi, shouldIgnoreShortcut as yi } from "./shared/keyboard/utils.js";
69
- import { KeyboardHelpDialogWrapper as bi } from "./shared/components/KeyboardHelpDialogWrapper.js";
70
- import { QuotaMeter as xi } from "./shared/components/QuotaMeter.js";
71
- import { UPGRADE_PROMPT_EVENT as Si, UpgradePromptModal as Ci, dispatchUpgradePrompt as wi } from "./shared/components/UpgradePromptModal.js";
72
- import { UpgradeInlineBanner as Ti } from "./shared/components/UpgradeInlineBanner.js";
73
- import { DEFAULT_QUOTA_UPGRADE_COPY as Ei, QuotaUpgradeBridge as Di, captureQuotaDialogOwners as Oi, claimQuotaDialog as ki, dispatchProductQuotaExhausted as Ai, quotaEventKind as ji, resolveQuotaUpgradeCopy as Mi, useQuotaDialogOwnership as Ni, useQuotaUpgradeBridge as Pi, withQuotaDialogOwnership as Fi } from "./shared/components/QuotaUpgradeBridge.js";
74
- import { getNativeEntryRoutes as Ii, shouldShowNativeWelcome as Li } from "./shared/native/entry.js";
75
- import { LandingGateView as Ri, LandingOrDashboardRedirect as zi, hasStoredValidSession as Bi, resolveLandingGate as Vi } from "./shared/components/LandingOrDashboardRedirect.js";
76
- import { useVoiceInput as Hi } from "./shared/components/assistantWidget/useVoiceInput.js";
77
- import { ASSISTANT_WIDGET_TOGGLE_EVENT as Ui, AssistantWidget as Wi } from "./shared/components/assistantWidget/AssistantWidget.js";
78
- import { Markdown as Gi } from "./shared/components/Markdown.js";
79
- import { useNativePlatform as Ki } from "./shared/native/hooks/useNativePlatform.js";
80
- import { useSafeArea as qi } from "./shared/native/hooks/useSafeArea.js";
81
- import { useNativeKeyboard as Ji } from "./shared/native/hooks/useNativeKeyboard.js";
82
- import { useAppState as Yi } from "./shared/native/hooks/useAppState.js";
83
- import { useDeviceInfo as Xi } from "./shared/native/hooks/useDeviceInfo.js";
84
- import { useHaptics as Zi } from "./shared/native/hooks/useHaptics.js";
85
- import { useStatusBar as Qi } from "./shared/native/hooks/useStatusBar.js";
86
- import { resolveActionSheetOutcome as $i, useActionSheet as ea } from "./shared/native/hooks/useActionSheet.js";
87
- import { useDesktop as ta } from "./shared/native/hooks/useDesktop.js";
88
- import { useDesktopUpdateState as na } from "./shared/native/hooks/useDesktopUpdateState.js";
89
- import { useDesktopWindowState as ra } from "./shared/native/hooks/useDesktopWindowState.js";
90
- import { DesktopUpdateToast as ia } from "./shared/components/DesktopUpdateToast.js";
68
+ import { ContextConversationWidget as hi } from "./shared/components/ContextConversationWidget.js";
69
+ import { detectPlatform as gi, formatKeyCombo as _i, getDisplayKeysForPlatform as vi, getShortcutLabel as yi, isMac as bi, isMobileDevice as xi, isTabletDevice as Si, matchesKeyCombo as Ci, normalizeKey as wi, normalizePlatformCombo as Ti, parseKeyCombo as Ei, shouldEnableKeyboardShortcuts as Di, shouldIgnoreShortcut as Oi } from "./shared/keyboard/utils.js";
70
+ import { KeyboardHelpDialogWrapper as ki } from "./shared/components/KeyboardHelpDialogWrapper.js";
71
+ import { QuotaMeter as Ai } from "./shared/components/QuotaMeter.js";
72
+ import { UPGRADE_PROMPT_EVENT as ji, UpgradePromptModal as Mi, dispatchUpgradePrompt as Ni } from "./shared/components/UpgradePromptModal.js";
73
+ import { UpgradeInlineBanner as Pi } from "./shared/components/UpgradeInlineBanner.js";
74
+ import { DEFAULT_QUOTA_UPGRADE_COPY as Fi, QuotaUpgradeBridge as Ii, captureQuotaDialogOwners as Li, claimQuotaDialog as Ri, dispatchProductQuotaExhausted as zi, quotaEventKind as Bi, resolveQuotaUpgradeCopy as Vi, useQuotaDialogOwnership as Hi, useQuotaUpgradeBridge as Ui, withQuotaDialogOwnership as Wi } from "./shared/components/QuotaUpgradeBridge.js";
75
+ import { DocsLink as Gi, PUBLIC_PRODUCT_DOCS_URL_QUERY as Ki, fetchRegistryDocsUrl as qi, readRegistryDocsUrl as Ji, useProductDocsOrigin as Yi, useProductDocsUrl as Xi } from "./shared/components/DocsLink.js";
76
+ import { getNativeEntryRoutes as Zi, shouldShowNativeWelcome as Qi } from "./shared/native/entry.js";
77
+ import { LandingGateView as $i, LandingOrDashboardRedirect as ea, hasStoredValidSession as ta, resolveLandingGate as na } from "./shared/components/LandingOrDashboardRedirect.js";
78
+ import { useVoiceInput as ra } from "./shared/components/assistantWidget/useVoiceInput.js";
79
+ import { ASSISTANT_WIDGET_TOGGLE_EVENT as ia, AssistantWidget as aa } from "./shared/components/assistantWidget/AssistantWidget.js";
80
+ import { Markdown as oa } from "./shared/components/Markdown.js";
81
+ import { useNativePlatform as sa } from "./shared/native/hooks/useNativePlatform.js";
82
+ import { useSafeArea as ca } from "./shared/native/hooks/useSafeArea.js";
83
+ import { useNativeKeyboard as la } from "./shared/native/hooks/useNativeKeyboard.js";
84
+ import { useAppState as ua } from "./shared/native/hooks/useAppState.js";
85
+ import { useDeviceInfo as da } from "./shared/native/hooks/useDeviceInfo.js";
86
+ import { useHaptics as fa } from "./shared/native/hooks/useHaptics.js";
87
+ import { useStatusBar as pa } from "./shared/native/hooks/useStatusBar.js";
88
+ import { resolveActionSheetOutcome as ma, useActionSheet as ha } from "./shared/native/hooks/useActionSheet.js";
89
+ import { useDesktop as ga } from "./shared/native/hooks/useDesktop.js";
90
+ import { useDesktopUpdateState as _a } from "./shared/native/hooks/useDesktopUpdateState.js";
91
+ import { useDesktopWindowState as va } from "./shared/native/hooks/useDesktopWindowState.js";
92
+ import { DesktopUpdateToast as ya } from "./shared/components/DesktopUpdateToast.js";
91
93
  import "./shared-components.js";
92
- import { FLUIDGRIDS_RYBBIT_EVENTS as aa } from "./shared/events/fluidgrids.js";
93
- import { DevtoolsSink as oa } from "./shared/events/sinks/DevtoolsSink.js";
94
- import { BroadcastChannelSink as sa } from "./shared/events/sinks/BroadcastChannelSink.js";
95
- import { BackendAuditSink as ca } from "./shared/events/sinks/BackendAuditSink.js";
96
- import { compileRybbitRoutePattern as la, isRybbitSkippedRoute as ua } from "./shared/events/sinks/rybbitRoutes.js";
97
- import { AnalyticsConsentBanner as da, RybbitSink as fa, readAnalyticsConsent as pa, readAnalyticsConsentChoice as ma, setAnalyticsConsent as ha } from "./shared/events/sinks/RybbitSink.js";
98
- import { OtelBrowserSink as ga } from "./shared/events/sinks/OtelBrowserSink.js";
99
- import { EventBusProvider as _a, createEventBus as va, useEvent as ya, useEventBus as ba, useEventEmitter as xa } from "./shared-events.js";
100
- import { useDebounce as Sa } from "./shared/hooks/useDebounce.js";
101
- import { useThrottle as Ca } from "./shared/hooks/useThrottle.js";
102
- import { BREAKPOINTS as wa, useBreakpoint as Ta, useMobileBreakpoint as Ea } from "./shared/hooks/useBreakpoint.js";
103
- import { useOnClickOutside as Da, useOnClickOutsideWithRef as Oa } from "./shared/hooks/useOnClickOutside.js";
104
- import { useKeyPress as ka, useKeyboardShortcut as Aa } from "./shared/hooks/useKeyPress.js";
105
- import { useExclusiveMenu as ja } from "./shared/hooks/useExclusiveMenu.js";
106
- import { useLocalStorage as Ma } from "./shared/hooks/useLocalStorage.js";
107
- import { useSessionStorage as Na } from "./shared/hooks/useSessionStorage.js";
108
- import { usePrevious as Pa, usePreviousDistinct as Fa, usePreviousHistory as Ia } from "./shared/hooks/usePrevious.js";
109
- import { useConditionalToggle as La, useToggle as Ra, useToggleObject as za } from "./shared/hooks/useToggle.js";
110
- import { usePagination as Ba } from "./shared/hooks/usePagination.js";
111
- import { useAsync as Va, useAsyncImmediate as Ha } from "./shared/hooks/useAsync.js";
112
- import { MODIFIER_KEYS as Ua, PLATFORM_TYPES as Wa } from "./shared/keyboard/types.js";
113
- import { useKeyboardShortcuts as Ga } from "./shared/keyboard/useKeyboardShortcuts.js";
114
- import { useHotkeys as Ka } from "./shared/keyboard/useHotkeys.js";
115
- import { useShortcutHelp as qa } from "./shared/keyboard/useShortcutHelp.js";
116
- import { GLOBAL_SHORTCUT_CATEGORIES as Ja, createGlobalShortcuts as Ya, getGlobalShortcutsByCategory as Xa, mergeShortcuts as Za } from "./shared/keyboard/globalShortcuts.js";
117
- import { useLogger as Qa } from "./shared/logger/useLogger.js";
118
- import { useHasAnimated as $a } from "./shared/hooks/useHasAnimated.js";
119
- import { useReferralAttribution as eo } from "./shared/hooks/useReferralAttribution.js";
120
- import { useRecordProductVisit as to } from "./shared/hooks/useRecordProductVisit.js";
121
- import { PUSH_DEVICE_ID_STORAGE_KEY as no, getOrCreatePushDeviceId as ro, registerPushDevice as io, unregisterPushDevice as ao } from "./shared/native/push-registration.js";
122
- import { usePushDeviceRegistration as oo } from "./shared/hooks/usePushDeviceRegistration.js";
123
- import { QUOTA_EXHAUSTED_EVENT as so, dispatchQuotaExhausted as co, useQuotaErrorToast as lo } from "./shared/hooks/useQuotaErrorToast.js";
124
- import { PLAN_USAGE_SNAPSHOT_EVENT as uo, publishPlanUsageSnapshot as fo, useUpgradePrompt as po } from "./shared/hooks/useUpgradePrompt.js";
125
- import { appendContextToPath as mo, useCurrentContextSearchParams as ho } from "./shared/hooks/useCurrentContextSearchParams.js";
126
- import { UNSAVED_CHANGE_LABEL_MAX as go, listUnsavedChanges as _o, registerUnsavedChange as vo, unsavedChangesBlocking as yo, useUnsavedChanges as bo } from "./shared/navigation/unsavedChanges.js";
127
- import { MicrofrontendContext as xo, useMicrofrontendContext as So } from "./shared-hooks.js";
128
- import { withTourProgressStatus as Co } from "./shared/tours/progress.js";
129
- import { detectDeviceType as wo, getResponsiveSelector as To } from "./shared/tours/types.js";
130
- import { useTourPlayer as Eo } from "./shared/tours/useTourPlayer.js";
131
- import { TourSpotlight as Do } from "./shared/tours/TourSpotlight.js";
132
- import { TourTooltip as Oo } from "./shared/tours/TourTooltip.js";
133
- import { TourPlayerProvider as ko, useIsTourPlaying as Ao, useStartTour as jo, useStopTour as Mo, useTourPlayerContext as No } from "./shared/tours/TourPlayerProvider.js";
134
- import { TourPlayer as Po, TourTriggerButton as Fo, usePlayTour as Io } from "./shared/tours/TourPlayer.js";
135
- import { BIGCONSOLE_TOUR_ROUTE_CATALOG as Lo, BUILDMYIQ_TOUR_ROUTE_CATALOG as Ro, BUILT_IN_TOUR_ROUTE_CATALOGS as zo, COLLABKIN_TOUR_ROUTE_CATALOG as Bo, FLUIDGRIDS_TOUR_ROUTE_CATALOG as Vo, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as Ho, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as Uo, VIBECONTROLS_TOUR_ROUTE_CATALOG as Wo, getBuiltInTourRouteCatalog as Go, listBuiltInTourRouteCatalogProductIds as Ko } from "./shared/tours/catalogs.js";
136
- import { createTourPageIdResolver as qo, getTourContextRank as Jo, getTourRouteCatalog as Yo, getTourRouteCatalogVersion as Xo, getTourRouteModules as Zo, getTourRoutePages as Qo, hasRegisteredTourRouteCatalog as $o, isTourVisibleForContext as es, normalizeTourPath as ts, registerTourRouteCatalog as ns, resolveTourTargetPath as rs, subscribeTourRouteCatalogs as is } from "./shared/tours/routeCatalog.js";
137
- import { ToursProvider as as, useAutoStartTour as os, useSafeToursContext as ss, useTours as cs, useToursContext as ls } from "./shared/tours/ToursContext.js";
138
- import { TourInitializer as us } from "./shared/tours/TourInitializer.js";
139
- import { useRegisterTourRouteCatalog as ds, useTourRouteCatalog as fs } from "./shared/tours/useTourRouteCatalog.js";
140
- import { AppShellProvider as ps, resolveAppShellObservabilityConfig as ms } from "./shared/providers/AppShellProvider.js";
141
- import { MicrofrontendProvider as hs } from "./shared-providers.js";
142
- import { TourTrigger as gs } from "./shared/tours/TourTrigger.js";
94
+ import { FLUIDGRIDS_RYBBIT_EVENTS as ba } from "./shared/events/fluidgrids.js";
95
+ import { DevtoolsSink as xa } from "./shared/events/sinks/DevtoolsSink.js";
96
+ import { BroadcastChannelSink as Sa } from "./shared/events/sinks/BroadcastChannelSink.js";
97
+ import { BackendAuditSink as Ca } from "./shared/events/sinks/BackendAuditSink.js";
98
+ import { compileRybbitRoutePattern as wa, isRybbitSkippedRoute as Ta } from "./shared/events/sinks/rybbitRoutes.js";
99
+ import { AnalyticsConsentBanner as Ea, RybbitSink as Da, readAnalyticsConsent as Oa, readAnalyticsConsentChoice as ka, setAnalyticsConsent as Aa } from "./shared/events/sinks/RybbitSink.js";
100
+ import { OtelBrowserSink as ja } from "./shared/events/sinks/OtelBrowserSink.js";
101
+ import { EventBusProvider as Ma, createEventBus as Na, useEvent as Pa, useEventBus as Fa, useEventEmitter as Ia } from "./shared-events.js";
102
+ import { useDebounce as La } from "./shared/hooks/useDebounce.js";
103
+ import { useThrottle as Ra } from "./shared/hooks/useThrottle.js";
104
+ import { BREAKPOINTS as za, useBreakpoint as Ba, useMobileBreakpoint as Va } from "./shared/hooks/useBreakpoint.js";
105
+ import { useOnClickOutside as Ha, useOnClickOutsideWithRef as Ua } from "./shared/hooks/useOnClickOutside.js";
106
+ import { useKeyPress as Wa, useKeyboardShortcut as Ga } from "./shared/hooks/useKeyPress.js";
107
+ import { useExclusiveMenu as Ka } from "./shared/hooks/useExclusiveMenu.js";
108
+ import { useLocalStorage as qa } from "./shared/hooks/useLocalStorage.js";
109
+ import { useSessionStorage as Ja } from "./shared/hooks/useSessionStorage.js";
110
+ import { usePrevious as Ya, usePreviousDistinct as Xa, usePreviousHistory as Za } from "./shared/hooks/usePrevious.js";
111
+ import { useConditionalToggle as Qa, useToggle as $a, useToggleObject as eo } from "./shared/hooks/useToggle.js";
112
+ import { usePagination as to } from "./shared/hooks/usePagination.js";
113
+ import { useAsync as no, useAsyncImmediate as ro } from "./shared/hooks/useAsync.js";
114
+ import { MODIFIER_KEYS as io, PLATFORM_TYPES as ao } from "./shared/keyboard/types.js";
115
+ import { useKeyboardShortcuts as oo } from "./shared/keyboard/useKeyboardShortcuts.js";
116
+ import { useHotkeys as so } from "./shared/keyboard/useHotkeys.js";
117
+ import { useShortcutHelp as co } from "./shared/keyboard/useShortcutHelp.js";
118
+ import { GLOBAL_SHORTCUT_CATEGORIES as lo, createGlobalShortcuts as uo, getGlobalShortcutsByCategory as fo, mergeShortcuts as po } from "./shared/keyboard/globalShortcuts.js";
119
+ import { useLogger as mo } from "./shared/logger/useLogger.js";
120
+ import { useHasAnimated as ho } from "./shared/hooks/useHasAnimated.js";
121
+ import { useReferralAttribution as go } from "./shared/hooks/useReferralAttribution.js";
122
+ import { useRecordProductVisit as _o } from "./shared/hooks/useRecordProductVisit.js";
123
+ import { PUSH_DEVICE_ID_STORAGE_KEY as vo, getOrCreatePushDeviceId as yo, registerPushDevice as bo, unregisterPushDevice as xo } from "./shared/native/push-registration.js";
124
+ import { usePushDeviceRegistration as So } from "./shared/hooks/usePushDeviceRegistration.js";
125
+ import { QUOTA_EXHAUSTED_EVENT as Co, dispatchQuotaExhausted as wo, useQuotaErrorToast as To } from "./shared/hooks/useQuotaErrorToast.js";
126
+ import { PLAN_USAGE_SNAPSHOT_EVENT as Eo, publishPlanUsageSnapshot as Do, useUpgradePrompt as Oo } from "./shared/hooks/useUpgradePrompt.js";
127
+ import { appendContextToPath as ko, useCurrentContextSearchParams as Ao } from "./shared/hooks/useCurrentContextSearchParams.js";
128
+ import { UNSAVED_CHANGE_LABEL_MAX as jo, listUnsavedChanges as Mo, registerUnsavedChange as No, unsavedChangesBlocking as Po, useUnsavedChanges as Fo } from "./shared/navigation/unsavedChanges.js";
129
+ import { MicrofrontendContext as Io, useMicrofrontendContext as Lo } from "./shared-hooks.js";
130
+ import { withTourProgressStatus as Ro } from "./shared/tours/progress.js";
131
+ import { detectDeviceType as zo, getResponsiveSelector as Bo } from "./shared/tours/types.js";
132
+ import { useTourPlayer as Vo } from "./shared/tours/useTourPlayer.js";
133
+ import { TourSpotlight as Ho } from "./shared/tours/TourSpotlight.js";
134
+ import { TourTooltip as Uo } from "./shared/tours/TourTooltip.js";
135
+ import { TourPlayerProvider as Wo, useIsTourPlaying as Go, useStartTour as Ko, useStopTour as qo, useTourPlayerContext as Jo } from "./shared/tours/TourPlayerProvider.js";
136
+ import { TourPlayer as Yo, TourTriggerButton as Xo, usePlayTour as Zo } from "./shared/tours/TourPlayer.js";
137
+ import { BIGCONSOLE_TOUR_ROUTE_CATALOG as Qo, BUILDMYIQ_TOUR_ROUTE_CATALOG as $o, BUILT_IN_TOUR_ROUTE_CATALOGS as es, COLLABKIN_TOUR_ROUTE_CATALOG as ts, FLUIDGRIDS_TOUR_ROUTE_CATALOG as ns, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as rs, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as is, VIBECONTROLS_TOUR_ROUTE_CATALOG as as, getBuiltInTourRouteCatalog as os, listBuiltInTourRouteCatalogProductIds as ss } from "./shared/tours/catalogs.js";
138
+ import { createTourPageIdResolver as cs, getTourContextRank as ls, getTourRouteCatalog as us, getTourRouteCatalogVersion as ds, getTourRouteModules as fs, getTourRoutePages as ps, hasRegisteredTourRouteCatalog as ms, isTourVisibleForContext as hs, normalizeTourPath as gs, registerTourRouteCatalog as _s, resolveTourTargetPath as vs, subscribeTourRouteCatalogs as ys } from "./shared/tours/routeCatalog.js";
139
+ import { ToursProvider as bs, useAutoStartTour as xs, useSafeToursContext as Ss, useTours as Cs, useToursContext as ws } from "./shared/tours/ToursContext.js";
140
+ import { TourInitializer as Ts } from "./shared/tours/TourInitializer.js";
141
+ import { useRegisterTourRouteCatalog as Es, useTourRouteCatalog as Ds } from "./shared/tours/useTourRouteCatalog.js";
142
+ import { AppShellProvider as Os, resolveAppShellObservabilityConfig as ks } from "./shared/providers/AppShellProvider.js";
143
+ import { MicrofrontendProvider as As } from "./shared-providers.js";
144
+ import { TourTrigger as js } from "./shared/tours/TourTrigger.js";
143
145
  import "./shared-tours.js";
144
- import { acknowledgeNativePurchase as _s, getNativeProducts as vs, getNativePurchases as ys, installNativeIAP as bs, isNativeIAPAvailable as xs, purchaseNativeProduct as Ss, restoreNativePurchases as Cs } from "./shared/native/purchases.js";
145
- import { getPushOptInController as ws, recordPushPermissionPromptDismissed as Ts, registerPushOptInController as Es, shouldPromptForPushPermission as Ds } from "./shared/native/push-optin.js";
146
+ import { acknowledgeNativePurchase as Ms, getNativeProducts as Ns, getNativePurchases as Ps, installNativeIAP as Fs, isNativeIAPAvailable as Is, purchaseNativeProduct as Ls, restoreNativePurchases as Rs } from "./shared/native/purchases.js";
147
+ import { getPushOptInController as zs, recordPushPermissionPromptDismissed as Bs, registerPushOptInController as Vs, shouldPromptForPushPermission as Hs } from "./shared/native/push-optin.js";
146
148
  import "./shared-native.js";
147
149
  import "./shared/actors/index.js";
148
150
  //#region src/shared/index.ts
149
- var Os = "1.0.0";
151
+ var Us = "1.0.0";
150
152
  //#endregion
151
- export { Ui as ASSISTANT_WIDGET_TOGGLE_EVENT, Ur as AccessDenied, Pr as ActorIdentity, da as AnalyticsConsentBanner, It as ApolloClient, Lt as ApolloProvider, $r as AppErrorBoundary, Rn as AppInitializer, ps as AppShellProvider, Wi as AssistantWidget, it as BACKEND_ERROR_EVENT, Lo as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, wa as BREAKPOINTS, Ro as BUILDMYIQ_TOUR_ROUTE_CATALOG, zo as BUILT_IN_TOUR_ROUTE_CATALOGS, ca as BackendAuditSink, sa as BroadcastChannelSink, m as CHART_SERIES_COUNT, Bo as COLLABKIN_TOUR_ROUTE_CATALOG, Ge as COMMON_SHELL_LESS_ROUTES, at as CONNECTION_STATUS_EVENT, Xr as ConditionalShell, Gn as ConsoleTransport, oi as ContextConversationWidget, h as DATA_TYPES, Ze as DEFAULT_PAGE_SIZE, Ei as DEFAULT_QUOTA_UPGRADE_COPY, Ke as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, ia as DesktopUpdateToast, oa as DevtoolsSink, g as EDGE_KINDS, Lr as ErrorBoundary, Gr as ErrorFallback, _a as EventBusProvider, Os as FE_SHARED_VERSION, aa as FLUIDGRIDS_RYBBIT_EVENTS, Vo as FLUIDGRIDS_TOUR_ROUTE_CATALOG, ei as FeatureFlagProvider, ai as FeatureGate, Qe as GATEWAYS, Ja as GLOBAL_SHORTCUT_CATEGORIES, Ot as GatewayProvider, or as INLINE_ENCODE, Ho as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, Rt as InMemoryCache, bi as KeyboardHelpDialogWrapper, Ri as LandingGateView, zi as LandingOrDashboardRedirect, Kr as LoadingFallback, Vn as LogLevel, Un as LogManager, Hn as Logger, yr as MAIN_CONTENT_ID, Uo as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, Ua as MODIFIER_KEYS, br as MainLandmark, Gi as Markdown, xo as MicrofrontendContext, Yr as MicrofrontendErrorBoundary, hs as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, ga as OtelBrowserSink, uo as PLAN_USAGE_SNAPSHOT_EVENT, Wa as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, kr as PULL_TO_REFRESH_THRESHOLD, no as PUSH_DEVICE_ID_STORAGE_KEY, Qr as PWAInstallBanner, qr as PageLoadingFallback, Br as PermissionButton, Wr as PermissionDenied, Vr as PermissionGate, Hr as PermissionLink, xr as PublicLayout, Zn as QUOTA_EXHAUSTED_CODE, so as QUOTA_EXHAUSTED_EVENT, xi as QuotaMeter, Di as QuotaUpgradeBridge, Qn as RESOURCE_CAP_EXCEEDED_CODE, Rr as RequireAuth, zr as RequireGuest, fa as RybbitSink, St as SSELink, bn as SSORedirectSpinner, En as SSO_DEPOSITED_PARAM, $n as STORAGE_QUOTA_EXCEEDED_CODE, Tr as SafeAreaView, Jr as SectionLoadingFallback, Sr as SkipToContentLink, us as TourInitializer, Po as TourPlayer, ko as TourPlayerProvider, Do as TourSpotlight, Oo as TourTooltip, gs as TourTrigger, Fo as TourTriggerButton, as as ToursProvider, go as UNSAVED_CHANGE_LABEL_MAX, er as UPGRADE_ERROR_CODES, Si as UPGRADE_PROMPT_EVENT, Ti as UpgradeInlineBanner, Ci as UpgradePromptModal, Wo as VIBECONTROLS_TOUR_ROUTE_CATALOG, Pt as WsLink, _s as acknowledgeNativePurchase, r as alertTokens, mo as appendContextToPath, gn as assignLocationWithAllowlist, Gt as attemptTokenRefresh, Dn as beginSsoNavigation, re as bootDesktopShell, Fr as buildActorFallback, tr as buildQuotaExhaustedMessage, On as buildSsoDepositUrl, j as capitalizeFirst, M as capitalizeWords, Oi as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, xn as checkRemoteSLO, Sn as checkSLO, ki as claimQuotaDialog, Kt as clearAuthSessionStorage, pt as clearGraphqlFetchResponseCache, Cn as clearLocalAuthState, Zt as clearSSoCookie, Qt as clearShellSsoCookies, kn as clearSsoDepositState, An as clearSsoNavigation, Kn as clearUserContext, lr as cn, la as compileRybbitRoutePattern, Ar as computePullOffset, jr as computePullProgress, jn as consumeSsoDepositMarker, n as createApolloClient, va as createEventBus, Ya as createGlobalShortcuts, Ct as createGraphQLClient, Yn as createProfileScopedStorage, qo as createTourPageIdResolver, x as dataTypeColor, S as dataTypeTextClasses, ie as desktopCheckForUpdates, ae as desktopDeepLinkToPath, oe as desktopInstallUpdate, se as desktopNotify, ce as desktopOpenExternal, le as desktopSetBadgeCount, ue as desktopSetLocale, de as desktopSetTheme, fe as desktopSetTrayQuickActions, wo as detectDeviceType, si as detectPlatform, ot as dispatchBackendErrorEvent, Ai as dispatchProductQuotaExhausted, co as dispatchQuotaExhausted, wi as dispatchUpgradePrompt, sr as downscaleImage, C as edgeColor, Fe as emitProductSlug, st as extractBackendError, nr as extractQuotaExhaustedExtensions, rr as extractUpgradeErrorExtensions, He as findProductConfig, Cr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, ci as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, Go as getBuiltInTourRouteCatalog, $ as getCapacitorPlatform, o as getCategoryTokens, pe as getDesktopAuthBridgeConfig, me as getDesktopBridge, he as getDesktopGatewayBases, ge as getDesktopGatewayUrls, _e as getDesktopRuntimeConfig, ve as getDesktopUpdateState, ye as getDesktopWindowState, li as getDisplayKeysForPlatform, $e as getGatewayConfig, et as getGatewayUrl, wt as getGlobalClient, Xa as getGlobalShortcutsByCategory, tt as getGraphQLEndpoint, be as getLegacyDesktopRuntime, on as getNativeBridge, Ii as getNativeEntryRoutes, vs as getNativeProducts, ys as getNativePurchases, ro as getOrCreatePushDeviceId, sn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, Xn as getProfileScopedKey, s as getProgressTokens, ws as getPushOptInController, To as getResponsiveSelector, wn as getSSORedirectUrl, $t as getSSoCookie, qe as getShellConfig, ui as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, mt as getStoredAuthToken, ht as getStoredLocale, gt as getStoredOrganizationId, _t as getStoredProjectId, vt as getStoredWorkspaceId, yt as getStoredWorkspaceToken, Jo as getTourContextRank, Yo as getTourRouteCatalog, Xo as getTourRouteCatalogVersion, Zo as getTourRouteModules, Qo as getTourRoutePages, u as getTrendTokens, Tt as getWorkspaceClient, nt as getWorkspaceTokenPayload, zt as gql, bt as graphqlFetch, qt as hasAuthGraphQLErrors, $o as hasRegisteredTourRouteCatalog, Bi as hasStoredValidSession, Et as initializeAppClients, qn as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, bs as installNativeIAP, ct as isAbortError, _n as isAllowedRedirectUrl, cn as isAndroid, Jt as isAuthGraphQLError, Yt as isAuthNetworkError, lt as isBackendErrorDisplay, ee as isCapacitorNative, Z as isChunkLoadError, Ce as isDesktop, ln as isElectron, un as isIOS, dn as isInstalledApp, di as isMac, fi as isMobileDevice, fn as isNative, xs as isNativeIAPAvailable, ir as isQuotaExhaustedError, ua as isRybbitSkippedRoute, Ie as isSameProductSlug, en as isSharedSsoCookieDomain, Je as isShellLessRoute, Mn as isSsoNavigationPending, pn as isStandalonePWA, pi as isTabletDevice, es as isTourVisibleForContext, ut as isTransportError, tn as isTrustedSsoOrigin, ar as isUpgradeError, mn as isWeb, hn as isWebBrowser, rt as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, Ko as listBuiltInTourRouteCatalogProductIds, _o as listUnsavedChanges, Wn as logManager, dt as markConnectionHealthy, Nn as markSsoDepositDone, Pn as markSsoDepositPending, mi as matchesKeyCombo, Za as mergeShortcuts, Fn as mintSsoSessionTokens, ur as nativeActionSheet, dr as nativeConfirm, fr as nativeCopyText, pr as nativeImpact, mr as nativeNotify, hr as nativeOpenUrl, gr as nativeSelection, _r as nativeShare, vr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, hi as normalizeKey, gi as normalizePlatformCombo, Re as normalizeProductSlug, ts as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, vn as openUrlInNewTabWithAllowlist, _i as parseKeyCombo, K as pluralize, Ft as prepareWorkspaceRequest, d as progressTokens, fo as publishPlanUsageSnapshot, Ss as purchaseNativeProduct, ji as quotaEventKind, pa as readAnalyticsConsent, ma as readAnalyticsConsentChoice, Er as readInitialNetworkStatus, nn as readShellSsoCookie, In as readSsoDepositState, Ts as recordPushPermissionPromptDismissed, Xt as redirectToLogin, Tn as redirectToSSO, Dr as reduceNetworkStatus, Ee as registerDesktopNavigator, io as registerPushDevice, Es as registerPushOptInController, ns as registerTourRouteCatalog, vo as registerUnsavedChange, yn as replaceLocationWithAllowlist, Dt as resetAppClients, $i as resolveActionSheetOutcome, ms as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, ke as resolveGatewayBases, xt as resolveGatewayUrl, De as resolveGatewayUrls, Vi as resolveLandingGate, Mi as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, rs as resolveTourTargetPath, Cs as restoreNativePurchases, cr as selectInlineBase64, ha as setAnalyticsConsent, rn as setSSoCookie, an as setShellSsoCookies, Jn as setUserContext, Ln as shouldAttemptSsoDeposit, vi as shouldEnableKeyboardShortcuts, yi as shouldIgnoreShortcut, Ds as shouldPromptForPushPermission, Ye as shouldShowBreadcrumb, Li as shouldShowNativeWelcome, Xe as shouldShowSidebar, ft as shouldToastBackendError, q as slugify, f as statusTokens, is as subscribeTourRouteCatalogs, Ae as suppressConsole, J as toCamelCase, k as toDataType, A as toNodeCategory, Y as toPascalCase, p as trendTokens, X as truncateText, ao as unregisterPushDevice, yo as unsavedChangesBlocking, ea as useActionSheet, Ir as useActorProfiles, Bt as useApolloClient, Yi as useAppState, Va as useAsync, Ha as useAsyncImmediate, os as useAutoStartTour, Ta as useBreakpoint, La as useConditionalToggle, e as useCopyToClipboard, ho as useCurrentContextSearchParams, Sa as useDebounce, ta as useDesktop, na as useDesktopUpdateState, ra as useDesktopWindowState, Xi as useDeviceInfo, ya as useEvent, ba as useEventBus, xa as useEventEmitter, ja as useExclusiveMenu, ni as useFeatureFlag, ri as useFeatureFlagDetails, ii as useFeatureFlagValue, ti as useFeatureFlags, kt as useGateway, At as useGatewayClient, Zi as useHaptics, $a as useHasAnimated, Nt as useHasAuthToken, Ka as useHotkeys, wr as useInsideMainLandmark, Ao as useIsTourPlaying, ka as useKeyPress, Aa as useKeyboardShortcut, Ga as useKeyboardShortcuts, Vt as useLazyQuery, Ma as useLocalStorage, Qa as useLogger, t as useMediaQuery, So as useMicrofrontendContext, Ea as useMobileBreakpoint, Ht as useMutation, Ji as useNativeKeyboard, Ki as useNativePlatform, Or as useNetworkStatus, Da as useOnClickOutside, Oa as useOnClickOutsideWithRef, Zr as usePWA, Ba as usePagination, Io as usePlayTour, Pa as usePrevious, Fa as usePreviousDistinct, Ia as usePreviousHistory, Mr as usePullToRefresh, oo as usePushDeviceRegistration, Ut as useQuery, Ni as useQuotaDialogOwnership, lo as useQuotaErrorToast, Pi as useQuotaUpgradeBridge, to as useRecordProductVisit, eo as useReferralAttribution, ds as useRegisterTourRouteCatalog, zn as useRegistryHelpers, Nr as useReturnFocus, qi as useSafeArea, jt as useSafeGateway, Mt as useSafeGatewayClient, ss as useSafeToursContext, Na as useSessionStorage, Bn as useShellNavigate, qa as useShortcutHelp, jo as useStartTour, Qi as useStatusBar, Mo as useStopTour, Wt as useSubscription, Ca as useThrottle, Ra as useToggle, za as useToggleObject, Eo as useTourPlayer, No as useTourPlayerContext, fs as useTourRouteCatalog, cs as useTours, ls as useToursContext, bo as useUnsavedChanges, po as useUpgradePrompt, Hi as useVoiceInput, Fi as withQuotaDialogOwnership, Co as withTourProgressStatus };
153
+ export { ia as ASSISTANT_WIDGET_TOGGLE_EVENT, Qr as AccessDenied, Ur as ActorIdentity, Ea as AnalyticsConsentBanner, Gt as ApolloClient, Kt as ApolloProvider, ci as AppErrorBoundary, qn as AppInitializer, Os as AppShellProvider, aa as AssistantWidget, pt as BACKEND_ERROR_EVENT, Qo as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, za as BREAKPOINTS, $o as BUILDMYIQ_TOUR_ROUTE_CATALOG, es as BUILT_IN_TOUR_ROUTE_CATALOGS, Ca as BackendAuditSink, Sa as BroadcastChannelSink, Ge as CANONICAL_DOCS_HOSTS, m as CHART_SERIES_COUNT, ts as COLLABKIN_TOUR_ROUTE_CATALOG, et as COMMON_SHELL_LESS_ROUTES, mt as CONNECTION_STATUS_EVENT, ai as ConditionalShell, er as ConsoleTransport, hi as ContextConversationWidget, h as DATA_TYPES, ot as DEFAULT_PAGE_SIZE, Fi as DEFAULT_QUOTA_UPGRADE_COPY, tt as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, ya as DesktopUpdateToast, xa as DevtoolsSink, Gi as DocsLink, g as EDGE_KINDS, Kr as ErrorBoundary, ei as ErrorFallback, Ma as EventBusProvider, Us as FE_SHARED_VERSION, ba as FLUIDGRIDS_RYBBIT_EVENTS, ns as FLUIDGRIDS_TOUR_ROUTE_CATALOG, li as FeatureFlagProvider, mi as FeatureGate, st as GATEWAYS, lo as GLOBAL_SHORTCUT_CATEGORIES, Lt as GatewayProvider, hr as INLINE_ENCODE, rs as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, qt as InMemoryCache, ki as KeyboardHelpDialogWrapper, $i as LandingGateView, ea as LandingOrDashboardRedirect, ti as LoadingFallback, Xn as LogLevel, Qn as LogManager, Zn as Logger, Or as MAIN_CONTENT_ID, is as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, io as MODIFIER_KEYS, kr as MainLandmark, oa as Markdown, Io as MicrofrontendContext, ii as MicrofrontendErrorBoundary, As as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, ja as OtelBrowserSink, Eo as PLAN_USAGE_SNAPSHOT_EVENT, ao as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, Ki as PUBLIC_PRODUCT_DOCS_URL_QUERY, Rr as PULL_TO_REFRESH_THRESHOLD, vo as PUSH_DEVICE_ID_STORAGE_KEY, si as PWAInstallBanner, ni as PageLoadingFallback, Yr as PermissionButton, $r as PermissionDenied, Xr as PermissionGate, Zr as PermissionLink, Ar as PublicLayout, or as QUOTA_EXHAUSTED_CODE, Co as QUOTA_EXHAUSTED_EVENT, Ai as QuotaMeter, Ii as QuotaUpgradeBridge, sr as RESOURCE_CAP_EXCEEDED_CODE, qr as RequireAuth, Jr as RequireGuest, Da as RybbitSink, jt as SSELink, kn as SSORedirectSpinner, Fn as SSO_DEPOSITED_PARAM, cr as STORAGE_QUOTA_EXCEEDED_CODE, Pr as SafeAreaView, ri as SectionLoadingFallback, jr as SkipToContentLink, Ts as TourInitializer, Yo as TourPlayer, Wo as TourPlayerProvider, Ho as TourSpotlight, Uo as TourTooltip, js as TourTrigger, Xo as TourTriggerButton, bs as ToursProvider, jo as UNSAVED_CHANGE_LABEL_MAX, lr as UPGRADE_ERROR_CODES, ji as UPGRADE_PROMPT_EVENT, Pi as UpgradeInlineBanner, Mi as UpgradePromptModal, as as VIBECONTROLS_TOUR_ROUTE_CATALOG, Ut as WsLink, Ms as acknowledgeNativePurchase, r as alertTokens, ko as appendContextToPath, Tn as assignLocationWithAllowlist, en as attemptTokenRefresh, In as beginSsoNavigation, re as bootDesktopShell, Wr as buildActorFallback, Ke as buildProductDocsUrl, ur as buildQuotaExhaustedMessage, Ln as buildSsoDepositUrl, qe as canonicalizeDocsOrigin, j as capitalizeFirst, M as capitalizeWords, Li as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, An as checkRemoteSLO, jn as checkSLO, Ri as claimQuotaDialog, tn as clearAuthSessionStorage, St as clearGraphqlFetchResponseCache, Mn as clearLocalAuthState, sn as clearSSoCookie, cn as clearShellSsoCookies, Rn as clearSsoDepositState, zn as clearSsoNavigation, tr as clearUserContext, vr as cn, wa as compileRybbitRoutePattern, zr as computePullOffset, Br as computePullProgress, Bn as consumeSsoDepositMarker, n as createApolloClient, Na as createEventBus, uo as createGlobalShortcuts, Mt as createGraphQLClient, ir as createProfileScopedStorage, cs as createTourPageIdResolver, x as dataTypeColor, S as dataTypeTextClasses, ie as desktopCheckForUpdates, ae as desktopDeepLinkToPath, oe as desktopInstallUpdate, se as desktopNotify, ce as desktopOpenExternal, le as desktopSetBadgeCount, ue as desktopSetLocale, de as desktopSetTheme, fe as desktopSetTrayQuickActions, zo as detectDeviceType, gi as detectPlatform, ht as dispatchBackendErrorEvent, zi as dispatchProductQuotaExhausted, wo as dispatchQuotaExhausted, Ni as dispatchUpgradePrompt, gr as downscaleImage, C as edgeColor, Fe as emitProductSlug, gt as extractBackendError, dr as extractQuotaExhaustedExtensions, fr as extractUpgradeErrorExtensions, qi as fetchRegistryDocsUrl, He as findProductConfig, Mr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, _i as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, os as getBuiltInTourRouteCatalog, $ as getCapacitorPlatform, Je as getCatalogDocsOrigin, o as getCategoryTokens, pe as getDesktopAuthBridgeConfig, me as getDesktopBridge, he as getDesktopGatewayBases, ge as getDesktopGatewayUrls, _e as getDesktopRuntimeConfig, ve as getDesktopUpdateState, ye as getDesktopWindowState, vi as getDisplayKeysForPlatform, ct as getGatewayConfig, lt as getGatewayUrl, Nt as getGlobalClient, fo as getGlobalShortcutsByCategory, ut as getGraphQLEndpoint, be as getLegacyDesktopRuntime, hn as getNativeBridge, Zi as getNativeEntryRoutes, Ns as getNativeProducts, Ps as getNativePurchases, yo as getOrCreatePushDeviceId, gn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, ar as getProfileScopedKey, s as getProgressTokens, zs as getPushOptInController, Bo as getResponsiveSelector, Nn as getSSORedirectUrl, ln as getSSoCookie, nt as getShellConfig, yi as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, Ct as getStoredAuthToken, wt as getStoredLocale, Tt as getStoredOrganizationId, Et as getStoredProjectId, Dt as getStoredWorkspaceId, Ot as getStoredWorkspaceToken, ls as getTourContextRank, us as getTourRouteCatalog, ds as getTourRouteCatalogVersion, fs as getTourRouteModules, ps as getTourRoutePages, u as getTrendTokens, Pt as getWorkspaceClient, dt as getWorkspaceTokenPayload, Jt as gql, kt as graphqlFetch, nn as hasAuthGraphQLErrors, ms as hasRegisteredTourRouteCatalog, ta as hasStoredValidSession, Ft as initializeAppClients, nr as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, Fs as installNativeIAP, _t as isAbortError, En as isAllowedRedirectUrl, _n as isAndroid, rn as isAuthGraphQLError, an as isAuthNetworkError, vt as isBackendErrorDisplay, ee as isCapacitorNative, Z as isChunkLoadError, Ce as isDesktop, vn as isElectron, yn as isIOS, bn as isInstalledApp, bi as isMac, xi as isMobileDevice, xn as isNative, Is as isNativeIAPAvailable, pr as isQuotaExhaustedError, Ta as isRybbitSkippedRoute, Ie as isSameProductSlug, un as isSharedSsoCookieDomain, rt as isShellLessRoute, Vn as isSsoNavigationPending, Sn as isStandalonePWA, Si as isTabletDevice, hs as isTourVisibleForContext, yt as isTransportError, dn as isTrustedSsoOrigin, mr as isUpgradeError, Cn as isWeb, wn as isWebBrowser, ft as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, ss as listBuiltInTourRouteCatalogProductIds, Mo as listUnsavedChanges, $n as logManager, bt as markConnectionHealthy, Hn as markSsoDepositDone, Un as markSsoDepositPending, Ci as matchesKeyCombo, po as mergeShortcuts, Wn as mintSsoSessionTokens, yr as nativeActionSheet, br as nativeConfirm, xr as nativeCopyText, Sr as nativeImpact, Cr as nativeNotify, wr as nativeOpenUrl, Tr as nativeSelection, Er as nativeShare, Dr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, Ye as normalizeDocsPath, wi as normalizeKey, Ti as normalizePlatformCombo, Re as normalizeProductSlug, gs as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, Dn as openUrlInNewTabWithAllowlist, Ei as parseKeyCombo, K as pluralize, Wt as prepareWorkspaceRequest, d as progressTokens, Do as publishPlanUsageSnapshot, Ls as purchaseNativeProduct, Bi as quotaEventKind, Oa as readAnalyticsConsent, ka as readAnalyticsConsentChoice, Fr as readInitialNetworkStatus, Ji as readRegistryDocsUrl, fn as readShellSsoCookie, Gn as readSsoDepositState, Bs as recordPushPermissionPromptDismissed, on as redirectToLogin, Pn as redirectToSSO, Ir as reduceNetworkStatus, Ee as registerDesktopNavigator, bo as registerPushDevice, Vs as registerPushOptInController, _s as registerTourRouteCatalog, No as registerUnsavedChange, On as replaceLocationWithAllowlist, It as resetAppClients, ma as resolveActionSheetOutcome, ks as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, Xe as resolveDocsEnvironment, ke as resolveGatewayBases, At as resolveGatewayUrl, De as resolveGatewayUrls, na as resolveLandingGate, Ze as resolveProductDocsOrigin, Vi as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, vs as resolveTourTargetPath, Rs as restoreNativePurchases, _r as selectInlineBase64, Aa as setAnalyticsConsent, pn as setSSoCookie, mn as setShellSsoCookies, rr as setUserContext, Kn as shouldAttemptSsoDeposit, Di as shouldEnableKeyboardShortcuts, Oi as shouldIgnoreShortcut, Hs as shouldPromptForPushPermission, it as shouldShowBreadcrumb, Qi as shouldShowNativeWelcome, at as shouldShowSidebar, xt as shouldToastBackendError, q as slugify, f as statusTokens, ys as subscribeTourRouteCatalogs, Ae as suppressConsole, J as toCamelCase, k as toDataType, Qe as toEnvironmentDocsOrigin, A as toNodeCategory, Y as toPascalCase, $e as toTrustedDocsOrigin, p as trendTokens, X as truncateText, xo as unregisterPushDevice, Po as unsavedChangesBlocking, ha as useActionSheet, Gr as useActorProfiles, Yt as useApolloClient, ua as useAppState, no as useAsync, ro as useAsyncImmediate, xs as useAutoStartTour, Ba as useBreakpoint, Qa as useConditionalToggle, e as useCopyToClipboard, Ao as useCurrentContextSearchParams, La as useDebounce, ga as useDesktop, _a as useDesktopUpdateState, va as useDesktopWindowState, da as useDeviceInfo, Pa as useEvent, Fa as useEventBus, Ia as useEventEmitter, Ka as useExclusiveMenu, di as useFeatureFlag, fi as useFeatureFlagDetails, pi as useFeatureFlagValue, ui as useFeatureFlags, Rt as useGateway, zt as useGatewayClient, fa as useHaptics, ho as useHasAnimated, Ht as useHasAuthToken, so as useHotkeys, Nr as useInsideMainLandmark, Go as useIsTourPlaying, Wa as useKeyPress, Ga as useKeyboardShortcut, oo as useKeyboardShortcuts, Xt as useLazyQuery, qa as useLocalStorage, mo as useLogger, t as useMediaQuery, Lo as useMicrofrontendContext, Va as useMobileBreakpoint, Zt as useMutation, la as useNativeKeyboard, sa as useNativePlatform, Lr as useNetworkStatus, Ha as useOnClickOutside, Ua as useOnClickOutsideWithRef, oi as usePWA, to as usePagination, Zo as usePlayTour, Ya as usePrevious, Xa as usePreviousDistinct, Za as usePreviousHistory, Yi as useProductDocsOrigin, Xi as useProductDocsUrl, Vr as usePullToRefresh, So as usePushDeviceRegistration, Qt as useQuery, Hi as useQuotaDialogOwnership, To as useQuotaErrorToast, Ui as useQuotaUpgradeBridge, _o as useRecordProductVisit, go as useReferralAttribution, Es as useRegisterTourRouteCatalog, Jn as useRegistryHelpers, Hr as useReturnFocus, ca as useSafeArea, Bt as useSafeGateway, Vt as useSafeGatewayClient, Ss as useSafeToursContext, Ja as useSessionStorage, Yn as useShellNavigate, co as useShortcutHelp, Ko as useStartTour, pa as useStatusBar, qo as useStopTour, $t as useSubscription, Ra as useThrottle, $a as useToggle, eo as useToggleObject, Vo as useTourPlayer, Jo as useTourPlayerContext, Ds as useTourRouteCatalog, Cs as useTours, ws as useToursContext, Fo as useUnsavedChanges, Oo as useUpgradePrompt, ra as useVoiceInput, Wi as withQuotaDialogOwnership, Ro as withTourProgressStatus };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.1021.13",
3
+ "version": "2026.1021.14",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {
@@ -322,7 +322,7 @@
322
322
  "test:package-livekit-optional": "node scripts/validate-livekit-optional.mjs",
323
323
  "verify:package": "node scripts/verify-package-contents.mjs",
324
324
  "test:handsfree-browser": "node scripts/handsfree-browser-run.mjs",
325
- "test": "bun test scripts/graphql-schema-drift/__tests__ scripts/a11y-audit/__tests__ scripts/i18n/__tests__ src/credentials src/connections src/storage src/shared/assistant src/shared/components src/shared/graphql/links/sse-link.test.ts src/shared/graphql/fetch.test.ts src/shared/graphql/prepareWorkspaceRequest.test.ts src/shared/graphql/client.test.ts src/shared/utils/apollo.test.ts src/shared/utils/canvasTokens.test.ts src/shared/graphql/tourWorkspaceAuth.test.ts src/shared/config/gatewayUrls.test.ts src/shared/config/authBridgeUrls.test.ts src/shared/config/shellRoutes.test.ts src/shared/config/gatewayFallback.test.ts scripts/__tests__ src/shared/config/products.test.ts src/shared/config/productSlug.test.ts src/shared/hooks/shell/useProducts.test.ts src/shared/providers/shell/brandAttribute.test.ts src/chrome/ProductSwitcher.test.ts src/shared/utils/gatewayFetchRewrite.test.ts src/shared/utils/authCookie.test.ts src/shared/utils/redirectAllowlist.test.ts src/shared/providers/shell/ProfileStorageManager.test.ts src/shared/providers/AppShellProvider.test.ts src/shared/providers/shell/interpolate.test.ts src/shared/providers/shell/resolveTranslation.test.ts src/shared/providers/shell/I18nProvider.render.test.tsx src/shared/providers/shell/I18nProvider.client.test.tsx src/shared/providers/shell/translationStore.test.ts src/shared/providers/shell/translationLayers.test.ts src/shared/providers/shell/directionMode.test.ts src/shared/providers/shell/authProvider/ssoRelay.test.ts src/shared/providers/shell/authProvider/useAuthActions.signOut.test.tsx src/shared/providers/shell/personaSurfaceRemote.test.ts src/shared/providers/shell/workspaceSwitch.client.test.tsx src/shared/events/sinks/RybbitSink.test.ts src/shared/events/sinks/RybbitSink.client.test.tsx src/shell-native src/shared/native src/shared/navigation src/shared/tours src/chrome/__tests__ src/ui/__tests__",
325
+ "test": "bun test scripts/graphql-schema-drift/__tests__ scripts/a11y-audit/__tests__ scripts/i18n/__tests__ src/credentials src/connections src/storage src/shared/assistant src/shared/components src/shared/graphql/links/sse-link.test.ts src/shared/graphql/fetch.test.ts src/shared/graphql/prepareWorkspaceRequest.test.ts src/shared/graphql/client.test.ts src/shared/utils/apollo.test.ts src/shared/utils/canvasTokens.test.ts src/shared/graphql/tourWorkspaceAuth.test.ts src/shared/config/gatewayUrls.test.ts src/shared/config/authBridgeUrls.test.ts src/shared/config/shellRoutes.test.ts src/shared/config/gatewayFallback.test.ts scripts/__tests__ src/shared/config/products.test.ts src/shared/config/docsUrls.test.ts src/shared/config/productSlug.test.ts src/shared/hooks/shell/useProducts.test.ts src/shared/providers/shell/brandAttribute.test.ts src/chrome/ProductSwitcher.test.ts src/shared/utils/gatewayFetchRewrite.test.ts src/shared/utils/authCookie.test.ts src/shared/utils/redirectAllowlist.test.ts src/shared/providers/shell/ProfileStorageManager.test.ts src/shared/providers/AppShellProvider.test.ts src/shared/providers/shell/interpolate.test.ts src/shared/providers/shell/resolveTranslation.test.ts src/shared/providers/shell/I18nProvider.render.test.tsx src/shared/providers/shell/I18nProvider.client.test.tsx src/shared/providers/shell/translationStore.test.ts src/shared/providers/shell/translationLayers.test.ts src/shared/providers/shell/directionMode.test.ts src/shared/providers/shell/authProvider/ssoRelay.test.ts src/shared/providers/shell/authProvider/useAuthActions.signOut.test.tsx src/shared/providers/shell/personaSurfaceRemote.test.ts src/shared/providers/shell/workspaceSwitch.client.test.tsx src/shared/events/sinks/RybbitSink.test.ts src/shared/events/sinks/RybbitSink.client.test.tsx src/shell-native src/shared/native src/shared/navigation src/shared/tours src/chrome/__tests__ src/ui/__tests__",
326
326
  "sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run lint:sanity && bun run format && bun run type:check && bun run test && bun run build && bun run verify:package'",
327
327
  "switch:status": "bun scripts/deps-mode.ts status",
328
328
  "switch:remote": "bun scripts/deps-mode.ts remote",