@burdenoff/fe-libs 2026.1023.13 → 2026.1023.15

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.
@@ -11,6 +11,12 @@ export interface CommandAction {
11
11
  className?: string;
12
12
  }>;
13
13
  readonly keywords?: readonly string[];
14
+ /**
15
+ * Key hint shown next to the action. A modifier combo ("mod+n") is bound by
16
+ * the palette itself; a key sequence ("g h") is display-only here and must be
17
+ * bound by the host shell with `withCommandChords` (fe-libs/shared/keyboard),
18
+ * which builds the binding from this action so the two cannot drift.
19
+ */
14
20
  readonly shortcut?: string;
15
21
  readonly action: () => void | Promise<void>;
16
22
  readonly section?: string;
@@ -1,11 +1,12 @@
1
1
  import { useShellLabel as e } from "../shared/providers/shell/useShellLabel.js";
2
2
  import { cn as t } from "../utils/cn.js";
3
3
  import "../utils/index.js";
4
- import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
5
- import { Search as o, X as s } from "lucide-react";
6
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
+ import { isChordShortcut as n } from "../shared/keyboard/commandChords.js";
5
+ import { useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
6
+ import { Search as s, X as c } from "lucide-react";
7
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
8
  //#region src/chrome/CommandPalette.tsx
8
- var u = "mod+shift+k", d = {
9
+ var d = "mod+shift+k", f = {
9
10
  id: "command-palette",
10
11
  keys: {
11
12
  mac: ["cmd+shift+k"],
@@ -17,7 +18,7 @@ var u = "mod+shift+k", d = {
17
18
  action: () => void 0,
18
19
  global: !0
19
20
  };
20
- function f(e) {
21
+ function p(e) {
21
22
  let t = e.toLowerCase().split("+").map((e) => e.trim()), n = t.length - 1;
22
23
  return {
23
24
  mod: t.includes("mod"),
@@ -28,52 +29,52 @@ function f(e) {
28
29
  key: t[n] || ""
29
30
  };
30
31
  }
31
- function p(e, t) {
32
- let n = f(t);
32
+ function m(e, t) {
33
+ let n = p(t);
33
34
  return n.mod && !(e.metaKey || e.ctrlKey) || n.ctrl && !e.ctrlKey || n.alt !== e.altKey || n.shift !== e.shiftKey || n.meta && !e.metaKey || !e.key ? !1 : e.key.toLowerCase() === n.key;
34
35
  }
35
- function m({ actions: d, shortcuts: f = [], placeholder: m, className: h, toggleShortcut: g = u }) {
36
- let _ = e(), [v, y] = a(!1), [b, x] = a(""), [S, C] = a(0), w = i(() => d.filter((e) => !e.hidden), [d]), T = n(async (e) => {
36
+ function h({ actions: f, shortcuts: p = [], placeholder: h, className: g, toggleShortcut: _ = d }) {
37
+ let v = e(), [y, b] = o(!1), [x, S] = o(""), [C, w] = o(0), T = a(() => f.filter((e) => !e.hidden), [f]), E = r(async (e) => {
37
38
  try {
38
- await e.action(), y(!1);
39
+ await e.action(), b(!1);
39
40
  } catch (e) {
40
41
  console.error("Failed to execute command:", e);
41
42
  }
42
- }, []), E = i(() => {
43
- if (!b.trim()) return w;
44
- let e = b.toLowerCase();
45
- return w.filter((t) => {
43
+ }, []), D = a(() => {
44
+ if (!x.trim()) return T;
45
+ let e = x.toLowerCase();
46
+ return T.filter((t) => {
46
47
  let n = t.label.toLowerCase().includes(e), r = t.keywords?.some((t) => t.toLowerCase().includes(e)), i = t.description?.toLowerCase().includes(e);
47
48
  return n || r || i;
48
49
  });
49
- }, [w, b]);
50
- r(() => {
51
- v || (x(""), C(0));
52
- }, [v]), r(() => {
50
+ }, [T, x]);
51
+ i(() => {
52
+ y || (S(""), w(0));
53
+ }, [y]), i(() => {
53
54
  let e = (e) => {
54
- if (p(e, g)) {
55
- e.preventDefault(), y((e) => !e);
55
+ if (m(e, _)) {
56
+ e.preventDefault(), b((e) => !e);
56
57
  return;
57
58
  }
58
- if (v) {
59
- if (e.key === "Escape") e.preventDefault(), y(!1);
60
- else if (e.key === "ArrowDown") e.preventDefault(), C((e) => e < E.length - 1 ? e + 1 : e);
61
- else if (e.key === "ArrowUp") e.preventDefault(), C((e) => e > 0 ? e - 1 : e);
59
+ if (y) {
60
+ if (e.key === "Escape") e.preventDefault(), b(!1);
61
+ else if (e.key === "ArrowDown") e.preventDefault(), w((e) => e < D.length - 1 ? e + 1 : e);
62
+ else if (e.key === "ArrowUp") e.preventDefault(), w((e) => e > 0 ? e - 1 : e);
62
63
  else if (e.key === "Enter") {
63
64
  e.preventDefault();
64
- let t = E[S];
65
- t && T(t);
65
+ let t = D[C];
66
+ t && E(t);
66
67
  }
67
68
  return;
68
69
  }
69
- for (let t of f) if (p(e, t.keys)) {
70
+ for (let t of p) if (m(e, t.keys)) {
70
71
  e.preventDefault();
71
- let n = w.find((e) => e.id === t.actionId);
72
- n && T(n);
72
+ let n = T.find((e) => e.id === t.actionId);
73
+ n && E(n);
73
74
  return;
74
75
  }
75
- for (let t of w) if (t.shortcut && p(e, t.shortcut)) {
76
- e.preventDefault(), T(t);
76
+ for (let t of T) if (!n(t.shortcut) && t.shortcut && m(e, t.shortcut)) {
77
+ e.preventDefault(), E(t);
77
78
  return;
78
79
  }
79
80
  };
@@ -81,84 +82,84 @@ function m({ actions: d, shortcuts: f = [], placeholder: m, className: h, toggle
81
82
  document.removeEventListener("keydown", e);
82
83
  };
83
84
  }, [
84
- T,
85
85
  E,
86
- v,
87
- S,
88
- f,
89
- g,
90
- w
86
+ D,
87
+ y,
88
+ C,
89
+ p,
90
+ _,
91
+ T
91
92
  ]);
92
- let D = i(() => E.reduce((e, t) => {
93
+ let O = a(() => D.reduce((e, t) => {
93
94
  let n = t.section || "Actions";
94
95
  return e[n] || (e[n] = []), e[n].push(t), e;
95
- }, {}), [E]);
96
- if (r(() => {
97
- C(0);
98
- }, [E]), !v) return null;
99
- let O = 0;
100
- return /* @__PURE__ */ c("div", {
101
- className: t("fixed inset-0 z-[9999] flex items-center justify-center bg-bg-overlay backdrop-blur-md", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", h),
102
- onClick: () => y(!1),
103
- "data-state": v ? "open" : "closed",
96
+ }, {}), [D]);
97
+ if (i(() => {
98
+ w(0);
99
+ }, [D]), !y) return null;
100
+ let k = 0;
101
+ return /* @__PURE__ */ l("div", {
102
+ className: t("fixed inset-0 z-[9999] flex items-center justify-center bg-bg-overlay backdrop-blur-md", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", g),
103
+ onClick: () => b(!1),
104
+ "data-state": y ? "open" : "closed",
104
105
  role: "dialog",
105
106
  "aria-modal": "true",
106
- children: /* @__PURE__ */ c("div", {
107
+ children: /* @__PURE__ */ l("div", {
107
108
  className: "w-full max-w-lg mx-4 max-h-[85dvh] overflow-hidden",
108
109
  onClick: (e) => e.stopPropagation(),
109
- children: /* @__PURE__ */ l("div", {
110
+ children: /* @__PURE__ */ u("div", {
110
111
  className: "overflow-hidden rounded-2xl border border-border-subtle bg-bg-elevated shadow-[var(--shadow-elevation-5)]",
111
112
  children: [
112
- /* @__PURE__ */ l("div", {
113
+ /* @__PURE__ */ u("div", {
113
114
  className: "flex items-center border-b border-border-subtle px-4",
114
115
  children: [
115
- /* @__PURE__ */ c(o, { className: "size-4 mr-2 flex-shrink-0 text-text-muted" }),
116
- /* @__PURE__ */ c("input", {
116
+ /* @__PURE__ */ l(s, { className: "size-4 mr-2 flex-shrink-0 text-text-muted" }),
117
+ /* @__PURE__ */ l("input", {
117
118
  type: "text",
118
- placeholder: m ?? _("search.commandPlaceholder", "Type a command or search..."),
119
- value: b,
120
- onChange: (e) => x(e.target.value),
119
+ placeholder: h ?? v("search.commandPlaceholder", "Type a command or search..."),
120
+ value: x,
121
+ onChange: (e) => S(e.target.value),
121
122
  className: "flex-1 bg-transparent py-3.5 text-sm text-text-primary outline-none placeholder:text-text-placeholder",
122
123
  autoFocus: !0
123
124
  }),
124
- b && /* @__PURE__ */ c("button", {
125
+ x && /* @__PURE__ */ l("button", {
125
126
  type: "button",
126
- onClick: () => x(""),
127
+ onClick: () => S(""),
127
128
  className: "ml-2 rounded-button p-1 text-text-muted hover:bg-bg-sunken hover:text-text-primary transition-colors",
128
- "aria-label": _("common.clearSearch", "Clear search"),
129
- children: /* @__PURE__ */ c(s, { className: "size-4" })
129
+ "aria-label": v("common.clearSearch", "Clear search"),
130
+ children: /* @__PURE__ */ l(c, { className: "size-4" })
130
131
  })
131
132
  ]
132
133
  }),
133
- /* @__PURE__ */ l("div", {
134
+ /* @__PURE__ */ u("div", {
134
135
  className: "max-h-96 overflow-y-auto p-2",
135
- children: [E.length === 0 && /* @__PURE__ */ c("div", {
136
+ children: [D.length === 0 && /* @__PURE__ */ l("div", {
136
137
  className: "py-6 text-center text-sm text-text-muted",
137
- children: _("search.noCommandsFound", "No commands found.")
138
- }), Object.entries(D).map(([e, n]) => /* @__PURE__ */ l("div", {
138
+ children: v("search.noCommandsFound", "No commands found.")
139
+ }), Object.entries(O).map(([e, n]) => /* @__PURE__ */ u("div", {
139
140
  className: "mb-2 last:mb-0",
140
- children: [/* @__PURE__ */ c("div", {
141
+ children: [/* @__PURE__ */ l("div", {
141
142
  className: "px-2 py-1.5 text-[11px] font-medium uppercase tracking-wider text-text-muted",
142
143
  children: e
143
144
  }), n.map((e) => {
144
- let n = e.icon, r = O;
145
- return O++, /* @__PURE__ */ l("button", {
145
+ let n = e.icon, r = k;
146
+ return k++, /* @__PURE__ */ u("button", {
146
147
  type: "button",
147
- onClick: () => void T(e),
148
- className: t("w-full flex items-start gap-3 px-2.5 py-2 text-sm rounded-button transition-colors text-left", r === S ? "bg-[var(--color-accent-soft)] text-text-primary" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"),
148
+ onClick: () => void E(e),
149
+ className: t("w-full flex items-start gap-3 px-2.5 py-2 text-sm rounded-button transition-colors text-left", r === C ? "bg-[var(--color-accent-soft)] text-text-primary" : "text-text-secondary hover:bg-bg-sunken hover:text-text-primary"),
149
150
  children: [
150
- n && /* @__PURE__ */ c(n, { className: "size-4 mt-0.5 flex-shrink-0" }),
151
- /* @__PURE__ */ l("div", {
151
+ n && /* @__PURE__ */ l(n, { className: "size-4 mt-0.5 flex-shrink-0" }),
152
+ /* @__PURE__ */ u("div", {
152
153
  className: "flex-1 min-w-0",
153
- children: [/* @__PURE__ */ c("div", {
154
+ children: [/* @__PURE__ */ l("div", {
154
155
  className: "font-medium text-text-primary",
155
156
  children: e.label
156
- }), e.description && /* @__PURE__ */ c("div", {
157
+ }), e.description && /* @__PURE__ */ l("div", {
157
158
  className: "text-xs text-text-muted",
158
159
  children: e.description
159
160
  })]
160
161
  }),
161
- e.shortcut && /* @__PURE__ */ c("kbd", {
162
+ e.shortcut && /* @__PURE__ */ l("kbd", {
162
163
  className: "ml-auto pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-border-subtle bg-bg-sunken px-1.5 font-mono text-[10px] font-medium text-text-secondary",
163
164
  children: e.shortcut
164
165
  })
@@ -167,32 +168,32 @@ function m({ actions: d, shortcuts: f = [], placeholder: m, className: h, toggle
167
168
  })]
168
169
  }, e))]
169
170
  }),
170
- /* @__PURE__ */ l("div", {
171
+ /* @__PURE__ */ u("div", {
171
172
  className: "border-t border-border-subtle px-3 py-2 text-xs text-text-muted flex items-center justify-between",
172
173
  children: [
173
- /* @__PURE__ */ l("div", { children: [
174
- /* @__PURE__ */ c("kbd", {
174
+ /* @__PURE__ */ u("div", { children: [
175
+ /* @__PURE__ */ l("kbd", {
175
176
  className: "inline-flex h-5 select-none items-center gap-1 rounded border border-border-subtle bg-bg-sunken px-1.5 font-mono text-[10px] text-text-secondary",
176
177
  children: "↑↓"
177
178
  }),
178
179
  " ",
179
- _("search.navigate", "Navigate")
180
+ v("search.navigate", "Navigate")
180
181
  ] }),
181
- /* @__PURE__ */ l("div", { children: [
182
- /* @__PURE__ */ c("kbd", {
182
+ /* @__PURE__ */ u("div", { children: [
183
+ /* @__PURE__ */ l("kbd", {
183
184
  className: "inline-flex h-5 select-none items-center gap-1 rounded border border-border-subtle bg-bg-sunken px-1.5 font-mono text-[10px] text-text-secondary",
184
185
  children: "Enter"
185
186
  }),
186
187
  " ",
187
- _("search.execute", "Execute")
188
+ v("search.execute", "Execute")
188
189
  ] }),
189
- /* @__PURE__ */ l("div", { children: [
190
- /* @__PURE__ */ c("kbd", {
190
+ /* @__PURE__ */ u("div", { children: [
191
+ /* @__PURE__ */ l("kbd", {
191
192
  className: "inline-flex h-5 select-none items-center gap-1 rounded border border-border-subtle bg-bg-sunken px-1.5 font-mono text-[10px] text-text-secondary",
192
193
  children: "Esc"
193
194
  }),
194
195
  " ",
195
- _("common.close", "Close")
196
+ v("common.close", "Close")
196
197
  ] })
197
198
  ]
198
199
  })
@@ -202,4 +203,4 @@ function m({ actions: d, shortcuts: f = [], placeholder: m, className: h, toggle
202
203
  });
203
204
  }
204
205
  //#endregion
205
- export { d as COMMAND_PALETTE_HELP_SHORTCUT, u as COMMAND_PALETTE_SHORTCUT, m as CommandPalette };
206
+ export { f as COMMAND_PALETTE_HELP_SHORTCUT, d as COMMAND_PALETTE_SHORTCUT, h as CommandPalette };
@@ -2,7 +2,7 @@ export type AvatarUnsubscribe = () => void;
2
2
  export interface AvatarScheduler {
3
3
  /** Milliseconds, monotonic. */
4
4
  now(): number;
5
- /** Returns a cancel function. */
5
+ /** Runs `fn` after `ms`, however long that is. Returns a cancel function. */
6
6
  setTimeout(fn: () => void, ms: number): () => void;
7
7
  }
8
8
  export declare const realAvatarScheduler: AvatarScheduler;
@@ -1,11 +1,18 @@
1
1
  //#region src/shared/assistant/avatar/live/avatarPorts.ts
2
- var e = {
3
- now: () => performance.now(),
4
- setTimeout: (e, t) => {
5
- let n = setTimeout(e, t);
6
- return () => clearTimeout(n);
2
+ var e = 2 ** 31 - 1, t = () => performance.now(), n = {
3
+ now: t,
4
+ setTimeout: (n, r) => {
5
+ if (!(r > e)) {
6
+ let e = setTimeout(n, r);
7
+ return () => clearTimeout(e);
8
+ }
9
+ let i = t() + r, a, o = () => {
10
+ let r = i - t();
11
+ a = r > e ? setTimeout(o, e) : setTimeout(n, Math.max(0, r));
12
+ };
13
+ return o(), () => clearTimeout(a);
7
14
  }
8
- }, t = class {
15
+ }, r = class {
9
16
  current = 0;
10
17
  nextId = 1;
11
18
  timers = /* @__PURE__ */ new Map();
@@ -35,10 +42,10 @@ var e = {
35
42
  pendingTimers() {
36
43
  return this.timers.size;
37
44
  }
38
- }, n = class extends Error {
45
+ }, i = class extends Error {
39
46
  constructor(e) {
40
47
  super(e), this.name = "AvatarRpcRejectedError";
41
48
  }
42
49
  };
43
50
  //#endregion
44
- export { n as AvatarRpcRejectedError, t as FakeAvatarScheduler, e as realAvatarScheduler };
51
+ export { i as AvatarRpcRejectedError, r as FakeAvatarScheduler, n as realAvatarScheduler };
@@ -0,0 +1,58 @@
1
+ import { KeyboardShortcut } from './types';
2
+ /**
3
+ * The parts of a command-palette action a chord needs. Structurally a subset
4
+ * of `CommandAction` (fe-libs/chrome/CommandPalette), declared here so the
5
+ * keyboard module does not import from chrome.
6
+ */
7
+ export interface CommandChordSource {
8
+ readonly id: string;
9
+ readonly label: string;
10
+ readonly shortcut?: string;
11
+ readonly section?: string;
12
+ readonly hidden?: boolean;
13
+ readonly action: () => void | Promise<void>;
14
+ }
15
+ export interface CommandChordOptions {
16
+ /**
17
+ * Dialog category for chords derived from palette actions. Defaults to
18
+ * 'Navigation'. Pass `null` to use each action's own palette section.
19
+ */
20
+ readonly category?: string | null;
21
+ /**
22
+ * Host-supplied chords that have no palette entry. They are bound and listed
23
+ * exactly like the derived ones, and win over a palette action that uses the
24
+ * same sequence.
25
+ */
26
+ readonly extra?: readonly KeyboardShortcut[];
27
+ }
28
+ /** Prefix of the ids given to chords derived from palette actions. */
29
+ export declare const COMMAND_CHORD_ID_PREFIX = "command-chord:";
30
+ /**
31
+ * True for a key sequence such as "g h" or "g ,"; false for a modifier combo
32
+ * ("mod+shift+k"), a single key ("?") or an empty string.
33
+ */
34
+ export declare function isChordShortcut(shortcut: string | undefined): shortcut is string;
35
+ /**
36
+ * Canonical form of a sequence for comparison: keys normalised the same way
37
+ * `useKeyboardShortcuts` normalises a key press, single-space separated.
38
+ */
39
+ export declare function normalizeChord(shortcut: string): string;
40
+ /**
41
+ * The palette actions that advertise a key sequence, as keyboard shortcuts.
42
+ *
43
+ * Hidden actions are skipped (the palette does not show them, so the dialog
44
+ * must not either). When two actions advertise the same sequence the first one
45
+ * wins and the later one is dropped, so the key can only ever run the action
46
+ * listed first.
47
+ */
48
+ export declare function commandChordShortcuts(actions: readonly CommandChordSource[], options?: Pick<CommandChordOptions, 'category'>): KeyboardShortcut[];
49
+ /**
50
+ * `base` (usually `createGlobalShortcuts(...)`) plus the host's chords: the
51
+ * `extra` chords first, then the ones derived from `actions`.
52
+ *
53
+ * Any `base` shortcut bound to a sequence the host also binds is dropped, so
54
+ * the host's product-aware chord is the only thing that sequence runs and the
55
+ * only row the dialog shows for it. Modifier combos in `base` (search, theme,
56
+ * sidebar, help) are kept unless the host chords happen to reuse their id.
57
+ */
58
+ export declare function withCommandChords(base: readonly KeyboardShortcut[], actions: readonly CommandChordSource[], options?: CommandChordOptions): KeyboardShortcut[];
@@ -0,0 +1,51 @@
1
+ import { isKeySequence as e, normalizeKey as t } from "./utils.js";
2
+ //#region src/shared/keyboard/commandChords.ts
3
+ var n = "command-chord:";
4
+ function r(t) {
5
+ if (!t) return !1;
6
+ let n = t.trim();
7
+ return n.length > 0 && e(n);
8
+ }
9
+ function i(e) {
10
+ return e.trim().split(/\s+/).map((e) => t(e)).join(" ");
11
+ }
12
+ function a(e) {
13
+ return Array.isArray(e) ? e : [
14
+ ...e.mac ?? [],
15
+ ...e.windows ?? [],
16
+ ...e.linux ?? [],
17
+ ...e.default ?? []
18
+ ];
19
+ }
20
+ function o(t) {
21
+ return a(t.keys).filter((n) => e(n) || t.isSequence === !0).map((e) => i(e));
22
+ }
23
+ function s(e, t = {}) {
24
+ let a = t.category === void 0 ? "Navigation" : t.category, o = /* @__PURE__ */ new Set(), s = [];
25
+ for (let t of e) {
26
+ if (t.hidden || !r(t.shortcut)) continue;
27
+ let e = i(t.shortcut);
28
+ if (o.has(e)) continue;
29
+ o.add(e);
30
+ let c = t.action;
31
+ s.push({
32
+ id: `${n}${t.id}`,
33
+ keys: [e],
34
+ description: t.label,
35
+ category: a ?? t.section ?? "Navigation",
36
+ isSequence: !0,
37
+ action: () => {
38
+ Promise.resolve().then(c).catch((n) => {
39
+ console.error(`Command chord "${e}" (${t.id}) failed:`, n);
40
+ });
41
+ }
42
+ });
43
+ }
44
+ return s;
45
+ }
46
+ function c(e, t, n = {}) {
47
+ let r = n.extra ?? [], i = new Set(r.flatMap((e) => o(e))), a = s(t, n).filter((e) => o(e).every((e) => !i.has(e))), c = [...r, ...a], l = new Set(c.flatMap((e) => o(e))), u = new Set(c.map((e) => e.id));
48
+ return [...e.filter((e) => !u.has(e.id) && o(e).every((e) => !l.has(e))), ...c];
49
+ }
50
+ //#endregion
51
+ export { n as COMMAND_CHORD_ID_PREFIX, s as commandChordShortcuts, r as isChordShortcut, i as normalizeChord, c as withCommandChords };
@@ -37,3 +37,5 @@ export { useShortcutHelp } from './useShortcutHelp';
37
37
  export { detectPlatform, isMac, normalizeKey, parseKeyCombo, matchesKeyCombo, formatKeyCombo, normalizePlatformCombo, shouldIgnoreShortcut, getShortcutLabel, getDisplayKeysForPlatform, isMobileDevice, isTabletDevice, } from './utils';
38
38
  export { createGlobalShortcuts, getGlobalShortcutsByCategory, mergeShortcuts, GLOBAL_SHORTCUT_CATEGORIES, } from './globalShortcuts';
39
39
  export type { GlobalShortcutsConfig, GlobalShortcutHandlers } from './globalShortcuts';
40
+ export { commandChordShortcuts, withCommandChords, isChordShortcut, normalizeChord, COMMAND_CHORD_ID_PREFIX, } from './commandChords';
41
+ export type { CommandChordSource, CommandChordOptions } from './commandChords';
@@ -161,5 +161,8 @@ function p(t) {
161
161
  }
162
162
  return f(r);
163
163
  }
164
+ function m(e) {
165
+ return e.includes(" ") && !e.includes("+");
166
+ }
164
167
  //#endregion
165
- export { e as detectPlatform, l as formatKeyCombo, p as getDisplayKeysForPlatform, f as getShortcutLabel, i as isMac, t as isMobileDevice, n as isTabletDevice, c as matchesKeyCombo, a as normalizeKey, u as normalizePlatformCombo, o as parseKeyCombo, r as shouldEnableKeyboardShortcuts, d as shouldIgnoreShortcut };
168
+ export { e as detectPlatform, l as formatKeyCombo, p as getDisplayKeysForPlatform, f as getShortcutLabel, m as isKeySequence, i as isMac, t as isMobileDevice, n as isTabletDevice, c as matchesKeyCombo, a as normalizeKey, u as normalizePlatformCombo, o as parseKeyCombo, r as shouldEnableKeyboardShortcuts, d as shouldIgnoreShortcut };
@@ -17,32 +17,33 @@ import { useExclusiveMenu as P } from "./shared/hooks/useExclusiveMenu.js";
17
17
  import { useLocalStorage as F } from "./shared/hooks/useLocalStorage.js";
18
18
  import { useSessionStorage as I } from "./shared/hooks/useSessionStorage.js";
19
19
  import { usePrevious as L, usePreviousDistinct as R, usePreviousHistory as z } from "./shared/hooks/usePrevious.js";
20
- import { useConditionalToggle as B, useToggle as V, useToggleObject as te } from "./shared/hooks/useToggle.js";
21
- import { usePagination as H } from "./shared/hooks/usePagination.js";
22
- import { useAsync as U, useAsyncImmediate as W } from "./shared/hooks/useAsync.js";
23
- import { MODIFIER_KEYS as G, PLATFORM_TYPES as K } from "./shared/keyboard/types.js";
20
+ import { useConditionalToggle as B, useToggle as V, useToggleObject as H } from "./shared/hooks/useToggle.js";
21
+ import { usePagination as U } from "./shared/hooks/usePagination.js";
22
+ import { useAsync as W, useAsyncImmediate as G } from "./shared/hooks/useAsync.js";
23
+ import { MODIFIER_KEYS as te, PLATFORM_TYPES as K } from "./shared/keyboard/types.js";
24
24
  import { useKeyboardShortcuts as q } from "./shared/keyboard/useKeyboardShortcuts.js";
25
25
  import { useHotkeys as J } from "./shared/keyboard/useHotkeys.js";
26
26
  import { useShortcutHelp as Y } from "./shared/keyboard/useShortcutHelp.js";
27
27
  import { GLOBAL_SHORTCUT_CATEGORIES as X, createGlobalShortcuts as Z, getGlobalShortcutsByCategory as Q, mergeShortcuts as ne } from "./shared/keyboard/globalShortcuts.js";
28
+ import { COMMAND_CHORD_ID_PREFIX as re, commandChordShortcuts as ie, isChordShortcut as ae, normalizeChord as oe, withCommandChords as se } from "./shared/keyboard/commandChords.js";
28
29
  import "./shared-keyboard.js";
29
- import { useLogger as re } from "./shared/logger/useLogger.js";
30
+ import { useLogger as ce } from "./shared/logger/useLogger.js";
30
31
  import "./shared-logger.js";
31
- import { useHasAnimated as ie } from "./shared/hooks/useHasAnimated.js";
32
- import { useReferralAttribution as ae } from "./shared/hooks/useReferralAttribution.js";
33
- import { useRecordProductVisit as oe } from "./shared/hooks/useRecordProductVisit.js";
34
- import { usePushDeviceRegistration as se } from "./shared/hooks/usePushDeviceRegistration.js";
35
- import { QUOTA_EXHAUSTED_EVENT as ce, dispatchQuotaExhausted as le, useQuotaErrorToast as ue } from "./shared/hooks/useQuotaErrorToast.js";
36
- import { PLAN_USAGE_SNAPSHOT_EVENT as de, publishPlanUsageSnapshot as fe, useUpgradePrompt as pe } from "./shared/hooks/useUpgradePrompt.js";
37
- import { appendContextToPath as me, useCurrentContextSearchParams as he } from "./shared/hooks/useCurrentContextSearchParams.js";
38
- import { UNSAVED_CHANGE_LABEL_MAX as ge, listUnsavedChanges as _e, registerUnsavedChange as ve, unsavedChangesBlocking as ye, useUnsavedChanges as be } from "./shared/navigation/unsavedChanges.js";
39
- import xe, { use as Se } from "react";
32
+ import { useHasAnimated as le } from "./shared/hooks/useHasAnimated.js";
33
+ import { useReferralAttribution as ue } from "./shared/hooks/useReferralAttribution.js";
34
+ import { useRecordProductVisit as de } from "./shared/hooks/useRecordProductVisit.js";
35
+ import { usePushDeviceRegistration as fe } from "./shared/hooks/usePushDeviceRegistration.js";
36
+ import { QUOTA_EXHAUSTED_EVENT as pe, dispatchQuotaExhausted as me, useQuotaErrorToast as he } from "./shared/hooks/useQuotaErrorToast.js";
37
+ import { PLAN_USAGE_SNAPSHOT_EVENT as ge, publishPlanUsageSnapshot as _e, useUpgradePrompt as ve } from "./shared/hooks/useUpgradePrompt.js";
38
+ import { appendContextToPath as ye, useCurrentContextSearchParams as be } from "./shared/hooks/useCurrentContextSearchParams.js";
39
+ import { UNSAVED_CHANGE_LABEL_MAX as xe, listUnsavedChanges as Se, registerUnsavedChange as Ce, unsavedChangesBlocking as we, useUnsavedChanges as Te } from "./shared/navigation/unsavedChanges.js";
40
+ import Ee, { use as De } from "react";
40
41
  //#region src/shared/hooks/index.ts
41
- var $ = xe.createContext(null);
42
- function Ce() {
43
- let e = Se($);
42
+ var $ = Ee.createContext(null);
43
+ function Oe() {
44
+ let e = De($);
44
45
  if (!e) throw Error("useMicrofrontendContext must be used within a MicrofrontendProvider");
45
46
  return e;
46
47
  }
47
48
  //#endregion
48
- export { D as BREAKPOINTS, a as ConsoleTransport, X as GLOBAL_SHORTCUT_CATEGORIES, n as LogLevel, r as LogManager, ee as Logger, G as MODIFIER_KEYS, $ as MicrofrontendContext, de as PLAN_USAGE_SNAPSHOT_EVENT, K as PLATFORM_TYPES, s as PUSH_DEVICE_ID_STORAGE_KEY, ce as QUOTA_EXHAUSTED_EVENT, ge as UNSAVED_CHANGE_LABEL_MAX, me as appendContextToPath, Z as createGlobalShortcuts, f as detectPlatform, le as dispatchQuotaExhausted, p as formatKeyCombo, m as getDisplayKeysForPlatform, Q as getGlobalShortcutsByCategory, c as getOrCreatePushDeviceId, h as getShortcutLabel, g as isMac, _ as isMobileDevice, v as isTabletDevice, _e as listUnsavedChanges, i as logManager, y as matchesKeyCombo, ne as mergeShortcuts, b as normalizeKey, x as normalizePlatformCombo, S as parseKeyCombo, fe as publishPlanUsageSnapshot, l as registerPushDevice, ve as registerUnsavedChange, C as shouldEnableKeyboardShortcuts, w as shouldIgnoreShortcut, u as unregisterPushDevice, ye as unsavedChangesBlocking, U as useAsync, W as useAsyncImmediate, O as useBreakpoint, B as useConditionalToggle, e as useCopyToClipboard, he as useCurrentContextSearchParams, T as useDebounce, P as useExclusiveMenu, ie as useHasAnimated, J as useHotkeys, M as useKeyPress, N as useKeyboardShortcut, q as useKeyboardShortcuts, F as useLocalStorage, re as useLogger, t as useMediaQuery, Ce as useMicrofrontendContext, k as useMobileBreakpoint, A as useOnClickOutside, j as useOnClickOutsideWithRef, d as usePWA, H as usePagination, L as usePrevious, R as usePreviousDistinct, z as usePreviousHistory, se as usePushDeviceRegistration, ue as useQuotaErrorToast, oe as useRecordProductVisit, ae as useReferralAttribution, o as useReturnFocus, I as useSessionStorage, Y as useShortcutHelp, E as useThrottle, V as useToggle, te as useToggleObject, be as useUnsavedChanges, pe as useUpgradePrompt };
49
+ export { D as BREAKPOINTS, re as COMMAND_CHORD_ID_PREFIX, a as ConsoleTransport, X as GLOBAL_SHORTCUT_CATEGORIES, n as LogLevel, r as LogManager, ee as Logger, te as MODIFIER_KEYS, $ as MicrofrontendContext, ge as PLAN_USAGE_SNAPSHOT_EVENT, K as PLATFORM_TYPES, s as PUSH_DEVICE_ID_STORAGE_KEY, pe as QUOTA_EXHAUSTED_EVENT, xe as UNSAVED_CHANGE_LABEL_MAX, ye as appendContextToPath, ie as commandChordShortcuts, Z as createGlobalShortcuts, f as detectPlatform, me as dispatchQuotaExhausted, p as formatKeyCombo, m as getDisplayKeysForPlatform, Q as getGlobalShortcutsByCategory, c as getOrCreatePushDeviceId, h as getShortcutLabel, ae as isChordShortcut, g as isMac, _ as isMobileDevice, v as isTabletDevice, Se as listUnsavedChanges, i as logManager, y as matchesKeyCombo, ne as mergeShortcuts, oe as normalizeChord, b as normalizeKey, x as normalizePlatformCombo, S as parseKeyCombo, _e as publishPlanUsageSnapshot, l as registerPushDevice, Ce as registerUnsavedChange, C as shouldEnableKeyboardShortcuts, w as shouldIgnoreShortcut, u as unregisterPushDevice, we as unsavedChangesBlocking, W as useAsync, G as useAsyncImmediate, O as useBreakpoint, B as useConditionalToggle, e as useCopyToClipboard, be as useCurrentContextSearchParams, T as useDebounce, P as useExclusiveMenu, le as useHasAnimated, J as useHotkeys, M as useKeyPress, N as useKeyboardShortcut, q as useKeyboardShortcuts, F as useLocalStorage, ce as useLogger, t as useMediaQuery, Oe as useMicrofrontendContext, k as useMobileBreakpoint, A as useOnClickOutside, j as useOnClickOutsideWithRef, d as usePWA, U as usePagination, L as usePrevious, R as usePreviousDistinct, z as usePreviousHistory, fe as usePushDeviceRegistration, he as useQuotaErrorToast, de as useRecordProductVisit, ue as useReferralAttribution, o as useReturnFocus, I as useSessionStorage, Y as useShortcutHelp, E as useThrottle, V as useToggle, H as useToggleObject, Te as useUnsavedChanges, ve as useUpgradePrompt, se as withCommandChords };
@@ -4,4 +4,5 @@ import { useKeyboardShortcut as h, useKeyboardShortcuts as g } from "./shared/ke
4
4
  import { useHotkeys as _ } from "./shared/keyboard/useHotkeys.js";
5
5
  import { useShortcutHelp as v } from "./shared/keyboard/useShortcutHelp.js";
6
6
  import { GLOBAL_SHORTCUT_CATEGORIES as y, createGlobalShortcuts as b, getGlobalShortcutsByCategory as x, mergeShortcuts as S } from "./shared/keyboard/globalShortcuts.js";
7
- export { y as GLOBAL_SHORTCUT_CATEGORIES, p as MODIFIER_KEYS, m as PLATFORM_TYPES, b as createGlobalShortcuts, e as detectPlatform, t as formatKeyCombo, n as getDisplayKeysForPlatform, x as getGlobalShortcutsByCategory, r as getShortcutLabel, i as isMac, a as isMobileDevice, o as isTabletDevice, s as matchesKeyCombo, S as mergeShortcuts, c as normalizeKey, l as normalizePlatformCombo, u as parseKeyCombo, d as shouldEnableKeyboardShortcuts, f as shouldIgnoreShortcut, _ as useHotkeys, h as useKeyboardShortcut, g as useKeyboardShortcuts, v as useShortcutHelp };
7
+ import { COMMAND_CHORD_ID_PREFIX as C, commandChordShortcuts as w, isChordShortcut as T, normalizeChord as E, withCommandChords as D } from "./shared/keyboard/commandChords.js";
8
+ export { C as COMMAND_CHORD_ID_PREFIX, y as GLOBAL_SHORTCUT_CATEGORIES, p as MODIFIER_KEYS, m as PLATFORM_TYPES, w as commandChordShortcuts, b as createGlobalShortcuts, e as detectPlatform, t as formatKeyCombo, n as getDisplayKeysForPlatform, x as getGlobalShortcutsByCategory, r as getShortcutLabel, T as isChordShortcut, i as isMac, a as isMobileDevice, o as isTabletDevice, s as matchesKeyCombo, S as mergeShortcuts, E as normalizeChord, c as normalizeKey, l as normalizePlatformCombo, u as parseKeyCombo, d as shouldEnableKeyboardShortcuts, f as shouldIgnoreShortcut, _ as useHotkeys, h as useKeyboardShortcut, g as useKeyboardShortcuts, v as useShortcutHelp, D as withCommandChords };
package/dist/shared.js CHANGED
@@ -119,36 +119,37 @@ import { useKeyboardShortcuts as ko } from "./shared/keyboard/useKeyboardShortcu
119
119
  import { useHotkeys as Ao } from "./shared/keyboard/useHotkeys.js";
120
120
  import { useShortcutHelp as jo } from "./shared/keyboard/useShortcutHelp.js";
121
121
  import { GLOBAL_SHORTCUT_CATEGORIES as Mo, createGlobalShortcuts as No, getGlobalShortcutsByCategory as Po, mergeShortcuts as Fo } from "./shared/keyboard/globalShortcuts.js";
122
- import { useLogger as Io } from "./shared/logger/useLogger.js";
123
- import { useHasAnimated as Lo } from "./shared/hooks/useHasAnimated.js";
124
- import { useReferralAttribution as Ro } from "./shared/hooks/useReferralAttribution.js";
125
- import { useRecordProductVisit as zo } from "./shared/hooks/useRecordProductVisit.js";
126
- import { usePushDeviceRegistration as Bo } from "./shared/hooks/usePushDeviceRegistration.js";
127
- import { QUOTA_EXHAUSTED_EVENT as Vo, dispatchQuotaExhausted as Ho, useQuotaErrorToast as Uo } from "./shared/hooks/useQuotaErrorToast.js";
128
- import { PLAN_USAGE_SNAPSHOT_EVENT as Wo, publishPlanUsageSnapshot as Go, useUpgradePrompt as Ko } from "./shared/hooks/useUpgradePrompt.js";
129
- import { appendContextToPath as qo, useCurrentContextSearchParams as Jo } from "./shared/hooks/useCurrentContextSearchParams.js";
130
- import { UNSAVED_CHANGE_LABEL_MAX as Yo, listUnsavedChanges as Xo, registerUnsavedChange as Zo, unsavedChangesBlocking as Qo, useUnsavedChanges as $o } from "./shared/navigation/unsavedChanges.js";
131
- import { MicrofrontendContext as es, useMicrofrontendContext as ts } from "./shared-hooks.js";
132
- import { withTourProgressStatus as ns } from "./shared/tours/progress.js";
133
- import { detectDeviceType as rs, getResponsiveSelector as is } from "./shared/tours/types.js";
134
- import { useTourPlayer as as } from "./shared/tours/useTourPlayer.js";
135
- import { TourSpotlight as os } from "./shared/tours/TourSpotlight.js";
136
- import { TourTooltip as ss } from "./shared/tours/TourTooltip.js";
137
- import { TourPlayerProvider as cs, useIsTourPlaying as ls, useStartTour as us, useStopTour as ds, useTourPlayerContext as fs } from "./shared/tours/TourPlayerProvider.js";
138
- import { TourPlayer as ps, TourTriggerButton as ms, usePlayTour as hs } from "./shared/tours/TourPlayer.js";
139
- import { BIGCONSOLE_TOUR_ROUTE_CATALOG as gs, BUILDMYIQ_TOUR_ROUTE_CATALOG as _s, BUILT_IN_TOUR_ROUTE_CATALOGS as vs, COLLABKIN_TOUR_ROUTE_CATALOG as ys, FLUIDGRIDS_TOUR_ROUTE_CATALOG as bs, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as xs, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as Ss, VIBECONTROLS_TOUR_ROUTE_CATALOG as Cs, getBuiltInTourRouteCatalog as ws, listBuiltInTourRouteCatalogProductIds as Ts } from "./shared/tours/catalogs.js";
140
- import { createTourPageIdResolver as Es, getTourContextRank as Ds, getTourRouteCatalog as Os, getTourRouteCatalogVersion as ks, getTourRouteModules as As, getTourRoutePages as js, hasRegisteredTourRouteCatalog as Ms, isTourVisibleForContext as Ns, normalizeTourPath as Ps, registerTourRouteCatalog as Fs, resolveTourTargetPath as Is, subscribeTourRouteCatalogs as Ls } from "./shared/tours/routeCatalog.js";
141
- import { ToursProvider as Rs, useAutoStartTour as zs, useSafeToursContext as Bs, useTours as Vs, useToursContext as Hs } from "./shared/tours/ToursContext.js";
142
- import { TourInitializer as Us } from "./shared/tours/TourInitializer.js";
143
- import { useRegisterTourRouteCatalog as Ws, useTourRouteCatalog as Gs } from "./shared/tours/useTourRouteCatalog.js";
144
- import { AppShellProvider as Ks, resolveAppShellObservabilityConfig as qs } from "./shared/providers/AppShellProvider.js";
145
- import { MicrofrontendProvider as Js } from "./shared-providers.js";
146
- import { TourTrigger as Ys } from "./shared/tours/TourTrigger.js";
122
+ import { COMMAND_CHORD_ID_PREFIX as Io, commandChordShortcuts as Lo, isChordShortcut as Ro, normalizeChord as zo, withCommandChords as Bo } from "./shared/keyboard/commandChords.js";
123
+ import { useLogger as Vo } from "./shared/logger/useLogger.js";
124
+ import { useHasAnimated as Ho } from "./shared/hooks/useHasAnimated.js";
125
+ import { useReferralAttribution as Uo } from "./shared/hooks/useReferralAttribution.js";
126
+ import { useRecordProductVisit as Wo } from "./shared/hooks/useRecordProductVisit.js";
127
+ import { usePushDeviceRegistration as Go } from "./shared/hooks/usePushDeviceRegistration.js";
128
+ import { QUOTA_EXHAUSTED_EVENT as Ko, dispatchQuotaExhausted as qo, useQuotaErrorToast as Jo } from "./shared/hooks/useQuotaErrorToast.js";
129
+ import { PLAN_USAGE_SNAPSHOT_EVENT as Yo, publishPlanUsageSnapshot as Xo, useUpgradePrompt as Zo } from "./shared/hooks/useUpgradePrompt.js";
130
+ import { appendContextToPath as Qo, useCurrentContextSearchParams as $o } from "./shared/hooks/useCurrentContextSearchParams.js";
131
+ import { UNSAVED_CHANGE_LABEL_MAX as es, listUnsavedChanges as ts, registerUnsavedChange as ns, unsavedChangesBlocking as rs, useUnsavedChanges as is } from "./shared/navigation/unsavedChanges.js";
132
+ import { MicrofrontendContext as as, useMicrofrontendContext as os } from "./shared-hooks.js";
133
+ import { withTourProgressStatus as ss } from "./shared/tours/progress.js";
134
+ import { detectDeviceType as cs, getResponsiveSelector as ls } from "./shared/tours/types.js";
135
+ import { useTourPlayer as us } from "./shared/tours/useTourPlayer.js";
136
+ import { TourSpotlight as ds } from "./shared/tours/TourSpotlight.js";
137
+ import { TourTooltip as fs } from "./shared/tours/TourTooltip.js";
138
+ import { TourPlayerProvider as ps, useIsTourPlaying as ms, useStartTour as hs, useStopTour as gs, useTourPlayerContext as _s } from "./shared/tours/TourPlayerProvider.js";
139
+ import { TourPlayer as vs, TourTriggerButton as ys, usePlayTour as bs } from "./shared/tours/TourPlayer.js";
140
+ import { BIGCONSOLE_TOUR_ROUTE_CATALOG as xs, BUILDMYIQ_TOUR_ROUTE_CATALOG as Ss, BUILT_IN_TOUR_ROUTE_CATALOGS as Cs, COLLABKIN_TOUR_ROUTE_CATALOG as ws, FLUIDGRIDS_TOUR_ROUTE_CATALOG as Ts, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as Es, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as Ds, VIBECONTROLS_TOUR_ROUTE_CATALOG as Os, getBuiltInTourRouteCatalog as ks, listBuiltInTourRouteCatalogProductIds as As } from "./shared/tours/catalogs.js";
141
+ import { createTourPageIdResolver as js, getTourContextRank as Ms, getTourRouteCatalog as Ns, getTourRouteCatalogVersion as Ps, getTourRouteModules as Fs, getTourRoutePages as Is, hasRegisteredTourRouteCatalog as Ls, isTourVisibleForContext as Rs, normalizeTourPath as zs, registerTourRouteCatalog as Bs, resolveTourTargetPath as Vs, subscribeTourRouteCatalogs as Hs } from "./shared/tours/routeCatalog.js";
142
+ import { ToursProvider as Us, useAutoStartTour as Ws, useSafeToursContext as Gs, useTours as Ks, useToursContext as qs } from "./shared/tours/ToursContext.js";
143
+ import { TourInitializer as Js } from "./shared/tours/TourInitializer.js";
144
+ import { useRegisterTourRouteCatalog as Ys, useTourRouteCatalog as Xs } from "./shared/tours/useTourRouteCatalog.js";
145
+ import { AppShellProvider as Zs, resolveAppShellObservabilityConfig as Qs } from "./shared/providers/AppShellProvider.js";
146
+ import { MicrofrontendProvider as $s } from "./shared-providers.js";
147
+ import { TourTrigger as ec } from "./shared/tours/TourTrigger.js";
147
148
  import "./shared-tours.js";
148
- import { acknowledgeNativePurchase as Xs, getNativeProducts as Zs, getNativePurchases as Qs, installNativeIAP as $s, isNativeIAPAvailable as ec, purchaseNativeProduct as tc, restoreNativePurchases as nc } from "./shared/native/purchases.js";
149
+ import { acknowledgeNativePurchase as tc, getNativeProducts as nc, getNativePurchases as rc, installNativeIAP as ic, isNativeIAPAvailable as ac, purchaseNativeProduct as oc, restoreNativePurchases as sc } from "./shared/native/purchases.js";
149
150
  import "./shared-native.js";
150
151
  import "./shared/actors/index.js";
151
152
  //#region src/shared/index.ts
152
- var rc = "1.0.0";
153
+ var cc = "1.0.0";
153
154
  //#endregion
154
- export { wa as ASSISTANT_WIDGET_TOGGLE_EVENT, gi as AccessDenied, $r as ActorIdentity, Ka as AnalyticsConsentBanner, tn as ApolloClient, nn as ApolloProvider, Ei as AppErrorBoundary, rr as AppInitializer, Ks as AppShellProvider, Ta as AssistantWidget, Ct as BACKEND_ERROR_EVENT, gs as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, so as BREAKPOINTS, _s as BUILDMYIQ_TOUR_ROUTE_CATALOG, vs as BUILT_IN_TOUR_ROUTE_CATALOGS, Ua as BackendAuditSink, Ha as BroadcastChannelSink, Je as CANONICAL_DOCS_HOSTS, m as CHART_SERIES_COUNT, ys as COLLABKIN_TOUR_ROUTE_CATALOG, rt as COMMON_SHELL_LESS_ROUTES, wt as CONNECTION_STATUS_EVENT, qa as CONSENT_BANNER_OFFSET_VAR, Ci as ConditionalShell, ur as ConsoleTransport, Fi as ContextConversationWidget, h as DATA_TYPES, lt as DEFAULT_PAGE_SIZE, ta as DEFAULT_QUOTA_UPGRADE_COPY, it as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, za as DesktopUpdateToast, Va as DevtoolsSink, da as DocsLink, g as EDGE_KINDS, ui as ErrorBoundary, vi as ErrorFallback, eo as EventBusProvider, rc as FE_SHARED_VERSION, Ba as FLUIDGRIDS_RYBBIT_EVENTS, bs as FLUIDGRIDS_TOUR_ROUTE_CATALOG, Di as FeatureFlagProvider, Pi as FeatureGate, ut as GATEWAYS, Mo as GLOBAL_SHORTCUT_CATEGORIES, qt as GatewayProvider, Tr as INLINE_ENCODE, xs as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, rn as InMemoryCache, Yi as KeyboardHelpDialogWrapper, ya as LandingGateView, ba as LandingOrDashboardRedirect, yi as LoadingFallback, or as LogLevel, cr as LogManager, sr as Logger, Rr as MAIN_CONTENT_ID, Ss as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, Do as MODIFIER_KEYS, zr as MainLandmark, Ea as Markdown, es as MicrofrontendContext, Si as MicrofrontendErrorBoundary, Js as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, $a as OtelBrowserSink, Wo as PLAN_USAGE_SNAPSHOT_EVENT, Oo as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, fa as PUBLIC_PRODUCT_DOCS_URL_QUERY, Jr as PULL_TO_REFRESH_THRESHOLD, oi as PUSH_DEVICE_ID_STORAGE_KEY, Ti as PWAInstallBanner, bi as PageLoadingFallback, pi as PermissionButton, _i as PermissionDenied, mi as PermissionGate, hi as PermissionLink, Br as PublicLayout, gr as QUOTA_EXHAUSTED_CODE, Vo as QUOTA_EXHAUSTED_EVENT, Xi as QuotaMeter, na as QuotaUpgradeBridge, _r as RESOURCE_CAP_EXCEEDED_CODE, di as RequireAuth, fi as RequireGuest, Ja as RybbitSink, Vt as SSELink, zn as SSORedirectSpinner, Gn as SSO_DEPOSITED_PARAM, vr as STORAGE_QUOTA_EXCEEDED_CODE, Wr as SafeAreaView, xi as SectionLoadingFallback, Vr as SkipToContentLink, Us as TourInitializer, ps as TourPlayer, cs as TourPlayerProvider, os as TourSpotlight, ss as TourTooltip, Ys as TourTrigger, ms as TourTriggerButton, Rs as ToursProvider, Yo as UNSAVED_CHANGE_LABEL_MAX, yr as UPGRADE_ERROR_CODES, Zi as UPGRADE_PROMPT_EVENT, ea as UpgradeInlineBanner, Qi as UpgradePromptModal, Cs as VIBECONTROLS_TOUR_ROUTE_CATALOG, gt as WORKSPACE_CONTEXT_CHANGED, _t as WORKSPACE_CONTEXT_MISMATCH_EVENT, vt as WORKSPACE_WRITE_REFUSED_EVENT, yt as WORKSPACE_WRITE_REFUSED_MESSAGE, bt as WorkspaceContextChangedError, $t as WsLink, Xs as acknowledgeNativePurchase, r as alertTokens, qo as appendContextToPath, Fn as assignLocationWithAllowlist, dn as attemptTokenRefresh, Kn as beginSsoNavigation, re as bootDesktopShell, ei as buildActorFallback, Ye as buildProductDocsUrl, br as buildQuotaExhaustedMessage, qn as buildSsoDepositUrl, Xe as canonicalizeDocsOrigin, j as capitalizeFirst, M as capitalizeWords, ra as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, Bn as checkRemoteSLO, Vn as checkSLO, ia as claimQuotaDialog, fn as clearAuthSessionStorage, Mt as clearGraphqlFetchResponseCache, Hn as clearLocalAuthState, _n as clearSSoCookie, vn as clearShellSsoCookies, Jn as clearSsoDepositState, Yn as clearSsoNavigation, dr as clearUserContext, Or as cn, Wa as compileRybbitRoutePattern, Yr as computePullOffset, Xr as computePullProgress, Xn as consumeSsoDepositMarker, n as createApolloClient, to as createEventBus, No as createGlobalShortcuts, Ht as createGraphQLClient, mr as createProfileScopedStorage, Es 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, rs as detectDeviceType, Ii as detectPlatform, Tt as dispatchBackendErrorEvent, aa as dispatchProductQuotaExhausted, Ho as dispatchQuotaExhausted, $i as dispatchUpgradePrompt, Er as downscaleImage, C as edgeColor, Fe as emitProductSlug, Et as extractBackendError, xr as extractQuotaExhaustedExtensions, Sr as extractUpgradeErrorExtensions, pa as fetchRegistryDocsUrl, He as findProductConfig, Hr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, Li as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, ws as getBuiltInTourRouteCatalog, $ as getCapacitorPlatform, Ze 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, Ri as getDisplayKeysForPlatform, dt as getGatewayConfig, ft as getGatewayUrl, Ut as getGlobalClient, Po as getGlobalShortcutsByCategory, pt as getGraphQLEndpoint, be as getLegacyDesktopRuntime, Tn as getNativeBridge, _a as getNativeEntryRoutes, Zs as getNativeProducts, Qs as getNativePurchases, si as getOrCreatePushDeviceId, En as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, hr as getProfileScopedKey, s as getProgressTokens, ni as getPushOptInController, is as getResponsiveSelector, Un as getSSORedirectUrl, yn as getSSoCookie, at as getShellConfig, zi as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, Nt as getStoredAuthToken, Pt as getStoredLocale, Ft as getStoredOrganizationId, It as getStoredProjectId, Lt as getStoredWorkspaceId, Rt as getStoredWorkspaceToken, Ds as getTourContextRank, Os as getTourRouteCatalog, ks as getTourRouteCatalogVersion, As as getTourRouteModules, js as getTourRoutePages, u as getTrendTokens, Wt as getWorkspaceClient, mt as getWorkspaceTokenPayload, an as gql, zt as graphqlFetch, pn as hasAuthGraphQLErrors, Ms as hasRegisteredTourRouteCatalog, xa as hasStoredValidSession, Gt as initializeAppClients, fr as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, $s as installNativeIAP, Dt as isAbortError, In as isAllowedRedirectUrl, Ge as isAlphaAppShell, Dn as isAndroid, mn as isAuthGraphQLError, hn as isAuthNetworkError, Ot as isBackendErrorDisplay, ee as isCapacitorNative, Z as isChunkLoadError, Ce as isDesktop, On as isElectron, kn as isIOS, An as isInstalledApp, Bi as isMac, Vi as isMobileDevice, jn as isNative, ec as isNativeIAPAvailable, Cr as isQuotaExhaustedError, Ga as isRybbitSkippedRoute, Ie as isSameProductSlug, bn as isSharedSsoCookieDomain, ot as isShellLessRoute, Zn as isSsoNavigationPending, Mn as isStandalonePWA, Hi as isTabletDevice, Ns as isTourVisibleForContext, kt as isTransportError, xn as isTrustedSsoOrigin, wr as isUpgradeError, Nn as isWeb, Pn as isWebBrowser, xt as isWorkspaceContextChangedError, ht as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, Ts as listBuiltInTourRouteCatalogProductIds, Xo as listUnsavedChanges, lr as logManager, At as markConnectionHealthy, Qn as markSsoDepositDone, $n as markSsoDepositPending, Ui as matchesKeyCombo, Fo as mergeShortcuts, er as mintSsoSessionTokens, kr as nativeActionSheet, Ar as nativeConfirm, jr as nativeCopyText, Mr as nativeImpact, Nr as nativeNotify, Pr as nativeOpenUrl, Fr as nativeSelection, Ir as nativeShare, Lr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, Qe as normalizeDocsPath, Wi as normalizeKey, Gi as normalizePlatformCombo, Re as normalizeProductSlug, Ps as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, Ln as openUrlInNewTabWithAllowlist, Ki as parseKeyCombo, K as pluralize, en as prepareWorkspaceRequest, d as progressTokens, Ya as publishConsentBannerOffset, Go as publishPlanUsageSnapshot, tc as purchaseNativeProduct, oa as quotaEventKind, Xa as readAnalyticsConsent, Za as readAnalyticsConsentChoice, St as readContextInputWorkspaceId, Gr as readInitialNetworkStatus, ma as readRegistryDocsUrl, Sn as readShellSsoCookie, tr as readSsoDepositState, ri as recordPushPermissionPromptDismissed, gn as redirectToLogin, Wn as redirectToSSO, Kr as reduceNetworkStatus, Ee as registerDesktopNavigator, ci as registerPushDevice, ii as registerPushOptInController, Fs as registerTourRouteCatalog, Zo as registerUnsavedChange, Rn as replaceLocationWithAllowlist, Kt as resetAppClients, Pa as resolveActionSheetOutcome, qs as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, $e as resolveDocsEnvironment, ke as resolveGatewayBases, Bt as resolveGatewayUrl, De as resolveGatewayUrls, Sa as resolveLandingGate, et as resolveProductDocsOrigin, sa as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, Is as resolveTourTargetPath, nc as restoreNativePurchases, Dr as selectInlineBase64, Qa as setAnalyticsConsent, Cn as setSSoCookie, wn as setShellSsoCookies, pr as setUserContext, nr as shouldAttemptSsoDeposit, qi as shouldEnableKeyboardShortcuts, Ji as shouldIgnoreShortcut, ai as shouldPromptForPushPermission, st as shouldShowBreadcrumb, va as shouldShowNativeWelcome, ct as shouldShowSidebar, jt as shouldToastBackendError, q as slugify, f as statusTokens, Ls as subscribeTourRouteCatalogs, Ae as suppressConsole, Ke as toAlphaAppUrl, J as toCamelCase, qe as toCurrentEstateAppUrl, k as toDataType, tt as toEnvironmentDocsOrigin, A as toNodeCategory, Y as toPascalCase, nt as toTrustedDocsOrigin, p as trendTokens, X as truncateText, li as unregisterPushDevice, Qo as unsavedChangesBlocking, Fa as useActionSheet, ti as useActorProfiles, on as useApolloClient, Aa as useAppState, To as useAsync, Eo as useAsyncImmediate, zs as useAutoStartTour, co as useBreakpoint, xo as useConditionalToggle, e as useCopyToClipboard, Jo as useCurrentContextSearchParams, ao as useDebounce, Ia as useDesktop, La as useDesktopUpdateState, Ra as useDesktopWindowState, ja as useDeviceInfo, no as useEvent, ro as useEventBus, io as useEventEmitter, ho as useExclusiveMenu, Ai as useFeatureFlag, ji as useFeatureFlagDetails, Mi as useFeatureFlagValue, Oi as useFeatureFlags, Jt as useGateway, Yt as useGatewayClient, Ma as useHaptics, Lo as useHasAnimated, Qt as useHasAuthToken, Ao as useHotkeys, Ur as useInsideMainLandmark, ls as useIsTourPlaying, po as useKeyPress, mo as useKeyboardShortcut, ko as useKeyboardShortcuts, sn as useLazyQuery, go as useLocalStorage, Io as useLogger, t as useMediaQuery, ts as useMicrofrontendContext, lo as useMobileBreakpoint, cn as useMutation, ka as useNativeKeyboard, Da as useNativePlatform, qr as useNetworkStatus, uo as useOnClickOutside, fo as useOnClickOutsideWithRef, Ni as useOptionalFeatureFlag, ki as useOptionalFeatureFlags, wi as usePWA, wo as usePagination, hs as usePlayTour, vo as usePrevious, yo as usePreviousDistinct, bo as usePreviousHistory, ha as useProductDocsOrigin, ga as useProductDocsUrl, Zr as usePullToRefresh, Bo as usePushDeviceRegistration, ln as useQuery, ca as useQuotaDialogOwnership, Uo as useQuotaErrorToast, la as useQuotaUpgradeBridge, zo as useRecordProductVisit, Ro as useReferralAttribution, Ws as useRegisterTourRouteCatalog, ir as useRegistryHelpers, Qr as useReturnFocus, Oa as useSafeArea, Xt as useSafeGateway, Zt as useSafeGatewayClient, Bs as useSafeToursContext, _o as useSessionStorage, ar as useShellNavigate, jo as useShortcutHelp, us as useStartTour, Na as useStatusBar, ds as useStopTour, un as useSubscription, oo as useThrottle, So as useToggle, Co as useToggleObject, as as useTourPlayer, fs as useTourPlayerContext, Gs as useTourRouteCatalog, Vs as useTours, Hs as useToursContext, $o as useUnsavedChanges, Ko as useUpgradePrompt, Ca as useVoiceInput, ua as withQuotaDialogOwnership, ns as withTourProgressStatus };
155
+ export { wa as ASSISTANT_WIDGET_TOGGLE_EVENT, gi as AccessDenied, $r as ActorIdentity, Ka as AnalyticsConsentBanner, tn as ApolloClient, nn as ApolloProvider, Ei as AppErrorBoundary, rr as AppInitializer, Zs as AppShellProvider, Ta as AssistantWidget, Ct as BACKEND_ERROR_EVENT, xs as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, so as BREAKPOINTS, Ss as BUILDMYIQ_TOUR_ROUTE_CATALOG, Cs as BUILT_IN_TOUR_ROUTE_CATALOGS, Ua as BackendAuditSink, Ha as BroadcastChannelSink, Je as CANONICAL_DOCS_HOSTS, m as CHART_SERIES_COUNT, ws as COLLABKIN_TOUR_ROUTE_CATALOG, Io as COMMAND_CHORD_ID_PREFIX, rt as COMMON_SHELL_LESS_ROUTES, wt as CONNECTION_STATUS_EVENT, qa as CONSENT_BANNER_OFFSET_VAR, Ci as ConditionalShell, ur as ConsoleTransport, Fi as ContextConversationWidget, h as DATA_TYPES, lt as DEFAULT_PAGE_SIZE, ta as DEFAULT_QUOTA_UPGRADE_COPY, it as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, za as DesktopUpdateToast, Va as DevtoolsSink, da as DocsLink, g as EDGE_KINDS, ui as ErrorBoundary, vi as ErrorFallback, eo as EventBusProvider, cc as FE_SHARED_VERSION, Ba as FLUIDGRIDS_RYBBIT_EVENTS, Ts as FLUIDGRIDS_TOUR_ROUTE_CATALOG, Di as FeatureFlagProvider, Pi as FeatureGate, ut as GATEWAYS, Mo as GLOBAL_SHORTCUT_CATEGORIES, qt as GatewayProvider, Tr as INLINE_ENCODE, Es as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, rn as InMemoryCache, Yi as KeyboardHelpDialogWrapper, ya as LandingGateView, ba as LandingOrDashboardRedirect, yi as LoadingFallback, or as LogLevel, cr as LogManager, sr as Logger, Rr as MAIN_CONTENT_ID, Ds as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, Do as MODIFIER_KEYS, zr as MainLandmark, Ea as Markdown, as as MicrofrontendContext, Si as MicrofrontendErrorBoundary, $s as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, $a as OtelBrowserSink, Yo as PLAN_USAGE_SNAPSHOT_EVENT, Oo as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, fa as PUBLIC_PRODUCT_DOCS_URL_QUERY, Jr as PULL_TO_REFRESH_THRESHOLD, oi as PUSH_DEVICE_ID_STORAGE_KEY, Ti as PWAInstallBanner, bi as PageLoadingFallback, pi as PermissionButton, _i as PermissionDenied, mi as PermissionGate, hi as PermissionLink, Br as PublicLayout, gr as QUOTA_EXHAUSTED_CODE, Ko as QUOTA_EXHAUSTED_EVENT, Xi as QuotaMeter, na as QuotaUpgradeBridge, _r as RESOURCE_CAP_EXCEEDED_CODE, di as RequireAuth, fi as RequireGuest, Ja as RybbitSink, Vt as SSELink, zn as SSORedirectSpinner, Gn as SSO_DEPOSITED_PARAM, vr as STORAGE_QUOTA_EXCEEDED_CODE, Wr as SafeAreaView, xi as SectionLoadingFallback, Vr as SkipToContentLink, Js as TourInitializer, vs as TourPlayer, ps as TourPlayerProvider, ds as TourSpotlight, fs as TourTooltip, ec as TourTrigger, ys as TourTriggerButton, Us as ToursProvider, es as UNSAVED_CHANGE_LABEL_MAX, yr as UPGRADE_ERROR_CODES, Zi as UPGRADE_PROMPT_EVENT, ea as UpgradeInlineBanner, Qi as UpgradePromptModal, Os as VIBECONTROLS_TOUR_ROUTE_CATALOG, gt as WORKSPACE_CONTEXT_CHANGED, _t as WORKSPACE_CONTEXT_MISMATCH_EVENT, vt as WORKSPACE_WRITE_REFUSED_EVENT, yt as WORKSPACE_WRITE_REFUSED_MESSAGE, bt as WorkspaceContextChangedError, $t as WsLink, tc as acknowledgeNativePurchase, r as alertTokens, Qo as appendContextToPath, Fn as assignLocationWithAllowlist, dn as attemptTokenRefresh, Kn as beginSsoNavigation, re as bootDesktopShell, ei as buildActorFallback, Ye as buildProductDocsUrl, br as buildQuotaExhaustedMessage, qn as buildSsoDepositUrl, Xe as canonicalizeDocsOrigin, j as capitalizeFirst, M as capitalizeWords, ra as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, Bn as checkRemoteSLO, Vn as checkSLO, ia as claimQuotaDialog, fn as clearAuthSessionStorage, Mt as clearGraphqlFetchResponseCache, Hn as clearLocalAuthState, _n as clearSSoCookie, vn as clearShellSsoCookies, Jn as clearSsoDepositState, Yn as clearSsoNavigation, dr as clearUserContext, Or as cn, Lo as commandChordShortcuts, Wa as compileRybbitRoutePattern, Yr as computePullOffset, Xr as computePullProgress, Xn as consumeSsoDepositMarker, n as createApolloClient, to as createEventBus, No as createGlobalShortcuts, Ht as createGraphQLClient, mr as createProfileScopedStorage, js 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, cs as detectDeviceType, Ii as detectPlatform, Tt as dispatchBackendErrorEvent, aa as dispatchProductQuotaExhausted, qo as dispatchQuotaExhausted, $i as dispatchUpgradePrompt, Er as downscaleImage, C as edgeColor, Fe as emitProductSlug, Et as extractBackendError, xr as extractQuotaExhaustedExtensions, Sr as extractUpgradeErrorExtensions, pa as fetchRegistryDocsUrl, He as findProductConfig, Hr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, Li as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, ks as getBuiltInTourRouteCatalog, $ as getCapacitorPlatform, Ze 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, Ri as getDisplayKeysForPlatform, dt as getGatewayConfig, ft as getGatewayUrl, Ut as getGlobalClient, Po as getGlobalShortcutsByCategory, pt as getGraphQLEndpoint, be as getLegacyDesktopRuntime, Tn as getNativeBridge, _a as getNativeEntryRoutes, nc as getNativeProducts, rc as getNativePurchases, si as getOrCreatePushDeviceId, En as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, hr as getProfileScopedKey, s as getProgressTokens, ni as getPushOptInController, ls as getResponsiveSelector, Un as getSSORedirectUrl, yn as getSSoCookie, at as getShellConfig, zi as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, Nt as getStoredAuthToken, Pt as getStoredLocale, Ft as getStoredOrganizationId, It as getStoredProjectId, Lt as getStoredWorkspaceId, Rt as getStoredWorkspaceToken, Ms as getTourContextRank, Ns as getTourRouteCatalog, Ps as getTourRouteCatalogVersion, Fs as getTourRouteModules, Is as getTourRoutePages, u as getTrendTokens, Wt as getWorkspaceClient, mt as getWorkspaceTokenPayload, an as gql, zt as graphqlFetch, pn as hasAuthGraphQLErrors, Ls as hasRegisteredTourRouteCatalog, xa as hasStoredValidSession, Gt as initializeAppClients, fr as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, ic as installNativeIAP, Dt as isAbortError, In as isAllowedRedirectUrl, Ge as isAlphaAppShell, Dn as isAndroid, mn as isAuthGraphQLError, hn as isAuthNetworkError, Ot as isBackendErrorDisplay, ee as isCapacitorNative, Ro as isChordShortcut, Z as isChunkLoadError, Ce as isDesktop, On as isElectron, kn as isIOS, An as isInstalledApp, Bi as isMac, Vi as isMobileDevice, jn as isNative, ac as isNativeIAPAvailable, Cr as isQuotaExhaustedError, Ga as isRybbitSkippedRoute, Ie as isSameProductSlug, bn as isSharedSsoCookieDomain, ot as isShellLessRoute, Zn as isSsoNavigationPending, Mn as isStandalonePWA, Hi as isTabletDevice, Rs as isTourVisibleForContext, kt as isTransportError, xn as isTrustedSsoOrigin, wr as isUpgradeError, Nn as isWeb, Pn as isWebBrowser, xt as isWorkspaceContextChangedError, ht as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, As as listBuiltInTourRouteCatalogProductIds, ts as listUnsavedChanges, lr as logManager, At as markConnectionHealthy, Qn as markSsoDepositDone, $n as markSsoDepositPending, Ui as matchesKeyCombo, Fo as mergeShortcuts, er as mintSsoSessionTokens, kr as nativeActionSheet, Ar as nativeConfirm, jr as nativeCopyText, Mr as nativeImpact, Nr as nativeNotify, Pr as nativeOpenUrl, Fr as nativeSelection, Ir as nativeShare, Lr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, zo as normalizeChord, Qe as normalizeDocsPath, Wi as normalizeKey, Gi as normalizePlatformCombo, Re as normalizeProductSlug, zs as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, Ln as openUrlInNewTabWithAllowlist, Ki as parseKeyCombo, K as pluralize, en as prepareWorkspaceRequest, d as progressTokens, Ya as publishConsentBannerOffset, Xo as publishPlanUsageSnapshot, oc as purchaseNativeProduct, oa as quotaEventKind, Xa as readAnalyticsConsent, Za as readAnalyticsConsentChoice, St as readContextInputWorkspaceId, Gr as readInitialNetworkStatus, ma as readRegistryDocsUrl, Sn as readShellSsoCookie, tr as readSsoDepositState, ri as recordPushPermissionPromptDismissed, gn as redirectToLogin, Wn as redirectToSSO, Kr as reduceNetworkStatus, Ee as registerDesktopNavigator, ci as registerPushDevice, ii as registerPushOptInController, Bs as registerTourRouteCatalog, ns as registerUnsavedChange, Rn as replaceLocationWithAllowlist, Kt as resetAppClients, Pa as resolveActionSheetOutcome, Qs as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, $e as resolveDocsEnvironment, ke as resolveGatewayBases, Bt as resolveGatewayUrl, De as resolveGatewayUrls, Sa as resolveLandingGate, et as resolveProductDocsOrigin, sa as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, Vs as resolveTourTargetPath, sc as restoreNativePurchases, Dr as selectInlineBase64, Qa as setAnalyticsConsent, Cn as setSSoCookie, wn as setShellSsoCookies, pr as setUserContext, nr as shouldAttemptSsoDeposit, qi as shouldEnableKeyboardShortcuts, Ji as shouldIgnoreShortcut, ai as shouldPromptForPushPermission, st as shouldShowBreadcrumb, va as shouldShowNativeWelcome, ct as shouldShowSidebar, jt as shouldToastBackendError, q as slugify, f as statusTokens, Hs as subscribeTourRouteCatalogs, Ae as suppressConsole, Ke as toAlphaAppUrl, J as toCamelCase, qe as toCurrentEstateAppUrl, k as toDataType, tt as toEnvironmentDocsOrigin, A as toNodeCategory, Y as toPascalCase, nt as toTrustedDocsOrigin, p as trendTokens, X as truncateText, li as unregisterPushDevice, rs as unsavedChangesBlocking, Fa as useActionSheet, ti as useActorProfiles, on as useApolloClient, Aa as useAppState, To as useAsync, Eo as useAsyncImmediate, Ws as useAutoStartTour, co as useBreakpoint, xo as useConditionalToggle, e as useCopyToClipboard, $o as useCurrentContextSearchParams, ao as useDebounce, Ia as useDesktop, La as useDesktopUpdateState, Ra as useDesktopWindowState, ja as useDeviceInfo, no as useEvent, ro as useEventBus, io as useEventEmitter, ho as useExclusiveMenu, Ai as useFeatureFlag, ji as useFeatureFlagDetails, Mi as useFeatureFlagValue, Oi as useFeatureFlags, Jt as useGateway, Yt as useGatewayClient, Ma as useHaptics, Ho as useHasAnimated, Qt as useHasAuthToken, Ao as useHotkeys, Ur as useInsideMainLandmark, ms as useIsTourPlaying, po as useKeyPress, mo as useKeyboardShortcut, ko as useKeyboardShortcuts, sn as useLazyQuery, go as useLocalStorage, Vo as useLogger, t as useMediaQuery, os as useMicrofrontendContext, lo as useMobileBreakpoint, cn as useMutation, ka as useNativeKeyboard, Da as useNativePlatform, qr as useNetworkStatus, uo as useOnClickOutside, fo as useOnClickOutsideWithRef, Ni as useOptionalFeatureFlag, ki as useOptionalFeatureFlags, wi as usePWA, wo as usePagination, bs as usePlayTour, vo as usePrevious, yo as usePreviousDistinct, bo as usePreviousHistory, ha as useProductDocsOrigin, ga as useProductDocsUrl, Zr as usePullToRefresh, Go as usePushDeviceRegistration, ln as useQuery, ca as useQuotaDialogOwnership, Jo as useQuotaErrorToast, la as useQuotaUpgradeBridge, Wo as useRecordProductVisit, Uo as useReferralAttribution, Ys as useRegisterTourRouteCatalog, ir as useRegistryHelpers, Qr as useReturnFocus, Oa as useSafeArea, Xt as useSafeGateway, Zt as useSafeGatewayClient, Gs as useSafeToursContext, _o as useSessionStorage, ar as useShellNavigate, jo as useShortcutHelp, hs as useStartTour, Na as useStatusBar, gs as useStopTour, un as useSubscription, oo as useThrottle, So as useToggle, Co as useToggleObject, us as useTourPlayer, _s as useTourPlayerContext, Xs as useTourRouteCatalog, Ks as useTours, qs as useToursContext, is as useUnsavedChanges, Zo as useUpgradePrompt, Ca as useVoiceInput, Bo as withCommandChords, ua as withQuotaDialogOwnership, ss as withTourProgressStatus };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.1023.13",
3
+ "version": "2026.1023.15",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {