@runtypelabs/persona 4.33.0 → 4.35.1
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/activity-ui.d.cts +3 -15
- package/dist/activity-ui.d.ts +3 -15
- package/dist/animations/glyph-cycle.d.cts +1 -3
- package/dist/animations/glyph-cycle.d.ts +1 -3
- package/dist/animations/wipe.d.cts +1 -3
- package/dist/animations/wipe.d.ts +1 -3
- package/dist/approval-ui.cjs +2 -2
- package/dist/approval-ui.d.cts +3 -15
- package/dist/approval-ui.d.ts +3 -15
- package/dist/approval-ui.js +1 -1
- package/dist/artifacts-ui.cjs +1 -1
- package/dist/artifacts-ui.d.cts +3 -21
- package/dist/artifacts-ui.d.ts +3 -21
- package/dist/background-runtime.d.cts +2 -3
- package/dist/background-runtime.d.ts +2 -3
- package/dist/{chunk-DW7Vg_l2.js → chunk-B1P8w9_X.js} +1 -1
- package/dist/{chunk-D6U0E82p.js → chunk-B30Jdgg6.js} +1 -1
- package/dist/{chunk-gu34lr-P.js → chunk-Brdx4NCz.js} +1 -1
- package/dist/{chunk-6CUrH_jm.js → chunk-Bzo9GaAi.js} +1 -1
- package/dist/{chunk-Ds_twaZn.js → chunk-C4v-HNhS.js} +1 -1
- package/dist/{chunk-Bkma5hIU.js → chunk-CE4seJxF.js} +1 -1
- package/dist/chunk-CNBMBx-Y.js +2 -0
- package/dist/{chunk-ql5N2I_t.js → chunk-CWzHNuVK.js} +1 -1
- package/dist/{chunk-DbGLjU2P.js → chunk-CYpt7PsO.js} +1 -1
- package/dist/chunk-Cd8mp8Sv.js +1 -0
- package/dist/chunk-CsfE8WRG.js +1 -0
- package/dist/{chunk-DOZmcve8.js → chunk-Csr59G5V.js} +1 -1
- package/dist/{chunk-Co3VVwGe.js → chunk-D2pHRNEq.js} +0 -0
- package/dist/chunk-D3kZO8u-.js +1 -0
- package/dist/chunk-DAthf5H3.js +1 -0
- package/dist/{chunk-CXQJG7pb.js → chunk-DZ_aillY.js} +2 -2
- package/dist/{chunk-6C23QQdP.js → chunk-DgJV9zbK.js} +1 -1
- package/dist/chunk-Dv6KtIT1.js +1 -0
- package/dist/chunk-Dws8IrdR.js +1 -0
- package/dist/chunk-ThxxD8oK.js +1 -0
- package/dist/{chunk-C-EHtpbB.js → chunk-h5aOI_Pa.js} +1 -1
- package/dist/chunk-kizhspe5.js +1 -0
- package/dist/client-dispatch.js +1 -1
- package/dist/client-history.js +1 -1
- package/dist/client-stream.js +1 -1
- package/dist/{code-generators-DqauYyfX.d.cts → code-generators-DPAqTcAz.d.cts} +0 -2
- package/dist/{code-generators-DqauYyfX.d.ts → code-generators-DPAqTcAz.d.ts} +0 -2
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.d.cts +1 -1
- package/dist/codegen.d.ts +1 -1
- package/dist/codegen.js +1 -1
- package/dist/composer-actions-runtime.cjs +1 -1
- package/dist/composer-actions-runtime.d.cts +4 -20
- package/dist/composer-actions-runtime.d.ts +4 -20
- package/dist/composer-actions-runtime.js +1 -1
- package/dist/{composer-input-DnqGCXZz.d.ts → composer-input-BSDNPOqV.d.cts} +1 -7
- package/dist/{composer-input-DnqGCXZz.d.cts → composer-input-BSDNPOqV.d.ts} +1 -7
- package/dist/{composer-store-6Iwy6WLI.d.ts → composer-store-DC-gAjtN.d.cts} +1 -3
- package/dist/{composer-store-6Iwy6WLI.d.cts → composer-store-DC-gAjtN.d.ts} +1 -3
- package/dist/config-diagnostics.d.cts +0 -2
- package/dist/config-diagnostics.d.ts +0 -2
- package/dist/{context-mention-manager-B-rHF98n.d.ts → context-mention-manager-CCpeoGL2.d.cts} +2 -6
- package/dist/{context-mention-manager-B-rHF98n.d.cts → context-mention-manager-CCpeoGL2.d.ts} +2 -6
- package/dist/context-mentions-inline.cjs +1 -1
- package/dist/context-mentions-inline.d.cts +2 -4
- package/dist/context-mentions-inline.d.ts +2 -4
- package/dist/context-mentions-inline.js +1 -1
- package/dist/context-mentions.cjs +2 -2
- package/dist/context-mentions.d.cts +3 -9
- package/dist/context-mentions.d.ts +3 -9
- package/dist/context-mentions.js +1 -1
- package/dist/{defaults-BuOjqUAG.d.ts → defaults-tj5RcN8r.d.cts} +1 -5
- package/dist/{defaults-BuOjqUAG.d.cts → defaults-tj5RcN8r.d.ts} +1 -5
- package/dist/dictation-runtime.cjs +1 -1
- package/dist/dictation-runtime.d.cts +4 -13
- package/dist/dictation-runtime.d.ts +4 -13
- package/dist/dictation-runtime.js +1 -1
- package/dist/{dom-context-DHTabIn7.d.cts → dom-context-Bw-_9Evh.d.cts} +0 -2
- package/dist/{dom-context-DHTabIn7.d.ts → dom-context-Bw-_9Evh.d.ts} +0 -2
- package/dist/event-stream-view.cjs +1 -1
- package/dist/event-stream-view.d.cts +3 -16
- package/dist/event-stream-view.d.ts +3 -16
- package/dist/{fallback-speech-engine-SqEfkGda.d.ts → fallback-speech-engine-gkhbjLiZ.d.cts} +1 -3
- package/dist/{fallback-speech-engine-SqEfkGda.d.cts → fallback-speech-engine-gkhbjLiZ.d.ts} +1 -3
- package/dist/{feature-preferences-DqAmje-2.d.ts → feature-preferences-CerDWGZ7.d.cts} +1 -5
- package/dist/{feature-preferences-DqAmje-2.d.cts → feature-preferences-CerDWGZ7.d.ts} +1 -5
- package/dist/forms-ui.d.cts +2 -4
- package/dist/forms-ui.d.ts +2 -4
- package/dist/{history-confirm-dialog-B3L7QNcO.d.cts → history-confirm-dialog-CrkSB3Ra.d.cts} +2 -14
- package/dist/{history-confirm-dialog-B3L7QNcO.d.ts → history-confirm-dialog-CrkSB3Ra.d.ts} +2 -14
- package/dist/history-shell.cjs +1 -1
- package/dist/history-shell.d.cts +8 -27
- package/dist/history-shell.d.ts +8 -27
- package/dist/history-shell.js +1 -1
- package/dist/history-view.d.cts +1 -1
- package/dist/history-view.d.ts +1 -1
- package/dist/icons-extra.cjs +1 -1
- package/dist/icons-extra.d.cts +0 -2
- package/dist/icons-extra.d.ts +0 -2
- package/dist/index.cjs +44 -44
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +50 -50
- package/dist/index.js.map +1 -1
- package/dist/install.global.js +1 -1
- package/dist/install.global.js.map +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/{loading-label-runtime-loader-JecjOfJS.d.ts → loading-label-runtime-loader-fWIRrhUF.d.cts} +1 -3
- package/dist/{loading-label-runtime-loader-JecjOfJS.d.cts → loading-label-runtime-loader-fWIRrhUF.d.ts} +1 -3
- package/dist/loading-label-runtime.cjs +1 -1
- package/dist/loading-label-runtime.d.cts +1 -1
- package/dist/loading-label-runtime.d.ts +1 -1
- package/dist/loading-label-runtime.js +1 -1
- package/dist/markdown-parsers.js +1 -1
- package/dist/{message-bubble-CBYtpDsT.d.ts → message-bubble-Czc0lOHr.d.cts} +20 -3
- package/dist/{message-bubble-CBYtpDsT.d.cts → message-bubble-Czc0lOHr.d.ts} +20 -3
- package/dist/{plugin-kit-C1mRjLgW.d.cts → plugin-kit-C30jE-cw.d.cts} +3 -3
- package/dist/{plugin-kit-C1mRjLgW.d.ts → plugin-kit-C30jE-cw.d.ts} +3 -3
- package/dist/plugin-kit.cjs +1 -1
- package/dist/plugin-kit.d.cts +1 -1
- package/dist/plugin-kit.d.ts +1 -1
- package/dist/plugin-kit.js +1 -1
- package/dist/preferences-runtime.cjs +1 -1
- package/dist/preferences-runtime.d.cts +1 -1
- package/dist/preferences-runtime.d.ts +1 -1
- package/dist/preferences-runtime.js +1 -1
- package/dist/{preview-_UJwwt2L.d.cts → preview-D-osV3FU.d.cts} +2 -6
- package/dist/{preview-_UJwwt2L.d.ts → preview-D-osV3FU.d.ts} +2 -6
- package/dist/{registry-B5ZV3K-h.d.ts → registry-B6w91tx0.d.cts} +1 -8
- package/dist/{registry-B5ZV3K-h.d.cts → registry-B6w91tx0.d.ts} +1 -8
- package/dist/{session-Bys8_XuB.d.cts → session-BUQrs3Of.d.cts} +10 -93
- package/dist/{session-Bys8_XuB.d.ts → session-BUQrs3Of.d.ts} +10 -93
- package/dist/session-reconnect.d.cts +2 -4
- package/dist/session-reconnect.d.ts +2 -4
- package/dist/smart-dom-reader.d.cts +2 -8
- package/dist/smart-dom-reader.d.ts +2 -8
- package/dist/testing.d.cts +0 -2
- package/dist/testing.d.ts +0 -2
- package/dist/theme-editor-preview.cjs +50 -50
- package/dist/theme-editor-preview.d.cts +1 -1
- package/dist/theme-editor-preview.d.ts +1 -1
- package/dist/theme-editor-preview.js +25 -25
- package/dist/theme-editor.cjs +25 -5
- package/dist/theme-editor.d.cts +2 -22
- package/dist/theme-editor.d.ts +2 -22
- package/dist/theme-editor.js +1 -1
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +2 -4
- package/dist/theme-reference.d.ts +2 -4
- package/dist/theme-reference.js +1 -1
- package/dist/{tool-loading-animation-d5qAQcwv.d.ts → tool-loading-animation-B7XUf8TN.d.cts} +1 -7
- package/dist/{tool-loading-animation-d5qAQcwv.d.cts → tool-loading-animation-B7XUf8TN.d.ts} +1 -7
- package/dist/{tooltip-BkW-8MnD.d.cts → tooltip-DbXkAuJL.d.cts} +0 -2
- package/dist/{tooltip-BkW-8MnD.d.ts → tooltip-DbXkAuJL.d.ts} +0 -2
- package/dist/{turn-activity-ui-q6fHVnx-.d.cts → turn-activity-ui-CohuNMHT.d.cts} +2 -12
- package/dist/{turn-activity-ui-q6fHVnx-.d.ts → turn-activity-ui-CohuNMHT.d.ts} +2 -12
- package/dist/turn-activity-ui.d.cts +1 -1
- package/dist/turn-activity-ui.d.ts +1 -1
- package/dist/{types-B_mj21jg.d.cts → types-9i0xcAMT.d.cts} +128 -29
- package/dist/{types-B_mj21jg.d.ts → types-9i0xcAMT.d.ts} +128 -29
- package/dist/ui-extras.js +3 -3
- package/dist/voice-client-tools.d.cts +1 -3
- package/dist/voice-client-tools.d.ts +1 -3
- package/dist/voice-runtime.cjs +1 -1
- package/dist/voice-runtime.d.cts +2 -12
- package/dist/voice-runtime.d.ts +2 -12
- package/dist/voice-runtime.js +2 -2
- package/dist/voice-worklet-player.d.cts +2 -6
- package/dist/voice-worklet-player.d.ts +2 -6
- package/dist/{webmcp-runtime-entry-ClEO3qdI.d.ts → webmcp-runtime-entry-XNaXa-9h.d.cts} +9 -5
- package/dist/{webmcp-runtime-entry-ClEO3qdI.d.cts → webmcp-runtime-entry-XNaXa-9h.d.ts} +9 -5
- package/dist/webmcp-runtime.cjs +1 -1
- package/dist/webmcp-runtime.d.cts +1 -1
- package/dist/webmcp-runtime.d.ts +1 -1
- package/dist/webmcp-runtime.js +1 -1
- package/dist/widget.css +1 -1
- package/package.json +5 -5
- package/src/client-dispatch.ts +13 -0
- package/src/client.ts +37 -2
- package/src/client.webmcp-require-confirm.test.ts +212 -0
- package/src/components/composer-model-picker.ts +0 -14
- package/src/components/composer-overflow-menu.ts +0 -15
- package/src/components/composer-tokens.ts +0 -20
- package/src/components/event-stream-view.test.ts +5 -0
- package/src/components/message-bubble.ts +26 -6
- package/src/components/scroll-to-bottom.test.ts +135 -0
- package/src/components/scroll-to-bottom.ts +50 -13
- package/src/components/user-message-collapse.ts +117 -0
- package/src/defaults.ts +6 -0
- package/src/generated/runtype-openapi-contract.ts +13 -0
- package/src/plugin-kit.test.ts +101 -0
- package/src/plugin-kit.ts +29 -1
- package/src/session.ts +6 -2
- package/src/session.webmcp.test.ts +32 -0
- package/src/styles/widget.css +56 -0
- package/src/theme-reference.ts +2 -2
- package/src/types/theme.ts +29 -0
- package/src/types.ts +84 -5
- package/src/ui.composer-models.test.ts +5 -7
- package/src/ui.composer-overflow.test.ts +14 -21
- package/src/ui.scroll-additive.test.ts +219 -117
- package/src/ui.scroll.test.ts +176 -13
- package/src/ui.ts +230 -107
- package/src/ui.turn-activity.test.ts +7 -7
- package/src/ui.user-message-collapse.test.ts +540 -0
- package/src/utils/auto-follow.test.ts +0 -38
- package/src/utils/auto-follow.ts +0 -35
- package/src/utils/context-mention-controller.test.ts +56 -0
- package/src/utils/theme.test.ts +23 -0
- package/src/utils/tokens.ts +16 -0
- package/src/webmcp-bridge.test.ts +102 -0
- package/src/webmcp-runtime-entry.ts +29 -1
- package/dist/chunk-BAkaTZpd.js +0 -1
- package/dist/chunk-BEDTp-dm.js +0 -1
- package/dist/chunk-C7-m0EmI.js +0 -1
- package/dist/chunk-CNhThrLX.js +0 -1
- package/dist/chunk-CVMIncEY.js +0 -1
- package/dist/chunk-CzLEhoB_.js +0 -2
- package/dist/chunk-DVgzoVCB.js +0 -1
- package/dist/chunk-d54BJdKd.js +0 -1
- package/dist/chunk-dLJWKfOb.js +0 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Ar as ComposerModel, Er as ComposerMode, Or as ComposerModeGroup, Ro as AgentWidgetPlugin, Rr as ComposerState, dr as ComposerActionOverflowConfig, fr as ComposerActionPlacement, ja as renderLucideIcon, k as AgentWidgetConfig, lr as ComposerActionContext, pr as ComposerActionPresentation, sr as ComposerAction, ur as ComposerActionContributionContext, yr as ComposerCustomAction } from "./types-
|
|
2
|
-
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-
|
|
3
|
-
import { i as hideTooltipFor, r as attachTooltip } from "./tooltip-
|
|
4
|
-
import { t as createComposerStore } from "./composer-store-
|
|
5
|
-
//#region src/components/composer-bindings.d.ts
|
|
1
|
+
import { Ar as ComposerModel, Er as ComposerMode, Or as ComposerModeGroup, Ro as AgentWidgetPlugin, Rr as ComposerState, dr as ComposerActionOverflowConfig, fr as ComposerActionPlacement, ja as renderLucideIcon, k as AgentWidgetConfig, lr as ComposerActionContext, pr as ComposerActionPresentation, sr as ComposerAction, ur as ComposerActionContributionContext, yr as ComposerCustomAction } from "./types-9i0xcAMT.cjs";
|
|
2
|
+
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C30jE-cw.cjs";
|
|
3
|
+
import { i as hideTooltipFor, r as attachTooltip } from "./tooltip-DbXkAuJL.cjs";
|
|
4
|
+
import { t as createComposerStore } from "./composer-store-DC-gAjtN.cjs";
|
|
6
5
|
/**
|
|
7
6
|
* Atomic composer surface bindings.
|
|
8
7
|
*
|
|
@@ -53,8 +52,6 @@ interface ComposerSurfaceBindings {
|
|
|
53
52
|
removeListener: (target: EventTarget, type: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
|
|
54
53
|
destroy: () => void;
|
|
55
54
|
}
|
|
56
|
-
//#endregion
|
|
57
|
-
//#region src/components/composer-overflow-menu.d.ts
|
|
58
55
|
interface ComposerOverflowMenu {
|
|
59
56
|
/** Wrapper placed in the start cluster, like every other action element. */
|
|
60
57
|
trigger: HTMLElement;
|
|
@@ -77,8 +74,6 @@ interface ComposerOverflowMenu {
|
|
|
77
74
|
refresh: () => void;
|
|
78
75
|
destroy: () => void;
|
|
79
76
|
}
|
|
80
|
-
//#endregion
|
|
81
|
-
//#region src/components/composer-actions.d.ts
|
|
82
77
|
/**
|
|
83
78
|
* A core control the registry orders but does not necessarily create.
|
|
84
79
|
*
|
|
@@ -154,8 +149,6 @@ interface ComposerActionRenderer {
|
|
|
154
149
|
destroy: () => void;
|
|
155
150
|
}
|
|
156
151
|
export declare function createComposerActionRenderer(options: ComposerActionRendererOptions): ComposerActionRenderer;
|
|
157
|
-
//#endregion
|
|
158
|
-
//#region src/components/composer-model-picker.d.ts
|
|
159
152
|
interface ComposerModelPickerOptions {
|
|
160
153
|
renderIcon: typeof renderLucideIcon;
|
|
161
154
|
getModels: () => ReadonlyArray<ComposerModel>;
|
|
@@ -181,8 +174,6 @@ interface ComposerModelPicker {
|
|
|
181
174
|
repaint: () => void;
|
|
182
175
|
}
|
|
183
176
|
export declare function createComposerModelPickerAction(options: ComposerModelPickerOptions): ComposerModelPicker;
|
|
184
|
-
//#endregion
|
|
185
|
-
//#region src/components/composer-segmented-modes.d.ts
|
|
186
177
|
interface ComposerSegmentedModeOptions {
|
|
187
178
|
renderIcon: typeof renderLucideIcon;
|
|
188
179
|
groupId: string;
|
|
@@ -199,8 +190,6 @@ interface ComposerSegmentedModeControl {
|
|
|
199
190
|
repaint: () => void;
|
|
200
191
|
}
|
|
201
192
|
export declare function createComposerSegmentedModeAction(options: ComposerSegmentedModeOptions): ComposerSegmentedModeControl;
|
|
202
|
-
//#endregion
|
|
203
|
-
//#region src/components/composer-mode-chips.d.ts
|
|
204
193
|
interface ComposerModeChipRow {
|
|
205
194
|
/** The shared row these chips render into. */
|
|
206
195
|
element: HTMLElement;
|
|
@@ -220,11 +209,7 @@ export declare function createComposerModeChipRow(options: {
|
|
|
220
209
|
*/
|
|
221
210
|
initialIds?: readonly string[];
|
|
222
211
|
}): ComposerModeChipRow;
|
|
223
|
-
//#endregion
|
|
224
|
-
//#region src/components/composer-action-styles.d.ts
|
|
225
212
|
export declare const ensureComposerActionStyles: (target: HTMLElement) => void;
|
|
226
|
-
//#endregion
|
|
227
|
-
//#region src/composer-core-controls.d.ts
|
|
228
213
|
/** Model/mode controls share the action renderer's lifetime and loading boundary. */
|
|
229
214
|
export declare function createComposerCoreControls(options: {
|
|
230
215
|
getConfig: () => AgentWidgetConfig;
|
|
@@ -239,6 +224,5 @@ export declare function createComposerCoreControls(options: {
|
|
|
239
224
|
collect: () => ComposerAction[];
|
|
240
225
|
repaint: () => void;
|
|
241
226
|
};
|
|
242
|
-
//#endregion
|
|
243
227
|
export { createPopover, isEditableEventTarget };
|
|
244
228
|
export {}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { Ar as ComposerModel, Er as ComposerMode, Or as ComposerModeGroup, Ro as AgentWidgetPlugin, Rr as ComposerState, dr as ComposerActionOverflowConfig, fr as ComposerActionPlacement, ja as renderLucideIcon, k as AgentWidgetConfig, lr as ComposerActionContext, pr as ComposerActionPresentation, sr as ComposerAction, ur as ComposerActionContributionContext, yr as ComposerCustomAction } from "./types-
|
|
2
|
-
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-
|
|
3
|
-
import { i as hideTooltipFor, r as attachTooltip } from "./tooltip-
|
|
4
|
-
import { t as createComposerStore } from "./composer-store-
|
|
5
|
-
//#region src/components/composer-bindings.d.ts
|
|
1
|
+
import { Ar as ComposerModel, Er as ComposerMode, Or as ComposerModeGroup, Ro as AgentWidgetPlugin, Rr as ComposerState, dr as ComposerActionOverflowConfig, fr as ComposerActionPlacement, ja as renderLucideIcon, k as AgentWidgetConfig, lr as ComposerActionContext, pr as ComposerActionPresentation, sr as ComposerAction, ur as ComposerActionContributionContext, yr as ComposerCustomAction } from "./types-9i0xcAMT.js";
|
|
2
|
+
import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C30jE-cw.js";
|
|
3
|
+
import { i as hideTooltipFor, r as attachTooltip } from "./tooltip-DbXkAuJL.js";
|
|
4
|
+
import { t as createComposerStore } from "./composer-store-DC-gAjtN.js";
|
|
6
5
|
/**
|
|
7
6
|
* Atomic composer surface bindings.
|
|
8
7
|
*
|
|
@@ -53,8 +52,6 @@ interface ComposerSurfaceBindings {
|
|
|
53
52
|
removeListener: (target: EventTarget, type: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
|
|
54
53
|
destroy: () => void;
|
|
55
54
|
}
|
|
56
|
-
//#endregion
|
|
57
|
-
//#region src/components/composer-overflow-menu.d.ts
|
|
58
55
|
interface ComposerOverflowMenu {
|
|
59
56
|
/** Wrapper placed in the start cluster, like every other action element. */
|
|
60
57
|
trigger: HTMLElement;
|
|
@@ -77,8 +74,6 @@ interface ComposerOverflowMenu {
|
|
|
77
74
|
refresh: () => void;
|
|
78
75
|
destroy: () => void;
|
|
79
76
|
}
|
|
80
|
-
//#endregion
|
|
81
|
-
//#region src/components/composer-actions.d.ts
|
|
82
77
|
/**
|
|
83
78
|
* A core control the registry orders but does not necessarily create.
|
|
84
79
|
*
|
|
@@ -154,8 +149,6 @@ interface ComposerActionRenderer {
|
|
|
154
149
|
destroy: () => void;
|
|
155
150
|
}
|
|
156
151
|
export declare function createComposerActionRenderer(options: ComposerActionRendererOptions): ComposerActionRenderer;
|
|
157
|
-
//#endregion
|
|
158
|
-
//#region src/components/composer-model-picker.d.ts
|
|
159
152
|
interface ComposerModelPickerOptions {
|
|
160
153
|
renderIcon: typeof renderLucideIcon;
|
|
161
154
|
getModels: () => ReadonlyArray<ComposerModel>;
|
|
@@ -181,8 +174,6 @@ interface ComposerModelPicker {
|
|
|
181
174
|
repaint: () => void;
|
|
182
175
|
}
|
|
183
176
|
export declare function createComposerModelPickerAction(options: ComposerModelPickerOptions): ComposerModelPicker;
|
|
184
|
-
//#endregion
|
|
185
|
-
//#region src/components/composer-segmented-modes.d.ts
|
|
186
177
|
interface ComposerSegmentedModeOptions {
|
|
187
178
|
renderIcon: typeof renderLucideIcon;
|
|
188
179
|
groupId: string;
|
|
@@ -199,8 +190,6 @@ interface ComposerSegmentedModeControl {
|
|
|
199
190
|
repaint: () => void;
|
|
200
191
|
}
|
|
201
192
|
export declare function createComposerSegmentedModeAction(options: ComposerSegmentedModeOptions): ComposerSegmentedModeControl;
|
|
202
|
-
//#endregion
|
|
203
|
-
//#region src/components/composer-mode-chips.d.ts
|
|
204
193
|
interface ComposerModeChipRow {
|
|
205
194
|
/** The shared row these chips render into. */
|
|
206
195
|
element: HTMLElement;
|
|
@@ -220,11 +209,7 @@ export declare function createComposerModeChipRow(options: {
|
|
|
220
209
|
*/
|
|
221
210
|
initialIds?: readonly string[];
|
|
222
211
|
}): ComposerModeChipRow;
|
|
223
|
-
//#endregion
|
|
224
|
-
//#region src/components/composer-action-styles.d.ts
|
|
225
212
|
export declare const ensureComposerActionStyles: (target: HTMLElement) => void;
|
|
226
|
-
//#endregion
|
|
227
|
-
//#region src/composer-core-controls.d.ts
|
|
228
213
|
/** Model/mode controls share the action renderer's lifetime and loading boundary. */
|
|
229
214
|
export declare function createComposerCoreControls(options: {
|
|
230
215
|
getConfig: () => AgentWidgetConfig;
|
|
@@ -239,6 +224,5 @@ export declare function createComposerCoreControls(options: {
|
|
|
239
224
|
collect: () => ComposerAction[];
|
|
240
225
|
repaint: () => void;
|
|
241
226
|
};
|
|
242
|
-
//#endregion
|
|
243
227
|
export { createPopover, isEditableEventTarget };
|
|
244
228
|
export {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>e.nodeType===Node.DOCUMENT_NODE,t=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host!==void 0;function n(n){let r=n.getRootNode?.();return r&&t(r)||r&&e(r)?r:n.ownerDocument??document}function r(t,n,r){let i=e(t)?t.head:t,a=n.replace(/["\\]/g,`\\$&`);if(i.querySelector(`style[data-persona-plugin-style="${a}"]`))return;let o=(e(t)?t:t.ownerDocument??document).createElement(`style`);o.setAttribute(`data-persona-plugin-style`,n),o.textContent=r,i.appendChild(o)}function i(i,a,o){if(e(i)||t(i)){r(i,a,o);return}let s=i;if(s.isConnected){r(n(s),a,o);return}let c=s.ownerDocument??document;r(c,a,o),queueMicrotask(()=>{let e=n(s);e!==c&&r(e,a,o)})}function a(e){let t=e.getRootNode?.();return t instanceof ShadowRoot?t:e.closest(`dialog[open]`)??(e.ownerDocument??document).body}function o(e){let{anchor:t,content:n,placement:r=`bottom-start`,offset:i=6,matchAnchorWidth:o=!1,horizontalOffset:s,verticalOffset:c,zIndex:l=2147483e3,onOpen:u,onDismiss:d}=e,f=()=>e.container??a(t),p=!1,m=null,h=()=>{if(!p)return;let a=f();if(n.parentNode!==a){let e=n.contains(n.ownerDocument.activeElement)?n.ownerDocument.activeElement:null;a.appendChild(n),e?.focus({preventScroll:!0})}let l=e.getAnchorRect?.()??t.getBoundingClientRect();n.style.position=`fixed`,o&&(n.style.minWidth=`${l.width}px`),s&&(n.style.maxWidth=`${l.width}px`);let u=n.getBoundingClientRect(),d=c?.()??null,m=d==null?l.top:l.top+d,h=e.getPlacement?.()??r,g=h===`top-start`||h===`top-end`?m-i-u.height:l.bottom+i,_=h===`bottom-end`||h===`top-end`?l.right-u.width:l.left,v=s?.()??null;if(v!=null){let e=Math.max(l.left,l.right-u.width);_=Math.min(Math.max(l.left+v,l.left),e)}if(e.viewportPadding!==void 0){let n=e.viewportPadding,r=t.ownerDocument.defaultView,a=r?.innerHeight??0,o=r?.innerWidth??0,s=m-i-n,c=a-l.bottom-i-n;g=(h.startsWith(`top`)?s>=u.height||s>=c:!(c>=u.height||c>=s))?m-i-u.height:l.bottom+i,g=Math.max(n,Math.min(g,a-n-u.height)),_=Math.max(n,Math.min(_,o-n-u.width))}n.style.top=`${g}px`,n.style.left=`${_}px`},g=()=>{p&&(p=!1,m&&=(m(),null),n.remove())},_=()=>{if(p)return;p=!0,l!=null&&(n.style.zIndex=String(l)),h();let r=(t.ownerDocument??document).defaultView??window,i=t.ownerDocument??document,a=()=>{t.isConnected?h():(g(),d?.(`anchor-removed`))},o=e=>{let r=typeof e.composedPath==`function`?e.composedPath():[];r.includes(n)||r.includes(t)||(g(),d?.(`outside`))},s=e.viewportPadding!==void 0&&r.ResizeObserver?new r.ResizeObserver(a):null;s?.observe(n),s?.observe(t);let c=r.setTimeout(()=>{i.addEventListener(`pointerdown`,o,!0)},0);r.addEventListener(`scroll`,a,!0),r.addEventListener(`resize`,a);let f=t.closest(`[data-persona-root]`);f?.addEventListener(`persona:internal:host-moved`,a),m=()=>{s?.disconnect(),r.clearTimeout(c),i.removeEventListener(`pointerdown`,o,!0),r.removeEventListener(`scroll`,a,!0),r.removeEventListener(`resize`,a),f?.removeEventListener(`persona:internal:host-moved`,a)},u?.()};return{get isOpen(){return p},open:_,close:g,toggle:()=>p?g():_(),reposition:h,destroy:g}}function s(e){return(typeof e.composedPath==`function`?e.composedPath():[]).some(e=>e instanceof HTMLElement&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.isContentEditable))}const c=e=>i(e,`composer-actions`,`.persona-composer-overflow-menu{gap:var(--persona-components-composer-overflowMenu-rowGap,2px);min-width:min(var(--persona-components-composer-overflowMenu-minWidth,180px), calc(100vw - 16px));box-sizing:border-box;max-width:calc(100vw - 16px);max-height:min(var(--persona-components-composer-overflowMenu-maxHeight,320px), calc(100vh - 16px));padding:var(--persona-components-composer-overflowMenu-padding,4px);border-radius:var(--persona-components-composer-overflowMenu-borderRadius,var(--persona-radius-lg,.5rem));border:1px solid var(--persona-components-composer-overflowMenu-borderColor,var(--persona-border,#e5e7eb));background:var(--persona-components-composer-overflowMenu-background,var(--persona-surface,#fff));color:var(--persona-components-composer-overflowMenu-foreground,var(--persona-text,#111827));box-shadow:var(--persona-components-composer-overflowMenu-shadow,var(--persona-shadow-md,0 8px 24px #0000001f));font-family:var(--persona-font-family,inherit);line-height:var(--persona-components-composer-overflowMenu-lineHeight,1.35);flex-direction:column;display:flex;overflow-y:auto}.persona-composer-overflow-menu__item{align-items:center;gap:var(--persona-components-composer-overflowMenu-iconGap,8px);width:100%;padding:var(--persona-components-composer-overflowMenu-rowPadding,6px 8px);border-radius:var(--persona-components-composer-overflowMenu-rowBorderRadius,var(--persona-radius-md,.375rem));color:inherit;font-family:inherit;font-size:var(--persona-components-composer-overflowMenu-fontSize,13px);text-align:start;cursor:pointer;background:0 0;border:none;display:flex}.persona-composer-overflow-menu__item:hover:not(:disabled){background:var(--persona-components-composer-overflowMenu-hoverBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__item:focus-visible{background:var(--persona-components-composer-overflowMenu-focusBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__item[aria-pressed=true]{background:var(--persona-button-ghost-hover-bg,#0000000d);font-weight:600}.persona-composer-overflow-menu__item:disabled{opacity:.5;cursor:default}.persona-composer-overflow-menu__item[aria-busy=true]{opacity:.6;cursor:progress}.persona-composer-overflow-menu__icon{width:var(--persona-components-composer-overflowMenu-iconSize,16px);height:var(--persona-components-composer-overflowMenu-iconSize,16px);flex:none;align-items:center;display:inline-flex}.persona-composer-overflow-menu__content{display:contents}.persona-composer-overflow-menu__text{flex-direction:column;min-width:0;display:flex}.persona-composer-overflow-menu__icon>svg{width:100%;height:100%}.persona-composer-overflow-menu__description{color:var(--persona-components-composer-overflowMenu-descriptionColor,var(--persona-text-muted,#6b7280));font-size:var(--persona-components-composer-overflowMenu-descriptionFontSize,12px);line-height:var(--persona-components-composer-overflowMenu-lineHeight,1.35);white-space:normal;display:block}.persona-composer-overflow-menu[data-persona-menu-description-layout=inline] .persona-composer-overflow-menu__text,.persona-composer-overflow-menu[data-persona-menu-description-layout=inline] .persona-composer-overflow-menu__slot>.persona-composer-overflow-menu__label{align-items:baseline;gap:0 var(--persona-components-composer-overflowMenu-iconGap,8px);flex-flow:wrap;display:flex}.persona-composer-overflow-menu__divider{border-top:1px solid var(--persona-components-composer-overflowMenu-dividerColor,var(--persona-border,#e5e7eb));margin:var(--persona-components-composer-overflowMenu-dividerSpacing,4px 0);flex-shrink:0}.persona-composer-overflow-menu__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.persona-composer-overflow-menu__slot{align-items:center;gap:var(--persona-components-composer-overflowMenu-iconGap,8px);width:100%;padding:var(--persona-components-composer-overflowMenu-rowPadding,6px 8px);border-radius:var(--persona-components-composer-overflowMenu-rowBorderRadius,var(--persona-radius-md,.375rem));font-size:var(--persona-components-composer-overflowMenu-fontSize,13px);text-align:start;cursor:pointer;display:flex}.persona-composer-overflow-menu__slot:hover{background:var(--persona-components-composer-overflowMenu-hoverBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__slot[data-persona-menu-focus]{background:var(--persona-components-composer-overflowMenu-focusBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__slot .persona-send-button-wrapper{display:contents}.persona-composer-overflow-menu__slot .persona-composer-control{width:var(--persona-components-composer-overflowMenu-iconSize,16px);height:var(--persona-components-composer-overflowMenu-iconSize,16px);min-width:var(--persona-components-composer-overflowMenu-iconSize,16px);min-height:var(--persona-components-composer-overflowMenu-iconSize,16px);box-shadow:none;color:inherit;cursor:inherit;background:0 0;border:none;border-radius:0;flex:none;padding:0;line-height:1;overflow:hidden}.persona-composer-overflow-menu__slot .persona-composer-control>svg{width:var(--persona-components-composer-overflowMenu-iconSize,16px);height:var(--persona-components-composer-overflowMenu-iconSize,16px)}.persona-composer-overflow-menu__slot .persona-composer-control:focus-visible{outline:none}.persona-composer-overflow-menu__slot .persona-control-tooltip{display:none}.persona-composer-segmented{align-items:center;gap:var(--persona-components-composer-segmented-gap,2px);padding:var(--persona-components-composer-segmented-padding,2px);border-radius:var(--persona-components-composer-segmented-trackBorderRadius,9999px);background:var(--persona-components-composer-segmented-trackBackground,var(--persona-container,#f3f4f6));flex:none;display:inline-flex}.persona-composer-segmented-item{cursor:pointer;white-space:nowrap;box-shadow:none;font-family:inherit;font-size:var(--persona-components-composer-segmented-fontSize,var(--persona-composer-font-size,.875rem));line-height:var(--persona-components-composer-segmented-lineHeight,var(--persona-composer-line-height,1.25rem));font-weight:var(--persona-components-composer-segmented-fontWeight,normal);min-height:var(--persona-components-composer-segmented-minHeight,0px);padding:var(--persona-components-composer-segmented-itemPadding,.25rem .625rem);border-radius:var(--persona-components-composer-segmented-trackBorderRadius,9999px);color:var(--persona-components-composer-segmented-inactiveForeground,var(--persona-muted,#6b7280));background:0 0;border:none;align-items:center;gap:.375rem;display:inline-flex}.persona-composer-segmented-item[aria-pressed=true]{background:var(--persona-components-composer-segmented-activeBackground,var(--persona-surface,#fff));color:var(--persona-components-composer-segmented-activeForeground,var(--persona-text,#111827));box-shadow:var(--persona-components-composer-segmented-activeShadow,0 1px 2px 0 #0f172a1f)}.persona-composer-segmented-item svg{flex:none}@media (pointer:coarse){.persona-composer-segmented-item{min-height:36px}}.persona-composer-model-picker-wrapper{align-items:center;display:inline-grid}.persona-composer-model-picker-wrapper>*{grid-area:1/1}[data-persona-root] .persona-composer-model-picker{max-width:10rem;height:var(--persona-components-composer-modelPicker-height,var(--persona-composer-control-size,40px));min-height:var(--persona-components-composer-modelPicker-height,var(--persona-composer-control-size,40px));width:auto;min-width:var(--persona-components-composer-modelPicker-minWidth,0px);line-height:var(--persona-components-composer-modelPicker-height,var(--persona-composer-control-size,40px));padding-block:0;padding-inline:.625rem 1.75rem;padding-inline:var(--persona-components-composer-modelPicker-paddingInline,.625rem 1.75rem);border-radius:var(--persona-components-composer-modelPicker-borderRadius,var(--persona-button-ghost-radius,var(--persona-radius-md,.375rem)));background-color:var(--persona-components-composer-modelPicker-background,var(--persona-button-ghost-bg,transparent));color:var(--persona-components-composer-modelPicker-labelColor,var(--persona-button-ghost-fg,var(--persona-text,#111827)));box-shadow:inset 0 0 0 1px var(--persona-components-composer-modelPicker-borderColor,transparent);font-family:inherit;font-size:var(--persona-components-composer-modelPicker-fontSize,.8125rem);font-weight:var(--persona-components-composer-modelPicker-fontWeight,normal);cursor:pointer;appearance:none;text-overflow:ellipsis;white-space:nowrap;text-align:start;border:none;overflow:hidden}.persona-composer-model-picker-chevron{pointer-events:none;background-color:var(--persona-components-composer-modelPicker-labelColor,var(--persona-button-ghost-fg,var(--persona-text,#111827)));justify-self:end;width:.875rem;height:.875rem;margin-inline-end:.625rem;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[data-persona-root] .persona-composer-model-picker option{line-height:normal}@media (pointer:coarse){[data-persona-root] .persona-composer-model-picker{min-width:40px;min-height:40px}}[data-persona-root] .persona-composer-model-picker:hover:not(:disabled){background-color:var(--persona-components-composer-modelPicker-hoverBackground,var(--persona-button-ghost-hover-bg,#0000000d))}[data-persona-root] .persona-composer-model-picker:disabled{opacity:.5;cursor:default}[data-persona-root] .persona-composer-model-picker-trigger{align-items:center;gap:.25rem;display:inline-flex}.persona-composer-model-picker-label{text-overflow:ellipsis;white-space:nowrap;color:var(--persona-components-composer-modelPicker-labelColor,inherit);overflow:hidden}.persona-composer-model-picker-suffix{color:var(--persona-components-composer-modelPicker-suffixColor,var(--persona-muted,#6b7280));flex:none}.persona-composer-model-picker-suffix:empty{display:none}.persona-composer-model-menu{border-radius:var(--persona-components-composer-modelPicker-menuBorderRadius,var(--persona-radius-lg,.5rem));border:1px solid var(--persona-border,#e5e7eb);background:var(--persona-components-composer-modelPicker-menuBackground,var(--persona-surface,#fff));min-width:220px;max-height:320px;color:var(--persona-text,#111827);box-shadow:var(--persona-shadow-md,0 8px 24px #0000001f);font-family:var(--persona-font-family,inherit);flex-direction:column;gap:2px;padding:4px;display:flex;overflow-y:auto}.persona-composer-model-option{border-radius:var(--persona-radius-md,.375rem);width:100%;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:8px;padding:6px 8px;font-family:inherit;font-size:13px;display:flex}.persona-composer-model-option:hover,.persona-composer-model-option:focus{background:var(--persona-components-composer-modelPicker-rowHoverBackground,var(--persona-button-ghost-hover-bg,#0000000d));outline:none}.persona-composer-model-option-icon,.persona-composer-model-option-check{flex:none;align-items:center;margin-top:1px;display:inline-flex}.persona-composer-model-option-check{visibility:hidden}.persona-composer-model-option[aria-selected=true] .persona-composer-model-option-check{visibility:visible}.persona-composer-model-option-body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.persona-composer-model-option-label{color:var(--persona-components-composer-modelPicker-labelColor,inherit)}.persona-composer-model-option-description{color:var(--persona-components-composer-modelPicker-descriptionColor,var(--persona-muted,#6b7280));font-size:12px;line-height:1.35}.persona-composer-mode-chip{background:var(--persona-mode-chip-bg,var(--persona-container,#f3f4f6));border-color:var(--persona-mode-chip-border,var(--persona-border,#e5e7eb));color:var(--persona-mode-chip-fg,var(--persona-text,#111827))}[data-persona-composer-expanded] .persona-widget-composer:not(.persona-pill-composer) :is(.persona-widget-composer__actions,.persona-widget-composer__left-actions,.persona-widget-composer__right-actions,.persona-composer-segmented){flex-wrap:wrap;min-width:0;max-width:100%}[data-persona-composer-expanded] .persona-widget-composer:not(.persona-pill-composer) :is(.persona-composer-control,.persona-composer-model-picker,.persona-composer-segmented-item){max-width:100%}[data-persona-composer-expanded] .persona-widget-composer:not(.persona-pill-composer) :is(.persona-composer-action-button,.persona-composer-model-picker,.persona-composer-segmented-item){text-overflow:ellipsis;overflow:hidden}[data-persona-composer-crowded] .persona-widget-composer:not(.persona-pill-composer) .persona-composer-model-picker-wrapper{max-width:min(100%,16rem)}`),l=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},u=(e,t={},...n)=>{let r=document.createElement(e);if(t.className&&(r.className=t.className),t.text!==void 0&&(r.textContent=t.text),t.attrs)for(let[e,n]of Object.entries(t.attrs))r.setAttribute(e,n);if(t.style){let e=r.style,n=t.style;for(let t of Object.keys(n)){let r=n[t];r!=null&&(e[t]=r)}}let i=n.filter(e=>e!=null);return i.length>0&&r.append(...i),r},d=(...e)=>e.filter(Boolean).join(` `),f=`persona-composer-control`,p=`persona-composer-control--glyph`,m=(e,t,n)=>{let r=e.ownerDocument?.defaultView;if(!r)return;let i=r.getComputedStyle(e);for(let e of n){let n=i.getPropertyValue(e).trim();n?t.style.setProperty(e,n):t.style.removeProperty(e)}},h=`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`,g=[`--persona-components-composer-overflowMenu-background`,`--persona-components-composer-overflowMenu-borderColor`,`--persona-components-composer-overflowMenu-borderRadius`,`--persona-components-composer-overflowMenu-foreground`,`--persona-components-composer-overflowMenu-shadow`,...[`padding`,`rowGap`,`rowPadding`,`rowBorderRadius`,`fontSize`,`lineHeight`,`iconSize`,`iconGap`,`hoverBackground`,`focusBackground`,`descriptionColor`,`descriptionFontSize`,`dividerColor`,`dividerSpacing`,`minWidth`,`maxHeight`].map(e=>`--persona-components-composer-overflowMenu-${e}`)],_=`data-persona-menu-focus`,v=/* @__PURE__ */ new Set([`ArrowDown`,`ArrowUp`,`Home`,`End`]);function y(e){return e.getAttribute(`role`)===`menuitem`?e:e.querySelector(h)??e}const b=e=>e.disabled===!0||e.getAttribute(`aria-disabled`)===`true`;function x(e){let{renderLucideIcon:t,attachTooltip:n}=e.deps,r=e.label,i=!1,a=!1,s=!1,d=!1,x=!0,S=l(`div`,`persona-send-button-wrapper`),C=u(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center persona-cursor-pointer persona-composer-action-button persona-composer-overflow-trigger ${f} ${p}`,attrs:{type:`button`,"aria-haspopup":`menu`,"aria-expanded":`false`,"data-persona-composer-overflow-trigger":``}});S.appendChild(C);let w=u(`div`,{className:`persona-composer-overflow-menu`,attrs:{role:`menu`,tabindex:`-1`,"data-persona-composer-overflow-menu":``}}),T=()=>{let n=e.getButtonSize?.()??``;C.style.width=n,C.style.height=n,C.style.minWidth=n,C.style.minHeight=n,C.style.lineHeight=`1`,C.replaceChildren();let r=t((H()?e.getConfig?.()?.openTriggerIconName:void 0)??e.getConfig?.()?.triggerIconName??`plus`,24,`currentColor`,1.5);r?C.appendChild(r):C.textContent=`+`},E=()=>{C.setAttribute(`aria-label`,r),w.setAttribute(`aria-label`,r)};E();let D=n({anchor:C,trigger:S,text:()=>C.getAttribute(`aria-expanded`)===`true`?``:r}),O=[],k=-1,A=!1,j=()=>{let e=w.getRootNode().activeElement;return e instanceof HTMLElement?e:null},M=()=>{let e=j();for(let t of O){let n=!!e&&y(t)===e;t.toggleAttribute(_,n&&A)}},N=()=>O.filter(e=>e.isConnected||w.contains(e)).map(y).filter(e=>!b(e)),P=(e,t)=>{e.forEach((e,n)=>{e.setAttribute(`tabindex`,n===t?`0`:`-1`)})},F=e=>{let t=N();if(t.length===0)return;let n=(e%t.length+t.length)%t.length;k=n,P(t,n),t[n].focus(),M()},ee=()=>S.ownerDocument??document,I=null,L=null,R=null,te=()=>{I&&=(ee().removeEventListener(`focusin`,I,!0),null)},z=()=>{L&&=(w.removeEventListener(`focusin`,L),null),R&&=(w.removeEventListener(`pointerdown`,R,!0),null)},B=null,V=()=>(B||=o({anchor:C,getAnchorRect:()=>{if(e.getConfig?.()?.width===`composer`){let t=e.getComposer?.()?.getBoundingClientRect();if(t)return w.style.width=`${t.width}px`,t}return C.getBoundingClientRect()},content:w,placement:`top-start`,getPlacement:()=>e.getConfig?.()?.placement===`below`?`bottom-start`:`top-start`,viewportPadding:8,offset:6,onDismiss:()=>{ne()}}),B),H=()=>B?.isOpen===!0,ne=()=>{d=!0,a=!1,C.setAttribute(`aria-expanded`,`false`),te(),z(),k=-1,A=!1;for(let e of O)e.removeAttribute(_);try{e.onClose?.()}finally{d=!1}T()},U=(e=!1)=>{(H()||a)&&(B?.close(),ne(),e&&!i&&C.focus())},W=()=>{m(C,w,g),w.setAttribute(`data-persona-menu-description-layout`,e.getConfig?.()?.descriptionLayout??`stacked`);let t=e.getConfig?.()?.width;w.style.width=t===`composer`?`${e.getComposer?.()?.getBoundingClientRect().width??0}px`:t&&t!==`content`?t:``,T(),B?.reposition()};T();let G=(t=0,n=!1)=>{if(i||s||d||H())return;c(C),D.hide(),a=!0,s=!0;let r;try{r=e.beforeOpen?.()}finally{s=!1}if(r===!1||!a||i)a&&U();else{if(A=n,W(),V().open(),a=!1,C.setAttribute(`aria-expanded`,`true`),T(),x){let e=N();P(e,-1),F(t<0?e.length-1:t),e.length||w.focus()}else(Array.from(w.querySelectorAll(h)).find(e=>!b(e)&&!e.closest(`[hidden]`))??w).focus();H()&&!i&&(I=e=>{let t=typeof e.composedPath==`function`?e.composedPath():[];t.includes(w)||t.includes(S)||U()},ee().addEventListener(`focusin`,I,!0),L=()=>M(),w.addEventListener(`focusin`,L),R=()=>{A=!1},w.addEventListener(`pointerdown`,R,!0))}},K=e=>{e.preventDefault(),e.stopPropagation(),H()?U(!0):G(0)},q=e=>{e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),A=!0,H()?x?F(0):w.focus():G(0,!0)):e.key===`ArrowUp`&&(e.preventDefault(),A=!0,H()?x?F(-1):w.focus():G(-1,!0))},J=e=>{if(!x)e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),e.stopPropagation(),U(!0));else switch(v.has(e.key)&&(A=!0),e.key){case`ArrowDown`:e.preventDefault(),F(k+1);return;case`ArrowUp`:e.preventDefault(),F(k-1);return;case`Home`:e.preventDefault(),F(0);return;case`End`:e.preventDefault(),F(N().length-1);return;case`Escape`:e.preventDefault(),e.stopPropagation(),U(!0);return;case`Tab`:U(!0);return}};return C.addEventListener(`click`,K),C.addEventListener(`keydown`,q),w.addEventListener(`keydown`,J),{trigger:S,triggerButton:C,panel:w,setItems:e=>{for(let t of O)e.includes(t)||t.removeAttribute(_);if(O=[...e],!H()||!x)return;let t=N();P(t,Math.min(k,t.length-1)),M()},isOpen:H,open:()=>G(0),close:U,setLabel:e=>{e!==r&&(r=e,E(),D.isOpen&&(D.hide(),D.show()))},applyButtonSize:T,refresh:W,setContentMode:(e,t)=>{let n=t&&!x&&H();x=t,w.setAttribute(`role`,e),C.setAttribute(`aria-haspopup`,e),n&&F(0)},destroy:()=>{i=!0,U(),D.destroy(),te(),z(),C.removeEventListener(`click`,K),C.removeEventListener(`keydown`,q),w.removeEventListener(`keydown`,J),B?.destroy(),B=null,S.remove(),w.remove(),O=[]}}}function S(e){if(e.available<=0)return new Set(e.previous);let t=t=>{let n={start:{...e.slots.start},end:{...e.slots.end}};for(let r of e.actions){if(t.has(r.id))continue;let e=n[r.placement];e.width+=r.width,e.count+=1}return(e.hasMenu||t.size)&&(n.start.width+=e.triggerWidth,n.start.count+=1),n.start.width+n.end.width+Math.max(0,n.start.count-1)*e.gaps.start+Math.max(0,n.end.count-1)*e.gaps.end+(n.start.count&&n.end.count?e.clusterGap:0)},n=/* @__PURE__ */ new Set,r=t(n),i=e.available-(e.previous.size?16:0),a=e.actions.filter(e=>e.auto).sort((e,t)=>t.order-e.order||t.sequence-e.sequence);for(let e of a){if(t(n)<=i)break;n.add(e.id)}return!e.hasMenu&&t(n)>=r?/* @__PURE__ */ new Set:n}function C(e){let t=e.ownerDocument.defaultView;if(!t)return 0;let n=t.getComputedStyle(e);if(n.display===`none`||[`absolute`,`fixed`].includes(n.position))return 0;let r=e=>Number.parseFloat(e)||0;return(n.display===`contents`?Array.from(e.children).reduce((e,n)=>e+(n instanceof t.HTMLElement?C(n):0),0):Math.max(e.getBoundingClientRect().width,e.scrollWidth))+r(n.marginLeft)+r(n.marginRight)}const w={mention:100,attachment:200,mic:800,overflow:900,send:1e3,custom:500},T=`data-persona-composer-action`,E=`data-persona-composer-disable-when-streaming`,D=`core:overflow`,O=e=>e===`core:attachment`?`attachments`:e.startsWith(`core:mention`)?`mentions`:null;function k(e,t){if(e===void 0)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;let n=Number.parseFloat(e);if(/^\s*-?\d*\.?\d+(px)?\s*$/.test(e)&&Number.isFinite(n))return n;let r=l(`div`);r.style.position=`absolute`,r.style.visibility=`hidden`,r.style.pointerEvents=`none`,r.style.height=`0`,r.style.width=e,t.appendChild(r);let i=r.getBoundingClientRect().width;return r.remove(),Number.isFinite(i)&&i>0?i:Number.isFinite(n)?n:null}function A(e){let t=e.clientWidth;if(!t)return 0;let n=e.ownerDocument?.defaultView;if(!n?.getComputedStyle)return t;let r=n.getComputedStyle(e),i=(Number.parseFloat(r.paddingLeft)||0)+(Number.parseFloat(r.paddingRight)||0);return Math.max(0,t-i)}const j=(e,t)=>{e&&typeof console<`u`&&console.warn(t)},M=(e,t)=>t.includes(`:`)?t:`${e}:${t}`;function N(e){let{debug:t}=e,n=[],r=/* @__PURE__ */ new Map,i=0,a=e=>{let i=r.get(e.id);i?j(t,`[Persona] composer action "${e.id}" is already contributed by ${P(i)}; the ${P(e)} copy is ignored.`):(r.set(e.id,e),n.push(e))};for(let t of e.builtIns)a({id:t.id,placement:t.placement,presentation:`bar`,order:t.order,sequence:i++,source:`core`,builtIn:t});let o=(e,n,r)=>{let o=r?M(r,e.id):e.id,s=e.order??w.custom;e.placement===`end`&&s>=w.send&&(j(t,`[Persona] composer action "${o}" ordered at ${s} would render after send; clamped to ${w.send-1}.`),s=w.send-1),a({id:o,placement:e.placement,presentation:e.presentation??`bar`,order:s,sequence:i++,source:n,pluginId:r,action:e})};for(let t of e.configActions??[])o(t,`config`);for(let t of e.plugins){if(!t.contributeComposerActions)continue;let n;try{n=t.contributeComposerActions(e.contributionContext)}catch(e){typeof console<`u`&&console.error(`[Persona] plugin "${t.id}" contributeComposerActions failed:`,e);continue}for(let e of n??[])o(e,`plugin`,t.id)}return n.sort((e,t)=>e.order===t.order?e.sequence-t.sequence:e.order-t.order)}const P=e=>e.source===`plugin`?`plugin "${e.pluginId}"`:e.source===`config`?`composer.actions`:`a core built-in`,F=(e,t,n)=>e===void 0?n:typeof e==`function`?e(t)===!0:e===!0,ee=e=>e.phase===`streaming`||e.text.trim().length>0||e.attachments.length>0;function I(e,t){if(!e||e===`always`)return!0;let n=ee(t);return e===`when-text`?n:!n}const L=e=>e.kind===`custom`,R=e=>e instanceof HTMLButtonElement?e:e.querySelector(`button`)??e,te=e=>{let t=R(e);return t.getAttribute(`aria-label`)?.trim()||t.getAttribute(`title`)?.trim()||``};function z(e){let t=``,n=e=>{if(e.nodeType===Node.TEXT_NODE){t+=e.nodeValue??``;return}if(e.nodeType!==Node.ELEMENT_NODE)return;let r=e;typeof r.matches==`function`&&r.matches(`.persona-control-tooltip, [role="tooltip"], .persona-sr-only, [hidden], [aria-hidden="true"]`)||e.childNodes.forEach(n)};return n(e),t.trim()}const B=e=>z(e).length===0,V=e=>!e||typeof e!=`object`?e:Object.freeze(Array.isArray(e)?e.map(V):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,V(t)])));function H(e){let{renderLucideIcon:t,attachTooltip:n,hideTooltipFor:r}=e.deps,i=/* @__PURE__ */ new Map,a=[],o=!1,s=null,m=[],h=[],g=l(`div`,`persona-composer-overflow-menu__content`),_=()=>e.getButtonSize?.(),v=(n,r)=>{let i=n.button;if(!i)return;i.setAttribute(`role`,`menuitem`),i.setAttribute(`tabindex`,`-1`),i.className=`persona-composer-overflow-menu__item`;for(let e of[`width`,`height`,`minWidth`,`minHeight`,`fontSize`,`color`,`backgroundColor`])i.style[e]=``;i.style.lineHeight=``,r.showTooltip!==!1&&r.tooltipText?i.setAttribute(`title`,r.tooltipText):i.removeAttribute(`title`),i.replaceChildren();let a=l(`span`,`persona-composer-overflow-menu__icon`);if(r.iconName){let e=t(r.iconName,16,`currentColor`,1.5);e&&a.appendChild(e)}let o=l(`span`,`persona-composer-overflow-menu__label`),s=e.getOverflow?.()?.menu?.items?.[n.resolved.id];o.textContent=s?.label??r.shortLabel??r.label;let c=l(`span`,`persona-composer-overflow-menu__text`);c.appendChild(o);let d=s?.description??r.description;i.setAttribute(`aria-label`,s?.label??r.label),d?i.setAttribute(`aria-description`,d):i.removeAttribute(`aria-description`),d&&c.appendChild(u(`span`,{className:`persona-composer-overflow-menu__description`,text:d})),i.append(a,c)},b=(e,r)=>{let i=e.button;if(!i)return;if(i.setAttribute(`aria-label`,r.label),r.pressed===void 0?i.removeAttribute(`aria-pressed`):i.setAttribute(`aria-pressed`,r.pressed?`true`:`false`),i.toggleAttribute(E,r.disableWhenStreaming===!0),e.mode===`menu`){e.tooltip?.destroy(),e.tooltip=void 0,v(e,r);return}i.removeAttribute(`role`),i.removeAttribute(`tabindex`),i.removeAttribute(`aria-description`),i.removeAttribute(`title`);let a=_(),o=!!r.shortLabel||!r.iconName;if(i.className=d(`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-action-button`,f,p,o&&`persona-composer-action-button--text persona-gap-1 persona-text-sm`),i.style.width=a&&!o?a:``,i.style.height=a??``,i.style.minWidth=a&&!o?a:``,i.style.minHeight=a??``,i.style.fontSize=o?``:`18px`,i.style.lineHeight=`1`,i.style.color=r.iconColor??``,i.style.backgroundColor=r.backgroundColor??``,i.replaceChildren(),r.iconName){let e=t(r.iconName,24,`currentColor`,1.5);e&&(r.iconName===`voice-bars`&&r.iconAnimation===`voice`&&e.classList.add(`persona-voice-bars--animated`),i.appendChild(e))}if(o){let e=l(`span`,`persona-composer-action-button__label`);e.textContent=r.shortLabel??r.label,i.appendChild(e)}if(r.trailingIconName&&o){let e=t(r.trailingIconName,24,`currentColor`,1.5);e&&i.appendChild(e)}i.firstChild||(i.textContent=r.label),e.tooltip?.destroy(),e.tooltip=n({anchor:i,trigger:e.element,text:()=>r.tooltipText??r.label,enabled:r.showTooltip??(!o||!!r.tooltipText)})},j=(t,n)=>{if(o||i.get(t.resolved.id)!==t||t.busy)return!1;let r=t.resolved.action,a=e.getState();if(!t.visible||r&&(!F(r.visible,a,!0)||!I(r.visibility,a)||F(r.disabled,a,!1)||r.disableWhenStreaming===!0&&a.phase===`streaming`))return!1;let c=R(t.element);if(c.disabled||c.getAttribute(`aria-disabled`)===`true`)return!1;if((t.mode===`menu`||U?.isOpen())&&(s=t.resolved.id,U?.close(!0)),!r||L(r))return c.click(),!0;let l;try{l=r.onSelect(e.actionContext,n)}catch(n){return e.reportError(n,{actionId:t.resolved.id}),!0}return l&&typeof l.then==`function`&&(t.busy=!0,t.button?.setAttribute(`aria-busy`,`true`),l.catch(n=>e.reportError(n,{actionId:t.resolved.id})).finally(()=>{t.busy=!1,t.button?.removeAttribute(`aria-busy`),!o&&i.get(t.resolved.id)===t&&Oe()})),!0},M=(e,t)=>{let n=e.action,r=u(`button`,{attrs:{type:`button`}}),i=r;if(t===`bar`){let e=l(`div`,`persona-send-button-wrapper`);e.appendChild(r),i=e}i.setAttribute(T,e.id);let a={resolved:e,element:i,button:r,owned:!0,managed:!0,busy:!1,visible:!0,mode:t},o=e=>{e.preventDefault(),e.stopPropagation(),j(a,e)};return r.addEventListener(`click`,o),a.detach=()=>r.removeEventListener(`click`,o),b(a,n),a},P=t=>{let n=t.action,r;try{r=n.render({...e.actionContext,id:t.id,action:n})}catch(n){return e.reportError(n,{actionId:t.id}),null}return r?.element?(r.element.setAttribute(T,t.id),r.element.toggleAttribute(E,n.disableWhenStreaming===!0),{resolved:t,element:r.element,owned:!0,managed:!0,destroy:r.destroy,busy:!1,visible:!0,mode:`bar`}):null},ee=(e,t)=>{if(e.builtIn){let t=e.builtIn.element;return t?{resolved:e,element:t,owned:!1,managed:e.builtIn.managed===!0,busy:!1,visible:!0,mode:`bar`}:null}let n=e.action;return n?L(n)?P(e):M(e,t):null},z=t=>{if(t.detach?.(),t.tooltip?.destroy(),t.detachMenuSlot?.(),t.detachMenuSlot=void 0,t.menuLabel?.remove(),t.menuLabel=void 0,t.menuSlot?.remove(),t.menuSlot=void 0,t.owned){try{t.destroy?.()}catch(n){e.reportError(n,{actionId:t.resolved.id})}t.element.remove()}},H=(e,t)=>{let n=null;for(let r=t.length-1;r>=0;r--){let i=t[r];i.managed?(n?(i.element.parentElement!==e||i.element.nextSibling!==n)&&e.insertBefore(i.element,n):e.lastChild!==i.element&&e.appendChild(i.element),n=i.element):i.element.parentElement===e&&(n=i.element)}},ne=(e,t)=>{if(e.button){e.button.disabled=t;return}if(!e.owned)return;let n=e.element;n.toggleAttribute(`data-disabled`,t),n.setAttribute(`aria-disabled`,t?`true`:`false`);let r=n instanceof HTMLButtonElement||n instanceof HTMLSelectElement||n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement?n:n.querySelector(`button, select, input, textarea`);r&&(r.disabled=t)},U=null,W=null,G=null,K=0,q=null,J=null,Y=null,X=0,Z=/* @__PURE__ */ new Set,re=/* @__PURE__ */ new Map,ie=()=>{X+=1,ae()},ae=()=>{if(o||J!==null||!W)return;let e=W.ownerDocument.defaultView;e&&(J=e.requestAnimationFrame(()=>{J=null,Oe()}))},oe=()=>{J!==null&&W?.ownerDocument.defaultView?.cancelAnimationFrame(J),J=null,q?.disconnect(),q=null,W?.ownerDocument.defaultView?.removeEventListener(`resize`,ae),W?.ownerDocument.fonts?.removeEventListener(`loadingdone`,ie),Y=null},se=()=>{let t=e.getOverflow?.();return t?.enabled===!0?t:void 0},Q=null,ce=null,le=null,ue,$=!0,de=!1,fe=!1,pe=t=>e.reportError(t,{actionId:D}),me=e=>{try{e?.destroy?.()}catch(e){pe(e)}},he=()=>{let e=Q,t=ce;Q=null,ce=null,le=null,ue=void 0,de=!1,e?.abort(),me(t),U?.panel.replaceChildren(g),U?.setContentMode(`menu`,!0),$=!0},ge=t=>{let n=t.resolved.action,r=se()?.menu?.items?.[t.resolved.id],i=R(t.element),a=e.getState();return Object.freeze({id:t.resolved.id,kind:n?L(n)?`custom`:`button`:`builtin`,label:r?.label??(n?(L(n)?void 0:n.shortLabel)??n.label:te(t.element)),description:r?.description??n?.description,group:r?.group??n?.group,iconName:n&&!L(n)?n.iconName:void 0,disabled:!!(i.disabled||i.getAttribute(`aria-disabled`)===`true`||n&&(F(n.disabled,a,!1)||n.disableWhenStreaming===!0&&a.phase===`streaming`)),busy:t.busy,pressed:n&&!L(n)?n.pressed:void 0})},_e=t=>{let n=()=>!o&&Q===t&&!t.signal.aborted;return Object.freeze({config:V(se()?.menu??{}),state:V(e.getState()),items:Object.freeze(h.map(ge)),signal:t.signal,actions:Object.freeze({invoke:e=>{if(!n()||!U?.isOpen())return!1;let t=i.get(e);return!t||t.mode!==`menu`||!h.includes(t)?!1:j(t,new Event(`click`,{bubbles:!0,cancelable:!0}))},openAttachmentPicker:()=>{if(!n()||!U?.isOpen())return;let e=i.get(`core:attachment`);e&&j(e,new Event(`click`,{bubbles:!0,cancelable:!0}))},close:()=>{n()&&U?.close(!0)},requestUpdate:()=>{n()&&!de&&(de=!0,Promise.resolve().then(()=>{n()&&(de=!1,ke())}))}}),defaultRenderer:()=>({element:g,role:`menu`})})},ve=()=>{let e=new AbortController;Q=e;let t=_e(e);for(let n of m){if(e.signal.aborted||Q!==e||o)return!1;if(!n.renderComposerMenu)continue;let r;try{r=n.renderComposerMenu(t)}catch(e){pe(e);continue}if(!r)continue;let i=r instanceof HTMLElement?{element:r}:r;if(e.signal.aborted||Q!==e||o)return me(i),!1;if(!(i.element instanceof HTMLElement))me(i);else return ce=i,le=n,ue=n.renderComposerMenu,$=i.element===g,U?.panel.replaceChildren(i.element),U?.setContentMode(i.role??($?`menu`:`dialog`),$),!0}return e.signal.aborted||o?!1:($=!0,U?.panel.replaceChildren(g),U?.setContentMode(`menu`,!0),!0)},ye=()=>{if(!Q||Q.signal.aborted||!U?.isOpen())return;if(le&&!m.some(e=>e.id===le?.id&&e.renderComposerMenu===ue)){U.close();return}if(fe)return;let e=Q,t=ce;fe=!0;try{t?.update?.(_e(e))}catch(n){if(pe(n),Q===e){if(Q=null,ce=null,e.abort(),me(t),o||!U?.isOpen()||Q)return;Q=new AbortController,le=null,ue=void 0,$=!0,U.panel.replaceChildren(g),U.setContentMode(`menu`,!0)}}finally{fe=!1}U?.refresh()},be=()=>(U?U.setLabel(e.getOverflowLabel?.()??`More actions`):U=x({deps:e.deps,label:e.getOverflowLabel?.()??`More actions`,getButtonSize:_,getConfig:()=>se()?.menu,getComposer:()=>e.getBindings()?.form,beforeOpen:ve,onClose:he}),U),xe=(e,t)=>{let n=e.footer;if(!(W===n&&(t?Y===e.form:Y===null))){if(oe(),G?.disconnect(),W=n,K=A(n),t){Y=e.form;let t=n.ownerDocument.defaultView;t?.addEventListener(`resize`,ae),n.ownerDocument.fonts?.addEventListener(`loadingdone`,ie),t?.MutationObserver&&(q=new t.MutationObserver(n=>{n.some(n=>{if(U?.trigger.contains(n.target)||n.target===e.input&&n.type===`attributes`)return!1;let r=[...Array.from(n.addedNodes),...Array.from(n.removedNodes)];return!(r.length&&r.every(e=>e instanceof t.HTMLElement&&e.hasAttribute(`data-persona-composer-measure`)))})&&ae()}),q.observe(n,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:[`class`,`style`,`hidden`,`data-persona-composer-layout`,`data-persona-composer-compact`]}))}typeof ResizeObserver<`u`&&(G=new ResizeObserver(e=>{if(t){ae();return}let r=e[e.length-1]?.contentRect?.width??A(n);r!==K&&(K=r,Oe())}),G.observe(n),t&&(G.observe(e.form),G.observe(e.actionsStart),G.observe(e.actionsEnd)))}},Se=(e,t)=>{let n=k(e.collapseAutoActionsBelow,t);if(n===null)return!1;let r=K||A(t);return r>0&&r<n},Ce=(e,t,n)=>{if(!t)return`bar`;if(e.resolved.builtIn){let n=O(e.resolved.id);return n&&t.includeBuiltIns?.includes(n)?`menu`:`bar`}let r=e.resolved.presentation;return r===`overflow`||r===`auto`&&n?`menu`:`bar`},we=e=>{let t=e.menuSlot;if(!t)return;let n=se()?.menu?.items?.[e.resolved.id],r=n?.description??e.resolved.action?.description;if(!n?.label&&!r&&!B(e.element)){e.menuLabel?.remove(),e.menuLabel=void 0;return}let i=n?.label??te(e.element);i?(e.menuLabel||=l(`span`,`persona-composer-overflow-menu__label`),e.menuLabel.replaceChildren(u(`span`,{text:i})),r&&e.menuLabel.appendChild(u(`span`,{className:`persona-composer-overflow-menu__description`,text:r})),e.menuLabel.parentElement!==t&&t.appendChild(e.menuLabel)):(e.menuLabel?.remove(),e.menuLabel=void 0)},Te=(e,t)=>{if(e.mode===t)return e;let n=e.resolved.action;if(n&&!L(n)){let r=e.element;return t===`menu`?e.element=e.button:(e.element=l(`div`,`persona-send-button-wrapper`),e.element.appendChild(e.button),e.button.removeAttribute(T)),r!==e.element&&r!==e.button&&r.remove(),e.element.setAttribute(T,e.resolved.id),e.mode=t,b(e,n),e}if(t===`menu`){let t=u(`div`,{className:`persona-composer-overflow-menu__slot`,attrs:{role:`none`,"data-persona-tooltip-suppressed":``}});t.appendChild(e.element),r(R(e.element)),e.menuSlot=t;let n=t=>{let n=R(e.element);if(n.disabled)return;let r=t.target===n||n.contains(t.target);s=e.resolved.id,U?.close(!0),r||n.click()};t.addEventListener(`click`,n,!0),e.detachMenuSlot=()=>t.removeEventListener(`click`,n,!0),e.managed=!0,we(e)}else e.detachMenuSlot?.(),e.detachMenuSlot=void 0,e.menuLabel?.remove(),e.menuLabel=void 0,e.menuSlot?.remove(),e.menuSlot=void 0;return e.mode=t,e},Ee=(e,t)=>{let n=Array.from(e.querySelectorAll(`.persona-composer-overflow-menu__divider`)),r=0,i=[];for(t.forEach((e,a)=>{let o=ge(e).group;a&&o!==ge(t[a-1]).group&&i.push(n[r++]??u(`div`,{className:`persona-composer-overflow-menu__divider`,attrs:{role:`separator`}})),i.push(e.menuSlot??e.element)}),i.forEach((t,n)=>{let r=e.children[n];r!==t&&(r?e.insertBefore(t,r):e.appendChild(t))});e.children.length>i.length;)e.lastElementChild?.remove()},De=(e,t,n)=>{let r=A(e.form);if(!r)return Z;let i=e.form.ownerDocument.defaultView,a=i.getComputedStyle(e.form),o=e=>Number.parseFloat(e)||0,s=o(a.columnGap),c=e.footer.getAttribute(`data-persona-composer-layout`)===`single-row`&&e.footer.hasAttribute(`data-persona-composer-compact`),l=[a.fontFamily,a.fontSize,a.getPropertyValue(`--persona-composer-font-size`),a.getPropertyValue(`--persona-composer-control-size`),a.getPropertyValue(`--persona-composer-control-icon-size`),_(),X].join(`|`),u={start:e.actionsStart,end:e.actionsEnd},d={start:{width:0,count:0},end:{width:0,count:0}},f={start:0,end:0};for(let e of[`start`,`end`]){f[e]=o(i.getComputedStyle(u[e]).columnGap);for(let n of Array.from(u[e].children)){if(!(n instanceof i.HTMLElement)||n===U?.trigger||t.some(e=>e.element===n))continue;let r=C(n);r&&(d[e].width+=r,d[e].count+=1)}}let p=[],m=!1;for(let e of t){if(Ce(e,n,!1)===`menu`){m=!0;continue}let t=e.resolved.action,r=`${l}|${t&&!L(t)?[t.label,t.shortLabel,t.iconName,t.trailingIconName,t.pressed].join(`|`):`custom`}`,a=e.mode===`bar`?C(e.element):0,o=re.get(e.resolved.id);if(!a&&o?.key===r&&(a=o.width),!a&&t&&!L(t)){let t=M(e.resolved,`bar`);t.element.setAttribute(`data-persona-composer-measure`,``),t.element.style.cssText=`position:absolute;visibility:hidden;width:max-content;pointer-events:none`,u[e.resolved.placement].appendChild(t.element),a=C(t.button),z(t)}if(!a&&t&&L(t)&&(a=o?.width??0),a&&re.set(e.resolved.id,{key:r,width:a}),!a&&i.getComputedStyle(e.element).display!==`none`)return Z;a&&p.push({id:e.resolved.id,placement:e.resolved.placement,width:a,order:e.resolved.order,sequence:e.resolved.sequence,auto:e.resolved.presentation===`auto`})}let h=o(a.getPropertyValue(`--persona-composer-control-size`))||40,g=U?C(U.trigger):0;return S({available:Math.max(1,r-(c?120+s*2:0)),actions:p,slots:d,gaps:f,clusterGap:c?0:s,triggerWidth:g||o(_()??``)||h,hasMenu:m,previous:Z})},Oe=()=>{if(o)return;let t=e.getBindings();if(t&&c(t.form),!t)return;let n=e.getState(),r=n.phase===`streaming`,l=se(),u=l?.collapseAutoActions===`fit`;l?xe(t,u):(oe(),G?.disconnect(),W=null);let d=l&&!u?Se(l,t.footer):!1,f=t.footer.getRootNode(),p=f.activeElement,m=p===U?.triggerButton,_=p?Array.from(i.values()).find(e=>e.element.contains(p)):void 0,b=_?.mode;if(u){let e=a.map(e=>i.get(e.id)).filter(e=>!!e).filter(e=>!e.resolved.action||F(e.resolved.action.visible,n,!0)&&I(e.resolved.action.visibility,n));for(let n of e){if(!n.managed||n.mode!==`bar`)continue;let e=n.resolved.placement===`start`?t.actionsStart:t.actionsEnd;n.element.parentElement!==e&&e.appendChild(n.element)}Z=De(t,e,l)}else Z.clear();let x={start:[],end:[]},S=[];for(let e of a){let t=i.get(e.id);if(!t)continue;let a=e.action,o=!a||F(a.visible,n,!0)&&I(a.visibility,n);if(t.visible!==o&&(t.visible=o,!o&&t.managed&&(t.menuSlot??t.element).remove()),!o)continue;let s=Ce(t,l,d);if(t=Te(t,s===`menu`||u&&e.presentation===`auto`&&Z.has(e.id)?`menu`:`bar`),a){let e=F(a.disabled,n,!1)||a.disableWhenStreaming===!0&&r;ne(t,e),!L(a)&&a.pressed!==void 0&&t.button?.setAttribute(`aria-pressed`,a.pressed?`true`:`false`)}t.mode===`menu`?(we(t),S.push(t)):x[e.placement].push(t)}if(h=S,S.length>0){let e=be();Q||e.panel.replaceChildren(g),Ee(g,S);for(let e of S){let t=e.resolved.action;t&&!L(t)&&v(e,t)}e.setItems(S.map(e=>e.menuSlot??e.element)),e.refresh(),ye();let t=Number.isFinite(l?.order)?l?.order:w.overflow,n=x.start.findIndex(e=>e.resolved.order>t),r={resolved:{id:D,placement:`start`,presentation:`bar`,order:t,sequence:-1,source:`core`},element:e.trigger,owned:!1,managed:!0,busy:!1,visible:!0,mode:`bar`};x.start.splice(n<0?x.start.length:n,0,r)}else U&&(U.close(),U.trigger.remove(),U.setItems([]));if(H(t.actionsStart,x.start),H(t.actionsEnd,x.end),_&&p&&_.visible&&(!p.isConnected||_.mode!==b||f.activeElement!==p))_.mode===`bar`?(U?.close(),y(_.element).focus()):U?.isOpen()&&$?y(_.menuSlot??_.element).focus():U?.triggerButton.focus();else if(m&&!S.length){let e=s?i.get(s):void 0;e?.visible&&e.mode===`bar`?y(e.element).focus():t.input.focus()}s=null},ke=()=>{if(o)return;let t=e.collect();m=t.plugins;let n=N(t),r=new Set(n.map(e=>e.id));for(let[e,t]of i)r.has(e)||(z(t),i.delete(e),re.delete(e));for(let e of n){let t=i.get(e.id);if(!t){let t=ee(e,`bar`);t&&i.set(e.id,t);continue}let n=t.resolved.action,r=e.action;if(!!n!=!!r||n&&r&&L(n)!==L(r)||n&&r&&L(n)&&L(r)&&n.render!==r.render){z(t),i.delete(e.id),re.delete(e.id);let n=ee(e,t.mode);n&&i.set(e.id,n)}else t.resolved=e,e.builtIn?(t.managed=e.builtIn.managed===!0||t.mode===`menu`,e.builtIn.element&&t.mode===`bar`&&(t.element=e.builtIn.element)):r&&!L(r)?b(t,r):r&&t.element.toggleAttribute(E,r.disableWhenStreaming===!0)}a=n,Oe()};return{resolve:ke,sync:Oe,getResolved:()=>a,getOverflowMenu:()=>U,destroy:()=>{if(!o){o=!0,oe(),G?.disconnect(),G=null,W=null,U?.close(),he();for(let e of i.values())z(e);i.clear(),U?.destroy(),U=null,a=[]}}}}const ne=[`--persona-components-composer-modelPicker-menuBackground`,`--persona-components-composer-modelPicker-menuBorderRadius`,`--persona-components-composer-modelPicker-rowHoverBackground`,`--persona-components-composer-modelPicker-labelColor`,`--persona-components-composer-modelPicker-descriptionColor`],U=()=>({wrapper:u(`span`,{className:`persona-composer-model-picker-wrapper`,attrs:{"data-persona-composer-model-picker-wrapper":``}}),chevron:u(`span`,{className:`persona-composer-model-picker-chevron`,attrs:{"aria-hidden":`true`}})});function W(e){let t=e.label??`Model`,n=e.presentation??`native`,r=null,i=t=>{let n=e.getSelectedModelId();return t.find(e=>e.id===n)??t[0]},a=()=>{let n=u(`select`,{className:`persona-composer-model-picker`,attrs:{"aria-label":t,"data-persona-composer-model-picker":``}}),a=``,o=()=>{let t=e.getModels(),r=t.map(e=>`${e.id}:${e.label}`).join(`|`);r!==a&&(a=r,n.replaceChildren(...t.map(e=>{let t=u(`option`,{attrs:{value:e.id}});return t.textContent=e.label,t}))),n.value=i(t)?.id??``};o(),r=o;let s=()=>{n.value&&e.onSelect(n.value)};n.addEventListener(`change`,s);let c=e=>e.stopPropagation();n.addEventListener(`click`,c);let{wrapper:l,chevron:d}=U();return l.append(n,d),{element:l,destroy:()=>{r===o&&(r=null),n.removeEventListener(`change`,s),n.removeEventListener(`click`,c)}}},s=()=>{let n=u(`button`,{className:`persona-composer-model-picker persona-composer-model-picker-trigger`,attrs:{type:`button`,"aria-haspopup":`listbox`,"aria-expanded":`false`,"data-persona-composer-model-picker":`popover`}}),a=l(`span`,`persona-composer-model-picker-label`),s=l(`span`,`persona-composer-model-picker-suffix`);n.append(a,s);let c=u(`div`,{className:`persona-composer-model-menu`,attrs:{role:`listbox`,tabindex:`-1`,"aria-label":t,"data-persona-composer-model-menu":``}}),d=/* @__PURE__ */ new Map,f=``,p=null,h=()=>p?.isOpen===!0,g=(e=!1)=>{h()&&(p?.close(),n.setAttribute(`aria-expanded`,`false`),e&&n.focus())},_=e=>{let t=[...d.values()];t.length!==0&&t[(e%t.length+t.length)%t.length].focus()},v=t=>{if(h())return;p||=o({anchor:n,content:c,placement:`top-start`,offset:6,onDismiss:()=>n.setAttribute(`aria-expanded`,`false`)}),m(n,c,ne),p.open(),n.setAttribute(`aria-expanded`,`true`);let r=[...d.keys()].indexOf(i(e.getModels())?.id??``);_(t??(r>=0?r:0))},y=t=>{g(!0),e.onSelect(t)},b=e=>{e.preventDefault(),e.stopPropagation();let t=e.currentTarget.getAttribute(`data-persona-model-option`);t&&y(t)},x=t=>{let n=u(`button`,{className:`persona-composer-model-option`,attrs:{type:`button`,role:`option`,tabindex:`-1`,"aria-selected":`false`,"data-persona-model-option":t.id}});if(t.icon){let r=e.renderIcon(t.icon,16,`currentColor`,1.5);if(r){let e=l(`span`,`persona-composer-model-option-icon`);e.appendChild(r),n.appendChild(e)}}let r=l(`span`,`persona-composer-model-option-body`),i=l(`span`,`persona-composer-model-option-label`);if(i.textContent=t.label,r.appendChild(i),t.description){let e=l(`span`,`persona-composer-model-option-description`);e.textContent=t.description,r.appendChild(e)}n.appendChild(r);let a=l(`span`,`persona-composer-model-option-check`);a.setAttribute(`aria-hidden`,`true`);let o=e.renderIcon(`check`,16,`currentColor`,2);return o&&a.appendChild(o),n.appendChild(a),n.addEventListener(`click`,b),n},S=()=>{let r=e.getModels(),o=r.map(e=>`${e.id}:${e.label}:${e.icon??``}:${e.description??``}`).join(`|`);if(o!==f){f=o;for(let e of d.values())e.removeEventListener(`click`,b);d.clear(),c.replaceChildren(...r.map(e=>{let t=x(e);return d.set(e.id,t),t}))}let l=i(r);for(let[e,t]of d)t.setAttribute(`aria-selected`,String(e===l?.id));a.textContent=l?.label??``;let u=e.getSuffix?.()??``;s.textContent=u,n.setAttribute(`aria-label`,[t,[l?.label,u].filter(Boolean).join(` `)].filter(Boolean).join(`: `))};S(),r=S;let C=e=>{e.preventDefault(),e.stopPropagation(),h()?g(!0):v()},w=e=>{e.key===`ArrowDown`?(e.preventDefault(),h()?_(0):v(0)):e.key===`ArrowUp`&&(e.preventDefault(),h()?_(-1):v(-1))},T=e=>{let t=[...d.values()],n=t.indexOf(e.target?.closest?.(`.persona-composer-model-option`));switch(e.key){case`ArrowDown`:e.preventDefault(),_(n+1);return;case`ArrowUp`:e.preventDefault(),_(n-1);return;case`Home`:e.preventDefault(),_(0);return;case`End`:e.preventDefault(),_(t.length-1);return;case`Escape`:e.preventDefault(),e.stopPropagation(),g(!0);return;case`Tab`:g(!0);return}};n.addEventListener(`click`,C),n.addEventListener(`keydown`,w),c.addEventListener(`keydown`,T);let{wrapper:E,chevron:D}=U();return E.append(n,D),{element:E,destroy:()=>{r===S&&(r=null),n.removeEventListener(`click`,C),n.removeEventListener(`keydown`,w),c.removeEventListener(`keydown`,T);for(let e of d.values())e.removeEventListener(`click`,b);d.clear(),p?.destroy(),p=null,c.remove()}}};return{action:{id:`core:model`,kind:`custom`,placement:`end`,order:700,presentation:n===`popover`?`bar`:`auto`,label:t,render:()=>n===`popover`?s():a()},repaint:()=>r?.()}}const G=e=>`core:mode:${e}`,K=e=>Math.min(300+e,499),q=e=>`core:mode-group:${e}`;function J(e,t){return e?t?.find(t=>t.id===e)?.presentation===`segmented`:!1}function Y(e){let t=null;return{action:{id:q(e.groupId),kind:`custom`,placement:`start`,presentation:`bar`,label:e.getGroup()?.label??e.groupId,render:()=>{let n=u(`div`,{className:`persona-composer-segmented`,attrs:{"data-persona-composer-mode-group":e.groupId}}),r=/* @__PURE__ */ new Map,i=``,a=t=>{t.preventDefault(),t.stopPropagation();let n=t.currentTarget.getAttribute(`data-persona-composer-mode`);n&&(e.getActiveIds().includes(n)&&e.getGroup()?.selection===`single`||e.onSelect(n))},o=t=>{let n=u(`button`,{className:`persona-composer-segmented-item`,attrs:{type:`button`,"data-persona-composer-mode":t.id,"aria-label":t.label}});if(t.iconName){let r=e.renderIcon(t.iconName,16,`currentColor`,1.5);r&&n.appendChild(r)}let r=l(`span`,`persona-composer-segmented-label`);return r.textContent=t.shortLabel??t.label,n.appendChild(r),n.addEventListener(`click`,a),n},s=()=>{let t=e.getGroup();t?.label?(n.setAttribute(`role`,`group`),n.setAttribute(`aria-label`,t.label)):(n.removeAttribute(`role`),n.removeAttribute(`aria-label`));let s=e.getModes(),c=s.map(e=>`${e.id}:${e.shortLabel??e.label}:${e.iconName??``}`).join(`|`);if(c!==i){i=c;for(let e of r.values())e.removeEventListener(`click`,a);r.clear();let e=s.map(e=>{let t=o(e);return r.set(e.id,t),t});n.replaceChildren(...e)}let l=e.getActiveIds();for(let[e,t]of r)t.setAttribute(`aria-pressed`,String(l.includes(e)))};return s(),t=s,{element:n,destroy:()=>{t===s&&(t=null);for(let e of r.values())e.removeEventListener(`click`,a);r.clear()}}}},repaint:()=>t?.()}}function X(e){e.style.display=e.childElementCount>0?`flex`:`none`}function Z(e){let t=e.row,n=``,r=!1,i=new Set(e.initialIds??[]),a=t=>{let n=u(`span`,{className:`persona-mention-chip persona-composer-mode-chip`,attrs:{"data-persona-composer-mode":t.id}});if(t.iconName){let r=l(`span`,`persona-mention-chip-icon`),i=e.renderIcon(t.iconName,12,`currentColor`,1.5);i&&r.appendChild(i),n.appendChild(r)}let r=l(`span`,`persona-mention-chip-label`);r.textContent=t.shortLabel??t.label,n.appendChild(r);let i=u(`button`,{className:`persona-mention-chip-remove`,attrs:{type:`button`,"aria-label":`Remove ${t.label}`}}),a=e.renderIcon(`x`,12,`currentColor`,2);return a?i.appendChild(a):i.textContent=`×`,i.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),e.onRemove(t.id)}),n.appendChild(i),n},o=()=>Array.from(t.querySelectorAll(`:scope > [data-persona-composer-mode]`)),s=e=>{e.setAttribute(`data-persona-chip-exit`,``),e.setAttribute(`aria-hidden`,`true`),e.style.pointerEvents=`none`;let n=()=>{e.remove(),X(t)},r=t.ownerDocument.defaultView,i=typeof r?.getComputedStyle==`function`?r.getComputedStyle(e).animationName:``;!i||i===`none`?n():(e.addEventListener(`animationend`,n,{once:!0}),e.addEventListener(`animationcancel`,n,{once:!0}))},c=()=>{for(let e of o())e.remove()};return{element:t,render:(e,c)=>{if(r)return;let l=c.filter(t=>e.includes(t.id)),u=l.map(e=>`${e.id}:${e.shortLabel??e.label}`).join(`|`);if(u===n)return;n=u;let d=/* @__PURE__ */ new Map;for(let e of o()){let t=e.getAttribute(`data-persona-composer-mode`);t&&l.some(e=>e.id===t)&&!e.hasAttribute(`data-persona-chip-exit`)?d.set(t,e):e.hasAttribute(`data-persona-chip-exit`)||s(e)}let f=t.firstChild;for(let e of l){let n=d.get(e.id);n||(n=a(e),i.has(e.id)||(n.setAttribute(`data-persona-chip-enter`,``),n.addEventListener(`animationend`,()=>n?.removeAttribute(`data-persona-chip-enter`),{once:!0}))),i.delete(e.id),n!==f&&t.insertBefore(n,f),f=n.nextSibling}X(t)},destroy:()=>{r=!0,c(),X(t)}}}function re(e){let t=null,n=null,r=/* @__PURE__ */ new Map,i=t=>{let n=r.get(t);if(n)return n;let i=Y({renderIcon:e.renderIcon,groupId:t,getGroup:()=>e.getConfig().composer?.modeGroups?.find(e=>e.id===t),getModes:()=>e.getModes().filter(e=>e.groupId===t),getActiveIds:()=>e.getState().activeModeIds,onSelect:t=>e.onModeChange(t)});return r.set(t,i),i};return{collect:()=>{let r=[],a=e.getState().activeModeIds,o=new Set(e.getChipModes().map(e=>e.id)),s=/* @__PURE__ */ new Set;if(e.getModes().forEach((t,n)=>{if(J(t.groupId,e.getConfig().composer?.modeGroups)){let a=t.groupId;if(s.has(a))return;s.add(a);let o=i(a);o.action.order=K(n),o.action.label=e.getConfig().composer?.modeGroups?.find(e=>e.id===a)?.label??a,r.push(o.action);return}let c=a.includes(t.id)&&!o.has(t.id);r.push({id:G(t.id),kind:`button`,placement:`start`,order:K(n),presentation:c?`bar`:t.presentation??`auto`,label:t.label,shortLabel:c?t.shortLabel??t.label:t.shortLabel,iconName:t.iconName,trailingIconName:t.trailingIconName,pressed:a.includes(t.id),onSelect:()=>e.onModeChange(t.id)})}),e.getConfig().composer?.models?.length&&!e.hasComposerPlugin()){let i=e.getConfig().composer?.modelPicker?.presentation??`native`;(!t||n!==i)&&(n=i,t=W({renderIcon:e.renderIcon,getModels:()=>e.getConfig().composer?.models??[],getSelectedModelId:()=>e.getState().selectedModelId,onSelect:t=>e.onModelChange(t),presentation:i,getSuffix:()=>e.getConfig().composer?.modelPicker?.suffix})),r.push(t.action)}return r},repaint:()=>{for(let[t,n]of r)J(t,e.getConfig().composer?.modeGroups)?n.repaint():r.delete(t);t?.repaint()}}}export{H as createComposerActionRenderer,re as createComposerCoreControls,Z as createComposerModeChipRow,W as createComposerModelPickerAction,Y as createComposerSegmentedModeAction,o as createPopover,c as ensureComposerActionStyles,s as isEditableEventTarget};
|
|
1
|
+
const e=e=>e.nodeType===Node.DOCUMENT_NODE,t=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host!==void 0;function n(n){let r=n.getRootNode?.();return r&&t(r)||r&&e(r)?r:n.ownerDocument??document}function r(t,n,r){let i=e(t)?t.head:t,a=n.replace(/["\\]/g,`\\$&`);if(i.querySelector(`style[data-persona-plugin-style="${a}"]`))return;let o=(e(t)?t:t.ownerDocument??document).createElement(`style`);o.setAttribute(`data-persona-plugin-style`,n),o.textContent=r,i.appendChild(o)}function i(i,a,o){if(e(i)||t(i)){r(i,a,o);return}let s=i;if(s.isConnected){r(n(s),a,o);return}let c=s.ownerDocument??document;r(c,a,o),queueMicrotask(()=>{let e=n(s);e!==c&&r(e,a,o)})}function a(e){let t=e.getRootNode?.();return t instanceof ShadowRoot?t:e.closest(`dialog[open]`)??(e.ownerDocument??document).body}function o(e){let{anchor:t,content:n,placement:r=`bottom-start`,offset:i=6,matchAnchorWidth:o=!1,horizontalOffset:s,verticalOffset:c,zIndex:l=2147483e3,onOpen:u,onDismiss:d}=e,f=()=>e.container??a(t),p=!1,m=null,h=[],g=()=>{let e=t.closest(`[data-persona-root]`);if(!e||e.contains(n))return;let{style:r}=e;for(let e of h)r.getPropertyValue(e)||n.style.removeProperty(e);h=Array.from(r).filter(e=>e.startsWith(`--`));for(let e of h)n.style.setProperty(e,r.getPropertyValue(e));for(let t of[`data-persona-color-scheme`,`data-persona-defaults`]){let r=e.getAttribute(t);r?n.setAttribute(t,r):n.removeAttribute(t)}},_=()=>{if(!p)return;let a=f();if(n.parentNode!==a){let e=n.contains(n.ownerDocument.activeElement)?n.ownerDocument.activeElement:null;a.appendChild(n),g(),e?.focus({preventScroll:!0})}let l=e.getAnchorRect?.()??t.getBoundingClientRect();n.style.position=`fixed`,o&&(n.style.minWidth=`${l.width}px`),s&&(n.style.maxWidth=`${l.width}px`);let u=n.getBoundingClientRect(),d=c?.()??null,m=d==null?l.top:l.top+d,h=e.getPlacement?.()??r,_=h===`top-start`||h===`top-end`?m-i-u.height:l.bottom+i,v=h===`bottom-end`||h===`top-end`?l.right-u.width:l.left,y=s?.()??null;if(y!=null){let e=Math.max(l.left,l.right-u.width);v=Math.min(Math.max(l.left+y,l.left),e)}if(e.viewportPadding!==void 0){let n=e.viewportPadding,r=t.ownerDocument.defaultView,a=r?.innerHeight??0,o=r?.innerWidth??0,s=m-i-n,c=a-l.bottom-i-n;_=(h.startsWith(`top`)?s>=u.height||s>=c:!(c>=u.height||c>=s))?m-i-u.height:l.bottom+i,_=Math.max(n,Math.min(_,a-n-u.height)),v=Math.max(n,Math.min(v,o-n-u.width))}n.style.top=`${_}px`,n.style.left=`${v}px`},v=()=>{p&&(p=!1,m&&=(m(),null),n.remove())},y=()=>{if(p)return;p=!0,l!=null&&(n.style.zIndex=String(l)),_();let r=(t.ownerDocument??document).defaultView??window,i=t.ownerDocument??document,a=()=>{t.isConnected?_():(v(),d?.(`anchor-removed`))},o=e=>{let r=typeof e.composedPath==`function`?e.composedPath():[];r.includes(n)||r.includes(t)||(v(),d?.(`outside`))},s=e.viewportPadding!==void 0&&r.ResizeObserver?new r.ResizeObserver(a):null;s?.observe(n),s?.observe(t);let c=r.setTimeout(()=>{i.addEventListener(`pointerdown`,o,!0)},0);r.addEventListener(`scroll`,a,!0),r.addEventListener(`resize`,a);let f=t.closest(`[data-persona-root]`);f?.addEventListener(`persona:internal:host-moved`,a);let h;f&&r.MutationObserver&&(h=new r.MutationObserver(g),h.observe(f,{attributeFilter:[`style`,`data-persona-color-scheme`]})),m=()=>{s?.disconnect(),h?.disconnect(),r.clearTimeout(c),i.removeEventListener(`pointerdown`,o,!0),r.removeEventListener(`scroll`,a,!0),r.removeEventListener(`resize`,a),f?.removeEventListener(`persona:internal:host-moved`,a)},u?.()};return{get isOpen(){return p},open:y,close:v,toggle:()=>p?v():y(),reposition:_,destroy:v}}function s(e){return(typeof e.composedPath==`function`?e.composedPath():[]).some(e=>e instanceof HTMLElement&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.isContentEditable))}const c=e=>i(e,`composer-actions`,`.persona-composer-overflow-menu{gap:var(--persona-components-composer-overflowMenu-rowGap,2px);min-width:min(var(--persona-components-composer-overflowMenu-minWidth,180px), calc(100vw - 16px));box-sizing:border-box;max-width:calc(100vw - 16px);max-height:min(var(--persona-components-composer-overflowMenu-maxHeight,320px), calc(100vh - 16px));padding:var(--persona-components-composer-overflowMenu-padding,4px);border-radius:var(--persona-components-composer-overflowMenu-borderRadius,var(--persona-radius-lg,.5rem));border:1px solid var(--persona-components-composer-overflowMenu-borderColor,var(--persona-border,#e5e7eb));background:var(--persona-components-composer-overflowMenu-background,var(--persona-surface,#fff));color:var(--persona-components-composer-overflowMenu-foreground,var(--persona-text,#111827));box-shadow:var(--persona-components-composer-overflowMenu-shadow,var(--persona-shadow-md,0 8px 24px #0000001f));font-family:var(--persona-font-family,inherit);line-height:var(--persona-components-composer-overflowMenu-lineHeight,1.35);flex-direction:column;display:flex;overflow-y:auto}.persona-composer-overflow-menu__item{align-items:center;gap:var(--persona-components-composer-overflowMenu-iconGap,8px);width:100%;padding:var(--persona-components-composer-overflowMenu-rowPadding,6px 8px);border-radius:var(--persona-components-composer-overflowMenu-rowBorderRadius,var(--persona-radius-md,.375rem));color:inherit;font-family:inherit;font-size:var(--persona-components-composer-overflowMenu-fontSize,13px);text-align:start;cursor:pointer;background:0 0;border:none;display:flex}.persona-composer-overflow-menu__item:hover:not(:disabled){background:var(--persona-components-composer-overflowMenu-hoverBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__item:focus-visible{background:var(--persona-components-composer-overflowMenu-focusBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__item[aria-pressed=true]{background:var(--persona-button-ghost-hover-bg,#0000000d);font-weight:600}.persona-composer-overflow-menu__item:disabled{opacity:.5;cursor:default}.persona-composer-overflow-menu__item[aria-busy=true]{opacity:.6;cursor:progress}.persona-composer-overflow-menu__icon{width:var(--persona-components-composer-overflowMenu-iconSize,16px);height:var(--persona-components-composer-overflowMenu-iconSize,16px);flex:none;align-items:center;display:inline-flex}.persona-composer-overflow-menu__content{display:contents}.persona-composer-overflow-menu__text{flex-direction:column;min-width:0;display:flex}.persona-composer-overflow-menu__icon>svg{width:100%;height:100%}.persona-composer-overflow-menu__description{color:var(--persona-components-composer-overflowMenu-descriptionColor,var(--persona-text-muted,#6b7280));font-size:var(--persona-components-composer-overflowMenu-descriptionFontSize,12px);line-height:var(--persona-components-composer-overflowMenu-lineHeight,1.35);white-space:normal;display:block}.persona-composer-overflow-menu[data-persona-menu-description-layout=inline] .persona-composer-overflow-menu__text,.persona-composer-overflow-menu[data-persona-menu-description-layout=inline] .persona-composer-overflow-menu__slot>.persona-composer-overflow-menu__label{align-items:baseline;gap:0 var(--persona-components-composer-overflowMenu-iconGap,8px);flex-flow:wrap;display:flex}.persona-composer-overflow-menu__divider{border-top:1px solid var(--persona-components-composer-overflowMenu-dividerColor,var(--persona-border,#e5e7eb));margin:var(--persona-components-composer-overflowMenu-dividerSpacing,4px 0);flex-shrink:0}.persona-composer-overflow-menu__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.persona-composer-overflow-menu__slot{align-items:center;gap:var(--persona-components-composer-overflowMenu-iconGap,8px);width:100%;padding:var(--persona-components-composer-overflowMenu-rowPadding,6px 8px);border-radius:var(--persona-components-composer-overflowMenu-rowBorderRadius,var(--persona-radius-md,.375rem));font-size:var(--persona-components-composer-overflowMenu-fontSize,13px);text-align:start;cursor:pointer;display:flex}.persona-composer-overflow-menu__slot:hover{background:var(--persona-components-composer-overflowMenu-hoverBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__slot[data-persona-menu-focus]{background:var(--persona-components-composer-overflowMenu-focusBackground,var(--persona-button-ghost-hover-bg,#0000000d))}.persona-composer-overflow-menu__slot .persona-send-button-wrapper{display:contents}.persona-composer-overflow-menu__slot .persona-composer-control{width:var(--persona-components-composer-overflowMenu-iconSize,16px);height:var(--persona-components-composer-overflowMenu-iconSize,16px);min-width:var(--persona-components-composer-overflowMenu-iconSize,16px);min-height:var(--persona-components-composer-overflowMenu-iconSize,16px);box-shadow:none;color:inherit;cursor:inherit;background:0 0;border:none;border-radius:0;flex:none;padding:0;line-height:1;overflow:hidden}.persona-composer-overflow-menu__slot .persona-composer-control>svg{width:var(--persona-components-composer-overflowMenu-iconSize,16px);height:var(--persona-components-composer-overflowMenu-iconSize,16px)}.persona-composer-overflow-menu__slot .persona-composer-control:focus-visible{outline:none}.persona-composer-overflow-menu__slot .persona-control-tooltip{display:none}.persona-composer-segmented{align-items:center;gap:var(--persona-components-composer-segmented-gap,2px);padding:var(--persona-components-composer-segmented-padding,2px);border-radius:var(--persona-components-composer-segmented-trackBorderRadius,9999px);background:var(--persona-components-composer-segmented-trackBackground,var(--persona-container,#f3f4f6));flex:none;display:inline-flex}.persona-composer-segmented-item{cursor:pointer;white-space:nowrap;box-shadow:none;font-family:inherit;font-size:var(--persona-components-composer-segmented-fontSize,var(--persona-composer-font-size,.875rem));line-height:var(--persona-components-composer-segmented-lineHeight,var(--persona-composer-line-height,1.25rem));font-weight:var(--persona-components-composer-segmented-fontWeight,normal);min-height:var(--persona-components-composer-segmented-minHeight,0px);padding:var(--persona-components-composer-segmented-itemPadding,.25rem .625rem);border-radius:var(--persona-components-composer-segmented-trackBorderRadius,9999px);color:var(--persona-components-composer-segmented-inactiveForeground,var(--persona-muted,#6b7280));background:0 0;border:none;align-items:center;gap:.375rem;display:inline-flex}.persona-composer-segmented-item[aria-pressed=true]{background:var(--persona-components-composer-segmented-activeBackground,var(--persona-surface,#fff));color:var(--persona-components-composer-segmented-activeForeground,var(--persona-text,#111827));box-shadow:var(--persona-components-composer-segmented-activeShadow,0 1px 2px 0 #0f172a1f)}.persona-composer-segmented-item svg{flex:none}@media (pointer:coarse){.persona-composer-segmented-item{min-height:36px}}.persona-composer-model-picker-wrapper{align-items:center;display:inline-grid}.persona-composer-model-picker-wrapper>*{grid-area:1/1}[data-persona-root] .persona-composer-model-picker{max-width:10rem;height:var(--persona-components-composer-modelPicker-height,var(--persona-composer-control-size,40px));min-height:var(--persona-components-composer-modelPicker-height,var(--persona-composer-control-size,40px));width:auto;min-width:var(--persona-components-composer-modelPicker-minWidth,0px);line-height:var(--persona-components-composer-modelPicker-height,var(--persona-composer-control-size,40px));padding-block:0;padding-inline:.625rem 1.75rem;padding-inline:var(--persona-components-composer-modelPicker-paddingInline,.625rem 1.75rem);border-radius:var(--persona-components-composer-modelPicker-borderRadius,var(--persona-button-ghost-radius,var(--persona-radius-md,.375rem)));background-color:var(--persona-components-composer-modelPicker-background,var(--persona-button-ghost-bg,transparent));color:var(--persona-components-composer-modelPicker-labelColor,var(--persona-button-ghost-fg,var(--persona-text,#111827)));box-shadow:inset 0 0 0 1px var(--persona-components-composer-modelPicker-borderColor,transparent);font-family:inherit;font-size:var(--persona-components-composer-modelPicker-fontSize,.8125rem);font-weight:var(--persona-components-composer-modelPicker-fontWeight,normal);cursor:pointer;appearance:none;text-overflow:ellipsis;white-space:nowrap;text-align:start;border:none;overflow:hidden}.persona-composer-model-picker-chevron{pointer-events:none;background-color:var(--persona-components-composer-modelPicker-labelColor,var(--persona-button-ghost-fg,var(--persona-text,#111827)));justify-self:end;width:.875rem;height:.875rem;margin-inline-end:.625rem;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[data-persona-root] .persona-composer-model-picker option{line-height:normal}@media (pointer:coarse){[data-persona-root] .persona-composer-model-picker{min-width:40px;min-height:40px}}[data-persona-root] .persona-composer-model-picker:hover:not(:disabled){background-color:var(--persona-components-composer-modelPicker-hoverBackground,var(--persona-button-ghost-hover-bg,#0000000d))}[data-persona-root] .persona-composer-model-picker:disabled{opacity:.5;cursor:default}[data-persona-root] .persona-composer-model-picker-trigger{align-items:center;gap:.25rem;display:inline-flex}.persona-composer-model-picker-label{text-overflow:ellipsis;white-space:nowrap;color:var(--persona-components-composer-modelPicker-labelColor,inherit);overflow:hidden}.persona-composer-model-picker-suffix{color:var(--persona-components-composer-modelPicker-suffixColor,var(--persona-muted,#6b7280));flex:none}.persona-composer-model-picker-suffix:empty{display:none}.persona-composer-model-menu{border-radius:var(--persona-components-composer-modelPicker-menuBorderRadius,var(--persona-radius-lg,.5rem));border:1px solid var(--persona-border,#e5e7eb);background:var(--persona-components-composer-modelPicker-menuBackground,var(--persona-surface,#fff));min-width:220px;max-height:320px;color:var(--persona-text,#111827);box-shadow:var(--persona-shadow-md,0 8px 24px #0000001f);font-family:var(--persona-font-family,inherit);flex-direction:column;gap:2px;padding:4px;display:flex;overflow-y:auto}.persona-composer-model-option{border-radius:var(--persona-radius-md,.375rem);width:100%;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:8px;padding:6px 8px;font-family:inherit;font-size:13px;display:flex}.persona-composer-model-option:hover,.persona-composer-model-option:focus{background:var(--persona-components-composer-modelPicker-rowHoverBackground,var(--persona-button-ghost-hover-bg,#0000000d));outline:none}.persona-composer-model-option-icon,.persona-composer-model-option-check{flex:none;align-items:center;margin-top:1px;display:inline-flex}.persona-composer-model-option-check{visibility:hidden}.persona-composer-model-option[aria-selected=true] .persona-composer-model-option-check{visibility:visible}.persona-composer-model-option-body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.persona-composer-model-option-label{color:var(--persona-components-composer-modelPicker-labelColor,inherit)}.persona-composer-model-option-description{color:var(--persona-components-composer-modelPicker-descriptionColor,var(--persona-muted,#6b7280));font-size:12px;line-height:1.35}.persona-composer-mode-chip{background:var(--persona-mode-chip-bg,var(--persona-container,#f3f4f6));border-color:var(--persona-mode-chip-border,var(--persona-border,#e5e7eb));color:var(--persona-mode-chip-fg,var(--persona-text,#111827))}[data-persona-composer-expanded] .persona-widget-composer:not(.persona-pill-composer) :is(.persona-widget-composer__actions,.persona-widget-composer__left-actions,.persona-widget-composer__right-actions,.persona-composer-segmented){flex-wrap:wrap;min-width:0;max-width:100%}[data-persona-composer-expanded] .persona-widget-composer:not(.persona-pill-composer) :is(.persona-composer-control,.persona-composer-model-picker,.persona-composer-segmented-item){max-width:100%}[data-persona-composer-expanded] .persona-widget-composer:not(.persona-pill-composer) :is(.persona-composer-action-button,.persona-composer-model-picker,.persona-composer-segmented-item){text-overflow:ellipsis;overflow:hidden}[data-persona-composer-crowded] .persona-widget-composer:not(.persona-pill-composer) .persona-composer-model-picker-wrapper{max-width:min(100%,16rem)}`),l=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},u=(e,t={},...n)=>{let r=document.createElement(e);if(t.className&&(r.className=t.className),t.text!==void 0&&(r.textContent=t.text),t.attrs)for(let[e,n]of Object.entries(t.attrs))r.setAttribute(e,n);if(t.style){let e=r.style,n=t.style;for(let t of Object.keys(n)){let r=n[t];r!=null&&(e[t]=r)}}let i=n.filter(e=>e!=null);return i.length>0&&r.append(...i),r},d=(...e)=>e.filter(Boolean).join(` `),f=`persona-composer-control`,p=`persona-composer-control--glyph`,m=`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`,h=`data-persona-menu-focus`,g=/* @__PURE__ */ new Set([`ArrowDown`,`ArrowUp`,`Home`,`End`]);function _(e){return e.getAttribute(`role`)===`menuitem`?e:e.querySelector(m)??e}const v=e=>e.disabled===!0||e.getAttribute(`aria-disabled`)===`true`;function y(e){let{renderLucideIcon:t,attachTooltip:n}=e.deps,r=e.label,i=!1,a=!1,s=!1,d=!1,y=!0,b=l(`div`,`persona-send-button-wrapper`),x=u(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center persona-cursor-pointer persona-composer-action-button persona-composer-overflow-trigger ${f} ${p}`,attrs:{type:`button`,"aria-haspopup":`menu`,"aria-expanded":`false`,"data-persona-composer-overflow-trigger":``}});b.appendChild(x);let S=u(`div`,{className:`persona-composer-overflow-menu`,attrs:{role:`menu`,tabindex:`-1`,"data-persona-composer-overflow-menu":``}}),C=()=>{let n=e.getButtonSize?.()??``;x.style.width=n,x.style.height=n,x.style.minWidth=n,x.style.minHeight=n,x.style.lineHeight=`1`,x.replaceChildren();let r=t((R()?e.getConfig?.()?.openTriggerIconName:void 0)??e.getConfig?.()?.triggerIconName??`plus`,24,`currentColor`,1.5);r?x.appendChild(r):x.textContent=`+`},w=()=>{x.setAttribute(`aria-label`,r),S.setAttribute(`aria-label`,r)};w();let T=n({anchor:x,trigger:b,text:()=>x.getAttribute(`aria-expanded`)===`true`?``:r}),E=[],D=-1,O=!1,k=()=>{let e=S.getRootNode().activeElement;return e instanceof HTMLElement?e:null},A=()=>{let e=k();for(let t of E){let n=!!e&&_(t)===e;t.toggleAttribute(h,n&&O)}},ee=()=>E.filter(e=>e.isConnected||S.contains(e)).map(_).filter(e=>!v(e)),j=(e,t)=>{e.forEach((e,n)=>{e.setAttribute(`tabindex`,n===t?`0`:`-1`)})},M=e=>{let t=ee();if(t.length===0)return;let n=(e%t.length+t.length)%t.length;D=n,j(t,n),t[n].focus(),A()},N=()=>b.ownerDocument??document,P=null,F=null,I=null,te=()=>{P&&=(N().removeEventListener(`focusin`,P,!0),null)},ne=()=>{F&&=(S.removeEventListener(`focusin`,F),null),I&&=(S.removeEventListener(`pointerdown`,I,!0),null)},L=null,re=()=>(L||=o({anchor:x,getAnchorRect:()=>{if(e.getConfig?.()?.width===`composer`){let t=e.getComposer?.()?.getBoundingClientRect();if(t)return S.style.width=`${t.width}px`,t}return x.getBoundingClientRect()},content:S,placement:`top-start`,getPlacement:()=>e.getConfig?.()?.placement===`below`?`bottom-start`:`top-start`,viewportPadding:8,offset:6,onDismiss:()=>{z()}}),L),R=()=>L?.isOpen===!0,z=()=>{d=!0,a=!1,x.setAttribute(`aria-expanded`,`false`),te(),ne(),D=-1,O=!1;for(let e of E)e.removeAttribute(h);try{e.onClose?.()}finally{d=!1}C()},B=(e=!1)=>{(R()||a)&&(L?.close(),z(),e&&!i&&x.focus())},ie=()=>{S.setAttribute(`data-persona-menu-description-layout`,e.getConfig?.()?.descriptionLayout??`stacked`);let t=e.getConfig?.()?.width;S.style.width=t===`composer`?`${e.getComposer?.()?.getBoundingClientRect().width??0}px`:t&&t!==`content`?t:``,C(),L?.reposition()};C();let V=(t=0,n=!1)=>{if(i||s||d||R())return;c(x),T.hide(),a=!0,s=!0;let r;try{r=e.beforeOpen?.()}finally{s=!1}if(r===!1||!a||i)a&&B();else{if(O=n,ie(),re().open(),a=!1,x.setAttribute(`aria-expanded`,`true`),C(),y){let e=ee();j(e,-1),M(t<0?e.length-1:t),e.length||S.focus()}else(Array.from(S.querySelectorAll(m)).find(e=>!v(e)&&!e.closest(`[hidden]`))??S).focus();R()&&!i&&(P=e=>{let t=typeof e.composedPath==`function`?e.composedPath():[];t.includes(S)||t.includes(b)||B()},N().addEventListener(`focusin`,P,!0),F=()=>A(),S.addEventListener(`focusin`,F),I=()=>{O=!1},S.addEventListener(`pointerdown`,I,!0))}},H=e=>{e.preventDefault(),e.stopPropagation(),R()?B(!0):V(0)},U=e=>{e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),O=!0,R()?y?M(0):S.focus():V(0,!0)):e.key===`ArrowUp`&&(e.preventDefault(),O=!0,R()?y?M(-1):S.focus():V(-1,!0))},W=e=>{if(!y)e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),e.stopPropagation(),B(!0));else switch(g.has(e.key)&&(O=!0),e.key){case`ArrowDown`:e.preventDefault(),M(D+1);return;case`ArrowUp`:e.preventDefault(),M(D-1);return;case`Home`:e.preventDefault(),M(0);return;case`End`:e.preventDefault(),M(ee().length-1);return;case`Escape`:e.preventDefault(),e.stopPropagation(),B(!0);return;case`Tab`:B(!0);return}};return x.addEventListener(`click`,H),x.addEventListener(`keydown`,U),S.addEventListener(`keydown`,W),{trigger:b,triggerButton:x,panel:S,setItems:e=>{for(let t of E)e.includes(t)||t.removeAttribute(h);if(E=[...e],!R()||!y)return;let t=ee();j(t,Math.min(D,t.length-1)),A()},isOpen:R,open:()=>V(0),close:B,setLabel:e=>{e!==r&&(r=e,w(),T.isOpen&&(T.hide(),T.show()))},applyButtonSize:C,refresh:ie,setContentMode:(e,t)=>{let n=t&&!y&&R();y=t,S.setAttribute(`role`,e),x.setAttribute(`aria-haspopup`,e),n&&M(0)},destroy:()=>{i=!0,B(),T.destroy(),te(),ne(),x.removeEventListener(`click`,H),x.removeEventListener(`keydown`,U),S.removeEventListener(`keydown`,W),L?.destroy(),L=null,b.remove(),S.remove(),E=[]}}}function b(e){if(e.available<=0)return new Set(e.previous);let t=t=>{let n={start:{...e.slots.start},end:{...e.slots.end}};for(let r of e.actions){if(t.has(r.id))continue;let e=n[r.placement];e.width+=r.width,e.count+=1}return(e.hasMenu||t.size)&&(n.start.width+=e.triggerWidth,n.start.count+=1),n.start.width+n.end.width+Math.max(0,n.start.count-1)*e.gaps.start+Math.max(0,n.end.count-1)*e.gaps.end+(n.start.count&&n.end.count?e.clusterGap:0)},n=/* @__PURE__ */ new Set,r=t(n),i=e.available-(e.previous.size?16:0),a=e.actions.filter(e=>e.auto).sort((e,t)=>t.order-e.order||t.sequence-e.sequence);for(let e of a){if(t(n)<=i)break;n.add(e.id)}return!e.hasMenu&&t(n)>=r?/* @__PURE__ */ new Set:n}function x(e){let t=e.ownerDocument.defaultView;if(!t)return 0;let n=t.getComputedStyle(e);if(n.display===`none`||[`absolute`,`fixed`].includes(n.position))return 0;let r=e=>Number.parseFloat(e)||0;return(n.display===`contents`?Array.from(e.children).reduce((e,n)=>e+(n instanceof t.HTMLElement?x(n):0),0):Math.max(e.getBoundingClientRect().width,e.scrollWidth))+r(n.marginLeft)+r(n.marginRight)}const S={mention:100,attachment:200,mic:800,overflow:900,send:1e3,custom:500},C=`data-persona-composer-action`,w=`data-persona-composer-disable-when-streaming`,T=`core:overflow`,E=e=>e===`core:attachment`?`attachments`:e.startsWith(`core:mention`)?`mentions`:null;function D(e,t){if(e===void 0)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;let n=Number.parseFloat(e);if(/^\s*-?\d*\.?\d+(px)?\s*$/.test(e)&&Number.isFinite(n))return n;let r=l(`div`);r.style.position=`absolute`,r.style.visibility=`hidden`,r.style.pointerEvents=`none`,r.style.height=`0`,r.style.width=e,t.appendChild(r);let i=r.getBoundingClientRect().width;return r.remove(),Number.isFinite(i)&&i>0?i:Number.isFinite(n)?n:null}function O(e){let t=e.clientWidth;if(!t)return 0;let n=e.ownerDocument?.defaultView;if(!n?.getComputedStyle)return t;let r=n.getComputedStyle(e),i=(Number.parseFloat(r.paddingLeft)||0)+(Number.parseFloat(r.paddingRight)||0);return Math.max(0,t-i)}const k=(e,t)=>{e&&typeof console<`u`&&console.warn(t)},A=(e,t)=>t.includes(`:`)?t:`${e}:${t}`;function ee(e){let{debug:t}=e,n=[],r=/* @__PURE__ */ new Map,i=0,a=e=>{let i=r.get(e.id);i?k(t,`[Persona] composer action "${e.id}" is already contributed by ${j(i)}; the ${j(e)} copy is ignored.`):(r.set(e.id,e),n.push(e))};for(let t of e.builtIns)a({id:t.id,placement:t.placement,presentation:`bar`,order:t.order,sequence:i++,source:`core`,builtIn:t});let o=(e,n,r)=>{let o=r?A(r,e.id):e.id,s=e.order??S.custom;e.placement===`end`&&s>=S.send&&(k(t,`[Persona] composer action "${o}" ordered at ${s} would render after send; clamped to ${S.send-1}.`),s=S.send-1),a({id:o,placement:e.placement,presentation:e.presentation??`bar`,order:s,sequence:i++,source:n,pluginId:r,action:e})};for(let t of e.configActions??[])o(t,`config`);for(let t of e.plugins){if(!t.contributeComposerActions)continue;let n;try{n=t.contributeComposerActions(e.contributionContext)}catch(e){typeof console<`u`&&console.error(`[Persona] plugin "${t.id}" contributeComposerActions failed:`,e);continue}for(let e of n??[])o(e,`plugin`,t.id)}return n.sort((e,t)=>e.order===t.order?e.sequence-t.sequence:e.order-t.order)}const j=e=>e.source===`plugin`?`plugin "${e.pluginId}"`:e.source===`config`?`composer.actions`:`a core built-in`,M=(e,t,n)=>e===void 0?n:typeof e==`function`?e(t)===!0:e===!0,N=e=>e.phase===`streaming`||e.text.trim().length>0||e.attachments.length>0;function P(e,t){if(!e||e===`always`)return!0;let n=N(t);return e===`when-text`?n:!n}const F=e=>e.kind===`custom`,I=e=>e instanceof HTMLButtonElement?e:e.querySelector(`button`)??e,te=e=>{let t=I(e);return t.getAttribute(`aria-label`)?.trim()||t.getAttribute(`title`)?.trim()||``};function ne(e){let t=``,n=e=>{if(e.nodeType===Node.TEXT_NODE){t+=e.nodeValue??``;return}if(e.nodeType!==Node.ELEMENT_NODE)return;let r=e;typeof r.matches==`function`&&r.matches(`.persona-control-tooltip, [role="tooltip"], .persona-sr-only, [hidden], [aria-hidden="true"]`)||e.childNodes.forEach(n)};return n(e),t.trim()}const L=e=>ne(e).length===0,re=e=>!e||typeof e!=`object`?e:Object.freeze(Array.isArray(e)?e.map(re):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,re(t)])));function R(e){let{renderLucideIcon:t,attachTooltip:n,hideTooltipFor:r}=e.deps,i=/* @__PURE__ */ new Map,a=[],o=!1,s=null,m=[],h=[],g=l(`div`,`persona-composer-overflow-menu__content`),v=()=>e.getButtonSize?.(),k=(n,r)=>{let i=n.button;if(!i)return;i.setAttribute(`role`,`menuitem`),i.setAttribute(`tabindex`,`-1`),i.className=`persona-composer-overflow-menu__item`;for(let e of[`width`,`height`,`minWidth`,`minHeight`,`fontSize`,`color`,`backgroundColor`])i.style[e]=``;i.style.lineHeight=``,r.showTooltip!==!1&&r.tooltipText?i.setAttribute(`title`,r.tooltipText):i.removeAttribute(`title`),i.replaceChildren();let a=l(`span`,`persona-composer-overflow-menu__icon`);if(r.iconName){let e=t(r.iconName,16,`currentColor`,1.5);e&&a.appendChild(e)}let o=l(`span`,`persona-composer-overflow-menu__label`),s=e.getOverflow?.()?.menu?.items?.[n.resolved.id];o.textContent=s?.label??r.shortLabel??r.label;let c=l(`span`,`persona-composer-overflow-menu__text`);c.appendChild(o);let d=s?.description??r.description;i.setAttribute(`aria-label`,s?.label??r.label),d?i.setAttribute(`aria-description`,d):i.removeAttribute(`aria-description`),d&&c.appendChild(u(`span`,{className:`persona-composer-overflow-menu__description`,text:d})),i.append(a,c)},A=(e,r)=>{let i=e.button;if(!i)return;if(i.setAttribute(`aria-label`,r.label),r.pressed===void 0?i.removeAttribute(`aria-pressed`):i.setAttribute(`aria-pressed`,r.pressed?`true`:`false`),i.toggleAttribute(w,r.disableWhenStreaming===!0),e.mode===`menu`){e.tooltip?.destroy(),e.tooltip=void 0,k(e,r);return}i.removeAttribute(`role`),i.removeAttribute(`tabindex`),i.removeAttribute(`aria-description`),i.removeAttribute(`title`);let a=v(),o=!!r.shortLabel||!r.iconName;if(i.className=d(`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-action-button`,f,p,o&&`persona-composer-action-button--text persona-gap-1 persona-text-sm`),i.style.width=a&&!o?a:``,i.style.height=a??``,i.style.minWidth=a&&!o?a:``,i.style.minHeight=a??``,i.style.fontSize=o?``:`18px`,i.style.lineHeight=`1`,i.style.color=r.iconColor??``,i.style.backgroundColor=r.backgroundColor??``,i.replaceChildren(),r.iconName){let e=t(r.iconName,24,`currentColor`,1.5);e&&(r.iconName===`voice-bars`&&r.iconAnimation===`voice`&&e.classList.add(`persona-voice-bars--animated`),i.appendChild(e))}if(o){let e=l(`span`,`persona-composer-action-button__label`);e.textContent=r.shortLabel??r.label,i.appendChild(e)}if(r.trailingIconName&&o){let e=t(r.trailingIconName,24,`currentColor`,1.5);e&&i.appendChild(e)}i.firstChild||(i.textContent=r.label),e.tooltip?.destroy(),e.tooltip=n({anchor:i,trigger:e.element,text:()=>r.tooltipText??r.label,enabled:r.showTooltip??(!o||!!r.tooltipText)})},j=(t,n)=>{if(o||i.get(t.resolved.id)!==t||t.busy)return!1;let r=t.resolved.action,a=e.getState();if(!t.visible||r&&(!M(r.visible,a,!0)||!P(r.visibility,a)||M(r.disabled,a,!1)||r.disableWhenStreaming===!0&&a.phase===`streaming`))return!1;let c=I(t.element);if(c.disabled||c.getAttribute(`aria-disabled`)===`true`)return!1;if((t.mode===`menu`||V?.isOpen())&&(s=t.resolved.id,V?.close(!0)),!r||F(r))return c.click(),!0;let l;try{l=r.onSelect(e.actionContext,n)}catch(n){return e.reportError(n,{actionId:t.resolved.id}),!0}return l&&typeof l.then==`function`&&(t.busy=!0,t.button?.setAttribute(`aria-busy`,`true`),l.catch(n=>e.reportError(n,{actionId:t.resolved.id})).finally(()=>{t.busy=!1,t.button?.removeAttribute(`aria-busy`),!o&&i.get(t.resolved.id)===t&&$()})),!0},N=(e,t)=>{let n=e.action,r=u(`button`,{attrs:{type:`button`}}),i=r;if(t===`bar`){let e=l(`div`,`persona-send-button-wrapper`);e.appendChild(r),i=e}i.setAttribute(C,e.id);let a={resolved:e,element:i,button:r,owned:!0,managed:!0,busy:!1,visible:!0,mode:t},o=e=>{e.preventDefault(),e.stopPropagation(),j(a,e)};return r.addEventListener(`click`,o),a.detach=()=>r.removeEventListener(`click`,o),A(a,n),a},ne=t=>{let n=t.action,r;try{r=n.render({...e.actionContext,id:t.id,action:n})}catch(n){return e.reportError(n,{actionId:t.id}),null}return r?.element?(r.element.setAttribute(C,t.id),r.element.toggleAttribute(w,n.disableWhenStreaming===!0),{resolved:t,element:r.element,owned:!0,managed:!0,destroy:r.destroy,busy:!1,visible:!0,mode:`bar`}):null},R=(e,t)=>{if(e.builtIn){let t=e.builtIn.element;return t?{resolved:e,element:t,owned:!1,managed:e.builtIn.managed===!0,busy:!1,visible:!0,mode:`bar`}:null}let n=e.action;return n?F(n)?ne(e):N(e,t):null},z=t=>{if(t.detach?.(),t.tooltip?.destroy(),t.detachMenuSlot?.(),t.detachMenuSlot=void 0,t.menuLabel?.remove(),t.menuLabel=void 0,t.menuSlot?.remove(),t.menuSlot=void 0,t.owned){try{t.destroy?.()}catch(n){e.reportError(n,{actionId:t.resolved.id})}t.element.remove()}},B=(e,t)=>{let n=null;for(let r=t.length-1;r>=0;r--){let i=t[r];i.managed?(n?(i.element.parentElement!==e||i.element.nextSibling!==n)&&e.insertBefore(i.element,n):e.lastChild!==i.element&&e.appendChild(i.element),n=i.element):i.element.parentElement===e&&(n=i.element)}},ie=(e,t)=>{if(e.button){e.button.disabled=t;return}if(!e.owned)return;let n=e.element;n.toggleAttribute(`data-disabled`,t),n.setAttribute(`aria-disabled`,t?`true`:`false`);let r=n instanceof HTMLButtonElement||n instanceof HTMLSelectElement||n instanceof HTMLInputElement||n instanceof HTMLTextAreaElement?n:n.querySelector(`button, select, input, textarea`);r&&(r.disabled=t)},V=null,H=null,U=null,W=0,G=null,K=null,q=null,ae=0,J=/* @__PURE__ */ new Set,oe=/* @__PURE__ */ new Map,se=()=>{ae+=1,Y()},Y=()=>{if(o||K!==null||!H)return;let e=H.ownerDocument.defaultView;e&&(K=e.requestAnimationFrame(()=>{K=null,$()}))},ce=()=>{K!==null&&H?.ownerDocument.defaultView?.cancelAnimationFrame(K),K=null,G?.disconnect(),G=null,H?.ownerDocument.defaultView?.removeEventListener(`resize`,Y),H?.ownerDocument.fonts?.removeEventListener(`loadingdone`,se),q=null},X=()=>{let t=e.getOverflow?.();return t?.enabled===!0?t:void 0},Z=null,le=null,ue=null,de,Q=!0,fe=!1,pe=!1,me=t=>e.reportError(t,{actionId:T}),he=e=>{try{e?.destroy?.()}catch(e){me(e)}},ge=()=>{let e=Z,t=le;Z=null,le=null,ue=null,de=void 0,fe=!1,e?.abort(),he(t),V?.panel.replaceChildren(g),V?.setContentMode(`menu`,!0),Q=!0},_e=t=>{let n=t.resolved.action,r=X()?.menu?.items?.[t.resolved.id],i=I(t.element),a=e.getState();return Object.freeze({id:t.resolved.id,kind:n?F(n)?`custom`:`button`:`builtin`,label:r?.label??(n?(F(n)?void 0:n.shortLabel)??n.label:te(t.element)),description:r?.description??n?.description,group:r?.group??n?.group,iconName:n&&!F(n)?n.iconName:void 0,disabled:!!(i.disabled||i.getAttribute(`aria-disabled`)===`true`||n&&(M(n.disabled,a,!1)||n.disableWhenStreaming===!0&&a.phase===`streaming`)),busy:t.busy,pressed:n&&!F(n)?n.pressed:void 0})},ve=t=>{let n=()=>!o&&Z===t&&!t.signal.aborted;return Object.freeze({config:re(X()?.menu??{}),state:re(e.getState()),items:Object.freeze(h.map(_e)),signal:t.signal,actions:Object.freeze({invoke:e=>{if(!n()||!V?.isOpen())return!1;let t=i.get(e);return!t||t.mode!==`menu`||!h.includes(t)?!1:j(t,new Event(`click`,{bubbles:!0,cancelable:!0}))},openAttachmentPicker:()=>{if(!n()||!V?.isOpen())return;let e=i.get(`core:attachment`);e&&j(e,new Event(`click`,{bubbles:!0,cancelable:!0}))},close:()=>{n()&&V?.close(!0)},requestUpdate:()=>{n()&&!fe&&(fe=!0,Promise.resolve().then(()=>{n()&&(fe=!1,ke())}))}}),defaultRenderer:()=>({element:g,role:`menu`})})},ye=()=>{let e=new AbortController;Z=e;let t=ve(e);for(let n of m){if(e.signal.aborted||Z!==e||o)return!1;if(!n.renderComposerMenu)continue;let r;try{r=n.renderComposerMenu(t)}catch(e){me(e);continue}if(!r)continue;let i=r instanceof HTMLElement?{element:r}:r;if(e.signal.aborted||Z!==e||o)return he(i),!1;if(!(i.element instanceof HTMLElement))he(i);else return le=i,ue=n,de=n.renderComposerMenu,Q=i.element===g,V?.panel.replaceChildren(i.element),V?.setContentMode(i.role??(Q?`menu`:`dialog`),Q),!0}return e.signal.aborted||o?!1:(Q=!0,V?.panel.replaceChildren(g),V?.setContentMode(`menu`,!0),!0)},be=()=>{if(!Z||Z.signal.aborted||!V?.isOpen())return;if(ue&&!m.some(e=>e.id===ue?.id&&e.renderComposerMenu===de)){V.close();return}if(pe)return;let e=Z,t=le;pe=!0;try{t?.update?.(ve(e))}catch(n){if(me(n),Z===e){if(Z=null,le=null,e.abort(),he(t),o||!V?.isOpen()||Z)return;Z=new AbortController,ue=null,de=void 0,Q=!0,V.panel.replaceChildren(g),V.setContentMode(`menu`,!0)}}finally{pe=!1}V?.refresh()},xe=()=>(V?V.setLabel(e.getOverflowLabel?.()??`More actions`):V=y({deps:e.deps,label:e.getOverflowLabel?.()??`More actions`,getButtonSize:v,getConfig:()=>X()?.menu,getComposer:()=>e.getBindings()?.form,beforeOpen:ye,onClose:ge}),V),Se=(e,t)=>{let n=e.footer;if(!(H===n&&(t?q===e.form:q===null))){if(ce(),U?.disconnect(),H=n,W=O(n),t){q=e.form;let t=n.ownerDocument.defaultView;t?.addEventListener(`resize`,Y),n.ownerDocument.fonts?.addEventListener(`loadingdone`,se),t?.MutationObserver&&(G=new t.MutationObserver(n=>{n.some(n=>{if(V?.trigger.contains(n.target)||n.target===e.input&&n.type===`attributes`)return!1;let r=[...Array.from(n.addedNodes),...Array.from(n.removedNodes)];return!(r.length&&r.every(e=>e instanceof t.HTMLElement&&e.hasAttribute(`data-persona-composer-measure`)))})&&Y()}),G.observe(n,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:[`class`,`style`,`hidden`,`data-persona-composer-layout`,`data-persona-composer-compact`]}))}typeof ResizeObserver<`u`&&(U=new ResizeObserver(e=>{if(t){Y();return}let r=e[e.length-1]?.contentRect?.width??O(n);r!==W&&(W=r,$())}),U.observe(n),t&&(U.observe(e.form),U.observe(e.actionsStart),U.observe(e.actionsEnd)))}},Ce=(e,t)=>{let n=D(e.collapseAutoActionsBelow,t);if(n===null)return!1;let r=W||O(t);return r>0&&r<n},we=(e,t,n)=>{if(!t)return`bar`;if(e.resolved.builtIn){let n=E(e.resolved.id);return n&&t.includeBuiltIns?.includes(n)?`menu`:`bar`}let r=e.resolved.presentation;return r===`overflow`||r===`auto`&&n?`menu`:`bar`},Te=e=>{let t=e.menuSlot;if(!t)return;let n=X()?.menu?.items?.[e.resolved.id],r=n?.description??e.resolved.action?.description;if(!n?.label&&!r&&!L(e.element)){e.menuLabel?.remove(),e.menuLabel=void 0;return}let i=n?.label??te(e.element);i?(e.menuLabel||=l(`span`,`persona-composer-overflow-menu__label`),e.menuLabel.replaceChildren(u(`span`,{text:i})),r&&e.menuLabel.appendChild(u(`span`,{className:`persona-composer-overflow-menu__description`,text:r})),e.menuLabel.parentElement!==t&&t.appendChild(e.menuLabel)):(e.menuLabel?.remove(),e.menuLabel=void 0)},Ee=(e,t)=>{if(e.mode===t)return e;let n=e.resolved.action;if(n&&!F(n)){let r=e.element;return t===`menu`?e.element=e.button:(e.element=l(`div`,`persona-send-button-wrapper`),e.element.appendChild(e.button),e.button.removeAttribute(C)),r!==e.element&&r!==e.button&&r.remove(),e.element.setAttribute(C,e.resolved.id),e.mode=t,A(e,n),e}if(t===`menu`){let t=u(`div`,{className:`persona-composer-overflow-menu__slot`,attrs:{role:`none`,"data-persona-tooltip-suppressed":``}});t.appendChild(e.element),r(I(e.element)),e.menuSlot=t;let n=t=>{let n=I(e.element);if(n.disabled)return;let r=t.target===n||n.contains(t.target);s=e.resolved.id,V?.close(!0),r||n.click()};t.addEventListener(`click`,n,!0),e.detachMenuSlot=()=>t.removeEventListener(`click`,n,!0),e.managed=!0,Te(e)}else e.detachMenuSlot?.(),e.detachMenuSlot=void 0,e.menuLabel?.remove(),e.menuLabel=void 0,e.menuSlot?.remove(),e.menuSlot=void 0;return e.mode=t,e},De=(e,t)=>{let n=Array.from(e.querySelectorAll(`.persona-composer-overflow-menu__divider`)),r=0,i=[];for(t.forEach((e,a)=>{let o=_e(e).group;a&&o!==_e(t[a-1]).group&&i.push(n[r++]??u(`div`,{className:`persona-composer-overflow-menu__divider`,attrs:{role:`separator`}})),i.push(e.menuSlot??e.element)}),i.forEach((t,n)=>{let r=e.children[n];r!==t&&(r?e.insertBefore(t,r):e.appendChild(t))});e.children.length>i.length;)e.lastElementChild?.remove()},Oe=(e,t,n)=>{let r=O(e.form);if(!r)return J;let i=e.form.ownerDocument.defaultView,a=i.getComputedStyle(e.form),o=e=>Number.parseFloat(e)||0,s=o(a.columnGap),c=e.footer.getAttribute(`data-persona-composer-layout`)===`single-row`&&e.footer.hasAttribute(`data-persona-composer-compact`),l=[a.fontFamily,a.fontSize,a.getPropertyValue(`--persona-composer-font-size`),a.getPropertyValue(`--persona-composer-control-size`),a.getPropertyValue(`--persona-composer-control-icon-size`),v(),ae].join(`|`),u={start:e.actionsStart,end:e.actionsEnd},d={start:{width:0,count:0},end:{width:0,count:0}},f={start:0,end:0};for(let e of[`start`,`end`]){f[e]=o(i.getComputedStyle(u[e]).columnGap);for(let n of Array.from(u[e].children)){if(!(n instanceof i.HTMLElement)||n===V?.trigger||t.some(e=>e.element===n))continue;let r=x(n);r&&(d[e].width+=r,d[e].count+=1)}}let p=[],m=!1;for(let e of t){if(we(e,n,!1)===`menu`){m=!0;continue}let t=e.resolved.action,r=`${l}|${t&&!F(t)?[t.label,t.shortLabel,t.iconName,t.trailingIconName,t.pressed].join(`|`):`custom`}`,a=e.mode===`bar`?x(e.element):0,o=oe.get(e.resolved.id);if(!a&&o?.key===r&&(a=o.width),!a&&t&&!F(t)){let t=N(e.resolved,`bar`);t.element.setAttribute(`data-persona-composer-measure`,``),t.element.style.cssText=`position:absolute;visibility:hidden;width:max-content;pointer-events:none`,u[e.resolved.placement].appendChild(t.element),a=x(t.button),z(t)}if(!a&&t&&F(t)&&(a=o?.width??0),a&&oe.set(e.resolved.id,{key:r,width:a}),!a&&i.getComputedStyle(e.element).display!==`none`)return J;a&&p.push({id:e.resolved.id,placement:e.resolved.placement,width:a,order:e.resolved.order,sequence:e.resolved.sequence,auto:e.resolved.presentation===`auto`})}let h=o(a.getPropertyValue(`--persona-composer-control-size`))||40,g=V?x(V.trigger):0;return b({available:Math.max(1,r-(c?120+s*2:0)),actions:p,slots:d,gaps:f,clusterGap:c?0:s,triggerWidth:g||o(v()??``)||h,hasMenu:m,previous:J})},$=()=>{if(o)return;let t=e.getBindings();if(t&&c(t.form),!t)return;let n=e.getState(),r=n.phase===`streaming`,l=X(),u=l?.collapseAutoActions===`fit`;l?Se(t,u):(ce(),U?.disconnect(),H=null);let d=l&&!u?Ce(l,t.footer):!1,f=t.footer.getRootNode(),p=f.activeElement,m=p===V?.triggerButton,v=p?Array.from(i.values()).find(e=>e.element.contains(p)):void 0,y=v?.mode;if(u){let e=a.map(e=>i.get(e.id)).filter(e=>!!e).filter(e=>!e.resolved.action||M(e.resolved.action.visible,n,!0)&&P(e.resolved.action.visibility,n));for(let n of e){if(!n.managed||n.mode!==`bar`)continue;let e=n.resolved.placement===`start`?t.actionsStart:t.actionsEnd;n.element.parentElement!==e&&e.appendChild(n.element)}J=Oe(t,e,l)}else J.clear();let b={start:[],end:[]},x=[];for(let e of a){let t=i.get(e.id);if(!t)continue;let a=e.action,o=!a||M(a.visible,n,!0)&&P(a.visibility,n);if(t.visible!==o&&(t.visible=o,!o&&t.managed&&(t.menuSlot??t.element).remove()),!o)continue;let s=we(t,l,d);if(t=Ee(t,s===`menu`||u&&e.presentation===`auto`&&J.has(e.id)?`menu`:`bar`),a){let e=M(a.disabled,n,!1)||a.disableWhenStreaming===!0&&r;ie(t,e),!F(a)&&a.pressed!==void 0&&t.button?.setAttribute(`aria-pressed`,a.pressed?`true`:`false`)}t.mode===`menu`?(Te(t),x.push(t)):b[e.placement].push(t)}if(h=x,x.length>0){let e=xe();Z||e.panel.replaceChildren(g),De(g,x);for(let e of x){let t=e.resolved.action;t&&!F(t)&&k(e,t)}e.setItems(x.map(e=>e.menuSlot??e.element)),e.refresh(),be();let t=Number.isFinite(l?.order)?l?.order:S.overflow,n=b.start.findIndex(e=>e.resolved.order>t),r={resolved:{id:T,placement:`start`,presentation:`bar`,order:t,sequence:-1,source:`core`},element:e.trigger,owned:!1,managed:!0,busy:!1,visible:!0,mode:`bar`};b.start.splice(n<0?b.start.length:n,0,r)}else V&&(V.close(),V.trigger.remove(),V.setItems([]));if(B(t.actionsStart,b.start),B(t.actionsEnd,b.end),v&&p&&v.visible&&(!p.isConnected||v.mode!==y||f.activeElement!==p))v.mode===`bar`?(V?.close(),_(v.element).focus()):V?.isOpen()&&Q?_(v.menuSlot??v.element).focus():V?.triggerButton.focus();else if(m&&!x.length){let e=s?i.get(s):void 0;e?.visible&&e.mode===`bar`?_(e.element).focus():t.input.focus()}s=null},ke=()=>{if(o)return;let t=e.collect();m=t.plugins;let n=ee(t),r=new Set(n.map(e=>e.id));for(let[e,t]of i)r.has(e)||(z(t),i.delete(e),oe.delete(e));for(let e of n){let t=i.get(e.id);if(!t){let t=R(e,`bar`);t&&i.set(e.id,t);continue}let n=t.resolved.action,r=e.action;if(!!n!=!!r||n&&r&&F(n)!==F(r)||n&&r&&F(n)&&F(r)&&n.render!==r.render){z(t),i.delete(e.id),oe.delete(e.id);let n=R(e,t.mode);n&&i.set(e.id,n)}else t.resolved=e,e.builtIn?(t.managed=e.builtIn.managed===!0||t.mode===`menu`,e.builtIn.element&&t.mode===`bar`&&(t.element=e.builtIn.element)):r&&!F(r)?A(t,r):r&&t.element.toggleAttribute(w,r.disableWhenStreaming===!0)}a=n,$()};return{resolve:ke,sync:$,getResolved:()=>a,getOverflowMenu:()=>V,destroy:()=>{if(!o){o=!0,ce(),U?.disconnect(),U=null,H=null,V?.close(),ge();for(let e of i.values())z(e);i.clear(),V?.destroy(),V=null,a=[]}}}}const z=()=>({wrapper:u(`span`,{className:`persona-composer-model-picker-wrapper`,attrs:{"data-persona-composer-model-picker-wrapper":``}}),chevron:u(`span`,{className:`persona-composer-model-picker-chevron`,attrs:{"aria-hidden":`true`}})});function B(e){let t=e.label??`Model`,n=e.presentation??`native`,r=null,i=t=>{let n=e.getSelectedModelId();return t.find(e=>e.id===n)??t[0]},a=()=>{let n=u(`select`,{className:`persona-composer-model-picker`,attrs:{"aria-label":t,"data-persona-composer-model-picker":``}}),a=``,o=()=>{let t=e.getModels(),r=t.map(e=>`${e.id}:${e.label}`).join(`|`);r!==a&&(a=r,n.replaceChildren(...t.map(e=>{let t=u(`option`,{attrs:{value:e.id}});return t.textContent=e.label,t}))),n.value=i(t)?.id??``};o(),r=o;let s=()=>{n.value&&e.onSelect(n.value)};n.addEventListener(`change`,s);let c=e=>e.stopPropagation();n.addEventListener(`click`,c);let{wrapper:l,chevron:d}=z();return l.append(n,d),{element:l,destroy:()=>{r===o&&(r=null),n.removeEventListener(`change`,s),n.removeEventListener(`click`,c)}}},s=()=>{let n=u(`button`,{className:`persona-composer-model-picker persona-composer-model-picker-trigger`,attrs:{type:`button`,"aria-haspopup":`listbox`,"aria-expanded":`false`,"data-persona-composer-model-picker":`popover`}}),a=l(`span`,`persona-composer-model-picker-label`),s=l(`span`,`persona-composer-model-picker-suffix`);n.append(a,s);let c=u(`div`,{className:`persona-composer-model-menu`,attrs:{role:`listbox`,tabindex:`-1`,"aria-label":t,"data-persona-composer-model-menu":``}}),d=/* @__PURE__ */ new Map,f=``,p=null,m=()=>p?.isOpen===!0,h=(e=!1)=>{m()&&(p?.close(),n.setAttribute(`aria-expanded`,`false`),e&&n.focus())},g=e=>{let t=[...d.values()];t.length!==0&&t[(e%t.length+t.length)%t.length].focus()},_=t=>{if(m())return;p||=o({anchor:n,content:c,placement:`top-start`,offset:6,onDismiss:()=>n.setAttribute(`aria-expanded`,`false`)}),p.open(),n.setAttribute(`aria-expanded`,`true`);let r=[...d.keys()].indexOf(i(e.getModels())?.id??``);g(t??(r>=0?r:0))},v=t=>{h(!0),e.onSelect(t)},y=e=>{e.preventDefault(),e.stopPropagation();let t=e.currentTarget.getAttribute(`data-persona-model-option`);t&&v(t)},b=t=>{let n=u(`button`,{className:`persona-composer-model-option`,attrs:{type:`button`,role:`option`,tabindex:`-1`,"aria-selected":`false`,"data-persona-model-option":t.id}});if(t.icon){let r=e.renderIcon(t.icon,16,`currentColor`,1.5);if(r){let e=l(`span`,`persona-composer-model-option-icon`);e.appendChild(r),n.appendChild(e)}}let r=l(`span`,`persona-composer-model-option-body`),i=l(`span`,`persona-composer-model-option-label`);if(i.textContent=t.label,r.appendChild(i),t.description){let e=l(`span`,`persona-composer-model-option-description`);e.textContent=t.description,r.appendChild(e)}n.appendChild(r);let a=l(`span`,`persona-composer-model-option-check`);a.setAttribute(`aria-hidden`,`true`);let o=e.renderIcon(`check`,16,`currentColor`,2);return o&&a.appendChild(o),n.appendChild(a),n.addEventListener(`click`,y),n},x=()=>{let r=e.getModels(),o=r.map(e=>`${e.id}:${e.label}:${e.icon??``}:${e.description??``}`).join(`|`);if(o!==f){f=o;for(let e of d.values())e.removeEventListener(`click`,y);d.clear(),c.replaceChildren(...r.map(e=>{let t=b(e);return d.set(e.id,t),t}))}let l=i(r);for(let[e,t]of d)t.setAttribute(`aria-selected`,String(e===l?.id));a.textContent=l?.label??``;let u=e.getSuffix?.()??``;s.textContent=u,n.setAttribute(`aria-label`,[t,[l?.label,u].filter(Boolean).join(` `)].filter(Boolean).join(`: `))};x(),r=x;let S=e=>{e.preventDefault(),e.stopPropagation(),m()?h(!0):_()},C=e=>{e.key===`ArrowDown`?(e.preventDefault(),m()?g(0):_(0)):e.key===`ArrowUp`&&(e.preventDefault(),m()?g(-1):_(-1))},w=e=>{let t=[...d.values()],n=t.indexOf(e.target?.closest?.(`.persona-composer-model-option`));switch(e.key){case`ArrowDown`:e.preventDefault(),g(n+1);return;case`ArrowUp`:e.preventDefault(),g(n-1);return;case`Home`:e.preventDefault(),g(0);return;case`End`:e.preventDefault(),g(t.length-1);return;case`Escape`:e.preventDefault(),e.stopPropagation(),h(!0);return;case`Tab`:h(!0);return}};n.addEventListener(`click`,S),n.addEventListener(`keydown`,C),c.addEventListener(`keydown`,w);let{wrapper:T,chevron:E}=z();return T.append(n,E),{element:T,destroy:()=>{r===x&&(r=null),n.removeEventListener(`click`,S),n.removeEventListener(`keydown`,C),c.removeEventListener(`keydown`,w);for(let e of d.values())e.removeEventListener(`click`,y);d.clear(),p?.destroy(),p=null,c.remove()}}};return{action:{id:`core:model`,kind:`custom`,placement:`end`,order:700,presentation:n===`popover`?`bar`:`auto`,label:t,render:()=>n===`popover`?s():a()},repaint:()=>r?.()}}const ie=e=>`core:mode:${e}`,V=e=>Math.min(300+e,499),H=e=>`core:mode-group:${e}`;function U(e,t){return e?t?.find(t=>t.id===e)?.presentation===`segmented`:!1}function W(e){let t=null;return{action:{id:H(e.groupId),kind:`custom`,placement:`start`,presentation:`bar`,label:e.getGroup()?.label??e.groupId,render:()=>{let n=u(`div`,{className:`persona-composer-segmented`,attrs:{"data-persona-composer-mode-group":e.groupId}}),r=/* @__PURE__ */ new Map,i=``,a=t=>{t.preventDefault(),t.stopPropagation();let n=t.currentTarget.getAttribute(`data-persona-composer-mode`);n&&(e.getActiveIds().includes(n)&&e.getGroup()?.selection===`single`||e.onSelect(n))},o=t=>{let n=u(`button`,{className:`persona-composer-segmented-item`,attrs:{type:`button`,"data-persona-composer-mode":t.id,"aria-label":t.label}});if(t.iconName){let r=e.renderIcon(t.iconName,16,`currentColor`,1.5);r&&n.appendChild(r)}let r=l(`span`,`persona-composer-segmented-label`);return r.textContent=t.shortLabel??t.label,n.appendChild(r),n.addEventListener(`click`,a),n},s=()=>{let t=e.getGroup();t?.label?(n.setAttribute(`role`,`group`),n.setAttribute(`aria-label`,t.label)):(n.removeAttribute(`role`),n.removeAttribute(`aria-label`));let s=e.getModes(),c=s.map(e=>`${e.id}:${e.shortLabel??e.label}:${e.iconName??``}`).join(`|`);if(c!==i){i=c;for(let e of r.values())e.removeEventListener(`click`,a);r.clear();let e=s.map(e=>{let t=o(e);return r.set(e.id,t),t});n.replaceChildren(...e)}let l=e.getActiveIds();for(let[e,t]of r)t.setAttribute(`aria-pressed`,String(l.includes(e)))};return s(),t=s,{element:n,destroy:()=>{t===s&&(t=null);for(let e of r.values())e.removeEventListener(`click`,a);r.clear()}}}},repaint:()=>t?.()}}function G(e){e.style.display=e.childElementCount>0?`flex`:`none`}function K(e){let t=e.row,n=``,r=!1,i=new Set(e.initialIds??[]),a=t=>{let n=u(`span`,{className:`persona-mention-chip persona-composer-mode-chip`,attrs:{"data-persona-composer-mode":t.id}});if(t.iconName){let r=l(`span`,`persona-mention-chip-icon`),i=e.renderIcon(t.iconName,12,`currentColor`,1.5);i&&r.appendChild(i),n.appendChild(r)}let r=l(`span`,`persona-mention-chip-label`);r.textContent=t.shortLabel??t.label,n.appendChild(r);let i=u(`button`,{className:`persona-mention-chip-remove`,attrs:{type:`button`,"aria-label":`Remove ${t.label}`}}),a=e.renderIcon(`x`,12,`currentColor`,2);return a?i.appendChild(a):i.textContent=`×`,i.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),e.onRemove(t.id)}),n.appendChild(i),n},o=()=>Array.from(t.querySelectorAll(`:scope > [data-persona-composer-mode]`)),s=e=>{e.setAttribute(`data-persona-chip-exit`,``),e.setAttribute(`aria-hidden`,`true`),e.style.pointerEvents=`none`;let n=()=>{e.remove(),G(t)},r=t.ownerDocument.defaultView,i=typeof r?.getComputedStyle==`function`?r.getComputedStyle(e).animationName:``;!i||i===`none`?n():(e.addEventListener(`animationend`,n,{once:!0}),e.addEventListener(`animationcancel`,n,{once:!0}))},c=()=>{for(let e of o())e.remove()};return{element:t,render:(e,c)=>{if(r)return;let l=c.filter(t=>e.includes(t.id)),u=l.map(e=>`${e.id}:${e.shortLabel??e.label}`).join(`|`);if(u===n)return;n=u;let d=/* @__PURE__ */ new Map;for(let e of o()){let t=e.getAttribute(`data-persona-composer-mode`);t&&l.some(e=>e.id===t)&&!e.hasAttribute(`data-persona-chip-exit`)?d.set(t,e):e.hasAttribute(`data-persona-chip-exit`)||s(e)}let f=t.firstChild;for(let e of l){let n=d.get(e.id);n||(n=a(e),i.has(e.id)||(n.setAttribute(`data-persona-chip-enter`,``),n.addEventListener(`animationend`,()=>n?.removeAttribute(`data-persona-chip-enter`),{once:!0}))),i.delete(e.id),n!==f&&t.insertBefore(n,f),f=n.nextSibling}G(t)},destroy:()=>{r=!0,c(),G(t)}}}function q(e){let t=null,n=null,r=/* @__PURE__ */ new Map,i=t=>{let n=r.get(t);if(n)return n;let i=W({renderIcon:e.renderIcon,groupId:t,getGroup:()=>e.getConfig().composer?.modeGroups?.find(e=>e.id===t),getModes:()=>e.getModes().filter(e=>e.groupId===t),getActiveIds:()=>e.getState().activeModeIds,onSelect:t=>e.onModeChange(t)});return r.set(t,i),i};return{collect:()=>{let r=[],a=e.getState().activeModeIds,o=new Set(e.getChipModes().map(e=>e.id)),s=/* @__PURE__ */ new Set;if(e.getModes().forEach((t,n)=>{if(U(t.groupId,e.getConfig().composer?.modeGroups)){let a=t.groupId;if(s.has(a))return;s.add(a);let o=i(a);o.action.order=V(n),o.action.label=e.getConfig().composer?.modeGroups?.find(e=>e.id===a)?.label??a,r.push(o.action);return}let c=a.includes(t.id)&&!o.has(t.id);r.push({id:ie(t.id),kind:`button`,placement:`start`,order:V(n),presentation:c?`bar`:t.presentation??`auto`,label:t.label,shortLabel:c?t.shortLabel??t.label:t.shortLabel,iconName:t.iconName,trailingIconName:t.trailingIconName,pressed:a.includes(t.id),onSelect:()=>e.onModeChange(t.id)})}),e.getConfig().composer?.models?.length&&!e.hasComposerPlugin()){let i=e.getConfig().composer?.modelPicker?.presentation??`native`;t&&n===i||(n=i,t=B({renderIcon:e.renderIcon,getModels:()=>e.getConfig().composer?.models??[],getSelectedModelId:()=>e.getState().selectedModelId,onSelect:t=>e.onModelChange(t),presentation:i,getSuffix:()=>e.getConfig().composer?.modelPicker?.suffix})),r.push(t.action)}return r},repaint:()=>{for(let[t,n]of r)U(t,e.getConfig().composer?.modeGroups)?n.repaint():r.delete(t);t?.repaint()}}}export{R as createComposerActionRenderer,q as createComposerCoreControls,K as createComposerModeChipRow,B as createComposerModelPickerAction,W as createComposerSegmentedModeAction,o as createPopover,c as ensureComposerActionStyles,s as isEditableEventTarget};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-
|
|
2
|
-
//#region src/utils/mention-trigger.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-9i0xcAMT.cjs";
|
|
3
2
|
/**
|
|
4
3
|
* Pure `@`-trigger detection for the composer mention menu.
|
|
5
4
|
*
|
|
@@ -14,8 +13,6 @@ type MentionTriggerMatch = {
|
|
|
14
13
|
/** The text typed after the trigger, up to the caret (no leading trigger). */
|
|
15
14
|
query: string;
|
|
16
15
|
};
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region src/utils/composer-document.d.ts
|
|
19
16
|
/** Stable id for one inline mention instance (DOM `data-mention-id`, history key). */
|
|
20
17
|
type ComposerMentionId = string;
|
|
21
18
|
/** One block in the composer document. Order is significant. */
|
|
@@ -31,8 +28,6 @@ type ComposerBlock = {
|
|
|
31
28
|
type ComposerDocument = {
|
|
32
29
|
blocks: ComposerBlock[];
|
|
33
30
|
};
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region src/utils/composer-input.d.ts
|
|
36
31
|
interface ComposerInputCapability extends AgentWidgetContextMentionComposerCapability {
|
|
37
32
|
/** The editable element — ARIA target for the menu, and focus receiver. */
|
|
38
33
|
readonly element: HTMLElement;
|
|
@@ -96,6 +91,5 @@ interface ComposerInputCapability extends AgentWidgetContextMentionComposerCapab
|
|
|
96
91
|
*/
|
|
97
92
|
replaceLogicalRange?: (start: number, end: number, text: string) => void;
|
|
98
93
|
}
|
|
99
|
-
//#endregion
|
|
100
94
|
export { ComposerInputCapability as t };
|
|
101
95
|
export {}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-
|
|
2
|
-
//#region src/utils/mention-trigger.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, P as AgentWidgetContextMentionComposerCapability } from "./types-9i0xcAMT.js";
|
|
3
2
|
/**
|
|
4
3
|
* Pure `@`-trigger detection for the composer mention menu.
|
|
5
4
|
*
|
|
@@ -14,8 +13,6 @@ type MentionTriggerMatch = {
|
|
|
14
13
|
/** The text typed after the trigger, up to the caret (no leading trigger). */
|
|
15
14
|
query: string;
|
|
16
15
|
};
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region src/utils/composer-document.d.ts
|
|
19
16
|
/** Stable id for one inline mention instance (DOM `data-mention-id`, history key). */
|
|
20
17
|
type ComposerMentionId = string;
|
|
21
18
|
/** One block in the composer document. Order is significant. */
|
|
@@ -31,8 +28,6 @@ type ComposerBlock = {
|
|
|
31
28
|
type ComposerDocument = {
|
|
32
29
|
blocks: ComposerBlock[];
|
|
33
30
|
};
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region src/utils/composer-input.d.ts
|
|
36
31
|
interface ComposerInputCapability extends AgentWidgetContextMentionComposerCapability {
|
|
37
32
|
/** The editable element — ARIA target for the menu, and focus receiver. */
|
|
38
33
|
readonly element: HTMLElement;
|
|
@@ -96,6 +91,5 @@ interface ComposerInputCapability extends AgentWidgetContextMentionComposerCapab
|
|
|
96
91
|
*/
|
|
97
92
|
replaceLogicalRange?: (start: number, end: number, text: string) => void;
|
|
98
93
|
}
|
|
99
|
-
//#endregion
|
|
100
94
|
export { ComposerInputCapability as t };
|
|
101
95
|
export {}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, Ir as ComposerQuote, Rr as ComposerState, Vr as ComposerSubmissionSnapshot, gr as ComposerAttachmentState } from "./types-
|
|
2
|
-
//#region src/utils/composer-store.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, Ir as ComposerQuote, Rr as ComposerState, Vr as ComposerSubmissionSnapshot, gr as ComposerAttachmentState } from "./types-9i0xcAMT.cjs";
|
|
3
2
|
type ComposerStateListener = (state: Readonly<ComposerState>) => void;
|
|
4
3
|
interface ComposerStore {
|
|
5
4
|
/** Frozen snapshot; mutating it can never reach the store. */
|
|
@@ -27,6 +26,5 @@ interface ComposerStore {
|
|
|
27
26
|
destroy: () => void;
|
|
28
27
|
}
|
|
29
28
|
declare function createComposerStore(): ComposerStore;
|
|
30
|
-
//#endregion
|
|
31
29
|
export { createComposerStore as t };
|
|
32
30
|
export {}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, Ir as ComposerQuote, Rr as ComposerState, Vr as ComposerSubmissionSnapshot, gr as ComposerAttachmentState } from "./types-
|
|
2
|
-
//#region src/utils/composer-store.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, Ir as ComposerQuote, Rr as ComposerState, Vr as ComposerSubmissionSnapshot, gr as ComposerAttachmentState } from "./types-9i0xcAMT.js";
|
|
3
2
|
type ComposerStateListener = (state: Readonly<ComposerState>) => void;
|
|
4
3
|
interface ComposerStore {
|
|
5
4
|
/** Frozen snapshot; mutating it can never reach the store. */
|
|
@@ -27,6 +26,5 @@ interface ComposerStore {
|
|
|
27
26
|
destroy: () => void;
|
|
28
27
|
}
|
|
29
28
|
declare function createComposerStore(): ComposerStore;
|
|
30
|
-
//#endregion
|
|
31
29
|
export { createComposerStore as t };
|
|
32
30
|
export {}
|
package/dist/{context-mention-manager-B-rHF98n.d.ts → context-mention-manager-CCpeoGL2.d.cts}
RENAMED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem, U as AgentWidgetContextMentionSource, Ur as ContentPart, z as AgentWidgetContextMentionPayload } from "./types-
|
|
2
|
-
import "./composer-input-
|
|
3
|
-
//#region src/components/context-mention-chip.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem, U as AgentWidgetContextMentionSource, Ur as ContentPart, z as AgentWidgetContextMentionPayload } from "./types-9i0xcAMT.cjs";
|
|
2
|
+
import "./composer-input-BSDNPOqV.cjs";
|
|
4
3
|
type MentionChipStatus = "resolving" | "ready" | "error";
|
|
5
4
|
interface MentionChipParts {
|
|
6
5
|
el: HTMLElement;
|
|
7
6
|
/** Update lifecycle state; `payload` is forwarded to `renderMentionChip` once resolved. */
|
|
8
7
|
setStatus: (status: MentionChipStatus, payload?: AgentWidgetContextMentionPayload) => void;
|
|
9
8
|
}
|
|
10
|
-
//#endregion
|
|
11
|
-
//#region src/utils/context-mention-manager.d.ts
|
|
12
9
|
interface PendingMention {
|
|
13
10
|
key: string;
|
|
14
11
|
source: AgentWidgetContextMentionSource;
|
|
@@ -44,6 +41,5 @@ interface MentionSubmitBundle {
|
|
|
44
41
|
/** Namespaced `{ [sourceId]: { [itemId]: context } }` for the opt-in path. */
|
|
45
42
|
context: Record<string, Record<string, unknown>>;
|
|
46
43
|
}
|
|
47
|
-
//#endregion
|
|
48
44
|
export { MentionSubmitBundle as n, ContextMentionDraft as t };
|
|
49
45
|
export {}
|
package/dist/{context-mention-manager-B-rHF98n.d.cts → context-mention-manager-CCpeoGL2.d.ts}
RENAMED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem, U as AgentWidgetContextMentionSource, Ur as ContentPart, z as AgentWidgetContextMentionPayload } from "./types-
|
|
2
|
-
import "./composer-input-
|
|
3
|
-
//#region src/components/context-mention-chip.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef, I as AgentWidgetContextMentionItem, U as AgentWidgetContextMentionSource, Ur as ContentPart, z as AgentWidgetContextMentionPayload } from "./types-9i0xcAMT.js";
|
|
2
|
+
import "./composer-input-BSDNPOqV.js";
|
|
4
3
|
type MentionChipStatus = "resolving" | "ready" | "error";
|
|
5
4
|
interface MentionChipParts {
|
|
6
5
|
el: HTMLElement;
|
|
7
6
|
/** Update lifecycle state; `payload` is forwarded to `renderMentionChip` once resolved. */
|
|
8
7
|
setStatus: (status: MentionChipStatus, payload?: AgentWidgetContextMentionPayload) => void;
|
|
9
8
|
}
|
|
10
|
-
//#endregion
|
|
11
|
-
//#region src/utils/context-mention-manager.d.ts
|
|
12
9
|
interface PendingMention {
|
|
13
10
|
key: string;
|
|
14
11
|
source: AgentWidgetContextMentionSource;
|
|
@@ -44,6 +41,5 @@ interface MentionSubmitBundle {
|
|
|
44
41
|
/** Namespaced `{ [sourceId]: { [itemId]: context } }` for the opt-in path. */
|
|
45
42
|
context: Record<string, Record<string, unknown>>;
|
|
46
43
|
}
|
|
47
|
-
//#endregion
|
|
48
44
|
export { MentionSubmitBundle as n, ContextMentionDraft as t };
|
|
49
45
|
export {}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return e.kind===`text`?e.value.length:1}function t(e){let t=[],n=e=>{let n=t[t.length-1];n&&n.kind===`text`?n.value+=e:t.push({kind:`text`,value:e})};(e.length===0||e[0].kind!==`text`)&&t.push({kind:`text`,value:``});for(let r of e){if(r.kind===`text`){n(r.value);continue}let e=t[t.length-1];
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return e.kind===`text`?e.value.length:1}function t(e){let t=[],n=e=>{let n=t[t.length-1];n&&n.kind===`text`?n.value+=e:t.push({kind:`text`,value:e})};(e.length===0||e[0].kind!==`text`)&&t.push({kind:`text`,value:``});for(let r of e){if(r.kind===`text`){n(r.value);continue}let e=t[t.length-1];e&&e.kind===`text`||t.push({kind:`text`,value:``}),t.push({kind:`mention`,id:r.id,ref:r.ref}),t.push({kind:`text`,value:``})}let r=t[t.length-1];return r&&r.kind===`text`||t.push({kind:`text`,value:``}),t}function n(){return{blocks:[{kind:`text`,value:``}]}}function r(e){return{blocks:[{kind:`text`,value:e}]}}function i(e){return e.blocks.map(e=>e.kind===`text`?e.value:`@${e.ref.label}`).join(``)}function a(e){return e.blocks.map(e=>e.kind===`text`?e.value:``).join(``)}function o(t){return t.blocks.reduce((t,n)=>t+e(n),0)}function s(e){let t=[];for(let n of e.blocks)n.kind===`mention`&&t.push({id:n.id,ref:n.ref});return t}function c(t,n){let r=[],i=[],a=0;for(let o of t){let t=e(o),s=a+t;if(s<=n)r.push(o);else if(a>=n)i.push(o);else if(o.kind===`text`){let e=n-a;e>0&&r.push({kind:`text`,value:o.value.slice(0,e)}),e<t&&i.push({kind:`text`,value:o.value.slice(e)})}else i.push(o);a=s}return{left:r,right:i}}function l(e,n,r,i){let a=c(e.blocks,n.start).left,o=c(e.blocks,n.end).right,s=o[0],l=s?.kind===`text`?s.value.charAt(0):``,u=l!==` `&&l!==` `&&l!==`
|
|
2
2
|
`,d=t([...a,{kind:`mention`,id:i,ref:r},...u?[{kind:`text`,value:` `}]:[],...o]),f=n.start+1+(l===`
|
|
3
3
|
`?0:1);return{doc:{blocks:d},caret:f}}function u(n,r){let i=0,a=0,o=!1;for(let t of n.blocks)t.kind===`mention`&&t.id===r&&(i=a,o=!0),a+=e(t);return o?{doc:{blocks:t(n.blocks.filter(e=>e.kind!==`mention`||e.id!==r))},caret:i}:{doc:n,caret:a}}function d(e,n,r,i){let a=o(e),s=Math.max(0,Math.min(n,r,a)),l=Math.min(a,Math.max(n,r,0)),u=c(e.blocks,s).left,d=c(e.blocks,l).right;return{doc:{blocks:t([...u,{kind:`text`,value:i},...d])},caret:s+i.length}}function f(e){let t=[];for(let n of e.blocks)n.kind===`text`?n.value.length>0&&t.push({kind:`text`,text:n.value}):t.push({kind:`mention`,ref:n.ref});return{content:i(e),contextMentions:s(e).map(e=>e.ref),contentSegments:t}}function p(e){e&&(typeof e.requestSubmit==`function`?e.requestSubmit():e.dispatchEvent(new Event(`submit`,{bubbles:!0,cancelable:!0})))}const m=`data-mention-id`,h=`data-mention-prev-label`,g=`data-mention-prev-title`;function _(e){return e.nodeType===1&&e.hasAttribute(m)}function v(e){return e.nodeType===1&&e.tagName===`BR`}function y(e){return e.nodeType===3?e.data.length:_(e)||v(e)?1:e.textContent?.length??0}function b(e,t,n){let r=0;for(let i of Array.from(e.childNodes)){if(i===t)return i.nodeType===3?r+n:r+(n>0?y(i):0);if(i.contains(t))return _(i)?r+1:r+x(i,t,n);r+=y(i)}if(t===e){let t=0,r=Array.from(e.childNodes);for(let e=0;e<Math.min(n,r.length);e++)t+=y(r[e]);return t}return r}function x(e,t,n){let r=0,i=e=>{if(e===t)return r+=e.nodeType===3?n:0,!0;if(e.nodeType===3)return r+=e.data.length,!1;for(let t of Array.from(e.childNodes))if(i(t))return!0;return!1};return i(e),r}function S(e,t){let n=0,r=Array.from(e.childNodes);for(let i=0;i<r.length;i++){let a=r[i],o=y(a);if(t<=n+o)return a.nodeType===3?{node:a,offset:t-n}:{node:e,offset:t<=n?i:i+1};n+=o}return{node:e,offset:r.length}}function C(e,t){let n=[];for(let r of Array.from(e.childNodes))if(_(r)){let e=r.getAttribute(m),i=t.get(e);i&&n.push({kind:`mention`,id:e,ref:i})}else if(v(r))n.push({kind:`text`,value:`
|
|
4
4
|
`});else if(r.nodeType===3)n.push({kind:`text`,value:r.data});else{let e=r.textContent??``;e&&n.push({kind:`text`,value:e})}return n.length===0&&n.push({kind:`text`,value:``}),{blocks:n}}function w(e){let t=e.renderToken,s=/* @__PURE__ */ new Map,c=e.element??document.createElement(`div`);c.setAttribute(`contenteditable`,`true`),c.setAttribute(`data-persona-composer-input`,``),c.setAttribute(`role`,`textbox`),c.setAttribute(`aria-multiline`,`true`),c.setAttribute(`dir`,`auto`),c.classList.add(`persona-composer-contenteditable`),e.placeholder!=null&&c.setAttribute(`data-placeholder`,e.placeholder);let f=!1,v=0,y=()=>C(c,s),x=e=>{c.replaceChildren();for(let n of e.blocks)if(n.kind===`text`)n.value.length>0&&c.appendChild(document.createTextNode(n.value));else{s.set(n.id,n.ref);let e=t(n.ref);e.setAttribute(`contenteditable`,`false`),e.setAttribute(m,n.id),c.appendChild(e)}},w=()=>{let e=c.getRootNode().activeElement;return e===c||e!=null&&c.contains(e)},T=(e,t)=>{if(v=e,!t?.focus&&!w())return;let n=typeof window<`u`?window.getSelection():null;if(!n)return;let r=S(c,e);try{let e=document.createRange();e.setStart(r.node,r.offset),e.collapse(!0),n.removeAllRanges(),n.addRange(e)}catch{}},E=()=>{c.dispatchEvent(new Event(`input`,{bubbles:!0}))},D=()=>{let e={start:v,end:v},t=typeof window<`u`?window.getSelection():null;if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0);if(!c.contains(n.startContainer))return e;let r=b(c,n.startContainer,n.startOffset),i=n.collapsed?r:b(c,n.endContainer,n.endOffset);return{start:Math.min(r,i),end:Math.max(r,i)}},O=()=>{let t=/* @__PURE__ */ new Set;for(let e of Array.from(c.childNodes))_(e)&&t.add(e.getAttribute(m));for(let n of Array.from(s.keys()))t.has(n)||(s.delete(n),e.onMentionRemoved?.(n))},k=()=>{f||s.size!==0&&O()},A=()=>{f=!0},j=()=>{f=!1,O()},M=e=>{e.preventDefault();let t=e.clipboardData?.getData(`text/plain`)??``;if(typeof document.execCommand==`function`)document.execCommand(`insertText`,!1,t);else{let{start:e,end:n}=D(),r=d(y(),e,n,t);x(r.doc),T(r.caret,{focus:!0}),O()}E()},N=e=>{if(f)return;let t=e.inputType;if(t===`insertParagraph`){e.preventDefault();let{start:t,end:n}=D(),r=d(y(),t,n,`
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { B as AgentWidgetContextMentionRef } from "./types-
|
|
2
|
-
import { t as ComposerInputCapability } from "./composer-input-
|
|
3
|
-
//#region src/context-mentions-inline-entry.d.ts
|
|
1
|
+
import { B as AgentWidgetContextMentionRef } from "./types-9i0xcAMT.cjs";
|
|
2
|
+
import { t as ComposerInputCapability } from "./composer-input-BSDNPOqV.cjs";
|
|
4
3
|
interface InlineComposerMountContext {
|
|
5
4
|
/** The live composer textarea to migrate from (value + caret + look). */
|
|
6
5
|
textarea: HTMLTextAreaElement;
|
|
@@ -26,6 +25,5 @@ interface InlineComposerHandle {
|
|
|
26
25
|
destroy: () => void;
|
|
27
26
|
}
|
|
28
27
|
export declare function mountInlineComposer(ctx: InlineComposerMountContext): InlineComposerHandle;
|
|
29
|
-
//#endregion
|
|
30
28
|
export type { InlineComposerHandle, InlineComposerMountContext };
|
|
31
29
|
export {}
|