@runtypelabs/persona 4.34.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 -3
- package/dist/activity-ui.d.ts +3 -3
- package/dist/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/approval-ui.d.cts +3 -3
- package/dist/approval-ui.d.ts +3 -3
- package/dist/artifacts-ui.d.cts +3 -3
- package/dist/artifacts-ui.d.ts +3 -3
- package/dist/background-runtime.d.cts +1 -1
- package/dist/background-runtime.d.ts +1 -1
- package/dist/{chunk-CxNPSY-b.js → chunk-B1P8w9_X.js} +1 -1
- package/dist/{chunk-CV8EPIhT.js → chunk-B30Jdgg6.js} +1 -1
- package/dist/{chunk-6CUrH_jm.js → chunk-Bzo9GaAi.js} +1 -1
- package/dist/chunk-CNBMBx-Y.js +2 -0
- package/dist/chunk-Cd8mp8Sv.js +1 -0
- package/dist/chunk-CsfE8WRG.js +1 -0
- 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-YMkMvAsa.js → chunk-DZ_aillY.js} +1 -1
- 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-DsWv3EGF.js → chunk-ThxxD8oK.js} +1 -1
- package/dist/client-dispatch.js +1 -1
- package/dist/client-history.js +1 -1
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/composer-actions-runtime.cjs +1 -1
- package/dist/composer-actions-runtime.d.cts +3 -3
- package/dist/composer-actions-runtime.d.ts +3 -3
- package/dist/composer-actions-runtime.js +1 -1
- package/dist/{composer-input-i_FiUp6J.d.cts → composer-input-BSDNPOqV.d.cts} +1 -1
- package/dist/{composer-input-i_FiUp6J.d.ts → composer-input-BSDNPOqV.d.ts} +1 -1
- package/dist/{composer-store-DhGNgG7Z.d.cts → composer-store-DC-gAjtN.d.cts} +1 -1
- package/dist/{composer-store-DhGNgG7Z.d.ts → composer-store-DC-gAjtN.d.ts} +1 -1
- package/dist/{context-mention-manager-DL-xwGfL.d.cts → context-mention-manager-CCpeoGL2.d.cts} +2 -2
- package/dist/{context-mention-manager-DL-xwGfL.d.ts → context-mention-manager-CCpeoGL2.d.ts} +2 -2
- package/dist/context-mentions-inline.d.cts +2 -2
- package/dist/context-mentions-inline.d.ts +2 -2
- package/dist/context-mentions.cjs +1 -1
- package/dist/context-mentions.d.cts +3 -3
- package/dist/context-mentions.d.ts +3 -3
- package/dist/context-mentions.js +1 -1
- package/dist/{defaults-Bga2Xrsp.d.cts → defaults-tj5RcN8r.d.cts} +1 -1
- package/dist/{defaults-Bga2Xrsp.d.ts → defaults-tj5RcN8r.d.ts} +1 -1
- package/dist/dictation-runtime.d.cts +2 -2
- package/dist/dictation-runtime.d.ts +2 -2
- package/dist/event-stream-view.d.cts +1 -1
- package/dist/event-stream-view.d.ts +1 -1
- package/dist/{fallback-speech-engine-kLdyPcmk.d.cts → fallback-speech-engine-gkhbjLiZ.d.cts} +1 -1
- package/dist/{fallback-speech-engine-kLdyPcmk.d.ts → fallback-speech-engine-gkhbjLiZ.d.ts} +1 -1
- package/dist/{feature-preferences-CmwZGKrf.d.cts → feature-preferences-CerDWGZ7.d.cts} +1 -1
- package/dist/{feature-preferences-CmwZGKrf.d.ts → feature-preferences-CerDWGZ7.d.ts} +1 -1
- package/dist/forms-ui.d.cts +2 -2
- package/dist/forms-ui.d.ts +2 -2
- package/dist/{history-confirm-dialog-i46-lPN_.d.cts → history-confirm-dialog-CrkSB3Ra.d.cts} +1 -1
- package/dist/{history-confirm-dialog-i46-lPN_.d.ts → history-confirm-dialog-CrkSB3Ra.d.ts} +1 -1
- package/dist/history-shell.d.cts +6 -6
- package/dist/history-shell.d.ts +6 -6
- package/dist/history-view.d.cts +1 -1
- package/dist/history-view.d.ts +1 -1
- package/dist/index.cjs +32 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.global.js +1 -1
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +40 -40
- package/dist/index.js.map +1 -1
- package/dist/install.global.js +1 -1
- package/dist/launcher.global.js +1 -1
- package/dist/{loading-label-runtime-loader-Ccr3ETd3.d.cts → loading-label-runtime-loader-fWIRrhUF.d.cts} +1 -1
- package/dist/{loading-label-runtime-loader-Ccr3ETd3.d.ts → loading-label-runtime-loader-fWIRrhUF.d.ts} +1 -1
- package/dist/loading-label-runtime.d.cts +1 -1
- package/dist/loading-label-runtime.d.ts +1 -1
- package/dist/{message-bubble-C6AVaH7f.d.cts → message-bubble-Czc0lOHr.d.cts} +1 -1
- package/dist/{message-bubble-C6AVaH7f.d.ts → message-bubble-Czc0lOHr.d.ts} +1 -1
- package/dist/{plugin-kit-BVggqE3C.d.cts → plugin-kit-C30jE-cw.d.cts} +3 -1
- package/dist/{plugin-kit-BVggqE3C.d.ts → plugin-kit-C30jE-cw.d.ts} +3 -1
- 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.d.cts +1 -1
- package/dist/preferences-runtime.d.ts +1 -1
- package/dist/{preview-BMdRffo4.d.cts → preview-D-osV3FU.d.cts} +2 -2
- package/dist/{preview-BMdRffo4.d.ts → preview-D-osV3FU.d.ts} +2 -2
- package/dist/{registry-B16l8s1b.d.cts → registry-B6w91tx0.d.cts} +1 -1
- package/dist/{registry-B16l8s1b.d.ts → registry-B6w91tx0.d.ts} +1 -1
- package/dist/{session-CtZHe7fc.d.cts → session-BUQrs3Of.d.cts} +10 -9
- package/dist/{session-CtZHe7fc.d.ts → session-BUQrs3Of.d.ts} +10 -9
- package/dist/session-reconnect.d.cts +2 -2
- package/dist/session-reconnect.d.ts +2 -2
- package/dist/smart-dom-reader.d.cts +1 -1
- package/dist/smart-dom-reader.d.ts +1 -1
- package/dist/theme-editor-preview.cjs +43 -43
- package/dist/theme-editor-preview.d.cts +1 -1
- package/dist/theme-editor-preview.d.ts +1 -1
- package/dist/theme-editor-preview.js +3 -3
- package/dist/theme-editor.d.cts +2 -2
- package/dist/theme-editor.d.ts +2 -2
- package/dist/theme-reference.d.cts +2 -2
- package/dist/theme-reference.d.ts +2 -2
- package/dist/{tool-loading-animation-D2cyFvmM.d.cts → tool-loading-animation-B7XUf8TN.d.cts} +1 -1
- package/dist/{tool-loading-animation-D2cyFvmM.d.ts → tool-loading-animation-B7XUf8TN.d.ts} +1 -1
- package/dist/{turn-activity-ui-Do1Nd-Ow.d.cts → turn-activity-ui-CohuNMHT.d.cts} +2 -2
- package/dist/{turn-activity-ui-Do1Nd-Ow.d.ts → turn-activity-ui-CohuNMHT.d.ts} +2 -2
- package/dist/turn-activity-ui.d.cts +1 -1
- package/dist/turn-activity-ui.d.ts +1 -1
- package/dist/{types-BC7MRxO5.d.cts → types-9i0xcAMT.d.cts} +52 -0
- package/dist/{types-BC7MRxO5.d.ts → types-9i0xcAMT.d.ts} +52 -0
- package/dist/voice-client-tools.d.cts +1 -1
- package/dist/voice-client-tools.d.ts +1 -1
- package/dist/voice-runtime.cjs +1 -1
- package/dist/voice-runtime.d.cts +2 -2
- package/dist/voice-runtime.d.ts +2 -2
- package/dist/voice-runtime.js +1 -1
- package/dist/voice-worklet-player.d.cts +2 -2
- package/dist/voice-worklet-player.d.ts +2 -2
- package/dist/{webmcp-runtime-entry-B8g46vS0.d.ts → webmcp-runtime-entry-XNaXa-9h.d.cts} +9 -1
- package/dist/{webmcp-runtime-entry-B8g46vS0.d.cts → webmcp-runtime-entry-XNaXa-9h.d.ts} +9 -1
- 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/package.json +2 -2
- 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/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/types.ts +35 -0
- package/src/ui.composer-models.test.ts +5 -7
- package/src/ui.composer-overflow.test.ts +14 -21
- package/src/utils/context-mention-controller.test.ts +56 -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-C-rux8Q9.js +0 -1
- package/dist/chunk-CNhThrLX.js +0 -1
- package/dist/chunk-CzLEhoB_.js +0 -2
- package/dist/chunk-Dqa_GOcj.js +0 -1
- package/dist/chunk-NUNdcnAZ.js +0 -1
package/dist/chunk-BEDTp-dm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t,t as n}from"./chunk-D5BxWOFB.js";import{n as r,t as i}from"./chunk-CNhThrLX.js";import{i as a,n as o,r as s,t as c}from"./chunk-BAkaTZpd.js";var l=`.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)}`;const u=e=>r(e,`composer-actions`,l),d=`button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])`,f=[`--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}`)],p=`data-persona-menu-focus`,m=/* @__PURE__ */ new Set([`ArrowDown`,`ArrowUp`,`Home`,`End`]);function h(e){return e.getAttribute(`role`)===`menuitem`?e:e.querySelector(d)??e}const g=e=>e.disabled===!0||e.getAttribute(`aria-disabled`)===`true`;function _(e){let{renderLucideIcon:r,attachTooltip:a}=e.deps,l=e.label,_=!1,v=!1,y=!1,b=!1,x=!0,S=n(`div`,`persona-send-button-wrapper`),C=t(`button`,{className:`persona-rounded-button persona-flex persona-items-center persona-justify-center persona-cursor-pointer persona-composer-action-button persona-composer-overflow-trigger ${c} ${o}`,attrs:{type:`button`,"aria-haspopup":`menu`,"aria-expanded":`false`,"data-persona-composer-overflow-trigger":``}});S.appendChild(C);let w=t(`div`,{className:`persona-composer-overflow-menu`,attrs:{role:`menu`,tabindex:`-1`,"data-persona-composer-overflow-menu":``}}),T=()=>{let t=e.getButtonSize?.()??``;C.style.width=t,C.style.height=t,C.style.minWidth=t,C.style.minHeight=t,C.style.lineHeight=`1`,C.replaceChildren();let n=r((z()?e.getConfig?.()?.openTriggerIconName:void 0)??e.getConfig?.()?.triggerIconName??`plus`,24,`currentColor`,1.5);n?C.appendChild(n):C.textContent=`+`},ee=()=>{C.setAttribute(`aria-label`,l),w.setAttribute(`aria-label`,l)};ee();let E=a({anchor:C,trigger:S,text:()=>C.getAttribute(`aria-expanded`)===`true`?``:l}),D=[],O=-1,k=!1,A=()=>{let e=w.getRootNode().activeElement;return e instanceof HTMLElement?e:null},j=()=>{let e=A();for(let t of D){let n=!!e&&h(t)===e;t.toggleAttribute(p,n&&k)}},M=()=>D.filter(e=>e.isConnected||w.contains(e)).map(h).filter(e=>!g(e)),N=(e,t)=>{e.forEach((e,n)=>{e.setAttribute(`tabindex`,n===t?`0`:`-1`)})},P=e=>{let t=M();if(t.length===0)return;let n=(e%t.length+t.length)%t.length;O=n,N(t,n),t[n].focus(),j()},te=()=>S.ownerDocument??document,F=null,I=null,L=null,ne=()=>{F&&=(te().removeEventListener(`focusin`,F,!0),null)},re=()=>{I&&=(w.removeEventListener(`focusin`,I),null),L&&=(w.removeEventListener(`pointerdown`,L,!0),null)},R=null,ie=()=>(R||=i({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:()=>{B()}}),R),z=()=>R?.isOpen===!0,B=()=>{b=!0,v=!1,C.setAttribute(`aria-expanded`,`false`),ne(),re(),O=-1,k=!1;for(let e of D)e.removeAttribute(p);try{e.onClose?.()}finally{b=!1}T()},V=(e=!1)=>{(z()||v)&&(R?.close(),B(),e&&!_&&C.focus())},H=()=>{s(C,w,f),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(),R?.reposition()};T();let U=(t=0,n=!1)=>{if(_||y||b||z())return;u(C),E.hide(),v=!0,y=!0;let r;try{r=e.beforeOpen?.()}finally{y=!1}if(r===!1||!v||_)v&&V();else{if(k=n,H(),ie().open(),v=!1,C.setAttribute(`aria-expanded`,`true`),T(),x){let e=M();N(e,-1),P(t<0?e.length-1:t),e.length||w.focus()}else(Array.from(w.querySelectorAll(d)).find(e=>!g(e)&&!e.closest(`[hidden]`))??w).focus();z()&&!_&&(F=e=>{let t=typeof e.composedPath==`function`?e.composedPath():[];t.includes(w)||t.includes(S)||V()},te().addEventListener(`focusin`,F,!0),I=()=>j(),w.addEventListener(`focusin`,I),L=()=>{k=!1},w.addEventListener(`pointerdown`,L,!0))}},W=e=>{e.preventDefault(),e.stopPropagation(),z()?V(!0):U(0)},G=e=>{e.key===`ArrowDown`||e.key===`Enter`||e.key===` `?(e.preventDefault(),k=!0,z()?x?P(0):w.focus():U(0,!0)):e.key===`ArrowUp`&&(e.preventDefault(),k=!0,z()?x?P(-1):w.focus():U(-1,!0))},K=e=>{if(!x)e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),e.stopPropagation(),V(!0));else switch(m.has(e.key)&&(k=!0),e.key){case`ArrowDown`:e.preventDefault(),P(O+1);return;case`ArrowUp`:e.preventDefault(),P(O-1);return;case`Home`:e.preventDefault(),P(0);return;case`End`:e.preventDefault(),P(M().length-1);return;case`Escape`:e.preventDefault(),e.stopPropagation(),V(!0);return;case`Tab`:V(!0);return}};return C.addEventListener(`click`,W),C.addEventListener(`keydown`,G),w.addEventListener(`keydown`,K),{trigger:S,triggerButton:C,panel:w,setItems:e=>{for(let t of D)e.includes(t)||t.removeAttribute(p);if(D=[...e],!z()||!x)return;let t=M();N(t,Math.min(O,t.length-1)),j()},isOpen:z,open:()=>U(0),close:V,setLabel:e=>{e!==l&&(l=e,ee(),E.isOpen&&(E.hide(),E.show()))},applyButtonSize:T,refresh:H,setContentMode:(e,t)=>{let n=t&&!x&&z();x=t,w.setAttribute(`role`,e),C.setAttribute(`aria-haspopup`,e),n&&P(0)},destroy:()=>{_=!0,V(),E.destroy(),ne(),re(),C.removeEventListener(`click`,W),C.removeEventListener(`keydown`,G),w.removeEventListener(`keydown`,K),R?.destroy(),R=null,S.remove(),w.remove(),D=[]}}}function v(e,t,n,r){return e<=0?r:e>=t+n*2+120+(r?0:16)}const y=e=>Number.parseFloat(e)||0;function b(e,t){let n=t.getComputedStyle(e);if(n.display===`none`)return 0;let r=Array.from(e.children).filter(e=>{if(!(e instanceof t.HTMLElement))return!1;let n=t.getComputedStyle(e);return n.display!==`none`&&![`absolute`,`fixed`].includes(n.position)});return r.reduce((e,n)=>{let r=t.getComputedStyle(n);return e+(r.display===`contents`?b(n,t):Math.max(n.getBoundingClientRect().width,n.scrollWidth))+y(r.marginLeft)+y(r.marginRight)},0)+Math.max(0,r.length-1)*y(n.columnGap)+y(n.paddingLeft)+y(n.paddingRight)}function x(e){let t=null,n=null,r=null,i=null,a=0,o=!0,s=!1,c=!1,l=()=>{i!==null&&t?.form.ownerDocument.defaultView?.cancelAnimationFrame(i),i=null,n?.disconnect(),r?.disconnect(),n=null,r=null,t?.form.ownerDocument.defaultView?.removeEventListener(`resize`,u)},u=()=>{if(c||i!==null)return;let n=t?.form.ownerDocument.defaultView;n&&(i=n.requestAnimationFrame(()=>{i=null,c||e.onMeasure()}))};return{measure:()=>{if(c)return o;let i=e.getSurface();if(i?.form!==t?.form||i?.input!==t?.input||i?.start!==t?.start||i?.end!==t?.end){l(),t=i,o=!0,s=!1,a=0;let e=t?.form.ownerDocument.defaultView;if(t&&e){if(e.addEventListener(`resize`,u),e.ResizeObserver!==void 0){n=new e.ResizeObserver(u);let r=[t.form,t.start,t.end,t.input];for(let e of r)n.observe(e)}e.MutationObserver!==void 0&&(r=new e.MutationObserver(e=>{e.some(e=>e.target!==t?.input||e.type!==`attributes`)&&u()}),r.observe(t.form,{subtree:!0,childList:!0,characterData:!0,attributes:!0,attributeFilter:[`class`,`style`,`hidden`]}))}}t&&i&&(t.resizeInput=i.resizeInput);let d=t?.form.ownerDocument.defaultView;if(!t||!d)return!0;if(!t.form.clientWidth)return o;let f=d.getComputedStyle(t.form),p=Math.max(1,t.form.clientWidth-y(f.paddingLeft)-y(f.paddingRight)),m=b(t.start,d)+b(t.end,d),h=y(f.columnGap);s=m+h+(s?16:0)>p,o=v(p,m,h,o);let g=t.input.getBoundingClientRect().width;if(t.resizeInput!==!1&&g>0&&g!==a&&t.input.tagName===`TEXTAREA`){a=g,t.input.style.height=`auto`;let e=y(d.getComputedStyle(t.input).maxHeight)||1/0,n=Math.min(t.input.scrollHeight,e);t.input.style.height=`${n}px`}return o},toolbarCrowded:()=>s,refresh:u,destroy:()=>{c=!0,l(),t=null}}}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`,ee=`data-persona-composer-disable-when-streaming`,E=`core:overflow`,D=e=>e===`core:attachment`?`attachments`:e.startsWith(`core:mention`)?`mentions`:null;function O(e,t){if(e===void 0)return null;if(typeof e==`number`)return Number.isFinite(e)?e:null;let r=Number.parseFloat(e);if(/^\s*-?\d*\.?\d+(px)?\s*$/.test(e)&&Number.isFinite(r))return r;let i=n(`div`);i.style.position=`absolute`,i.style.visibility=`hidden`,i.style.pointerEvents=`none`,i.style.height=`0`,i.style.width=e,t.appendChild(i);let a=i.getBoundingClientRect().width;return i.remove(),Number.isFinite(a)&&a>0?a:Number.isFinite(r)?r:null}function k(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 A=(e,t)=>{e&&typeof console<`u`&&console.warn(t)},j=(e,t)=>t.includes(`:`)?t:`${e}:${t}`;function M(e){let{debug:t}=e,n=[],r=/* @__PURE__ */ new Map,i=0,a=e=>{let i=r.get(e.id);i?A(t,`[Persona] composer action "${e.id}" is already contributed by ${N(i)}; the ${N(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?j(r,e.id):e.id,s=e.order??w.custom;e.placement===`end`&&s>=w.send&&(A(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 N=e=>e.source===`plugin`?`plugin "${e.pluginId}"`:e.source===`config`?`composer.actions`:`a core built-in`,P=(e,t,n)=>e===void 0?n:typeof e==`function`?e(t)===!0:e===!0,te=e=>e.phase===`streaming`||e.text.trim().length>0||e.attachments.length>0;function F(e,t){if(!e||e===`always`)return!0;let n=te(t);return e===`when-text`?n:!n}const I=e=>e.kind===`custom`,L=e=>e instanceof HTMLButtonElement?e:e.querySelector(`button`)??e,ne=e=>{let t=L(e);return t.getAttribute(`aria-label`)?.trim()||t.getAttribute(`title`)?.trim()||``};function re(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 R=e=>re(e).length===0,ie=e=>!e||typeof e!=`object`?e:Object.freeze(Array.isArray(e)?e.map(ie):Object.fromEntries(Object.entries(e).map(([e,t])=>[e,ie(t)])));function z(r){let{renderLucideIcon:i,attachTooltip:s,hideTooltipFor:l}=r.deps,d=/* @__PURE__ */ new Map,f=[],p=!1,m=null,g=[],v=[],y=n(`div`,`persona-composer-overflow-menu__content`),b=()=>r.getButtonSize?.(),x=(e,a)=>{let o=e.button;if(!o)return;o.setAttribute(`role`,`menuitem`),o.setAttribute(`tabindex`,`-1`),o.className=`persona-composer-overflow-menu__item`;for(let e of[`width`,`height`,`minWidth`,`minHeight`,`fontSize`,`color`,`backgroundColor`])o.style[e]=``;o.style.lineHeight=``,a.showTooltip!==!1&&a.tooltipText?o.setAttribute(`title`,a.tooltipText):o.removeAttribute(`title`),o.replaceChildren();let s=n(`span`,`persona-composer-overflow-menu__icon`);if(a.iconName){let e=i(a.iconName,16,`currentColor`,1.5);e&&s.appendChild(e)}let c=n(`span`,`persona-composer-overflow-menu__label`),l=r.getOverflow?.()?.menu?.items?.[e.resolved.id];c.textContent=l?.label??a.shortLabel??a.label;let u=n(`span`,`persona-composer-overflow-menu__text`);u.appendChild(c);let d=l?.description??a.description;o.setAttribute(`aria-label`,l?.label??a.label),d?o.setAttribute(`aria-description`,d):o.removeAttribute(`aria-description`),d&&u.appendChild(t(`span`,{className:`persona-composer-overflow-menu__description`,text:d})),o.append(s,u)},A=(t,r)=>{let a=t.button;if(!a)return;if(a.setAttribute(`aria-label`,r.label),r.pressed===void 0?a.removeAttribute(`aria-pressed`):a.setAttribute(`aria-pressed`,r.pressed?`true`:`false`),a.toggleAttribute(ee,r.disableWhenStreaming===!0),t.mode===`menu`){t.tooltip?.destroy(),t.tooltip=void 0,x(t,r);return}a.removeAttribute(`role`),a.removeAttribute(`tabindex`),a.removeAttribute(`aria-description`),a.removeAttribute(`title`);let l=b(),u=!!r.shortLabel||!r.iconName;if(a.className=e(`persona-rounded-button persona-flex persona-items-center persona-justify-center disabled:persona-opacity-50 persona-cursor-pointer persona-composer-action-button`,c,o,u&&`persona-composer-action-button--text persona-gap-1 persona-text-sm`),a.style.width=l&&!u?l:``,a.style.height=l??``,a.style.minWidth=l&&!u?l:``,a.style.minHeight=l??``,a.style.fontSize=u?``:`18px`,a.style.lineHeight=`1`,a.style.color=r.iconColor??``,a.style.backgroundColor=r.backgroundColor??``,a.replaceChildren(),r.iconName){let e=i(r.iconName,24,`currentColor`,1.5);e&&(r.iconName===`voice-bars`&&r.iconAnimation===`voice`&&e.classList.add(`persona-voice-bars--animated`),a.appendChild(e))}if(u){let e=n(`span`,`persona-composer-action-button__label`);e.textContent=r.shortLabel??r.label,a.appendChild(e)}if(r.trailingIconName&&u){let e=i(r.trailingIconName,24,`currentColor`,1.5);e&&a.appendChild(e)}a.firstChild||(a.textContent=r.label),t.tooltip?.destroy(),t.tooltip=s({anchor:a,trigger:t.element,text:()=>r.tooltipText??r.label,enabled:r.showTooltip??(!u||!!r.tooltipText)})},j=(e,t)=>{if(p||d.get(e.resolved.id)!==e||e.busy)return!1;let n=e.resolved.action,i=r.getState();if(!e.visible||n&&(!P(n.visible,i,!0)||!F(n.visibility,i)||P(n.disabled,i,!1)||n.disableWhenStreaming===!0&&i.phase===`streaming`))return!1;let a=L(e.element);if(a.disabled||a.getAttribute(`aria-disabled`)===`true`)return!1;if((e.mode===`menu`||H?.isOpen())&&(m=e.resolved.id,H?.close(!0)),!n||I(n))return a.click(),!0;let o;try{o=n.onSelect(r.actionContext,t)}catch(t){return r.reportError(t,{actionId:e.resolved.id}),!0}return o&&typeof o.then==`function`&&(e.busy=!0,e.button?.setAttribute(`aria-busy`,`true`),o.catch(t=>r.reportError(t,{actionId:e.resolved.id})).finally(()=>{e.busy=!1,e.button?.removeAttribute(`aria-busy`),!p&&d.get(e.resolved.id)===e&&ke()})),!0},N=(e,r)=>{let i=e.action,a=t(`button`,{attrs:{type:`button`}}),o=a;if(r===`bar`){let e=n(`div`,`persona-send-button-wrapper`);e.appendChild(a),o=e}o.setAttribute(T,e.id);let s={resolved:e,element:o,button:a,owned:!0,managed:!0,busy:!1,visible:!0,mode:r},c=e=>{e.preventDefault(),e.stopPropagation(),j(s,e)};return a.addEventListener(`click`,c),s.detach=()=>a.removeEventListener(`click`,c),A(s,i),s},te=e=>{let t=e.action,n;try{n=t.render({...r.actionContext,id:e.id,action:t})}catch(t){return r.reportError(t,{actionId:e.id}),null}return n?.element?(n.element.setAttribute(T,e.id),n.element.toggleAttribute(ee,t.disableWhenStreaming===!0),{resolved:e,element:n.element,owned:!0,managed:!0,destroy:n.destroy,busy:!1,visible:!0,mode:`bar`}):null},re=(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?I(n)?te(e):N(e,t):null},z=e=>{if(e.detach?.(),e.tooltip?.destroy(),e.detachMenuSlot?.(),e.detachMenuSlot=void 0,e.menuLabel?.remove(),e.menuLabel=void 0,e.menuSlot?.remove(),e.menuSlot=void 0,e.owned){try{e.destroy?.()}catch(t){r.reportError(t,{actionId:e.resolved.id})}e.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)}},V=(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)},H=null,U=null,W=null,G=0,K=null,q=null,J=null,ae=0,Y=/* @__PURE__ */ new Set,X=/* @__PURE__ */ new Map,oe=()=>{ae+=1,Z()},Z=()=>{if(p||q!==null||!U)return;let e=U.ownerDocument.defaultView;e&&(q=e.requestAnimationFrame(()=>{q=null,ke()}))},se=()=>{q!==null&&U?.ownerDocument.defaultView?.cancelAnimationFrame(q),q=null,K?.disconnect(),K=null,U?.ownerDocument.defaultView?.removeEventListener(`resize`,Z),U?.ownerDocument.fonts?.removeEventListener(`loadingdone`,oe),J=null},ce=()=>{let e=r.getOverflow?.();return e?.enabled===!0?e:void 0},Q=null,le=null,ue=null,de,$=!0,fe=!1,pe=!1,me=e=>r.reportError(e,{actionId:E}),he=e=>{try{e?.destroy?.()}catch(e){me(e)}},ge=()=>{let e=Q,t=le;Q=null,le=null,ue=null,de=void 0,fe=!1,e?.abort(),he(t),H?.panel.replaceChildren(y),H?.setContentMode(`menu`,!0),$=!0},_e=e=>{let t=e.resolved.action,n=ce()?.menu?.items?.[e.resolved.id],i=L(e.element),a=r.getState();return Object.freeze({id:e.resolved.id,kind:t?I(t)?`custom`:`button`:`builtin`,label:n?.label??(t?(I(t)?void 0:t.shortLabel)??t.label:ne(e.element)),description:n?.description??t?.description,group:n?.group??t?.group,iconName:t&&!I(t)?t.iconName:void 0,disabled:!!(i.disabled||i.getAttribute(`aria-disabled`)===`true`||t&&(P(t.disabled,a,!1)||t.disableWhenStreaming===!0&&a.phase===`streaming`)),busy:e.busy,pressed:t&&!I(t)?t.pressed:void 0})},ve=e=>{let t=()=>!p&&Q===e&&!e.signal.aborted;return Object.freeze({config:ie(ce()?.menu??{}),state:ie(r.getState()),items:Object.freeze(v.map(_e)),signal:e.signal,actions:Object.freeze({invoke:e=>{if(!t()||!H?.isOpen())return!1;let n=d.get(e);return!n||n.mode!==`menu`||!v.includes(n)?!1:j(n,new Event(`click`,{bubbles:!0,cancelable:!0}))},openAttachmentPicker:()=>{if(!t()||!H?.isOpen())return;let e=d.get(`core:attachment`);e&&j(e,new Event(`click`,{bubbles:!0,cancelable:!0}))},close:()=>{t()&&H?.close(!0)},requestUpdate:()=>{t()&&!fe&&(fe=!0,Promise.resolve().then(()=>{t()&&(fe=!1,Ae())}))}}),defaultRenderer:()=>({element:y,role:`menu`})})},ye=()=>{let e=new AbortController;Q=e;let t=ve(e);for(let n of g){if(e.signal.aborted||Q!==e||p)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||Q!==e||p)return he(i),!1;if(!(i.element instanceof HTMLElement))he(i);else return le=i,ue=n,de=n.renderComposerMenu,$=i.element===y,H?.panel.replaceChildren(i.element),H?.setContentMode(i.role??($?`menu`:`dialog`),$),!0}return e.signal.aborted||p?!1:($=!0,H?.panel.replaceChildren(y),H?.setContentMode(`menu`,!0),!0)},be=()=>{if(!Q||Q.signal.aborted||!H?.isOpen())return;if(ue&&!g.some(e=>e.id===ue?.id&&e.renderComposerMenu===de)){H.close();return}if(pe)return;let e=Q,t=le;pe=!0;try{t?.update?.(ve(e))}catch(n){if(me(n),Q===e){if(Q=null,le=null,e.abort(),he(t),p||!H?.isOpen()||Q)return;Q=new AbortController,ue=null,de=void 0,$=!0,H.panel.replaceChildren(y),H.setContentMode(`menu`,!0)}}finally{pe=!1}H?.refresh()},xe=()=>(H?H.setLabel(r.getOverflowLabel?.()??`More actions`):H=_({deps:r.deps,label:r.getOverflowLabel?.()??`More actions`,getButtonSize:b,getConfig:()=>ce()?.menu,getComposer:()=>r.getBindings()?.form,beforeOpen:ye,onClose:ge}),H),Se=(e,t)=>{let n=e.footer;if(!(U===n&&(t?J===e.form:J===null))){if(se(),W?.disconnect(),U=n,G=k(n),t){J=e.form;let t=n.ownerDocument.defaultView;t?.addEventListener(`resize`,Z),n.ownerDocument.fonts?.addEventListener(`loadingdone`,oe),t?.MutationObserver&&(K=new t.MutationObserver(n=>{n.some(n=>{if(H?.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`)))})&&Z()}),K.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`&&(W=new ResizeObserver(e=>{if(t){Z();return}let r=e[e.length-1]?.contentRect?.width??k(n);r!==G&&(G=r,ke())}),W.observe(n),t&&(W.observe(e.form),W.observe(e.actionsStart),W.observe(e.actionsEnd)))}},Ce=(e,t)=>{let n=O(e.collapseAutoActionsBelow,t);if(n===null)return!1;let r=G||k(t);return r>0&&r<n},we=(e,t,n)=>{if(!t)return`bar`;if(e.resolved.builtIn){let n=D(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 r=e.menuSlot;if(!r)return;let i=ce()?.menu?.items?.[e.resolved.id],a=i?.description??e.resolved.action?.description;if(!i?.label&&!a&&!R(e.element)){e.menuLabel?.remove(),e.menuLabel=void 0;return}let o=i?.label??ne(e.element);o?(e.menuLabel||=n(`span`,`persona-composer-overflow-menu__label`),e.menuLabel.replaceChildren(t(`span`,{text:o})),a&&e.menuLabel.appendChild(t(`span`,{className:`persona-composer-overflow-menu__description`,text:a})),e.menuLabel.parentElement!==r&&r.appendChild(e.menuLabel)):(e.menuLabel?.remove(),e.menuLabel=void 0)},Ee=(e,r)=>{if(e.mode===r)return e;let i=e.resolved.action;if(i&&!I(i)){let t=e.element;return r===`menu`?e.element=e.button:(e.element=n(`div`,`persona-send-button-wrapper`),e.element.appendChild(e.button),e.button.removeAttribute(T)),t!==e.element&&t!==e.button&&t.remove(),e.element.setAttribute(T,e.resolved.id),e.mode=r,A(e,i),e}if(r===`menu`){let n=t(`div`,{className:`persona-composer-overflow-menu__slot`,attrs:{role:`none`,[a]:``}});n.appendChild(e.element),l(L(e.element)),e.menuSlot=n;let r=t=>{let n=L(e.element);if(n.disabled)return;let r=t.target===n||n.contains(t.target);m=e.resolved.id,H?.close(!0),r||n.click()};n.addEventListener(`click`,r,!0),e.detachMenuSlot=()=>n.removeEventListener(`click`,r,!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=r,e},De=(e,n)=>{let r=Array.from(e.querySelectorAll(`.persona-composer-overflow-menu__divider`)),i=0,a=[];for(n.forEach((e,o)=>{let s=_e(e).group;o&&s!==_e(n[o-1]).group&&a.push(r[i++]??t(`div`,{className:`persona-composer-overflow-menu__divider`,attrs:{role:`separator`}})),a.push(e.menuSlot??e.element)}),a.forEach((t,n)=>{let r=e.children[n];r!==t&&(r?e.insertBefore(t,r):e.appendChild(t))});e.children.length>a.length;)e.lastElementChild?.remove()},Oe=(e,t,n)=>{let r=k(e.form);if(!r)return Y;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`),b(),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===H?.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(we(e,n,!1)===`menu`){m=!0;continue}let t=e.resolved.action,r=`${l}|${t&&!I(t)?[t.label,t.shortLabel,t.iconName,t.trailingIconName,t.pressed].join(`|`):`custom`}`,a=e.mode===`bar`?C(e.element):0,o=X.get(e.resolved.id);if(!a&&o?.key===r&&(a=o.width),!a&&t&&!I(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=C(t.button),z(t)}if(!a&&t&&I(t)&&(a=o?.width??0),a&&X.set(e.resolved.id,{key:r,width:a}),!a&&i.getComputedStyle(e.element).display!==`none`)return Y;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=H?C(H.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(b()??``)||h,hasMenu:m,previous:Y})},ke=()=>{if(p)return;let e=r.getBindings();if(e&&u(e.form),!e)return;let t=r.getState(),n=t.phase===`streaming`,i=ce(),a=i?.collapseAutoActions===`fit`;i?Se(e,a):(se(),W?.disconnect(),U=null);let o=i&&!a?Ce(i,e.footer):!1,s=e.footer.getRootNode(),c=s.activeElement,l=c===H?.triggerButton,g=c?Array.from(d.values()).find(e=>e.element.contains(c)):void 0,_=g?.mode;if(a){let n=f.map(e=>d.get(e.id)).filter(e=>!!e).filter(e=>!e.resolved.action||P(e.resolved.action.visible,t,!0)&&F(e.resolved.action.visibility,t));for(let t of n){if(!t.managed||t.mode!==`bar`)continue;let n=t.resolved.placement===`start`?e.actionsStart:e.actionsEnd;t.element.parentElement!==n&&n.appendChild(t.element)}Y=Oe(e,n,i)}else Y.clear();let b={start:[],end:[]},S=[];for(let e of f){let r=d.get(e.id);if(!r)continue;let s=e.action,c=!s||P(s.visible,t,!0)&&F(s.visibility,t);if(r.visible!==c&&(r.visible=c,!c&&r.managed&&(r.menuSlot??r.element).remove()),!c)continue;let l=we(r,i,o);if(r=Ee(r,l===`menu`||a&&e.presentation===`auto`&&Y.has(e.id)?`menu`:`bar`),s){let e=P(s.disabled,t,!1)||s.disableWhenStreaming===!0&&n;V(r,e),!I(s)&&s.pressed!==void 0&&r.button?.setAttribute(`aria-pressed`,s.pressed?`true`:`false`)}r.mode===`menu`?(Te(r),S.push(r)):b[e.placement].push(r)}if(v=S,S.length>0){let e=xe();Q||e.panel.replaceChildren(y),De(y,S);for(let e of S){let t=e.resolved.action;t&&!I(t)&&x(e,t)}e.setItems(S.map(e=>e.menuSlot??e.element)),e.refresh(),be();let t=Number.isFinite(i?.order)?i?.order:w.overflow,n=b.start.findIndex(e=>e.resolved.order>t),r={resolved:{id:E,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 H&&(H.close(),H.trigger.remove(),H.setItems([]));if(B(e.actionsStart,b.start),B(e.actionsEnd,b.end),g&&c&&g.visible&&(!c.isConnected||g.mode!==_||s.activeElement!==c))g.mode===`bar`?(H?.close(),h(g.element).focus()):H?.isOpen()&&$?h(g.menuSlot??g.element).focus():H?.triggerButton.focus();else if(l&&!S.length){let t=m?d.get(m):void 0;t?.visible&&t.mode===`bar`?h(t.element).focus():e.input.focus()}m=null},Ae=()=>{if(p)return;let e=r.collect();g=e.plugins;let t=M(e),n=new Set(t.map(e=>e.id));for(let[e,t]of d)n.has(e)||(z(t),d.delete(e),X.delete(e));for(let e of t){let t=d.get(e.id);if(!t){let t=re(e,`bar`);t&&d.set(e.id,t);continue}let n=t.resolved.action,r=e.action;if(!!n!=!!r||n&&r&&I(n)!==I(r)||n&&r&&I(n)&&I(r)&&n.render!==r.render){z(t),d.delete(e.id),X.delete(e.id);let n=re(e,t.mode);n&&d.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&&!I(r)?A(t,r):r&&t.element.toggleAttribute(ee,r.disableWhenStreaming===!0)}f=t,ke()};return{resolve:Ae,sync:ke,getResolved:()=>f,getOverflowMenu:()=>H,destroy:()=>{if(!p){p=!0,se(),W?.disconnect(),W=null,U=null,H?.close(),ge();for(let e of d.values())z(e);d.clear(),H?.destroy(),H=null,f=[]}}}}const B=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,t){return e?t?.find(t=>t.id===e)?.chipVisibility===`hidden`:!1}function G(e,t,n=!1){return e?.length?e.filter(e=>!U(e.groupId,t)&&!W(e.groupId,t)&&(!n||e.presentation===`overflow`||t?.find(t=>t.id===e.groupId)?.chipVisibility===`auto`)):[]}const K=(e,t)=>e.groupId?t?.find(t=>t.id===e.groupId)?.selection??null:null;function q(e,t,n,r){let i=n.find(e=>e.id===t);if(!i)return[...e];let a=e.includes(t),o=new Set(e);if(a)o.delete(t);else{if(K(i,r)===`single`){let e=n.filter(e=>e.groupId===i.groupId).map(e=>e.id);o=new Set([...o].filter(t=>!e.includes(t)))}o.add(t)}return n.filter(e=>o.has(e.id)).map(e=>e.id)}function J(e,t){return t?.length?t.filter(t=>e.includes(t.id)).map(e=>e.id):[]}function ae(e,t){return t?.length?t.filter(t=>e.includes(t.id)&&(t.persistence??`sticky`)!==`once`).map(e=>e.id):[]}function Y(e,t){if(t?.length&&e.length!==0)return t.find(t=>e.includes(t.id)&&t.placeholder)?.placeholder}function X(e,t,n){let r=[];for(let i of e)r.includes(i)||(r=q(r,i,t,n));return r}export{V as a,Y as c,T as d,w as f,u as h,H as i,X as l,x as m,ae as n,U as o,z as p,B as r,J as s,G as t,q as u};
|
package/dist/chunk-C-rux8Q9.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-BAdIgC5d.js";import{t}from"./chunk-Dqa_GOcj.js";import{t as n}from"./chunk-i4qGOJAL.js";import{n as r}from"./chunk-DTDHeUsG.js";const i=e=>e.replace(/[^a-zA-Z0-9_]/g,`_`).toLowerCase().replace(/_+/g,`_`).replace(/^_|_$/g,``),a=e=>typeof e==`object`&&!!e&&!Array.isArray(e),o=e=>{if(e.variant!==`tool`)return null;let t=e.agentMetadata?.clientToolAnswer;if(!t||!t.toolCallId||t.result===void 0)return null;let n=i(t.toolName);return n?{call:{toolCallId:t.toolCallId,toolName:n,args:a(t.args)?t.args:{}},result:{toolCallId:t.toolCallId,toolName:n,result:t.result}}:null},s=(e,t)=>{let n=[],r=[],i=[],a=``,s,c=()=>{r.length!==0&&(n.push({role:`assistant`,content:``,createdAt:a,toolCalls:r},{role:`tool`,content:``,createdAt:a,toolResults:i}),r=[],i=[])};for(let l of e){let e=o(l);if(e){let t=l.agentMetadata?.clientToolAnswer?.batch;r.length>0&&(t===void 0||t!==s)&&c(),r.length===0&&(a=l.createdAt,s=t),r.some(t=>t.toolCallId===e.call.toolCallId)||(r.push(e.call),i.push(e.result));continue}let u=t(l);u&&(c(),n.push(u))}return c(),n},c=e=>e.voiceCaption||r(e)?!1:!!(e.contentParts&&e.contentParts.length>0||e.llmContent&&e.llmContent.trim().length>0||e.rawContent&&e.rawContent.trim().length>0||e.content&&e.content.trim().length>0),l=e=>typeof e==`string`?!0:Array.isArray(e)?e.every(e=>{if(!e||typeof e!=`object`)return!1;switch(e.type){case`text`:return typeof e.text==`string`;case`image`:return typeof e.image==`string`;case`audio`:return typeof e.audio==`string`;case`video`:return typeof e.video==`string`;case`file`:return typeof e.data==`string`&&typeof e.mimeType==`string`&&typeof e.filename==`string`;default:return!1}}):!1,u=e=>e.slice().sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()),d=e=>{let t=e.agentMetadata?.providerPhase??e.agentMetadata?.phase;return e.role===`assistant`&&(t===`commentary`||t===`partial_answer`||t===`final_answer`)?{phase:t}:{}},f=e=>({role:e.role,content:e.contentParts??e.llmContent??e.rawContent??e.content,createdAt:e.createdAt,...d(e)});var p=class{constructor(e){this.host=e}async initializeSession(){await this.host.historyInternals.historyBootstrapReady;let e=this.host.config.getStoredConversationId?.()||null,t=this.host.historyInternals.shouldResumeDurableConversation?.()===!0;if(!this.host.isHistoryCapable()&&!t)return this.#e(e,!1);let n=await this.host.readVisitorToken();if(e&&n)try{let n=await this.createClientSession({conversationId:e,durableResume:t});return t&&n.durableRecovery?.enabled!==!0&&this.host.historyInternals.setStoredResumableHandle?.(null),this.host.finishInit(n,e,!1)}catch(n){if(!(n instanceof this.host.HistoryClientError&&n.code===`not_found`)&&!(n instanceof this.host.HistoryClientError&&n.code===`visitor_required`)&&!(n instanceof this.host.HistoryClientError&&n.code===`history_disabled`))throw n;return t&&this.host.historyInternals.setStoredResumableHandle?.(null),this.#e(e,!0)}return this.#e(e,!1)}async#e(e,t){let n=this.host.historyInternals.visitorStore;return n&&!await this.host.readVisitorToken()?n.withFirstInitLock(()=>this.#t(e,t)):this.#t(e,t)}async#t(e,t){let n=this.host.config.getStoredSessionId?.()||null,r=await this.createClientSession({storedSessionId:n}),i=await this.#n(r);return this.host.finishInit(i,e,t)}async#n(e){if(!e.visitor?.token||this.host.claimInFlight||!this.host.isHistoryCapable()&&e.durableRecovery?.enabled!==!0)return e;this.host.claimInFlight=!0;try{return await this.createClientSession({storedSessionId:e.sessionId})}catch{return e}finally{this.host.claimInFlight=!1}}async sendWithClientToolsDiff(t,n,r,i){let a=!!(n&&n.length>0),o=a?e(n):void 0,s=this.host.clientToolsFingerprintSessionId===t,c=a&&s&&this.host.lastSentClientToolsFingerprint===o,l=!a&&i?.emptyMeansReplace===!0&&this.host.sentNonEmptyClientToolsSessionId===t,u=!1,d;for(let e=0;d=await r({...a&&(u||!c)&&n?{clientTools:n}:{},...l?{clientTools:[]}:{},...o?{clientToolsFingerprint:o}:{}}),d.status===409&&e===0&&a&&(await d.clone().json().catch(()=>null))?.error===`client_tools_resend_required`;e++)u=!0,this.host.lastSentClientToolsFingerprint=null;return{response:d,commit:()=>{this.host.lastSentClientToolsFingerprint=o??null,this.host.clientToolsFingerprintSessionId=t,a?this.host.sentNonEmptyClientToolsSessionId=t:l&&(this.host.sentNonEmptyClientToolsSessionId=null)}}}async createClientSession(e){let n=this.host.isHistoryCapable()&&!e.omitVisitorFields,r=!e.omitVisitorFields,i=null;(n||r)&&(await this.host.historyInternals.historyBootstrapReady,i=await this.host.readVisitorToken());let a=this.host.routing(),o=a.agentId??a.flowId,s=n||e.durableResume?e.conversationId:void 0,c={token:this.host.config.clientToken,...o&&{flowId:o},...n&&{visitorHistory:!0},...r&&{durableRecovery:!0},...(n||r)&&i?{visitorToken:i}:{},...n&&e.identityProof?{identityProof:e.identityProof}:{},...s?{conversationId:s}:e.storedSessionId?{sessionId:e.storedSessionId}:{}};e.signal?.throwIfAborted();let l=await fetch(this.host.getClientApiUrl(`init`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":t},body:JSON.stringify(c),signal:e.signal});if(!l.ok){let t=await l.json().catch(()=>({error:`Session initialization failed`}));if(n&&l.status===403&&t.error===`visitor_history_disabled`){if(this.host.markHistoryUnavailable(),s)throw new this.host.HistoryClientError(`history_disabled`,`Visitor history is disabled for this surface`);return this.createClientSession({...e,omitVisitorFields:!0})}throw l.status===403&&t.error===`durable_recovery_disabled`?new this.host.HistoryClientError(`history_disabled`,`Durable recovery is disabled for this surface`):(n||e.durableResume)&&l.status===401&&t.error===`visitor_required`?new this.host.HistoryClientError(`visitor_required`,`Visitor credential no longer resolves`):s&&l.status===404?new this.host.HistoryClientError(`not_found`,`Conversation not found`):l.status===401?Error(`Invalid client token: ${t.hint||t.error}`):l.status===403?Error(`Origin not allowed: ${t.hint||t.error}`):Error(t.error||`Failed to initialize session`)}let u=await l.json();return u.visitor?.token&&await this.host.historyInternals.visitorStore?.set(u.visitor.token),{sessionId:u.sessionId,expiresAt:new Date(u.expiresAt),flow:u.flow,...u.conversationId?{conversationId:u.conversationId}:{},...u.targetId?{targetId:u.targetId}:{},...u.conversationRevision?{conversationRevision:u.conversationRevision}:{},...u.durableRecovery?{durableRecovery:u.durableRecovery}:{},...u.visitor?{visitor:u.visitor}:{},config:{welcomeMessage:u.config.welcomeMessage,placeholder:u.config.placeholder,theme:u.config.theme}}}async sendFeedback(e){if([`upvote`,`downvote`,`copy`].includes(e.type)&&!e.messageId)throw Error(`messageId is required for ${e.type} feedback type`);if(e.type===`csat`&&(e.rating===void 0||e.rating<1||e.rating>5))throw Error(`CSAT rating must be between 1 and 5`);if(e.type===`nps`&&(e.rating===void 0||e.rating<0||e.rating>10))throw Error(`NPS rating must be between 0 and 10`);this.host.debug&&console.debug(`[AgentWidgetClient] sending feedback`,e);let n={...e,...this.host.config.clientToken&&{token:this.host.config.clientToken}},r=await fetch(`${this.host.clientApiBase()}/v1/client/feedback`,{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":t},body:JSON.stringify(n)});if(!r.ok){let e=await r.json().catch(()=>({error:`Feedback submission failed`}));throw r.status===401?(this.host.clientSession=null,this.host.resetSessionWarmLatch(),this.host.config.onSessionExpired?.(),Error(`Session expired. Please refresh to continue.`)):Error(e.error||`Failed to submit feedback`)}}async dispatchClientToken(e,r,i){let{HistoryClientError:a}=this.host,o=()=>this.host.isCurrentTurn(i),s=e=>{o()&&r(e)};try{let r=()=>{if(e.signal?.throwIfAborted(),!o())throw new DOMException(`Turn superseded`,`AbortError`)},c=this.host.clientSession??await this.host.initSession();r();let l=async()=>{r();let t=c,n=t.durableRecovery?.enabled===!0;if(n&&(!t.conversationId||!await this.host.readVisitorToken()))throw Error(`Renewing this conversation requires its visitor credential.`);r();let i=await this.host.createClientSession({...n||this.host.isHistoryCapable()?{conversationId:t.conversationId,durableResume:n}:{storedSessionId:t.sessionId},signal:e.signal});if(r(),t.conversationId&&i.conversationId!==t.conversationId||n&&i.durableRecovery?.enabled!==!0)throw Error(`Session renewal did not preserve this conversation.`);c=this.host.finishInit(i,t.conversationId??null,!1),this.host.clientSession=c,this.host.resetSessionWarmLatch(),this.host.resetClientToolsFingerprint(),this.host.config.onSessionInit?.(c)};Date.now()>=c.expiresAt.getTime()-6e4&&await l();let d=new Map(u(e.messages).map(e=>[e,this.#s(e)])),f=await this.#l(e.messages,void 0,d),p=f.metadata?Object.fromEntries(Object.entries(f.metadata).filter(([e])=>e!==`sessionId`&&e!==`session_id`)):void 0,m=this.host.isHistoryCapable(),h={sessionId:c.sessionId,messages:u(e.messages).flatMap(e=>{let t=d.get(e);if(!t)return[];let r=m?n(e,t.content):void 0;return[{id:e.id,role:t.role,content:t.content,...r!==void 0&&{displayContent:r}}]}),...e.assistantMessageId&&{assistantMessageId:e.assistantMessageId},...p&&Object.keys(p).length>0&&{metadata:p},...f.inputs&&Object.keys(f.inputs).length>0&&{inputs:f.inputs},...f.context&&{context:f.context},turnId:i,...e.interrupt&&{submitMode:`interrupt`},...e.voiceSpoken&&{voice:{spoken:!0,...e.voicePriorToolResults?.length&&{priorToolResults:e.voicePriorToolResults}}}},g=async()=>{r();let n=c.durableRecovery?.enabled===!0?await this.host.readVisitorToken():null;return r(),this.host.sendWithClientToolsDiff(c.sessionId,f.clientTools,async i=>{r();let a=await this.host.resolveChatIdentityProof(e.signal);r();let o={...h,sessionId:c.sessionId,...i,...a&&{identityProof:a}};return this.host.debug&&console.debug(`[AgentWidgetClient] client token dispatch`,{...o,...a&&{identityProof:{provider:a.provider,token:`[REDACTED]`}}}),fetch(this.host.getClientApiUrl(`chat`),{method:`POST`,headers:{"Content-Type":`application/json`,"X-Persona-Version":t,...n?{"X-Visitor-Token":n}:{}},body:JSON.stringify(o),signal:e.signal})})},_=await g();if(r(),_.response.status===401){let e=await _.response.clone().json().catch(()=>null);r(),e?.error===`Session not found or expired`&&(await l(),_=await g(),r())}let{response:v,commit:y}=_;if(!v.ok){let e=await v.json().catch(()=>({error:`Chat request failed`}));if(v.status===401&&e.error===`invalid_identity_proof`){let e=new a(`invalid_identity_proof`,`The identity proof was rejected`);throw s({type:`error`,error:e}),e}if(v.status===401){this.host.clearClientSession(),this.host.config.onSessionExpired?.();let e=/* @__PURE__ */ Error(`Session expired. Please refresh to continue.`);throw s({type:`error`,error:e}),e}if(v.status===429){let t=Error(e.hint||`Message limit reached for this session.`);throw s({type:`error`,error:t}),t}if(v.status===410&&e.error===`conversation_deleted`){let e=new a(`conversation_deleted`,`This conversation was deleted`);throw s({type:`error`,error:e}),e}let t=Error(e.error||`Failed to send message`);throw s({type:`error`,error:t}),t}if(!v.body){let e=/* @__PURE__ */ Error(`No response body received`);throw s({type:`error`,error:e}),e}y(),s({type:`status`,status:`connected`});try{await this.host.streamResponse(v.body,s,e.assistantMessageId,void 0,e.signal)}finally{s({type:`status`,status:`idle`})}}catch(e){let t=e instanceof Error?e:Error(String(e));throw t instanceof a||t.message.includes(`Session expired`)||t.message.includes(`Message limit`)||s({type:`error`,error:t}),t}}async dispatchProxy(e,t){let n=await this.#l(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Chat backend request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,void 0,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}async dispatchAgent(e,t){let n=await this.#c(e.messages,e.composerOptions);this.host.debug&&console.debug(`[AgentWidgetClient] agent dispatch payload`,n);let r={...this.host.headers};if(this.host.getHeaders)try{let e=await this.host.getHeaders();r={...r,...e}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] getHeaders error:`,e)}let i;if(this.host.customFetch)try{i=await this.host.customFetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal},n)}catch(e){let n=e instanceof Error?e:Error(String(e));throw t({type:`error`,error:n}),n}else i=await fetch(this.host.apiUrl,{method:`POST`,headers:r,body:JSON.stringify(n),signal:e.signal});if(!i.ok||!i.body){let e=/* @__PURE__ */ Error(`Agent execution request failed: ${i.status} ${i.statusText}`);throw t({type:`error`,error:e}),e}t({type:`status`,status:`connected`});try{await this.host.streamResponse(i.body,t,e.assistantMessageId,void 0,e.signal)}finally{t({type:`status`,status:`idle`})}}#r(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.role===`user`)return n.mentionContext&&Object.keys(n.mentionContext).length>0?{mentions:n.mentionContext}:null}return null}async#i(e){let t={};this.host.contextProviders.length&&await Promise.all(this.host.contextProviders.map(async n=>{try{let r=await n({messages:e,config:this.host.config});r&&typeof r==`object`&&Object.assign(t,r)}catch(e){typeof console<`u`&&console.warn(`[AgentWidget] Context provider failed:`,e)}}));let n=this.#r(e);return n&&Object.assign(t,n),Object.keys(t).length?t:null}#a(e){if(!e)return;let t={};return e.selectedModelId&&(t.selectedModelId=e.selectedModelId),e.activeModeIds?.length&&(t.activeModeIds=[...e.activeModeIds]),Object.keys(t).length>0?t:void 0}#o(e,t){let n=t?.selectedModelId;return!n||!(`model`in e)?e:this.host.config.composer?.models?.some(e=>e.id===n)?{...e,model:n}:e}#s(e){if(!c(e))return null;let t=e.contentParts??e.llmContent??e.rawContent??e.content,n=e.role===`operator`?null:f(e),r=this.host.config.modelMessageTransform;if(!r)return n;let i=r({message:e,content:t,modelMessage:n});if(i===null)return null;if(!i||typeof i!=`object`||![`user`,`assistant`,`system`].includes(i.role)||!l(i.content)||typeof i.createdAt!=`string`)throw TypeError(`modelMessageTransform must return a supported model message or null`);return{role:i.role,content:i.content,createdAt:i.createdAt,...i.role===`assistant`&&i.phase&&{phase:i.phase}}}async#c(e,t){let n=this.host.routing().agentId;if(!this.host.config.agent&&!n)throw Error(`Agent configuration required for agent mode`);let r=s(u(e),e=>!e.variant||e.variant===`assistant`?this.#s(e):null),i=this.#a(t),a={agent:this.#o(this.host.config.agent??{agentId:n},i),messages:r,options:{streamResponse:!0,recordMode:`virtual`,...this.host.config.agentOptions}};i&&(a.composerOptions=i);let o=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];o.length>0&&(a.clientTools=o);let c=await this.#i(e);return c&&(a.context=c),a}async#l(e,t,n){let r=s(u(e),e=>n?n.get(e)??null:this.#s(e)),i=this.host.routing(),a={messages:r,...i.agentId?{agent:{agentId:i.agentId}}:i.flowId?{flowId:i.flowId}:{}};if(i.targetPayload)for(let[e,t]of Object.entries(i.targetPayload))e!==`messages`&&(a[e]=t);let o=[...this.host.builtInClientTools(this.host.config),...await(await this.host.getWebMcpBridge())?.snapshotForDispatch()??[]];o.length>0&&(a.clientTools=o);let c=await this.#i(e);c&&(a.context=c);let l=this.#a(t);if(l&&(a.composerOptions=l),this.host.requestMiddleware)try{let e=await this.host.requestMiddleware({payload:{...a},config:this.host.config});if(e&&typeof e==`object`){let t=e;return a.clientTools!==void 0&&!(`clientTools`in t)&&(t.clientTools=a.clientTools),t}}catch(e){typeof console<`u`&&console.error(`[AgentWidget] Request middleware error:`,e)}return a}};export{p as ClientDispatch};
|
package/dist/chunk-CNhThrLX.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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))}export{i as n,s as r,o as t};
|
package/dist/chunk-CzLEhoB_.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=(e,t)=>({ok:!1,reason:e,message:t}),t=e=>e.startsWith(`webmcp:`)?e.slice(7):e,n={warn(e,...t){typeof console<`u`&&typeof console.warn==`function`&&console.warn(`[Persona/WebMCP] ${e}`,...t)}};var r=class{#e;#t;#n=!1;#r=null;#i=!1;#a;constructor(e,t){this.config=e,this.#a=t,this.#e=e.onConfirm??null,this.#t=3e4}setConfirmHandler(e){this.#e=e}isOperational(){return this.config.enabled!==!0||!this.#n?!1:this.#l()!==null}async snapshotForDispatch(){if(await this.#s(),this.config.enabled!==!0)return[];let e=this.#l();if(!e)return[];let t;try{t=(await e.getTools()).filter(h)}catch(e){return n.warn(`getTools() threw: shipping an empty WebMCP snapshot.`,e),[]}this.#a.recordToolDisplayTitles(t);let r=typeof location<`u`?location.origin:``;return t.filter(e=>this.#d(e.name)).map(e=>{let t=o(e.annotations);return{name:e.name,description:e.description,parametersSchema:s(e.inputSchema),origin:`webmcp`,...r?{pageOrigin:r}:{},...t?{annotations:t}:{},...t?.untrustedContentHint===!0?{untrustedContentHint:!0}:{}}})}async executeToolCall(e,t,n,r){let i=await this.#o(e,t,n,!1,r);return i.ok?c(i.raw):u(i.message)}async executeVoiceToolCall(e,t,n={}){let r=await this.#o(e,t,n.signal,n.autoConfirmReadOnly===!0);return r.ok?f(r.raw):{status:r.reason===`aborted`?`failed`:r.reason,error:{message:r.message}}}watchToolChanges(e){let t=!1,n=null;return this.#s().then(()=>{if(t||this.config.enabled!==!0)return;let r=this.#l();r&&typeof r.addEventListener==`function`&&(n=r,n.addEventListener(`toolchange`,e))}),()=>{t=!0,n?.removeEventListener(`toolchange`,e),n=null}}async#o(n,r,i,a,s){if(await this.#s(),this.config.enabled!==!0)return e(`failed`,`WebMCP is not enabled on this widget.`);let c=this.#l();if(!c){let t=typeof document<`u`&&!!document.modelContext;return e(`failed`,t?`WebMCP is not operational: document.modelContext is present but does not expose the strict getTools()/executeTool() surface (likely a different or older WebMCP polyfill).`:`WebMCP bridge is not operational on this page (document.modelContext not available).`)}let u=t(n),d;try{d=(await c.getTools()).filter(h)}catch(t){let n=t instanceof Error?t.message:String(t);return e(`failed`,`Failed to read WebMCP registry: ${n}`)}this.#a.recordToolDisplayTitles(d);let f=d.find(e=>e.name===u);if(!f)return e(`stale`,`WebMCP tool not registered on this page: ${u}`);if(!this.#d(u))return e(`stale`,`WebMCP tool not allowed by client allowlist: ${u}`);if(i?.aborted)return e(`aborted`,`Aborted by cancel()`);let p=this.#a.getToolDisplayTitle(u),m=o(f.annotations),g={toolName:u,...s?{toolCallId:s}:{},args:r,description:f.description,...m?{annotations:m}:{},...p?{title:p}:{},...i?{signal:i}:{},reason:`gate`};if(!(a&&m?.readOnlyHint===!0)&&!await this.#u(g))return e(`denied`,`User declined the tool call.`);if(i?.aborted)return e(`aborted`,`Aborted by cancel()`);let _=new AbortController,v=!1,y=setTimeout(()=>{v=!0,_.abort()},this.#t),b=()=>_.abort();i&&(i.aborted?_.abort():i.addEventListener(`abort`,b,{once:!0}));try{return{ok:!0,raw:await c.executeTool(f,l(r),{signal:_.signal})}}catch(t){if(v)return e(`timeout`,`WebMCP tool '${u}' timed out after ${this.#t}ms`);if(i?.aborted)return e(`aborted`,`Aborted by cancel()`);let n=t instanceof Error?t.message:String(t);return e(`failed`,n)}finally{clearTimeout(y),i&&i.removeEventListener(`abort`,b)}}#s(){return this.config.enabled===!0?(this.#r||=this.#c(),this.#r):Promise.resolve()}async#c(){try{if(this.#l()){this.#n=!0;return}let e=await this.#a.loadPolyfill();`initializeWebMCPPolyfill`in e?e.initializeWebMCPPolyfill():e.installWebMCP(),this.#n=!0}catch(e){n.warn(`Failed to load @mcp-b/webmcp-polyfill: WebMCP consumption disabled.`,e),this.#n=!1}}#l(){if(typeof document>`u`)return null;let e=document.modelContext;if(!e||typeof e!=`object`)return null;let t=e;return typeof t.getTools!=`function`||typeof t.executeTool!=`function`?(this.#i||(this.#i=!0,n.warn(`document.modelContext is present but does not expose getTools()/executeTool(): WebMCP consumption is disabled. Another (incompatible or older) WebMCP polyfill likely installed document.modelContext before Persona. Remove it, or use a polyfill implementing the strict standard surface (e.g. @mcp-b/webmcp-polyfill).`)),null):e}async#u(e){let t=this.#e??p;try{return await t(e)}catch(t){return n.warn(`Confirm handler threw for WebMCP tool '${e.toolName}'; declining.`,t),!1}}#d(e){let t=this.config.allowlist;return!t||t.length===0||t.some(t=>i(e,t))}};const i=(e,t)=>{if(t===`*`)return!0;let n=t.replace(/[.+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`^`+n.replace(/\*/g,`.*`)+`$`).test(e)},a={type:`object`,properties:{}},o=e=>{if(!e||typeof e!=`object`)return;let t={};for(let n of[`readOnlyHint`,`destructiveHint`,`consequentialHint`,`untrustedContentHint`,`idempotentHint`,`openWorldHint`,`debugging`]){let r=e[n];typeof r==`boolean`&&(t[n]=r)}return Object.keys(t).length>0?t:void 0},s=e=>{if(e===void 0||e===``)return{...a};if(typeof e==`object`)return e!==null&&!Array.isArray(e)?e:{...a};try{let t=JSON.parse(e);return typeof t==`object`&&t&&!Array.isArray(t)?t:{...a}}catch{return{...a}}},c=e=>{if(e==null)return{content:[{type:`text`,text:``}]};let t;try{t=JSON.parse(e)}catch{return{content:[{type:`text`,text:e}]}}return typeof t==`object`&&t&&Array.isArray(t.content)?t:{content:[{type:`text`,text:typeof t==`string`?t:g(t)}]}},l=e=>{let t;try{t=JSON.stringify(e)??`{}`}catch{t=`{}`}let n=JSON.parse(t);if(typeof n!=`object`||!n)throw TypeError(`WebMCP tool arguments must be an object or array.`);return Object.defineProperty(n,Symbol.toPrimitive,{value:()=>t}),n},u=e=>({isError:!0,content:[{type:`text`,text:e}]}),d=e=>Array.isArray(e)?e.map(e=>e&&typeof e==`object`&&typeof e.text==`string`?e.text:``).filter(Boolean).join(`
|
|
2
|
-
`):``,f=e=>{if(e==null)return{status:`completed`};let t;try{t=JSON.parse(e)}catch{return{status:`completed`,result:e}}return typeof t==`object`&&t&&t.isError===!0?{status:`failed`,error:{message:d(t.content)||`The page tool reported an error.`}}:t===void 0?{status:`completed`}:{status:`completed`,result:t}},p=async e=>{if(typeof window>`u`||typeof window.confirm!=`function`)return!1;let t=m(e.args),n=`Allow the AI to call ${e.toolName}`+(t?`\n\nArguments:\n${t}`:``)+(e.description?`\n\n${e.description}`:``);return window.confirm(n)},m=e=>{if(e==null)return``;try{let t=JSON.stringify(e,null,2);return t.length>500?t.slice(0,500)+`…`:t}catch{return String(e)}},h=e=>(e.window===void 0||typeof window<`u`&&e.window===window)&&(e.origin===void 0||typeof location<`u`&&e.origin===location.origin),g=e=>{if(e===void 0)return``;try{return JSON.stringify(e)}catch{return String(e)}};export{r as WebMcpBridge};
|
package/dist/chunk-Dqa_GOcj.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=`4.34.0`;export{e as t};
|
package/dist/chunk-NUNdcnAZ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./chunk-D5BxWOFB.js";import{a as n,h as r,i,o as a,p as o,r as s}from"./chunk-BEDTp-dm.js";import{r as c,t as l}from"./chunk-CNhThrLX.js";import{r as u}from"./chunk-BAkaTZpd.js";import{r as d}from"./chunk-Crczk7D3.js";const f=[`--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`],p=()=>({wrapper:e(`span`,{className:`persona-composer-model-picker-wrapper`,attrs:{"data-persona-composer-model-picker-wrapper":``}}),chevron:e(`span`,{className:`persona-composer-model-picker-chevron`,attrs:{"aria-hidden":`true`}})});function m(n){let r=n.label??`Model`,i=n.presentation??`native`,a=null,o=e=>{let t=n.getSelectedModelId();return e.find(e=>e.id===t)??e[0]},s=()=>{let t=e(`select`,{className:`persona-composer-model-picker`,attrs:{"aria-label":r,"data-persona-composer-model-picker":``}}),i=``,s=()=>{let r=n.getModels(),a=r.map(e=>`${e.id}:${e.label}`).join(`|`);a!==i&&(i=a,t.replaceChildren(...r.map(t=>{let n=e(`option`,{attrs:{value:t.id}});return n.textContent=t.label,n}))),t.value=o(r)?.id??``};s(),a=s;let c=()=>{t.value&&n.onSelect(t.value)};t.addEventListener(`change`,c);let l=e=>e.stopPropagation();t.addEventListener(`click`,l);let{wrapper:u,chevron:d}=p();return u.append(t,d),{element:u,destroy:()=>{a===s&&(a=null),t.removeEventListener(`change`,c),t.removeEventListener(`click`,l)}}},c=()=>{let i=e(`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`}}),s=t(`span`,`persona-composer-model-picker-label`),c=t(`span`,`persona-composer-model-picker-suffix`);i.append(s,c);let d=e(`div`,{className:`persona-composer-model-menu`,attrs:{role:`listbox`,tabindex:`-1`,"aria-label":r,"data-persona-composer-model-menu":``}}),m=/* @__PURE__ */ new Map,h=``,g=null,_=()=>g?.isOpen===!0,v=(e=!1)=>{_()&&(g?.close(),i.setAttribute(`aria-expanded`,`false`),e&&i.focus())},y=e=>{let t=[...m.values()];t.length!==0&&t[(e%t.length+t.length)%t.length].focus()},b=e=>{if(_())return;g||=l({anchor:i,content:d,placement:`top-start`,offset:6,onDismiss:()=>i.setAttribute(`aria-expanded`,`false`)}),u(i,d,f),g.open(),i.setAttribute(`aria-expanded`,`true`);let t=[...m.keys()].indexOf(o(n.getModels())?.id??``);y(e??(t>=0?t:0))},x=e=>{v(!0),n.onSelect(e)},S=e=>{e.preventDefault(),e.stopPropagation();let t=e.currentTarget.getAttribute(`data-persona-model-option`);t&&x(t)},C=r=>{let i=e(`button`,{className:`persona-composer-model-option`,attrs:{type:`button`,role:`option`,tabindex:`-1`,"aria-selected":`false`,"data-persona-model-option":r.id}});if(r.icon){let e=n.renderIcon(r.icon,16,`currentColor`,1.5);if(e){let n=t(`span`,`persona-composer-model-option-icon`);n.appendChild(e),i.appendChild(n)}}let a=t(`span`,`persona-composer-model-option-body`),o=t(`span`,`persona-composer-model-option-label`);if(o.textContent=r.label,a.appendChild(o),r.description){let e=t(`span`,`persona-composer-model-option-description`);e.textContent=r.description,a.appendChild(e)}i.appendChild(a);let s=t(`span`,`persona-composer-model-option-check`);s.setAttribute(`aria-hidden`,`true`);let c=n.renderIcon(`check`,16,`currentColor`,2);return c&&s.appendChild(c),i.appendChild(s),i.addEventListener(`click`,S),i},w=()=>{let e=n.getModels(),t=e.map(e=>`${e.id}:${e.label}:${e.icon??``}:${e.description??``}`).join(`|`);if(t!==h){h=t;for(let e of m.values())e.removeEventListener(`click`,S);m.clear(),d.replaceChildren(...e.map(e=>{let t=C(e);return m.set(e.id,t),t}))}let a=o(e);for(let[e,t]of m)t.setAttribute(`aria-selected`,String(e===a?.id));s.textContent=a?.label??``;let l=n.getSuffix?.()??``;c.textContent=l,i.setAttribute(`aria-label`,[r,[a?.label,l].filter(Boolean).join(` `)].filter(Boolean).join(`: `))};w(),a=w;let T=e=>{e.preventDefault(),e.stopPropagation(),_()?v(!0):b()},E=e=>{e.key===`ArrowDown`?(e.preventDefault(),_()?y(0):b(0)):e.key===`ArrowUp`&&(e.preventDefault(),_()?y(-1):b(-1))},D=e=>{let t=[...m.values()],n=t.indexOf(e.target?.closest?.(`.persona-composer-model-option`));switch(e.key){case`ArrowDown`:e.preventDefault(),y(n+1);return;case`ArrowUp`:e.preventDefault(),y(n-1);return;case`Home`:e.preventDefault(),y(0);return;case`End`:e.preventDefault(),y(t.length-1);return;case`Escape`:e.preventDefault(),e.stopPropagation(),v(!0);return;case`Tab`:v(!0);return}};i.addEventListener(`click`,T),i.addEventListener(`keydown`,E),d.addEventListener(`keydown`,D);let{wrapper:O,chevron:k}=p();return O.append(i,k),{element:O,destroy:()=>{a===w&&(a=null),i.removeEventListener(`click`,T),i.removeEventListener(`keydown`,E),d.removeEventListener(`keydown`,D);for(let e of m.values())e.removeEventListener(`click`,S);m.clear(),g?.destroy(),g=null,d.remove()}}};return{action:{id:`core:model`,kind:`custom`,placement:`end`,order:700,presentation:i===`popover`?`bar`:`auto`,label:r,render:()=>i===`popover`?c():s()},repaint:()=>a?.()}}function h(n){let r=null;return{action:{id:i(n.groupId),kind:`custom`,placement:`start`,presentation:`bar`,label:n.getGroup()?.label??n.groupId,render:()=>{let i=e(`div`,{className:`persona-composer-segmented`,attrs:{"data-persona-composer-mode-group":n.groupId}}),a=/* @__PURE__ */ new Map,o=``,s=e=>{e.preventDefault(),e.stopPropagation();let t=e.currentTarget.getAttribute(`data-persona-composer-mode`);t&&(n.getActiveIds().includes(t)&&n.getGroup()?.selection===`single`||n.onSelect(t))},c=r=>{let i=e(`button`,{className:`persona-composer-segmented-item`,attrs:{type:`button`,"data-persona-composer-mode":r.id,"aria-label":r.label}});if(r.iconName){let e=n.renderIcon(r.iconName,16,`currentColor`,1.5);e&&i.appendChild(e)}let a=t(`span`,`persona-composer-segmented-label`);return a.textContent=r.shortLabel??r.label,i.appendChild(a),i.addEventListener(`click`,s),i},l=()=>{let e=n.getGroup();e?.label?(i.setAttribute(`role`,`group`),i.setAttribute(`aria-label`,e.label)):(i.removeAttribute(`role`),i.removeAttribute(`aria-label`));let t=n.getModes(),r=t.map(e=>`${e.id}:${e.shortLabel??e.label}:${e.iconName??``}`).join(`|`);if(r!==o){o=r;for(let e of a.values())e.removeEventListener(`click`,s);a.clear();let e=t.map(e=>{let t=c(e);return a.set(e.id,t),t});i.replaceChildren(...e)}let l=n.getActiveIds();for(let[e,t]of a)t.setAttribute(`aria-pressed`,String(l.includes(e)))};return l(),r=l,{element:i,destroy:()=>{r===l&&(r=null);for(let e of a.values())e.removeEventListener(`click`,s);a.clear()}}}},repaint:()=>r?.()}}function g(n){let r=n.row,i=``,a=!1,o=new Set(n.initialIds??[]),s=r=>{let i=e(`span`,{className:`persona-mention-chip persona-composer-mode-chip`,attrs:{"data-persona-composer-mode":r.id}});if(r.iconName){let e=t(`span`,`persona-mention-chip-icon`),a=n.renderIcon(r.iconName,12,`currentColor`,1.5);a&&e.appendChild(a),i.appendChild(e)}let a=t(`span`,`persona-mention-chip-label`);a.textContent=r.shortLabel??r.label,i.appendChild(a);let o=e(`button`,{className:`persona-mention-chip-remove`,attrs:{type:`button`,"aria-label":`Remove ${r.label}`}}),s=n.renderIcon(`x`,12,`currentColor`,2);return s?o.appendChild(s):o.textContent=`×`,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),n.onRemove(r.id)}),i.appendChild(o),i},c=()=>Array.from(r.querySelectorAll(`:scope > [data-persona-composer-mode]`)),l=e=>{e.setAttribute(`data-persona-chip-exit`,``),e.setAttribute(`aria-hidden`,`true`),e.style.pointerEvents=`none`;let t=()=>{e.remove(),d(r)},n=r.ownerDocument.defaultView,i=typeof n?.getComputedStyle==`function`?n.getComputedStyle(e).animationName:``;!i||i===`none`?t():(e.addEventListener(`animationend`,t,{once:!0}),e.addEventListener(`animationcancel`,t,{once:!0}))},u=()=>{for(let e of c())e.remove()};return{element:r,render:(e,t)=>{if(a)return;let n=t.filter(t=>e.includes(t.id)),u=n.map(e=>`${e.id}:${e.shortLabel??e.label}`).join(`|`);if(u===i)return;i=u;let f=/* @__PURE__ */ new Map;for(let e of c()){let t=e.getAttribute(`data-persona-composer-mode`);t&&n.some(e=>e.id===t)&&!e.hasAttribute(`data-persona-chip-exit`)?f.set(t,e):e.hasAttribute(`data-persona-chip-exit`)||l(e)}let p=r.firstChild;for(let e of n){let t=f.get(e.id);t||(t=s(e),o.has(e.id)||(t.setAttribute(`data-persona-chip-enter`,``),t.addEventListener(`animationend`,()=>t?.removeAttribute(`data-persona-chip-enter`),{once:!0}))),o.delete(e.id),t!==p&&r.insertBefore(t,p),p=t.nextSibling}d(r)},destroy:()=>{a=!0,u(),d(r)}}}function _(e){let t=null,r=null,i=/* @__PURE__ */ new Map,o=t=>{let n=i.get(t);if(n)return n;let r=h({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 i.set(t,r),r};return{collect:()=>{let i=[],c=e.getState().activeModeIds,l=new Set(e.getChipModes().map(e=>e.id)),u=/* @__PURE__ */ new Set;if(e.getModes().forEach((t,r)=>{if(a(t.groupId,e.getConfig().composer?.modeGroups)){let a=t.groupId;if(u.has(a))return;u.add(a);let s=o(a);s.action.order=n(r),s.action.label=e.getConfig().composer?.modeGroups?.find(e=>e.id===a)?.label??a,i.push(s.action);return}let d=c.includes(t.id)&&!l.has(t.id);i.push({id:s(t.id),kind:`button`,placement:`start`,order:n(r),presentation:d?`bar`:t.presentation??`auto`,label:t.label,shortLabel:d?t.shortLabel??t.label:t.shortLabel,iconName:t.iconName,trailingIconName:t.trailingIconName,pressed:c.includes(t.id),onSelect:()=>e.onModeChange(t.id)})}),e.getConfig().composer?.models?.length&&!e.hasComposerPlugin()){let n=e.getConfig().composer?.modelPicker?.presentation??`native`;t&&r===n||(r=n,t=m({renderIcon:e.renderIcon,getModels:()=>e.getConfig().composer?.models??[],getSelectedModelId:()=>e.getState().selectedModelId,onSelect:t=>e.onModelChange(t),presentation:n,getSuffix:()=>e.getConfig().composer?.modelPicker?.suffix})),i.push(t.action)}return i},repaint:()=>{for(let[t,n]of i)a(t,e.getConfig().composer?.modeGroups)?n.repaint():i.delete(t);t?.repaint()}}}export{o as createComposerActionRenderer,_ as createComposerCoreControls,g as createComposerModeChipRow,m as createComposerModelPickerAction,h as createComposerSegmentedModeAction,l as createPopover,r as ensureComposerActionStyles,c as isEditableEventTarget};
|