@burdenoff/fe-libs 2026.1024.1 → 2026.1024.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chrome/FooterBar.d.ts +1 -1
- package/dist/chrome/NativePageTransition.d.ts +1 -1
- package/dist/chrome/ProductPickerSheet.js +42 -42
- package/dist/chrome/ProductSwitcher.d.ts +8 -0
- package/dist/chrome/ProductSwitcher.js +83 -72
- package/dist/chrome/index.d.ts +9 -9
- package/dist/chrome/swipe/swipeMath.d.ts +1 -1
- package/dist/shared/assistant/api.d.ts +3 -3
- package/dist/shared/assistant/appControls/grammar.d.ts +21 -21
- package/dist/shared/assistant/appControls/languageReply.d.ts +1 -1
- package/dist/shared/assistant/appControls/names.d.ts +3 -3
- package/dist/shared/assistant/appControls/pageAdapters.d.ts +5 -5
- package/dist/shared/assistant/appControls/plan.d.ts +38 -38
- package/dist/shared/assistant/appControls/types.d.ts +15 -15
- package/dist/shared/assistant/appControls/useAssistantControl.d.ts +1 -1
- package/dist/shared/assistant/attachmentSources.d.ts +2 -2
- package/dist/shared/assistant/attachments.d.ts +5 -5
- package/dist/shared/assistant/autoRouting.d.ts +6 -6
- package/dist/shared/assistant/avatar/live/LiveAvatarStage.js +5 -1
- package/dist/shared/assistant/avatar/live/LiveAvatarTabView.js +28 -25
- package/dist/shared/assistant/avatar/live/createLiveAvatarSeam.d.ts +1 -1
- package/dist/shared/assistant/avatar/live/createLiveAvatarSeam.js +61 -50
- package/dist/shared/assistant/avatar/live/liveAvatarController.d.ts +19 -4
- package/dist/shared/assistant/avatar/live/liveAvatarController.js +163 -155
- package/dist/shared/assistant/avatar/live/liveAvatarStatus.d.ts +5 -3
- package/dist/shared/assistant/avatar/live/liveAvatarStatus.js +2 -2
- package/dist/shared/assistant/conversation.d.ts +20 -20
- package/dist/shared/assistant/displayContent.d.ts +4 -4
- package/dist/shared/assistant/documentText.d.ts +3 -3
- package/dist/shared/assistant/exportConversation.d.ts +1 -1
- package/dist/shared/assistant/history/historyControls.d.ts +4 -4
- package/dist/shared/assistant/history/historyErrors.d.ts +3 -3
- package/dist/shared/assistant/history/historyList.d.ts +5 -5
- package/dist/shared/assistant/history/historyMerge.d.ts +4 -4
- package/dist/shared/assistant/history/historyOperations.d.ts +1 -1
- package/dist/shared/assistant/history/historySearch.d.ts +5 -5
- package/dist/shared/assistant/history/historyStatus.d.ts +1 -1
- package/dist/shared/assistant/history/historyTypes.d.ts +12 -12
- package/dist/shared/assistant/history/profileBoundStorage.d.ts +2 -2
- package/dist/shared/assistant/i18n.d.ts +1 -1
- package/dist/shared/assistant/i18nManifest.d.ts +534 -534
- package/dist/shared/assistant/liveDeltas.d.ts +1 -1
- package/dist/shared/assistant/liveOverlay.d.ts +1 -1
- package/dist/shared/assistant/localUiCommandCopy.d.ts +1 -1
- package/dist/shared/assistant/localUiCommands.d.ts +22 -22
- package/dist/shared/assistant/localeCommands/engine.d.ts +5 -5
- package/dist/shared/assistant/localeCommands/evaluate.d.ts +8 -8
- package/dist/shared/assistant/localeCommands/fold.d.ts +2 -2
- package/dist/shared/assistant/localeCommands/frames.d.ts +3 -3
- package/dist/shared/assistant/localeCommands/gate.d.ts +3 -3
- package/dist/shared/assistant/localeCommands/languageNames.d.ts +1 -1
- package/dist/shared/assistant/localeCommands/normalise.d.ts +1 -1
- package/dist/shared/assistant/localeCommands/types.d.ts +4 -4
- package/dist/shared/assistant/modeCapabilities.d.ts +1 -1
- package/dist/shared/assistant/modeCopy.d.ts +2 -2
- package/dist/shared/assistant/permissionError.d.ts +2 -2
- package/dist/shared/assistant/preview/surfaceState.d.ts +1 -1
- package/dist/shared/assistant/preview/types.d.ts +5 -5
- package/dist/shared/assistant/preview/writeActionResults.d.ts +1 -1
- package/dist/shared/assistant/prewarm.d.ts +5 -5
- package/dist/shared/assistant/quota.d.ts +2 -2
- package/dist/shared/assistant/sandboxReadiness.d.ts +2 -2
- package/dist/shared/assistant/speech/speechFeed.d.ts +3 -3
- package/dist/shared/assistant/turnOutcome.d.ts +2 -2
- package/dist/shared/assistant/turnProgress.d.ts +1 -1
- package/dist/shared/assistant/turnState.d.ts +1 -1
- package/dist/shared/assistant/turnStream.d.ts +3 -3
- package/dist/shared/assistant/turnTimeline.d.ts +13 -13
- package/dist/shared/assistant/turnTimingReport.d.ts +1 -1
- package/dist/shared/assistant/turnTimingReporter.d.ts +3 -3
- package/dist/shared/assistant/ui/AssistantAvatarTabs.d.ts +1 -1
- package/dist/shared/assistant/ui/AssistantHistoryNotices.d.ts +1 -1
- package/dist/shared/assistant/ui/AssistantToolActivity.d.ts +1 -1
- package/dist/shared/assistant/ui/AssistantUiOfferLink.d.ts +2 -2
- package/dist/shared/assistant/ui/AssistantWriteConfirmDialog.d.ts +3 -3
- package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts +1 -1
- package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts +1 -1
- package/dist/shared/assistant/ui/leaveConfirmFocus.d.ts +1 -1
- package/dist/shared/assistant/ui/leaveConfirmNavigate.d.ts +3 -3
- package/dist/shared/assistant/ui/panelOverlays.d.ts +5 -5
- package/dist/shared/assistant/ui/useVoiceSession.d.ts +5 -5
- package/dist/shared/assistant/ui/useWriteProposalConfirm.d.ts +4 -4
- package/dist/shared/assistant/ui/useWriteProposals.d.ts +2 -2
- package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +1 -1
- package/dist/shared/assistant/ui/voice/VoiceCaption.d.ts +1 -1
- package/dist/shared/assistant/ui/voice/VoiceWaveform.d.ts +1 -1
- package/dist/shared/assistant/ui/voice/voiceSessionEscape.d.ts +2 -2
- package/dist/shared/assistant/ui/voice/voiceStartGate.d.ts +6 -6
- package/dist/shared/assistant/ui/writeProposalPresentation.d.ts +1 -1
- package/dist/shared/assistant/uiActions/actOnResolve.d.ts +5 -5
- package/dist/shared/assistant/uiActions/assistantHref.d.ts +2 -2
- package/dist/shared/assistant/uiActions/backStack.d.ts +1 -1
- package/dist/shared/assistant/uiActions/deixis.d.ts +3 -3
- package/dist/shared/assistant/uiActions/entityRoutes.d.ts +1 -1
- package/dist/shared/assistant/uiActions/navigationOutcome.d.ts +8 -8
- package/dist/shared/assistant/uiActions/offerYesOnSurface.d.ts +1 -1
- package/dist/shared/assistant/uiActions/resolveTarget.d.ts +2 -2
- package/dist/shared/assistant/uiActions/uiOffers.d.ts +5 -5
- package/dist/shared/assistant/usageReporting.d.ts +2 -2
- package/dist/shared/assistant/useWorkspaceWriteAccess.d.ts +1 -1
- package/dist/shared/assistant/voice/affirmations.d.ts +1 -1
- package/dist/shared/assistant/voice/handsFree.d.ts +3 -3
- package/dist/shared/assistant/voice/handsfree/bargeIn.d.ts +5 -5
- package/dist/shared/assistant/voice/handsfree/echoGate.d.ts +6 -6
- package/dist/shared/assistant/voice/handsfree/handsFreeController.d.ts +7 -7
- package/dist/shared/assistant/voice/handsfree/handsFreeSetting.d.ts +2 -2
- package/dist/shared/assistant/voice/handsfree/micCapture.d.ts +1 -1
- package/dist/shared/assistant/voice/handsfree/playbackReference.d.ts +1 -1
- package/dist/shared/assistant/voice/handsfree/sttTransport.d.ts +3 -3
- package/dist/shared/assistant/voice/handsfree/useHandsFreeInterrupt.d.ts +4 -4
- package/dist/shared/assistant/voice/handsfree/vad.d.ts +1 -1
- package/dist/shared/assistant/voice/speechPlayback.d.ts +7 -7
- package/dist/shared/assistant/voice/useVoiceInput.d.ts +1 -1
- package/dist/shared/assistant/voice/voiceReopen.d.ts +8 -8
- package/dist/shared/assistant/writeConfirmSeam.d.ts +1 -1
- package/dist/shared/assistant/writeModeConsent.d.ts +7 -7
- package/dist/shared/assistant/writeProposalDiscovery.d.ts +3 -3
- package/dist/shared/assistant/writeProposalErrorCopy.d.ts +1 -1
- package/dist/shared/assistant/writeProposals.d.ts +23 -23
- package/dist/shared/assistant/writeReplyBinder.d.ts +11 -11
- package/dist/shared/assistant/writeReplySend.d.ts +7 -7
- package/dist/shared/components/LandingOrDashboardRedirect.d.ts +18 -3
- package/dist/shared/components/LandingOrDashboardRedirect.js +58 -28
- package/dist/shared/components/index.d.ts +2 -1
- package/dist/shared/hooks/shell/globalSearchError.d.ts +2 -2
- package/dist/shared/navigation/productSwitchHandoff.d.ts +45 -0
- package/dist/shared/navigation/productSwitchHandoff.js +27 -0
- package/dist/shared/navigation/unsavedChanges.d.ts +1 -1
- package/dist/shared/utils/index.d.ts +3 -3
- package/dist/shared-components.js +7 -6
- package/dist/shared.js +71 -70
- package/package.json +3 -2
|
@@ -6,4 +6,4 @@ export interface NativePageTransitionProps {
|
|
|
6
6
|
/** Override the animation duration (ms). Default: CSS (280 iOS / 210 Android). */
|
|
7
7
|
durationMs?: number;
|
|
8
8
|
}
|
|
9
|
-
export declare function NativePageTransition({ children, enabled, durationMs
|
|
9
|
+
export declare function NativePageTransition({ children, enabled, durationMs }: NativePageTransitionProps): import('react/jsx-runtime').JSX.Element;
|
|
@@ -1,108 +1,108 @@
|
|
|
1
1
|
import { isSameProductSlug as e } from "../shared/config/productSlug.js";
|
|
2
2
|
import { useShellLabel as t } from "../shared/providers/shell/useShellLabel.js";
|
|
3
3
|
import { Sheet as n, SheetContent as r, SheetHeader as i, SheetTitle as a } from "../ui/sheet.js";
|
|
4
|
-
import { filterProducts as o, resolveProductLogo as s } from "./ProductSwitcher.js";
|
|
5
|
-
import { useMemo as
|
|
6
|
-
import { jsx as
|
|
4
|
+
import { filterProducts as o, resolveProductLogo as s, toSwitchTarget as c } from "./ProductSwitcher.js";
|
|
5
|
+
import { useMemo as l, useState as u } from "react";
|
|
6
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
7
7
|
//#region src/chrome/ProductPickerSheet.tsx
|
|
8
|
-
var
|
|
9
|
-
let [t, n] =
|
|
10
|
-
return r && !t ? /* @__PURE__ */
|
|
8
|
+
var p = 6, m = ({ product: e }) => {
|
|
9
|
+
let [t, n] = u(!1), r = s(e);
|
|
10
|
+
return r && !t ? /* @__PURE__ */ d("div", {
|
|
11
11
|
className: "size-10 rounded-lg bg-white p-1 ring-1 ring-border-default dark:ring-border-strong flex items-center justify-center flex-shrink-0 overflow-hidden",
|
|
12
|
-
children: /* @__PURE__ */
|
|
12
|
+
children: /* @__PURE__ */ d("img", {
|
|
13
13
|
src: r,
|
|
14
14
|
alt: e.name,
|
|
15
15
|
className: "size-full object-contain",
|
|
16
16
|
onError: () => n(!0)
|
|
17
17
|
})
|
|
18
|
-
}) : e.icon ? /* @__PURE__ */
|
|
18
|
+
}) : e.icon ? /* @__PURE__ */ d("div", {
|
|
19
19
|
className: "size-10 rounded-lg bg-[var(--color-accent-soft)] flex items-center justify-center flex-shrink-0",
|
|
20
20
|
children: e.icon
|
|
21
|
-
}) : /* @__PURE__ */
|
|
21
|
+
}) : /* @__PURE__ */ d("div", {
|
|
22
22
|
className: "size-10 rounded-lg bg-action-primary-bg flex items-center justify-center flex-shrink-0",
|
|
23
|
-
children: /* @__PURE__ */
|
|
23
|
+
children: /* @__PURE__ */ d("span", {
|
|
24
24
|
className: "text-action-primary-text font-bold text-sm",
|
|
25
25
|
children: e.name.substring(0, 2).toUpperCase()
|
|
26
26
|
})
|
|
27
27
|
});
|
|
28
|
-
},
|
|
29
|
-
let
|
|
30
|
-
|
|
28
|
+
}, h = ({ open: s, onOpenChange: h, products: g, currentProductId: _, onProductChange: v }) => {
|
|
29
|
+
let y = t(), [b, x] = u(""), S = g.length > p, C = l(() => o(g, b), [g, b]), w = (e) => {
|
|
30
|
+
v && v(c(e)), h(!1);
|
|
31
31
|
};
|
|
32
|
-
return /* @__PURE__ */
|
|
32
|
+
return /* @__PURE__ */ d(n, {
|
|
33
33
|
open: s,
|
|
34
34
|
onOpenChange: (e) => {
|
|
35
|
-
e ||
|
|
35
|
+
e || x(""), h(e);
|
|
36
36
|
},
|
|
37
|
-
children: /* @__PURE__ */
|
|
37
|
+
children: /* @__PURE__ */ f(r, {
|
|
38
38
|
side: "bottom",
|
|
39
39
|
className: "h-[60vh] flex flex-col p-0",
|
|
40
40
|
children: [
|
|
41
|
-
/* @__PURE__ */
|
|
41
|
+
/* @__PURE__ */ d(i, {
|
|
42
42
|
className: "px-4 pt-4 pb-2 border-b border-border-subtle",
|
|
43
|
-
children: /* @__PURE__ */
|
|
43
|
+
children: /* @__PURE__ */ d(a, {
|
|
44
44
|
className: "text-text-primary",
|
|
45
|
-
children:
|
|
45
|
+
children: y("productSwitcher.title", "Switch Product")
|
|
46
46
|
})
|
|
47
47
|
}),
|
|
48
|
-
|
|
48
|
+
S && /* @__PURE__ */ f("div", {
|
|
49
49
|
className: "relative px-4 py-2 border-b border-border-subtle",
|
|
50
|
-
children: [/* @__PURE__ */
|
|
50
|
+
children: [/* @__PURE__ */ d("svg", {
|
|
51
51
|
className: "pointer-events-none absolute left-7 top-1/2 -translate-y-1/2 size-4 text-text-muted",
|
|
52
52
|
fill: "none",
|
|
53
53
|
stroke: "currentColor",
|
|
54
54
|
viewBox: "0 0 24 24",
|
|
55
|
-
children: /* @__PURE__ */
|
|
55
|
+
children: /* @__PURE__ */ d("path", {
|
|
56
56
|
strokeLinecap: "round",
|
|
57
57
|
strokeLinejoin: "round",
|
|
58
58
|
strokeWidth: 2,
|
|
59
59
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
60
60
|
})
|
|
61
|
-
}), /* @__PURE__ */
|
|
61
|
+
}), /* @__PURE__ */ d("input", {
|
|
62
62
|
type: "text",
|
|
63
|
-
value:
|
|
64
|
-
onChange: (e) =>
|
|
65
|
-
placeholder:
|
|
66
|
-
"aria-label":
|
|
63
|
+
value: b,
|
|
64
|
+
onChange: (e) => x(e.target.value),
|
|
65
|
+
placeholder: y("productSwitcher.searchPlaceholder", "Search products…"),
|
|
66
|
+
"aria-label": y("productSwitcher.searchAria", "Search products"),
|
|
67
67
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface py-2.5 pl-9 pr-3 text-sm text-text-primary placeholder:text-text-muted focus:border-transparent focus:outline-none focus:ring-2 focus:ring-[var(--color-action-primary-border)]"
|
|
68
68
|
})]
|
|
69
69
|
}),
|
|
70
|
-
/* @__PURE__ */
|
|
70
|
+
/* @__PURE__ */ f("div", {
|
|
71
71
|
className: "flex-1 overflow-y-auto py-2",
|
|
72
|
-
children: [
|
|
72
|
+
children: [C.length === 0 && /* @__PURE__ */ d("p", {
|
|
73
73
|
className: "px-4 py-6 text-center text-body-sm text-text-muted",
|
|
74
|
-
children:
|
|
75
|
-
}),
|
|
76
|
-
onClick: () =>
|
|
77
|
-
className: `w-full flex items-center gap-4 px-4 py-3.5 text-body-sm transition-colors ${e(t.id,
|
|
74
|
+
children: y("productSwitcher.noMatches", "No products match “{{query}}”", { query: b })
|
|
75
|
+
}), C.map((t) => /* @__PURE__ */ f("button", {
|
|
76
|
+
onClick: () => w(t),
|
|
77
|
+
className: `w-full flex items-center gap-4 px-4 py-3.5 text-body-sm transition-colors ${e(t.id, _) ? "bg-[var(--color-accent-soft)]" : "hover:bg-bg-sunken"}`,
|
|
78
78
|
children: [
|
|
79
|
-
/* @__PURE__ */
|
|
80
|
-
/* @__PURE__ */
|
|
79
|
+
/* @__PURE__ */ d(m, { product: t }),
|
|
80
|
+
/* @__PURE__ */ f("div", {
|
|
81
81
|
className: "flex-1 text-left min-w-0",
|
|
82
|
-
children: [/* @__PURE__ */
|
|
82
|
+
children: [/* @__PURE__ */ d("p", {
|
|
83
83
|
className: "font-medium text-text-primary",
|
|
84
84
|
children: t.name
|
|
85
|
-
}), t.description && /* @__PURE__ */
|
|
85
|
+
}), t.description && /* @__PURE__ */ d("p", {
|
|
86
86
|
className: "text-xs text-text-secondary truncate",
|
|
87
87
|
children: t.description
|
|
88
88
|
})]
|
|
89
89
|
}),
|
|
90
|
-
e(t.id,
|
|
90
|
+
e(t.id, _) && /* @__PURE__ */ d("svg", {
|
|
91
91
|
className: "size-5 text-action-primary-bg flex-shrink-0",
|
|
92
92
|
fill: "currentColor",
|
|
93
93
|
viewBox: "0 0 20 20",
|
|
94
|
-
children: /* @__PURE__ */
|
|
94
|
+
children: /* @__PURE__ */ d("path", {
|
|
95
95
|
fillRule: "evenodd",
|
|
96
96
|
d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
|
|
97
97
|
clipRule: "evenodd"
|
|
98
98
|
})
|
|
99
99
|
}),
|
|
100
|
-
t.url && !e(t.id,
|
|
100
|
+
t.url && !e(t.id, _) && /* @__PURE__ */ d("svg", {
|
|
101
101
|
className: "size-4 text-text-muted flex-shrink-0",
|
|
102
102
|
fill: "none",
|
|
103
103
|
stroke: "currentColor",
|
|
104
104
|
viewBox: "0 0 24 24",
|
|
105
|
-
children: /* @__PURE__ */
|
|
105
|
+
children: /* @__PURE__ */ d("path", {
|
|
106
106
|
strokeLinecap: "round",
|
|
107
107
|
strokeLinejoin: "round",
|
|
108
108
|
strokeWidth: 2,
|
|
@@ -117,4 +117,4 @@ var f = 6, p = ({ product: e }) => {
|
|
|
117
117
|
});
|
|
118
118
|
};
|
|
119
119
|
//#endregion
|
|
120
|
-
export {
|
|
120
|
+
export { h as ProductPickerSheet };
|
|
@@ -26,6 +26,14 @@ export declare function resolveProductLogo(product?: {
|
|
|
26
26
|
* query returns the list unchanged. Shared by the desktop `ProductSwitcher` and
|
|
27
27
|
* the mobile `ProductPickerSheet` so both filter identically.
|
|
28
28
|
*/
|
|
29
|
+
/**
|
|
30
|
+
* The product a switcher click hands to navigation: the same entry with the
|
|
31
|
+
* product-switch handoff marker on its URL (see `productSwitchHandoff`).
|
|
32
|
+
* Entries without a URL, or with a placeholder one, are returned unchanged.
|
|
33
|
+
*/
|
|
34
|
+
export declare function toSwitchTarget<T extends {
|
|
35
|
+
url?: string;
|
|
36
|
+
}>(product: T): T;
|
|
29
37
|
export declare function filterProducts<T extends {
|
|
30
38
|
id: string;
|
|
31
39
|
name: string;
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { isSameProductSlug as e } from "../shared/config/productSlug.js";
|
|
2
2
|
import { getProductsWithUrls as t } from "../shared/config/products.js";
|
|
3
3
|
import { useShellLabel as n } from "../shared/providers/shell/useShellLabel.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { withProductSwitchHandoff as r } from "../shared/navigation/productSwitchHandoff.js";
|
|
5
|
+
import { useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
|
|
6
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
6
7
|
//#region src/chrome/ProductSwitcher.tsx
|
|
7
|
-
var
|
|
8
|
-
function
|
|
8
|
+
var u = 6;
|
|
9
|
+
function d(e) {
|
|
9
10
|
if (e?.logoUrl) return e.logoUrl;
|
|
10
11
|
let t = e?.url;
|
|
11
12
|
if (!(!t || t === "#")) return `${t.replace(/\/+$/, "")}/icons/icon.svg`;
|
|
12
13
|
}
|
|
13
|
-
var
|
|
14
|
-
let [r, i] =
|
|
15
|
-
return /* @__PURE__ */
|
|
16
|
-
className: `${t} rounded-md flex items-center justify-center flex-shrink-0 overflow-hidden ${
|
|
17
|
-
style:
|
|
18
|
-
children:
|
|
14
|
+
var f = ({ product: e, sizeClass: t, textClass: n }) => {
|
|
15
|
+
let [r, i] = s(!1), a = d(e), o = !!a && !r;
|
|
16
|
+
return /* @__PURE__ */ c("div", {
|
|
17
|
+
className: `${t} rounded-md flex items-center justify-center flex-shrink-0 overflow-hidden ${o ? "bg-white p-0.5 ring-1 ring-border-default dark:ring-border-strong" : `text-text-inverse font-semibold ${n}`}`,
|
|
18
|
+
style: o ? void 0 : { backgroundColor: e?.color || "var(--color-action-primary-bg)" },
|
|
19
|
+
children: o ? /* @__PURE__ */ c("img", {
|
|
19
20
|
src: a,
|
|
20
21
|
alt: e?.name ?? "",
|
|
21
22
|
className: "size-full object-contain",
|
|
@@ -23,61 +24,71 @@ var d = ({ product: e, sizeClass: t, textClass: n }) => {
|
|
|
23
24
|
}) : e?.icon || e?.name.charAt(0)
|
|
24
25
|
});
|
|
25
26
|
};
|
|
26
|
-
function
|
|
27
|
+
function p(e) {
|
|
28
|
+
if (!e.url) return e;
|
|
29
|
+
let t = r(e.url);
|
|
30
|
+
return t === e.url ? e : {
|
|
31
|
+
...e,
|
|
32
|
+
url: t
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function m(e, t) {
|
|
27
36
|
let n = t.trim().toLowerCase();
|
|
28
37
|
return n ? e.filter((e) => e.name.toLowerCase().includes(n) || e.id.toLowerCase().includes(n) || (e.description ? e.description.toLowerCase().includes(n) : !1)) : e;
|
|
29
38
|
}
|
|
30
|
-
function
|
|
39
|
+
function h(n, r) {
|
|
31
40
|
return n.find((t) => e(t.id, r)) || (r ? t().find((t) => e(t.id, r)) || {
|
|
32
41
|
id: r,
|
|
33
42
|
name: r,
|
|
34
43
|
url: "#"
|
|
35
44
|
} : n[0]);
|
|
36
45
|
}
|
|
37
|
-
var
|
|
38
|
-
let
|
|
39
|
-
|
|
46
|
+
var g = ({ products: t, currentProductId: r, onProductChange: d, compact: g = !1 }) => {
|
|
47
|
+
let _ = n(), [v, y] = s(!1), [b, x] = s(""), S = o(null), C = o(null), w = h(t, r), T = t.length > u, E = a(() => m(t, b), [t, b]);
|
|
48
|
+
i(() => {
|
|
40
49
|
let e = (e) => {
|
|
41
|
-
|
|
50
|
+
S.current && !S.current.contains(e.target) && y(!1);
|
|
42
51
|
};
|
|
43
|
-
if (
|
|
44
|
-
}, [
|
|
45
|
-
if (!
|
|
46
|
-
|
|
52
|
+
if (v) return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
53
|
+
}, [v]), i(() => {
|
|
54
|
+
if (!v) {
|
|
55
|
+
x("");
|
|
47
56
|
return;
|
|
48
57
|
}
|
|
49
|
-
if (
|
|
50
|
-
let e = setTimeout(() =>
|
|
58
|
+
if (T) {
|
|
59
|
+
let e = setTimeout(() => C.current?.focus(), 60);
|
|
51
60
|
return () => clearTimeout(e);
|
|
52
61
|
}
|
|
53
|
-
}, [
|
|
54
|
-
let
|
|
55
|
-
e.comingSoon
|
|
62
|
+
}, [v, T]);
|
|
63
|
+
let D = (e) => {
|
|
64
|
+
if (e.comingSoon) return;
|
|
65
|
+
let t = p(e);
|
|
66
|
+
d ? d(t) : window.location.href = t.url, y(!1);
|
|
56
67
|
};
|
|
57
|
-
return /* @__PURE__ */
|
|
68
|
+
return /* @__PURE__ */ l("div", {
|
|
58
69
|
className: "relative",
|
|
59
|
-
ref:
|
|
60
|
-
children: [/* @__PURE__ */
|
|
61
|
-
onClick: () =>
|
|
62
|
-
className: `flex items-center gap-2 px-3 py-2 rounded-button hover:bg-bg-sunken transition-colors ${
|
|
63
|
-
"aria-label":
|
|
64
|
-
"aria-expanded":
|
|
70
|
+
ref: S,
|
|
71
|
+
children: [/* @__PURE__ */ l("button", {
|
|
72
|
+
onClick: () => y(!v),
|
|
73
|
+
className: `flex items-center gap-2 px-3 py-2 rounded-button hover:bg-bg-sunken transition-colors ${v ? "bg-bg-sunken" : ""}`,
|
|
74
|
+
"aria-label": _("productSwitcher.title", "Switch product"),
|
|
75
|
+
"aria-expanded": v,
|
|
65
76
|
children: [
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
product:
|
|
77
|
+
/* @__PURE__ */ c(f, {
|
|
78
|
+
product: w,
|
|
68
79
|
sizeClass: "size-6",
|
|
69
80
|
textClass: "text-xs"
|
|
70
81
|
}),
|
|
71
|
-
!
|
|
82
|
+
!g && /* @__PURE__ */ c("span", {
|
|
72
83
|
className: "text-body-sm font-medium text-text-primary",
|
|
73
|
-
children:
|
|
84
|
+
children: w?.name
|
|
74
85
|
}),
|
|
75
|
-
!
|
|
76
|
-
className: `w-4 h-4 text-text-secondary transition-transform ${
|
|
86
|
+
!g && /* @__PURE__ */ c("svg", {
|
|
87
|
+
className: `w-4 h-4 text-text-secondary transition-transform ${v ? "rotate-180" : ""}`,
|
|
77
88
|
fill: "none",
|
|
78
89
|
stroke: "currentColor",
|
|
79
90
|
viewBox: "0 0 24 24",
|
|
80
|
-
children: /* @__PURE__ */
|
|
91
|
+
children: /* @__PURE__ */ c("path", {
|
|
81
92
|
strokeLinecap: "round",
|
|
82
93
|
strokeLinejoin: "round",
|
|
83
94
|
strokeWidth: 2,
|
|
@@ -85,54 +96,54 @@ var m = ({ products: t, currentProductId: u, onProductChange: m, compact: h = !1
|
|
|
85
96
|
})
|
|
86
97
|
})
|
|
87
98
|
]
|
|
88
|
-
}),
|
|
99
|
+
}), v && /* @__PURE__ */ l("div", {
|
|
89
100
|
className: "absolute right-0 mt-2 w-[calc(100vw-1.5rem)] sm:w-72 max-w-72 bg-bg-elevated border border-border-subtle rounded-card shadow-[var(--shadow-elevation-4)] z-50 py-2 overflow-hidden animate-in fade-in-0 zoom-in-95 slide-in-from-top-2 duration-200",
|
|
90
101
|
children: [
|
|
91
|
-
/* @__PURE__ */
|
|
102
|
+
/* @__PURE__ */ c("div", {
|
|
92
103
|
className: "px-4 py-2 border-b border-border-subtle",
|
|
93
|
-
children: /* @__PURE__ */
|
|
104
|
+
children: /* @__PURE__ */ c("p", {
|
|
94
105
|
className: "text-[11px] font-medium text-text-muted uppercase tracking-wider",
|
|
95
|
-
children:
|
|
106
|
+
children: _("productSwitcher.title", "Switch Product")
|
|
96
107
|
})
|
|
97
108
|
}),
|
|
98
|
-
|
|
109
|
+
T && /* @__PURE__ */ l("div", {
|
|
99
110
|
className: "relative px-3 py-2 border-b border-border-subtle",
|
|
100
111
|
children: [
|
|
101
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ c("svg", {
|
|
102
113
|
className: "pointer-events-none absolute left-6 top-1/2 -translate-y-1/2 size-4 text-text-muted",
|
|
103
114
|
fill: "none",
|
|
104
115
|
stroke: "currentColor",
|
|
105
116
|
viewBox: "0 0 24 24",
|
|
106
|
-
children: /* @__PURE__ */
|
|
117
|
+
children: /* @__PURE__ */ c("path", {
|
|
107
118
|
strokeLinecap: "round",
|
|
108
119
|
strokeLinejoin: "round",
|
|
109
120
|
strokeWidth: 2,
|
|
110
121
|
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
111
122
|
})
|
|
112
123
|
}),
|
|
113
|
-
/* @__PURE__ */
|
|
114
|
-
ref:
|
|
124
|
+
/* @__PURE__ */ c("input", {
|
|
125
|
+
ref: C,
|
|
115
126
|
type: "text",
|
|
116
|
-
value:
|
|
117
|
-
onChange: (e) =>
|
|
127
|
+
value: b,
|
|
128
|
+
onChange: (e) => x(e.target.value),
|
|
118
129
|
onKeyDown: (e) => {
|
|
119
|
-
e.key === "Escape" && (
|
|
130
|
+
e.key === "Escape" && (b ? (e.stopPropagation(), x("")) : y(!1));
|
|
120
131
|
},
|
|
121
|
-
placeholder:
|
|
122
|
-
"aria-label":
|
|
132
|
+
placeholder: _("productSwitcher.searchPlaceholder", "Search products…"),
|
|
133
|
+
"aria-label": _("productSwitcher.searchAria", "Search products"),
|
|
123
134
|
className: "w-full rounded-md border border-border-subtle bg-bg-surface py-2 pl-9 pr-8 text-sm text-text-primary placeholder:text-text-muted transition-all duration-200 focus:border-transparent focus:outline-none focus:ring-2 focus:ring-[var(--color-action-primary-border)]"
|
|
124
135
|
}),
|
|
125
|
-
|
|
136
|
+
b && /* @__PURE__ */ c("button", {
|
|
126
137
|
type: "button",
|
|
127
|
-
onClick: () =>
|
|
128
|
-
"aria-label":
|
|
138
|
+
onClick: () => x(""),
|
|
139
|
+
"aria-label": _("common.clearSearch", "Clear search"),
|
|
129
140
|
className: "absolute right-5 top-1/2 -translate-y-1/2 rounded-button p-1 text-text-muted transition-colors hover:bg-bg-sunken hover:text-text-primary",
|
|
130
|
-
children: /* @__PURE__ */
|
|
141
|
+
children: /* @__PURE__ */ c("svg", {
|
|
131
142
|
className: "size-4",
|
|
132
143
|
fill: "none",
|
|
133
144
|
stroke: "currentColor",
|
|
134
145
|
viewBox: "0 0 24 24",
|
|
135
|
-
children: /* @__PURE__ */
|
|
146
|
+
children: /* @__PURE__ */ c("path", {
|
|
136
147
|
strokeLinecap: "round",
|
|
137
148
|
strokeLinejoin: "round",
|
|
138
149
|
strokeWidth: 2,
|
|
@@ -142,35 +153,35 @@ var m = ({ products: t, currentProductId: u, onProductChange: m, compact: h = !1
|
|
|
142
153
|
})
|
|
143
154
|
]
|
|
144
155
|
}),
|
|
145
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ l("div", {
|
|
146
157
|
className: "py-1 max-h-96 overflow-y-auto",
|
|
147
|
-
children: [
|
|
158
|
+
children: [E.length === 0 && /* @__PURE__ */ c("p", {
|
|
148
159
|
className: "px-4 py-6 text-center text-body-sm text-text-muted",
|
|
149
|
-
children:
|
|
150
|
-
}),
|
|
151
|
-
onClick: () =>
|
|
160
|
+
children: _("productSwitcher.noMatches", "No products match “{{query}}”", { query: b })
|
|
161
|
+
}), E.map((t) => /* @__PURE__ */ l("button", {
|
|
162
|
+
onClick: () => D(t),
|
|
152
163
|
disabled: t.comingSoon,
|
|
153
164
|
"aria-disabled": t.comingSoon,
|
|
154
|
-
title: t.comingSoon ?
|
|
155
|
-
className: `w-full flex items-center gap-3 px-4 py-2.5 text-body-sm transition-colors ${t.comingSoon ? "text-text-muted cursor-not-allowed opacity-60" : e(t.id,
|
|
165
|
+
title: t.comingSoon ? _("productSwitcher.soon", "Soon") : t.name,
|
|
166
|
+
className: `w-full flex items-center gap-3 px-4 py-2.5 text-body-sm transition-colors ${t.comingSoon ? "text-text-muted cursor-not-allowed opacity-60" : e(t.id, r) ? "bg-[var(--color-accent-soft)] text-text-primary font-medium" : "text-text-primary hover:bg-bg-sunken"}`,
|
|
156
167
|
children: [
|
|
157
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ c(f, {
|
|
158
169
|
product: t,
|
|
159
170
|
sizeClass: "size-8",
|
|
160
171
|
textClass: "text-sm"
|
|
161
172
|
}),
|
|
162
|
-
/* @__PURE__ */
|
|
173
|
+
/* @__PURE__ */ c("span", {
|
|
163
174
|
className: "flex-1 text-left leading-tight",
|
|
164
175
|
children: t.name
|
|
165
176
|
}),
|
|
166
|
-
t.comingSoon ? /* @__PURE__ */
|
|
177
|
+
t.comingSoon ? /* @__PURE__ */ c("span", {
|
|
167
178
|
className: "shrink-0 whitespace-nowrap rounded-full border border-border-subtle bg-bg-sunken px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-text-secondary",
|
|
168
|
-
children:
|
|
169
|
-
}) : e(t.id,
|
|
179
|
+
children: _("productSwitcher.soon", "Soon")
|
|
180
|
+
}) : e(t.id, r) && /* @__PURE__ */ c("svg", {
|
|
170
181
|
className: "size-5 text-action-primary-bg",
|
|
171
182
|
fill: "currentColor",
|
|
172
183
|
viewBox: "0 0 20 20",
|
|
173
|
-
children: /* @__PURE__ */
|
|
184
|
+
children: /* @__PURE__ */ c("path", {
|
|
174
185
|
fillRule: "evenodd",
|
|
175
186
|
d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
|
|
176
187
|
clipRule: "evenodd"
|
|
@@ -184,4 +195,4 @@ var m = ({ products: t, currentProductId: u, onProductChange: m, compact: h = !1
|
|
|
184
195
|
});
|
|
185
196
|
};
|
|
186
197
|
//#endregion
|
|
187
|
-
export {
|
|
198
|
+
export { g as ProductSwitcher, m as filterProducts, d as resolveProductLogo, p as toSwitchTarget };
|
package/dist/chrome/index.d.ts
CHANGED
|
@@ -70,25 +70,25 @@ export { ShortcutHelpDialog } from './ShortcutHelpDialog';
|
|
|
70
70
|
export type { AppShellLayoutProps } from './AppShellLayout';
|
|
71
71
|
export type { HeaderBarProps, MobileActionItem } from './HeaderBar';
|
|
72
72
|
export type { FooterBarProps, FooterItem, FooterSections } from './FooterBar';
|
|
73
|
-
export type { FooterProps, FooterColumn, FooterLink, SocialLink
|
|
73
|
+
export type { FooterProps, FooterColumn, FooterLink, SocialLink } from './Footer';
|
|
74
74
|
export type { SideNavigationProps, NavItem } from './SideNavigation';
|
|
75
|
-
export type { GlobalSearchProps, SearchResult, SearchCategory
|
|
76
|
-
export type { CommandPaletteProps, CommandAction, KeyboardShortcut
|
|
75
|
+
export type { GlobalSearchProps, SearchResult, SearchCategory } from './GlobalSearch';
|
|
76
|
+
export type { CommandPaletteProps, CommandAction, KeyboardShortcut } from './CommandPalette';
|
|
77
77
|
export type { BreadcrumbsProps, BreadcrumbItem } from './Breadcrumbs';
|
|
78
78
|
export type { NavLinkProps } from './NavLink';
|
|
79
79
|
export type { TabsProps, TabItem } from './Tabs';
|
|
80
80
|
export type { SidebarProps, SidebarSection, SidebarItem } from './Sidebar';
|
|
81
|
-
export type { ProfileSwitcherProps, Account as ProfileAccount
|
|
81
|
+
export type { ProfileSwitcherProps, Account as ProfileAccount } from './ProfileSwitcher';
|
|
82
82
|
export type { ProductSwitcherProps, Product } from './ProductSwitcher';
|
|
83
83
|
export type { LanguageSwitcherProps, Language } from './LanguageSwitcher';
|
|
84
84
|
export type { GeographySwitcherProps } from './GeographySwitcher';
|
|
85
85
|
export type { NotificationCenterProps } from './NotificationCenter';
|
|
86
|
-
export type { ContextSwitcherProps, Organization, Workspace, Project
|
|
86
|
+
export type { ContextSwitcherProps, Organization, Workspace, Project } from './ContextSwitcher';
|
|
87
87
|
export { useContextSwitchController } from './contextSwitcher/useContextSwitchController';
|
|
88
88
|
export type { ContextSwitchController, ContextSwitchEvent, ContextSwitchKind, UseContextSwitchControllerOptions, } from './contextSwitcher/useContextSwitchController';
|
|
89
89
|
export { firstProjectOfWorkspace, switchOrganization, switchWorkspace, } from './contextSwitcher/contextSwitch';
|
|
90
90
|
export type { ContextSwitchDeps, ContextSwitchOutcome, SwitchableOrganization, SwitchableProject, SwitchableWorkspace, WorkspaceSelection, } from './contextSwitcher/contextSwitch';
|
|
91
|
-
export { resolveSwitchTarget, sectionLandingRule
|
|
91
|
+
export { resolveSwitchTarget, sectionLandingRule } from './contextSwitcher/resolveSwitchTarget';
|
|
92
92
|
export type { ContextSwitchRedirectRule } from './contextSwitcher/resolveSwitchTarget';
|
|
93
93
|
export type { LanguagePickerSheetProps } from './LanguagePickerSheet';
|
|
94
94
|
export type { ProductPickerSheetProps } from './ProductPickerSheet';
|
|
@@ -97,7 +97,7 @@ export type { ShortcutHelpDialogProps } from './ShortcutHelpDialog';
|
|
|
97
97
|
export { AutoBreadcrumbs, registerBreadcrumbName, unregisterBreadcrumbName, } from './AutoBreadcrumbs';
|
|
98
98
|
export { ProductSideNav } from './ProductSideNav';
|
|
99
99
|
export type { ProductSideNavProps } from './ProductSideNav';
|
|
100
|
-
export { PersonaSurfaceControls, PersonaSimulationPill
|
|
100
|
+
export { PersonaSurfaceControls, PersonaSimulationPill } from './PersonaSurfaceControls';
|
|
101
101
|
export type { PersonaSurfaceControlsProps } from './PersonaSurfaceControls';
|
|
102
102
|
export { NavCustomizeDialog } from './NavCustomizeDialog';
|
|
103
103
|
export type { NavCustomizeDialogProps } from './NavCustomizeDialog';
|
|
@@ -120,12 +120,12 @@ export type { PluginWidgetGridProps } from './PluginWidgetGrid';
|
|
|
120
120
|
export { PluginContextMenuTarget } from './PluginContextMenuTarget';
|
|
121
121
|
export type { PluginContextMenuTargetProps } from './PluginContextMenuTarget';
|
|
122
122
|
export { PluginFooterStrip } from './PluginFooterStrip';
|
|
123
|
-
export { ThemePreferences, type ThemePreferencesProps
|
|
123
|
+
export { ThemePreferences, type ThemePreferencesProps } from './ThemePreferences';
|
|
124
124
|
export { BrandMark, type BrandMarkProps } from './BrandMark';
|
|
125
125
|
export { MobileTabBar, type MobileTabBarProps } from './MobileTabBar';
|
|
126
126
|
export { useMobileTabBarVisible } from './mobileTabBar/useMobileTabBarVisible';
|
|
127
127
|
export { selectMobileTabs } from './mobileTabBar/selectTabs';
|
|
128
128
|
export { NativeTopBar, type NativeTopBarProps } from './NativeTopBar';
|
|
129
129
|
export { SwipeNavigation, type SwipeNavigationProps } from './SwipeNavigation';
|
|
130
|
-
export { NativePageTransition, type NativePageTransitionProps
|
|
130
|
+
export { NativePageTransition, type NativePageTransitionProps } from './NativePageTransition';
|
|
131
131
|
export { findNavTitle, useNativeTopBarTitle } from './nativeTopBarTitle';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Pure math for edge-swipe navigation. No DOM, no React — unit-tested in
|
|
3
3
|
* `src/chrome/__tests__/swipeMath.test.ts`.
|
|
4
4
|
*/
|
|
5
|
-
export type SwipeDirection =
|
|
5
|
+
export type SwipeDirection = 'back' | 'forward';
|
|
6
6
|
/**
|
|
7
7
|
* Decide whether a touch at `x` starts an edge swipe, and in which direction.
|
|
8
8
|
* `back` = left edge, `forward` = right edge (iOS only — pass
|
|
@@ -91,7 +91,7 @@ export interface ExistingAssistantSandbox {
|
|
|
91
91
|
createdBy: string;
|
|
92
92
|
}
|
|
93
93
|
/** Pure reuse selector, kept separate so quarantine behavior is regression-testable. */
|
|
94
|
-
export declare function selectExistingAssistantSandbox(sandboxes: ExistingAssistantSandbox[], product: string, mode: AssistantMode, _isProd: boolean, authContext: Pick<AssistantSandboxAuthContext,
|
|
94
|
+
export declare function selectExistingAssistantSandbox(sandboxes: ExistingAssistantSandbox[], product: string, mode: AssistantMode, _isProd: boolean, authContext: Pick<AssistantSandboxAuthContext, 'userId'>, excludedSandboxIds?: ReadonlySet<string>,
|
|
95
95
|
/**
|
|
96
96
|
* The write-approval flow the panel can get (BOFF-7803 5a): the flow a
|
|
97
97
|
* Take-action sandbox must run, and — at `proposal-v1` — the provisioning
|
|
@@ -172,7 +172,7 @@ export declare function modeRequiresConfirmWrites(mode: AssistantMode): boolean;
|
|
|
172
172
|
* a mode that can write must arrive with its brake on, and that invariant is
|
|
173
173
|
* too easy to break silently from inside an async network call.
|
|
174
174
|
*/
|
|
175
|
-
export declare function buildAssistantSandboxEnv(product: string, mode: AssistantMode, workspaceId: string, authContext: Pick<AssistantSandboxAuthContext,
|
|
175
|
+
export declare function buildAssistantSandboxEnv(product: string, mode: AssistantMode, workspaceId: string, authContext: Pick<AssistantSandboxAuthContext, 'accessToken' | 'workspaceToken'>): Array<{
|
|
176
176
|
name: string;
|
|
177
177
|
value: string;
|
|
178
178
|
}>;
|
|
@@ -219,7 +219,7 @@ export declare function isAssistantProvisioningUnavailable(error: unknown): bool
|
|
|
219
219
|
* writes (the service gives it the read-only Ask plan whatever is sent), and
|
|
220
220
|
* leaving it out keeps the field at its schema default.
|
|
221
221
|
*/
|
|
222
|
-
export declare function buildProvisionAssistantSandboxInput(product: string, mode: AssistantMode, workspaceId: string, isProd: boolean, ttlSeconds: number, authContext: Pick<AssistantSandboxAuthContext,
|
|
222
|
+
export declare function buildProvisionAssistantSandboxInput(product: string, mode: AssistantMode, workspaceId: string, isProd: boolean, ttlSeconds: number, authContext: Pick<AssistantSandboxAuthContext, 'organizationId'>): Record<string, unknown>;
|
|
223
223
|
/**
|
|
224
224
|
* Create an assistant sandbox, and return its id.
|
|
225
225
|
*
|
|
@@ -26,60 +26,60 @@ import { SortDirection, UiLanguageCode } from './types';
|
|
|
26
26
|
* sidebar names; an explicit one ("open the notification bell") does not.
|
|
27
27
|
*/
|
|
28
28
|
export type AppControlRequest = {
|
|
29
|
-
control:
|
|
29
|
+
control: 'header.notifications';
|
|
30
30
|
} | {
|
|
31
|
-
control:
|
|
31
|
+
control: 'header.search';
|
|
32
32
|
query: string | null;
|
|
33
33
|
} | {
|
|
34
|
-
control:
|
|
34
|
+
control: 'header.help';
|
|
35
35
|
} | {
|
|
36
|
-
control:
|
|
36
|
+
control: 'header.context';
|
|
37
37
|
} | {
|
|
38
|
-
control:
|
|
38
|
+
control: 'header.workspace';
|
|
39
39
|
target: string;
|
|
40
40
|
} | {
|
|
41
|
-
control:
|
|
41
|
+
control: 'account.logout';
|
|
42
42
|
} | {
|
|
43
|
-
control:
|
|
43
|
+
control: 'sidebar';
|
|
44
44
|
collapsed: boolean;
|
|
45
45
|
} | {
|
|
46
|
-
control:
|
|
46
|
+
control: 'sidebar.entry';
|
|
47
47
|
name: string;
|
|
48
48
|
expanded: boolean;
|
|
49
49
|
} | {
|
|
50
|
-
control:
|
|
50
|
+
control: 'language';
|
|
51
51
|
code: UiLanguageCode;
|
|
52
52
|
} | {
|
|
53
|
-
control:
|
|
53
|
+
control: 'assistant.history';
|
|
54
54
|
} | {
|
|
55
|
-
control:
|
|
55
|
+
control: 'assistant.transcript';
|
|
56
56
|
} | {
|
|
57
|
-
control:
|
|
57
|
+
control: 'assistant.preview';
|
|
58
58
|
} | {
|
|
59
|
-
control:
|
|
59
|
+
control: 'assistant.preview.close';
|
|
60
60
|
} | {
|
|
61
|
-
control:
|
|
61
|
+
control: 'assistant.conversation.new';
|
|
62
62
|
} | {
|
|
63
|
-
control:
|
|
63
|
+
control: 'page.tab';
|
|
64
64
|
name: string;
|
|
65
65
|
} | {
|
|
66
|
-
control:
|
|
66
|
+
control: 'page.filter';
|
|
67
67
|
filter: string | null;
|
|
68
68
|
option: string;
|
|
69
69
|
} | {
|
|
70
|
-
control:
|
|
70
|
+
control: 'page.filter.clear';
|
|
71
71
|
filter: string | null;
|
|
72
72
|
} | {
|
|
73
|
-
control:
|
|
73
|
+
control: 'page.sort';
|
|
74
74
|
field: string | null;
|
|
75
75
|
direction: SortDirection | null;
|
|
76
76
|
} | {
|
|
77
|
-
control:
|
|
77
|
+
control: 'page.search';
|
|
78
78
|
query: string;
|
|
79
79
|
} | {
|
|
80
|
-
control:
|
|
80
|
+
control: 'page.search.clear';
|
|
81
81
|
} | {
|
|
82
|
-
control:
|
|
82
|
+
control: 'page.open';
|
|
83
83
|
name: string;
|
|
84
84
|
};
|
|
85
85
|
export interface AppControlMatch {
|