@assistant-ui/react 0.15.18 → 0.15.19
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/README.md +7 -1
- package/dist/context/providers/ThreadViewportProvider.js +2 -2
- package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
- package/dist/hooks/useToolCallElapsed.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/mcp-apps/app-frame.d.ts.map +1 -1
- package/dist/mcp-apps/app-frame.js +17 -12
- package/dist/mcp-apps/app-frame.js.map +1 -1
- package/dist/mcp-apps/bridge.js +7 -1
- package/dist/mcp-apps/bridge.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalRoot.js +47 -79
- package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
- package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAttachmentDropzone.js +61 -138
- package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
- package/dist/primitives/composer/ComposerInput.js +3 -8
- package/dist/primitives/composer/ComposerInput.js.map +1 -1
- package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/triggerKeyboardResource.js +53 -61
- package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -1
- package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -1
- package/dist/primitives/composer/trigger/triggerNavigationResource.js +127 -137
- package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -1
- package/dist/primitives/message/MessageParts.js +2 -14
- package/dist/primitives/message/MessageParts.js.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.d.ts +3 -3
- package/dist/primitives/message/MessagePartsGrouped.js +2 -2
- package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartText.d.ts +3 -1
- package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
- package/dist/primitives/messagePart/MessagePartText.js +13 -36
- package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
- package/dist/primitives/reasoning/useScrollLock.js +3 -1
- package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
- package/dist/sandbox-host/SandboxHost.js +22 -4
- package/dist/sandbox-host/SandboxHost.js.map +1 -1
- package/dist/unstable/useLiveCompletionAdapter.js +24 -2
- package/dist/unstable/useLiveCompletionAdapter.js.map +1 -1
- package/dist/unstable/useMentionAdapter.js +2 -2
- package/dist/unstable/useMentionAdapter.js.map +1 -1
- package/dist/unstable/useMessageStallDetection.d.ts +4 -5
- package/dist/unstable/useMessageStallDetection.d.ts.map +1 -1
- package/dist/unstable/useMessageStallDetection.js +16 -15
- package/dist/unstable/useMessageStallDetection.js.map +1 -1
- package/dist/unstable/webmcp/convertTools.d.ts.map +1 -1
- package/dist/unstable/webmcp/convertTools.js +54 -3
- package/dist/unstable/webmcp/convertTools.js.map +1 -1
- package/dist/unstable/webmcp/useWebMcpProvider.d.ts.map +1 -1
- package/dist/unstable/webmcp/useWebMcpProvider.js +2 -1
- package/dist/unstable/webmcp/useWebMcpProvider.js.map +1 -1
- package/dist/utils/Primitive.d.ts +14 -6
- package/dist/utils/Primitive.d.ts.map +1 -1
- package/dist/utils/Primitive.js +25 -6
- package/dist/utils/Primitive.js.map +1 -1
- package/dist/utils/getSelectionMessageId.d.ts.map +1 -1
- package/dist/utils/getSelectionMessageId.js +17 -3
- package/dist/utils/getSelectionMessageId.js.map +1 -1
- package/package.json +11 -11
- package/src/context/providers/ThreadViewportProvider.tsx +2 -2
- package/src/hooks/useToolCallElapsed.ts +3 -0
- package/src/index.ts +1 -1
- package/src/mcp-apps/app-frame.test.tsx +189 -0
- package/src/mcp-apps/app-frame.tsx +31 -22
- package/src/mcp-apps/bridge.test.ts +98 -0
- package/src/mcp-apps/bridge.ts +7 -1
- package/src/primitives/assistantModal/AssistantModalRoot.test.tsx +123 -0
- package/src/primitives/assistantModal/AssistantModalRoot.tsx +11 -31
- package/src/primitives/assistantModal/AssistantModalTrigger.test.tsx +1 -16
- package/src/primitives/composer/ComposerAttachmentDropzone.test.tsx +43 -0
- package/src/primitives/composer/ComposerAttachmentDropzone.tsx +2 -10
- package/src/primitives/composer/ComposerInput.test.tsx +22 -0
- package/src/primitives/composer/ComposerInput.tsx +5 -9
- package/src/primitives/composer/trigger/triggerKeyboardResource.ts +13 -7
- package/src/primitives/composer/trigger/triggerNavigationResource.ts +5 -3
- package/src/primitives/message/MessageParts.tsx +1 -21
- package/src/primitives/message/MessagePartsGrouped.test.tsx +93 -0
- package/src/primitives/message/MessagePartsGrouped.tsx +6 -6
- package/src/primitives/messagePart/MessagePartText.test.tsx +69 -0
- package/src/primitives/messagePart/MessagePartText.tsx +22 -9
- package/src/primitives/reasoning/useScrollLock.test.tsx +129 -0
- package/src/primitives/reasoning/useScrollLock.ts +15 -1
- package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +38 -1
- package/src/sandbox-host/SandboxHost.test.tsx +40 -0
- package/src/sandbox-host/SandboxHost.tsx +24 -4
- package/src/tests/MessageParts.rendererOptions.test.tsx +117 -0
- package/src/tests/toolCallTiming.test.tsx +55 -1
- package/src/unstable/useLiveCompletionAdapter.test.tsx +202 -1
- package/src/unstable/useLiveCompletionAdapter.ts +38 -8
- package/src/unstable/useMentionAdapter.test.tsx +47 -1
- package/src/unstable/useMentionAdapter.ts +2 -2
- package/src/unstable/useMessageStallDetection.ts +26 -19
- package/src/unstable/webmcp/convertTools.test.ts +181 -21
- package/src/unstable/webmcp/convertTools.ts +87 -7
- package/src/unstable/webmcp/useWebMcpProvider.ts +2 -4
- package/src/utils/Primitive.test.tsx +46 -1
- package/src/utils/Primitive.tsx +37 -7
- package/src/utils/getSelectionMessageId.test.ts +176 -1
- package/src/utils/getSelectionMessageId.ts +21 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useEffectEvent, useState } from "@assistant-ui/tap/react-shim";
|
|
3
3
|
import { resource } from "@assistant-ui/tap";
|
|
4
4
|
//#region src/primitives/composer/trigger/triggerKeyboardResource.ts
|
|
5
5
|
/** Relies on `Unstable_TriggerCategory` never carrying a `type` field. */
|
|
@@ -11,53 +11,45 @@ function isTriggerItem(x) {
|
|
|
11
11
|
* category drill-in, back, and close to the callbacks supplied by the parent.
|
|
12
12
|
*/
|
|
13
13
|
const useTriggerKeyboardResource = (t0) => {
|
|
14
|
-
const $ = c(
|
|
14
|
+
const $ = c(22);
|
|
15
15
|
const { navigableList, isSearchMode, activeCategoryId, query, popoverId, open, selectItem, selectCategory, goBack, close } = t0;
|
|
16
16
|
const [highlightedIndex, setHighlightedIndex] = useState(0);
|
|
17
17
|
let t1;
|
|
18
|
-
if ($[0]
|
|
19
|
-
t1 =
|
|
20
|
-
|
|
18
|
+
if ($[0] !== activeCategoryId || $[1] !== isSearchMode || $[2] !== navigableList) {
|
|
19
|
+
t1 = {
|
|
20
|
+
navigableList,
|
|
21
|
+
isSearchMode,
|
|
22
|
+
activeCategoryId
|
|
21
23
|
};
|
|
22
|
-
$[0] =
|
|
23
|
-
|
|
24
|
+
$[0] = activeCategoryId;
|
|
25
|
+
$[1] = isSearchMode;
|
|
26
|
+
$[2] = navigableList;
|
|
27
|
+
$[3] = t1;
|
|
28
|
+
} else t1 = $[3];
|
|
29
|
+
const [highlightScope, setHighlightScope] = useState(t1);
|
|
30
|
+
if (highlightScope.navigableList !== navigableList || highlightScope.isSearchMode !== isSearchMode || highlightScope.activeCategoryId !== activeCategoryId) {
|
|
31
|
+
setHighlightScope({
|
|
32
|
+
navigableList,
|
|
33
|
+
isSearchMode,
|
|
34
|
+
activeCategoryId
|
|
35
|
+
});
|
|
36
|
+
setHighlightedIndex(0);
|
|
37
|
+
}
|
|
24
38
|
let t2;
|
|
25
|
-
if ($[
|
|
26
|
-
t2 =
|
|
27
|
-
$[1] = navigableList;
|
|
28
|
-
$[2] = t2;
|
|
29
|
-
} else t2 = $[2];
|
|
30
|
-
useEffect(t1, t2);
|
|
31
|
-
let t3;
|
|
32
|
-
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
33
|
-
t3 = () => {
|
|
34
|
-
setHighlightedIndex(0);
|
|
35
|
-
};
|
|
36
|
-
$[3] = t3;
|
|
37
|
-
} else t3 = $[3];
|
|
38
|
-
let t4;
|
|
39
|
-
if ($[4] !== activeCategoryId || $[5] !== isSearchMode) {
|
|
40
|
-
t4 = [isSearchMode, activeCategoryId];
|
|
41
|
-
$[4] = activeCategoryId;
|
|
42
|
-
$[5] = isSearchMode;
|
|
43
|
-
$[6] = t4;
|
|
44
|
-
} else t4 = $[6];
|
|
45
|
-
useEffect(t3, t4);
|
|
46
|
-
let t5;
|
|
47
|
-
if ($[7] !== highlightedIndex || $[8] !== navigableList.length) {
|
|
48
|
-
t5 = (index) => {
|
|
39
|
+
if ($[4] !== highlightedIndex || $[5] !== navigableList.length) {
|
|
40
|
+
t2 = (index) => {
|
|
49
41
|
if (index < 0 || index >= navigableList.length) return;
|
|
50
42
|
if (index === highlightedIndex) return;
|
|
51
43
|
setHighlightedIndex(index);
|
|
52
44
|
};
|
|
53
|
-
$[
|
|
54
|
-
$[
|
|
55
|
-
$[
|
|
56
|
-
} else
|
|
57
|
-
const highlightIndex = useEffectEvent(
|
|
58
|
-
let
|
|
59
|
-
if ($[
|
|
60
|
-
|
|
45
|
+
$[4] = highlightedIndex;
|
|
46
|
+
$[5] = navigableList.length;
|
|
47
|
+
$[6] = t2;
|
|
48
|
+
} else t2 = $[6];
|
|
49
|
+
const highlightIndex = useEffectEvent(t2);
|
|
50
|
+
let t3;
|
|
51
|
+
if ($[7] !== activeCategoryId || $[8] !== close || $[9] !== goBack || $[10] !== highlightedIndex || $[11] !== navigableList || $[12] !== open || $[13] !== query || $[14] !== selectCategory || $[15] !== selectItem) {
|
|
52
|
+
t3 = (e) => {
|
|
61
53
|
if (!open) return false;
|
|
62
54
|
switch (e.key) {
|
|
63
55
|
case "ArrowDown":
|
|
@@ -100,35 +92,35 @@ const useTriggerKeyboardResource = (t0) => {
|
|
|
100
92
|
default: return false;
|
|
101
93
|
}
|
|
102
94
|
};
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
105
|
-
$[
|
|
106
|
-
$[
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
} else
|
|
114
|
-
const handleKeyDown = useEffectEvent(
|
|
95
|
+
$[7] = activeCategoryId;
|
|
96
|
+
$[8] = close;
|
|
97
|
+
$[9] = goBack;
|
|
98
|
+
$[10] = highlightedIndex;
|
|
99
|
+
$[11] = navigableList;
|
|
100
|
+
$[12] = open;
|
|
101
|
+
$[13] = query;
|
|
102
|
+
$[14] = selectCategory;
|
|
103
|
+
$[15] = selectItem;
|
|
104
|
+
$[16] = t3;
|
|
105
|
+
} else t3 = $[16];
|
|
106
|
+
const handleKeyDown = useEffectEvent(t3);
|
|
115
107
|
const highlightedEntry = navigableList[highlightedIndex];
|
|
116
108
|
const highlightedItemId = open && highlightedEntry ? `${popoverId}-option-${highlightedEntry.id}` : void 0;
|
|
117
|
-
let
|
|
118
|
-
if ($[
|
|
119
|
-
|
|
109
|
+
let t4;
|
|
110
|
+
if ($[17] !== handleKeyDown || $[18] !== highlightIndex || $[19] !== highlightedIndex || $[20] !== highlightedItemId) {
|
|
111
|
+
t4 = {
|
|
120
112
|
highlightedIndex,
|
|
121
113
|
highlightedItemId,
|
|
122
114
|
highlightIndex,
|
|
123
115
|
handleKeyDown
|
|
124
116
|
};
|
|
125
|
-
$[
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
} else
|
|
131
|
-
return
|
|
117
|
+
$[17] = handleKeyDown;
|
|
118
|
+
$[18] = highlightIndex;
|
|
119
|
+
$[19] = highlightedIndex;
|
|
120
|
+
$[20] = highlightedItemId;
|
|
121
|
+
$[21] = t4;
|
|
122
|
+
} else t4 = $[21];
|
|
123
|
+
return t4;
|
|
132
124
|
};
|
|
133
125
|
const TriggerKeyboardResource = resource(useTriggerKeyboardResource);
|
|
134
126
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggerKeyboardResource.js","names":["
|
|
1
|
+
{"version":3,"file":"triggerKeyboardResource.js","names":["useEffectEvent","useState","resource","Unstable_TriggerCategory","Unstable_TriggerItem","isTriggerItem","x","TriggerPopoverKeyEvent","key","shiftKey","preventDefault","TriggerKeyboardResourceOutput","highlightedIndex","highlightedItemId","highlightIndex","index","handleKeyDown","e","useTriggerKeyboardResource","t0","$","_c","navigableList","isSearchMode","activeCategoryId","query","popoverId","open","selectItem","selectCategory","goBack","close","setHighlightedIndex","t1","highlightScope","setHighlightScope","t2","length","t3","prev_0","len_0","len","prev","item","id","highlightedEntry","undefined","t4","TriggerKeyboardResource"],"sources":["../../../../src/primitives/composer/trigger/triggerKeyboardResource.ts"],"sourcesContent":["import { useEffectEvent, useState } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type {\n Unstable_TriggerCategory,\n Unstable_TriggerItem,\n} from \"@assistant-ui/core\";\n\n/** Relies on `Unstable_TriggerCategory` never carrying a `type` field. */\nfunction isTriggerItem(\n x: Unstable_TriggerItem | Unstable_TriggerCategory,\n): x is Unstable_TriggerItem {\n return \"type\" in x;\n}\n\n/** Key event shape accepted by the keyboard handler. */\nexport type TriggerPopoverKeyEvent = {\n readonly key: string;\n readonly shiftKey: boolean;\n preventDefault(): void;\n};\n\nexport type TriggerKeyboardResourceOutput = {\n /** Index of the currently highlighted entry within the navigable list. */\n readonly highlightedIndex: number;\n /** ID of the currently highlighted item (for `aria-activedescendant`). */\n readonly highlightedItemId: string | undefined;\n /** Move the highlight to an entry index (e.g. from pointer hover). Out-of-range values are ignored. */\n highlightIndex(index: number): void;\n /** Handle a key event; returns `true` if it was consumed. */\n handleKeyDown(e: TriggerPopoverKeyEvent): boolean;\n};\n\n/**\n * Owns keyboard-driven highlight state for the popover. Delegates selection,\n * category drill-in, back, and close to the callbacks supplied by the parent.\n */\nconst useTriggerKeyboardResource = ({\n navigableList,\n isSearchMode,\n activeCategoryId,\n query,\n popoverId,\n open,\n selectItem,\n selectCategory,\n goBack,\n close,\n}: {\n navigableList: readonly (Unstable_TriggerCategory | Unstable_TriggerItem)[];\n isSearchMode: boolean;\n activeCategoryId: string | null;\n query: string;\n popoverId: string;\n open: boolean;\n selectItem: (item: Unstable_TriggerItem) => void;\n selectCategory: (categoryId: string) => void;\n goBack: () => void;\n close: () => void;\n}): TriggerKeyboardResourceOutput => {\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const [highlightScope, setHighlightScope] = useState({\n navigableList,\n isSearchMode,\n activeCategoryId,\n });\n\n if (\n highlightScope.navigableList !== navigableList ||\n highlightScope.isSearchMode !== isSearchMode ||\n highlightScope.activeCategoryId !== activeCategoryId\n ) {\n setHighlightScope({ navigableList, isSearchMode, activeCategoryId });\n setHighlightedIndex(0);\n }\n\n const highlightIndex = useEffectEvent((index: number) => {\n if (index < 0 || index >= navigableList.length) return;\n if (index === highlightedIndex) return;\n setHighlightedIndex(index);\n });\n\n const handleKeyDown = useEffectEvent((e: TriggerPopoverKeyEvent): boolean => {\n if (!open) return false;\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n setHighlightedIndex((prev) => {\n const len = navigableList.length;\n if (len === 0) return 0;\n return prev < len - 1 ? prev + 1 : 0;\n });\n return true;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n setHighlightedIndex((prev) => {\n const len = navigableList.length;\n if (len === 0) return 0;\n return prev > 0 ? prev - 1 : len - 1;\n });\n return true;\n }\n case \"Enter\":\n case \"Tab\": {\n if (e.shiftKey) return false;\n e.preventDefault();\n const item = navigableList[highlightedIndex];\n if (!item) return true;\n\n if (isTriggerItem(item)) {\n selectItem(item);\n } else {\n selectCategory(item.id);\n }\n return true;\n }\n case \"Escape\": {\n e.preventDefault();\n close();\n return true;\n }\n case \"Backspace\": {\n if (activeCategoryId && query === \"\") {\n e.preventDefault();\n goBack();\n return true;\n }\n return false;\n }\n default:\n return false;\n }\n });\n\n const highlightedEntry = navigableList[highlightedIndex];\n const highlightedItemId =\n open && highlightedEntry\n ? `${popoverId}-option-${highlightedEntry.id}`\n : undefined;\n\n return {\n highlightedIndex,\n highlightedItemId,\n highlightIndex,\n handleKeyDown,\n };\n};\n\nexport const TriggerKeyboardResource = resource(useTriggerKeyboardResource);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggerNavigationResource.d.ts","names":[],"sources":["../../../../src/primitives/composer/trigger/triggerNavigationResource.ts"],"mappings":";;KASY;;WAED,qBAAqB;;WAErB,gBAAgB;;WAEhB;;WAEA;;WAEA,yBACL,2BACA;;EAGJ,eAAe;;EAEf;;
|
|
1
|
+
{"version":3,"file":"triggerNavigationResource.d.ts","names":[],"sources":["../../../../src/primitives/composer/trigger/triggerNavigationResource.ts"],"mappings":";;KASY;;WAED,qBAAqB;;WAErB,gBAAgB;;WAEhB;;WAEA;;WAEA,yBACL,2BACA;;EAGJ,eAAe;;EAEf;;cAsGW,uDAAyB,SAAA;EA1F3B,SAAA;EACF;EACD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { matchesTriggerItemQuery } from "./matchesTriggerItemQuery.js";
|
|
2
2
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { useEffectEvent, useState } from "@assistant-ui/tap/react-shim";
|
|
4
4
|
import { resource } from "@assistant-ui/tap";
|
|
5
5
|
//#region src/primitives/composer/trigger/triggerNavigationResource.ts
|
|
6
6
|
/**
|
|
@@ -8,192 +8,182 @@ import { resource } from "@assistant-ui/tap";
|
|
|
8
8
|
* adapter + current query. Pure derivation — no side effects on the composer.
|
|
9
9
|
*/
|
|
10
10
|
const useTriggerNavigationResource = (t0) => {
|
|
11
|
-
const $ = c(
|
|
11
|
+
const $ = c(35);
|
|
12
12
|
const { adapter, query, open } = t0;
|
|
13
13
|
const [activeCategoryId, setActiveCategoryId] = useState(null);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (!open) setActiveCategoryId(null);
|
|
19
|
-
};
|
|
20
|
-
t2 = [open];
|
|
21
|
-
$[0] = open;
|
|
22
|
-
$[1] = t1;
|
|
23
|
-
$[2] = t2;
|
|
24
|
-
} else {
|
|
25
|
-
t1 = $[1];
|
|
26
|
-
t2 = $[2];
|
|
14
|
+
const [wasOpen, setWasOpen] = useState(open);
|
|
15
|
+
if (wasOpen !== open) {
|
|
16
|
+
setWasOpen(open);
|
|
17
|
+
if (!open) setActiveCategoryId(null);
|
|
27
18
|
}
|
|
28
|
-
|
|
29
|
-
let t3;
|
|
19
|
+
let t1;
|
|
30
20
|
bb0: {
|
|
31
21
|
if (!open || !adapter) {
|
|
32
|
-
let
|
|
33
|
-
if ($[
|
|
34
|
-
|
|
35
|
-
$[
|
|
36
|
-
} else
|
|
37
|
-
|
|
22
|
+
let t2;
|
|
23
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
24
|
+
t2 = [];
|
|
25
|
+
$[0] = t2;
|
|
26
|
+
} else t2 = $[0];
|
|
27
|
+
t1 = t2;
|
|
38
28
|
break bb0;
|
|
39
29
|
}
|
|
40
|
-
let
|
|
41
|
-
if ($[
|
|
42
|
-
|
|
43
|
-
$[
|
|
44
|
-
$[
|
|
45
|
-
} else
|
|
46
|
-
|
|
30
|
+
let t2;
|
|
31
|
+
if ($[1] !== adapter) {
|
|
32
|
+
t2 = adapter.categories();
|
|
33
|
+
$[1] = adapter;
|
|
34
|
+
$[2] = t2;
|
|
35
|
+
} else t2 = $[2];
|
|
36
|
+
t1 = t2;
|
|
47
37
|
}
|
|
48
|
-
const categories =
|
|
38
|
+
const categories = t1;
|
|
49
39
|
const effectiveActiveCategoryId = open ? activeCategoryId : null;
|
|
50
|
-
let
|
|
40
|
+
let t2;
|
|
51
41
|
bb1: {
|
|
52
42
|
if (!effectiveActiveCategoryId || !adapter) {
|
|
53
|
-
let
|
|
54
|
-
if ($[
|
|
55
|
-
|
|
56
|
-
$[
|
|
57
|
-
} else
|
|
58
|
-
|
|
43
|
+
let t3;
|
|
44
|
+
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
45
|
+
t3 = [];
|
|
46
|
+
$[3] = t3;
|
|
47
|
+
} else t3 = $[3];
|
|
48
|
+
t2 = t3;
|
|
59
49
|
break bb1;
|
|
60
50
|
}
|
|
61
|
-
let
|
|
62
|
-
if ($[
|
|
63
|
-
|
|
64
|
-
$[
|
|
65
|
-
$[
|
|
66
|
-
$[
|
|
67
|
-
} else
|
|
68
|
-
|
|
51
|
+
let t3;
|
|
52
|
+
if ($[4] !== adapter || $[5] !== effectiveActiveCategoryId) {
|
|
53
|
+
t3 = adapter.categoryItems(effectiveActiveCategoryId);
|
|
54
|
+
$[4] = adapter;
|
|
55
|
+
$[5] = effectiveActiveCategoryId;
|
|
56
|
+
$[6] = t3;
|
|
57
|
+
} else t3 = $[6];
|
|
58
|
+
t2 = t3;
|
|
69
59
|
}
|
|
70
|
-
const allItems =
|
|
71
|
-
let
|
|
60
|
+
const allItems = t2;
|
|
61
|
+
let t3;
|
|
72
62
|
bb2: {
|
|
73
63
|
if (!open || !adapter || effectiveActiveCategoryId) {
|
|
74
|
-
|
|
64
|
+
t3 = null;
|
|
75
65
|
break bb2;
|
|
76
66
|
}
|
|
77
67
|
if (!query && categories.length > 0) {
|
|
78
|
-
|
|
68
|
+
t3 = null;
|
|
79
69
|
break bb2;
|
|
80
70
|
}
|
|
81
71
|
if (adapter.search) {
|
|
82
|
-
let
|
|
83
|
-
if ($[
|
|
84
|
-
|
|
85
|
-
$[
|
|
86
|
-
$[
|
|
87
|
-
$[
|
|
88
|
-
} else
|
|
89
|
-
|
|
72
|
+
let t4;
|
|
73
|
+
if ($[7] !== adapter || $[8] !== query) {
|
|
74
|
+
t4 = adapter.search(query);
|
|
75
|
+
$[7] = adapter;
|
|
76
|
+
$[8] = query;
|
|
77
|
+
$[9] = t4;
|
|
78
|
+
} else t4 = $[9];
|
|
79
|
+
t3 = t4;
|
|
90
80
|
break bb2;
|
|
91
81
|
}
|
|
92
82
|
let all;
|
|
93
|
-
if ($[
|
|
83
|
+
if ($[10] !== adapter || $[11] !== categories || $[12] !== query) {
|
|
94
84
|
all = [];
|
|
95
85
|
const lower = query.toLowerCase();
|
|
96
86
|
for (const cat of categories) for (const item of adapter.categoryItems(cat.id)) if (matchesTriggerItemQuery(item, lower)) all.push(item);
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
} else all = $[
|
|
102
|
-
|
|
87
|
+
$[10] = adapter;
|
|
88
|
+
$[11] = categories;
|
|
89
|
+
$[12] = query;
|
|
90
|
+
$[13] = all;
|
|
91
|
+
} else all = $[13];
|
|
92
|
+
t3 = all;
|
|
103
93
|
}
|
|
104
|
-
const searchResults =
|
|
94
|
+
const searchResults = t3;
|
|
105
95
|
const isSearchMode = searchResults !== null;
|
|
106
|
-
let
|
|
96
|
+
let t4;
|
|
107
97
|
bb3: {
|
|
108
98
|
if (isSearchMode) {
|
|
109
|
-
let
|
|
110
|
-
if ($[
|
|
111
|
-
|
|
112
|
-
$[
|
|
113
|
-
} else
|
|
114
|
-
|
|
99
|
+
let t5;
|
|
100
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
101
|
+
t5 = [];
|
|
102
|
+
$[14] = t5;
|
|
103
|
+
} else t5 = $[14];
|
|
104
|
+
t4 = t5;
|
|
115
105
|
break bb3;
|
|
116
106
|
}
|
|
117
107
|
if (!query) {
|
|
118
|
-
|
|
108
|
+
t4 = categories;
|
|
119
109
|
break bb3;
|
|
120
110
|
}
|
|
121
|
-
let
|
|
122
|
-
if ($[
|
|
111
|
+
let t5;
|
|
112
|
+
if ($[15] !== categories || $[16] !== query) {
|
|
123
113
|
const lower_0 = query.toLowerCase();
|
|
124
|
-
|
|
125
|
-
$[
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
} else
|
|
129
|
-
|
|
114
|
+
t5 = categories.filter((cat_0) => cat_0.label.toLowerCase().includes(lower_0));
|
|
115
|
+
$[15] = categories;
|
|
116
|
+
$[16] = query;
|
|
117
|
+
$[17] = t5;
|
|
118
|
+
} else t5 = $[17];
|
|
119
|
+
t4 = t5;
|
|
130
120
|
}
|
|
131
|
-
const filteredCategories =
|
|
132
|
-
let
|
|
121
|
+
const filteredCategories = t4;
|
|
122
|
+
let t5;
|
|
133
123
|
bb4: {
|
|
134
124
|
if (isSearchMode) {
|
|
135
|
-
let
|
|
136
|
-
if ($[
|
|
137
|
-
|
|
138
|
-
$[
|
|
139
|
-
$[
|
|
140
|
-
} else
|
|
141
|
-
|
|
125
|
+
let t6;
|
|
126
|
+
if ($[18] !== searchResults) {
|
|
127
|
+
t6 = searchResults ?? [];
|
|
128
|
+
$[18] = searchResults;
|
|
129
|
+
$[19] = t6;
|
|
130
|
+
} else t6 = $[19];
|
|
131
|
+
t5 = t6;
|
|
142
132
|
break bb4;
|
|
143
133
|
}
|
|
144
134
|
if (!query) {
|
|
145
|
-
|
|
135
|
+
t5 = allItems;
|
|
146
136
|
break bb4;
|
|
147
137
|
}
|
|
148
|
-
let
|
|
149
|
-
if ($[
|
|
138
|
+
let t6;
|
|
139
|
+
if ($[20] !== allItems || $[21] !== query) {
|
|
150
140
|
const lower_1 = query.toLowerCase();
|
|
151
|
-
|
|
152
|
-
$[
|
|
153
|
-
$[
|
|
154
|
-
$[
|
|
155
|
-
} else
|
|
156
|
-
|
|
141
|
+
t6 = allItems.filter((item_0) => matchesTriggerItemQuery(item_0, lower_1));
|
|
142
|
+
$[20] = allItems;
|
|
143
|
+
$[21] = query;
|
|
144
|
+
$[22] = t6;
|
|
145
|
+
} else t6 = $[22];
|
|
146
|
+
t5 = t6;
|
|
157
147
|
}
|
|
158
|
-
const filteredItems =
|
|
159
|
-
let
|
|
148
|
+
const filteredItems = t5;
|
|
149
|
+
let t6;
|
|
160
150
|
bb5: {
|
|
161
151
|
if (isSearchMode) {
|
|
162
|
-
let
|
|
163
|
-
if ($[
|
|
164
|
-
|
|
165
|
-
$[
|
|
166
|
-
$[
|
|
167
|
-
} else
|
|
168
|
-
|
|
152
|
+
let t7;
|
|
153
|
+
if ($[23] !== searchResults) {
|
|
154
|
+
t7 = searchResults ?? [];
|
|
155
|
+
$[23] = searchResults;
|
|
156
|
+
$[24] = t7;
|
|
157
|
+
} else t7 = $[24];
|
|
158
|
+
t6 = t7;
|
|
169
159
|
break bb5;
|
|
170
160
|
}
|
|
171
161
|
if (effectiveActiveCategoryId) {
|
|
172
|
-
|
|
162
|
+
t6 = filteredItems;
|
|
173
163
|
break bb5;
|
|
174
164
|
}
|
|
175
|
-
|
|
165
|
+
t6 = filteredCategories;
|
|
176
166
|
}
|
|
177
|
-
const navigableList =
|
|
178
|
-
let
|
|
179
|
-
if ($[
|
|
180
|
-
|
|
167
|
+
const navigableList = t6;
|
|
168
|
+
let t7;
|
|
169
|
+
if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
|
|
170
|
+
t7 = (categoryId) => {
|
|
181
171
|
setActiveCategoryId(categoryId);
|
|
182
172
|
};
|
|
183
|
-
$[
|
|
184
|
-
} else
|
|
185
|
-
const selectCategory = useEffectEvent(
|
|
186
|
-
let
|
|
187
|
-
if ($[
|
|
188
|
-
|
|
173
|
+
$[25] = t7;
|
|
174
|
+
} else t7 = $[25];
|
|
175
|
+
const selectCategory = useEffectEvent(t7);
|
|
176
|
+
let t8;
|
|
177
|
+
if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
|
|
178
|
+
t8 = () => {
|
|
189
179
|
setActiveCategoryId(null);
|
|
190
180
|
};
|
|
191
|
-
$[
|
|
192
|
-
} else
|
|
193
|
-
const goBack = useEffectEvent(
|
|
194
|
-
let
|
|
195
|
-
if ($[
|
|
196
|
-
|
|
181
|
+
$[26] = t8;
|
|
182
|
+
} else t8 = $[26];
|
|
183
|
+
const goBack = useEffectEvent(t8);
|
|
184
|
+
let t9;
|
|
185
|
+
if ($[27] !== effectiveActiveCategoryId || $[28] !== filteredCategories || $[29] !== filteredItems || $[30] !== goBack || $[31] !== isSearchMode || $[32] !== navigableList || $[33] !== selectCategory) {
|
|
186
|
+
t9 = {
|
|
197
187
|
categories: filteredCategories,
|
|
198
188
|
items: filteredItems,
|
|
199
189
|
isSearchMode,
|
|
@@ -202,16 +192,16 @@ const useTriggerNavigationResource = (t0) => {
|
|
|
202
192
|
selectCategory,
|
|
203
193
|
goBack
|
|
204
194
|
};
|
|
205
|
-
$[
|
|
206
|
-
$[
|
|
207
|
-
$[
|
|
208
|
-
$[
|
|
209
|
-
$[
|
|
210
|
-
$[
|
|
211
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
} else
|
|
214
|
-
return
|
|
195
|
+
$[27] = effectiveActiveCategoryId;
|
|
196
|
+
$[28] = filteredCategories;
|
|
197
|
+
$[29] = filteredItems;
|
|
198
|
+
$[30] = goBack;
|
|
199
|
+
$[31] = isSearchMode;
|
|
200
|
+
$[32] = navigableList;
|
|
201
|
+
$[33] = selectCategory;
|
|
202
|
+
$[34] = t9;
|
|
203
|
+
} else t9 = $[34];
|
|
204
|
+
return t9;
|
|
215
205
|
};
|
|
216
206
|
const TriggerNavigationResource = resource(useTriggerNavigationResource);
|
|
217
207
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggerNavigationResource.js","names":["
|
|
1
|
+
{"version":3,"file":"triggerNavigationResource.js","names":["useEffectEvent","useMemo","useState","resource","Unstable_TriggerAdapter","Unstable_TriggerCategory","Unstable_TriggerItem","matchesTriggerItemQuery","TriggerNavigationResourceOutput","categories","items","isSearchMode","activeCategoryId","navigableList","selectCategory","categoryId","goBack","useTriggerNavigationResource","t0","$","_c","adapter","query","open","setActiveCategoryId","wasOpen","setWasOpen","t1","bb0","t2","Symbol","for","effectiveActiveCategoryId","bb1","t3","categoryItems","allItems","bb2","length","search","t4","all","lower","toLowerCase","cat","item","id","push","searchResults","bb3","t5","lower_0","filter","cat_0","label","includes","filteredCategories","bb4","t6","lower_1","item_0","filteredItems","bb5","t7","t8","t9","TriggerNavigationResource"],"sources":["../../../../src/primitives/composer/trigger/triggerNavigationResource.ts"],"sourcesContent":["import { useEffectEvent, useMemo, useState } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type {\n Unstable_TriggerAdapter,\n Unstable_TriggerCategory,\n Unstable_TriggerItem,\n} from \"@assistant-ui/core\";\nimport { matchesTriggerItemQuery } from \"./matchesTriggerItemQuery\";\n\nexport type TriggerNavigationResourceOutput = {\n /** Filtered categories visible in the list (empty in search mode). */\n readonly categories: readonly Unstable_TriggerCategory[];\n /** Filtered items visible in the list. */\n readonly items: readonly Unstable_TriggerItem[];\n /** `true` when the current list is search results rather than categories. */\n readonly isSearchMode: boolean;\n /** Currently drilled-into category id (or `null` for the top level). */\n readonly activeCategoryId: string | null;\n /** Flat list used for keyboard navigation (categories or items). */\n readonly navigableList: readonly (\n | Unstable_TriggerCategory\n | Unstable_TriggerItem\n )[];\n /** Drill into a category. */\n selectCategory(categoryId: string): void;\n /** Return to the top-level category list. */\n goBack(): void;\n};\n\n/**\n * Computes categories, items, search results, and navigation state from the\n * adapter + current query. Pure derivation — no side effects on the composer.\n */\nconst useTriggerNavigationResource = ({\n adapter,\n query,\n open,\n}: {\n adapter: Unstable_TriggerAdapter | undefined;\n query: string;\n open: boolean;\n}): TriggerNavigationResourceOutput => {\n const [activeCategoryId, setActiveCategoryId] = useState<string | null>(null);\n const [wasOpen, setWasOpen] = useState(open);\n\n if (wasOpen !== open) {\n setWasOpen(open);\n if (!open) setActiveCategoryId(null);\n }\n\n const categories = useMemo<readonly Unstable_TriggerCategory[]>(() => {\n if (!open || !adapter) return [];\n return adapter.categories();\n }, [open, adapter]);\n\n const effectiveActiveCategoryId = open ? activeCategoryId : null;\n\n const allItems = useMemo<readonly Unstable_TriggerItem[]>(() => {\n if (!effectiveActiveCategoryId || !adapter) return [];\n return adapter.categoryItems(effectiveActiveCategoryId);\n }, [effectiveActiveCategoryId, adapter]);\n\n const searchResults = useMemo<readonly Unstable_TriggerItem[] | null>(() => {\n if (!open || !adapter || effectiveActiveCategoryId) return null;\n // If categories exist and query is empty, show categories first (not search)\n if (!query && categories.length > 0) return null;\n if (adapter.search) return adapter.search(query);\n\n // fallback: no adapter.search\n const all: Unstable_TriggerItem[] = [];\n const lower = query.toLowerCase();\n for (const cat of categories) {\n for (const item of adapter.categoryItems(cat.id)) {\n if (matchesTriggerItemQuery(item, lower)) {\n all.push(item);\n }\n }\n }\n return all;\n }, [open, adapter, query, effectiveActiveCategoryId, categories]);\n\n const isSearchMode = searchResults !== null;\n\n const filteredCategories = useMemo(() => {\n if (isSearchMode) return [];\n if (!query) return categories;\n const lower = query.toLowerCase();\n return categories.filter((cat) => cat.label.toLowerCase().includes(lower));\n }, [categories, query, isSearchMode]);\n\n const filteredItems = useMemo(() => {\n if (isSearchMode) return searchResults ?? [];\n if (!query) return allItems;\n const lower = query.toLowerCase();\n return allItems.filter((item) => matchesTriggerItemQuery(item, lower));\n }, [allItems, query, isSearchMode, searchResults]);\n\n const navigableList = useMemo(() => {\n if (isSearchMode) return searchResults ?? [];\n if (effectiveActiveCategoryId) return filteredItems;\n return filteredCategories;\n }, [\n isSearchMode,\n searchResults,\n effectiveActiveCategoryId,\n filteredItems,\n filteredCategories,\n ]);\n\n const selectCategory = useEffectEvent((categoryId: string) => {\n setActiveCategoryId(categoryId);\n });\n\n const goBack = useEffectEvent(() => {\n setActiveCategoryId(null);\n });\n\n return {\n categories: filteredCategories,\n items: filteredItems,\n isSearchMode,\n activeCategoryId: effectiveActiveCategoryId,\n navigableList,\n selectCategory,\n goBack,\n };\n};\n\nexport const TriggerNavigationResource = resource(useTriggerNavigationResource);\n"],"mappings":"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"}
|
|
@@ -45,21 +45,9 @@ const MessagePrimitiveParts = (props) => {
|
|
|
45
45
|
let t0;
|
|
46
46
|
if ($[5] !== components) {
|
|
47
47
|
t0 = components ? {
|
|
48
|
+
...components,
|
|
48
49
|
Text: components.Text ?? webDefaultComponents.Text,
|
|
49
|
-
Image: components.Image ?? webDefaultComponents.Image
|
|
50
|
-
Reasoning: components.Reasoning ?? messagePartsDefaultComponents.Reasoning,
|
|
51
|
-
Source: components.Source ?? messagePartsDefaultComponents.Source,
|
|
52
|
-
File: components.File ?? messagePartsDefaultComponents.File,
|
|
53
|
-
Unstable_Audio: components.Unstable_Audio ?? messagePartsDefaultComponents.Unstable_Audio,
|
|
54
|
-
..."ChainOfThought" in components ? { ChainOfThought: components.ChainOfThought } : {
|
|
55
|
-
tools: components.tools,
|
|
56
|
-
data: components.data,
|
|
57
|
-
ToolGroup: components.ToolGroup ?? messagePartsDefaultComponents.ToolGroup,
|
|
58
|
-
ReasoningGroup: components.ReasoningGroup ?? messagePartsDefaultComponents.ReasoningGroup
|
|
59
|
-
},
|
|
60
|
-
Empty: components.Empty,
|
|
61
|
-
Quote: components.Quote,
|
|
62
|
-
generativeUI: components.generativeUI
|
|
50
|
+
Image: components.Image ?? webDefaultComponents.Image
|
|
63
51
|
} : webDefaultComponents;
|
|
64
52
|
$[5] = components;
|
|
65
53
|
$[6] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageParts.js","names":["c","_c","FC","MessagePrimitiveParts","MessagePrimitivePartsBase","MessagePartComponent","MessagePartComponentBase","MessagePrimitivePartByIndex","MessagePrimitivePartByIndexBase","messagePartsDefaultComponents","MessagePartPrimitiveText","MessagePartPrimitiveImage","MessagePartPrimitiveInProgress","webDefaultComponents","Text","whiteSpace","fontFamily","Image","Props","props","$","t0","children","components","rest","
|
|
1
|
+
{"version":3,"file":"MessageParts.js","names":["c","_c","FC","MessagePrimitiveParts","MessagePrimitivePartsBase","MessagePartComponent","MessagePartComponentBase","MessagePrimitivePartByIndex","MessagePrimitivePartByIndexBase","messagePartsDefaultComponents","MessagePartPrimitiveText","MessagePartPrimitiveImage","MessagePartPrimitiveInProgress","webDefaultComponents","Text","whiteSpace","fontFamily","Image","Props","props","$","t0","children","components","rest","merged","t1","t2","displayName"],"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport {\n MessagePrimitiveParts as MessagePrimitivePartsBase,\n MessagePartComponent as MessagePartComponentBase,\n MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase,\n messagePartsDefaultComponents,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\n\nconst webDefaultComponents = {\n ...messagePartsDefaultComponents,\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Image: () => <MessagePartPrimitiveImage />,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\nexport namespace MessagePrimitiveParts {\n export type Props = MessagePrimitivePartsBase.Props;\n}\n\n/**\n * Renders the parts of a message with web-specific default components.\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = (\n props,\n) => {\n if (\"children\" in props) {\n return (\n <MessagePrimitivePartsBase>{props.children}</MessagePrimitivePartsBase>\n );\n }\n\n const { components, ...rest } = props;\n const merged = components\n ? {\n ...components,\n Text: components.Text ?? webDefaultComponents.Text,\n Image: components.Image ?? webDefaultComponents.Image,\n }\n : webDefaultComponents;\n\n return <MessagePrimitivePartsBase components={merged as any} {...rest} />;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\n// Re-export everything else unchanged\nexport {\n MessagePartComponentBase as MessagePartComponent,\n MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex,\n};\n"],"mappings":";;;;;;;;AAaA,MAAMa,uBAAuB;CAC3B,GAAGJ;CACHK,YACE,qBAAC,KAAD;EAAG,OAAO,EAAEC,YAAY,WAAW;EAAnC,UAAA,CACE,oBAAC,0BAAD,CAAyB,CAAA,GACzB,oBAAC,gCAAD,EAAA,UACE,oBAAC,QAAD;GAAM,OAAO,EAAEC,YAAY,SAAS;GAAI,UAAA;EAAgB,CAAA,EAC1B,CAAA,CAC/B;;CAELC,aAAa,oBAAC,2BAAD,CAA0B,CAAA;AACzC;;;;AASA,MAAad,yBAAyDgB,UAAA;CAAA,MAAAC,IAAAnB,EAAA,EAAA;CAGpE,IAAI,cAAckB,OAAK;EAAA,IAAAE;EAAA,IAAAD,EAAA,OAAAD,MAAAG,UAAA;GAEnBD,KAAA,oBAAC,yBAAD,EAAA,UAA4BF,MAAKG,SAAP,CAAA;GAA6CF,EAAA,KAAAD,MAAAG;GAAAF,EAAA,KAAAC;EAAA,OAAAA,KAAAD,EAAA;EAAA,OAAvEC;CAAuE;CAE1E,IAAAE;CAAA,IAAAC;CAAA,IAAAJ,EAAA,OAAAD,OAAA;EAED,CAAA,CAAAI,YAAA,GAAAC,QAAgCL;EAAMC,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAA;EAAAD,aAAAH,EAAA;EAAAI,OAAAJ,EAAA;CAAA;CAAA,IAAAC;CAAA,IAAAD,EAAA,OAAAG,YAAA;EACvBF,KAAAE,aAAA;GAAA,GAENA;GAAUT,MACPS,WAAUT,QAASD,qBAAoBC;GAAKG,OAC3CM,WAAUN,SAAUJ,qBAAoBI;EAE9B,IANRJ;EAMSO,EAAA,KAAAG;EAAAH,EAAA,KAAAC;CAAA,OAAAA,KAAAD,EAAA;CAEsB,MAAAM,KAAAD;CAAa,IAAAE;CAAA,IAAAP,EAAA,OAAAI,QAAAJ,EAAA,OAAAM,IAAA;EAApDC,KAAA,oBAAC,yBAAD;GAAuC,YAAAD;GAAa,GAAMF;EAAI,CAAA;EAAIJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,OAAlEO;AAAkE;AAG3ExB,sBAAsByB,cAAc"}
|