@runtypelabs/persona 4.33.0 → 4.34.0

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.
Files changed (186) hide show
  1. package/dist/activity-ui.d.cts +3 -15
  2. package/dist/activity-ui.d.ts +3 -15
  3. package/dist/animations/glyph-cycle.d.cts +1 -3
  4. package/dist/animations/glyph-cycle.d.ts +1 -3
  5. package/dist/animations/wipe.d.cts +1 -3
  6. package/dist/animations/wipe.d.ts +1 -3
  7. package/dist/approval-ui.cjs +2 -2
  8. package/dist/approval-ui.d.cts +3 -15
  9. package/dist/approval-ui.d.ts +3 -15
  10. package/dist/approval-ui.js +1 -1
  11. package/dist/artifacts-ui.cjs +1 -1
  12. package/dist/artifacts-ui.d.cts +3 -21
  13. package/dist/artifacts-ui.d.ts +3 -21
  14. package/dist/background-runtime.d.cts +2 -3
  15. package/dist/background-runtime.d.ts +2 -3
  16. package/dist/{chunk-gu34lr-P.js → chunk-Brdx4NCz.js} +1 -1
  17. package/dist/{chunk-dLJWKfOb.js → chunk-C-rux8Q9.js} +1 -1
  18. package/dist/{chunk-Ds_twaZn.js → chunk-C4v-HNhS.js} +1 -1
  19. package/dist/{chunk-Bkma5hIU.js → chunk-CE4seJxF.js} +1 -1
  20. package/dist/{chunk-D6U0E82p.js → chunk-CV8EPIhT.js} +1 -1
  21. package/dist/{chunk-ql5N2I_t.js → chunk-CWzHNuVK.js} +1 -1
  22. package/dist/{chunk-DbGLjU2P.js → chunk-CYpt7PsO.js} +1 -1
  23. package/dist/{chunk-DOZmcve8.js → chunk-Csr59G5V.js} +1 -1
  24. package/dist/{chunk-DW7Vg_l2.js → chunk-CxNPSY-b.js} +1 -1
  25. package/dist/chunk-Dqa_GOcj.js +1 -0
  26. package/dist/chunk-DsWv3EGF.js +1 -0
  27. package/dist/{chunk-C7-m0EmI.js → chunk-NUNdcnAZ.js} +1 -1
  28. package/dist/{chunk-CXQJG7pb.js → chunk-YMkMvAsa.js} +2 -2
  29. package/dist/{chunk-C-EHtpbB.js → chunk-h5aOI_Pa.js} +1 -1
  30. package/dist/chunk-kizhspe5.js +1 -0
  31. package/dist/client-dispatch.js +1 -1
  32. package/dist/client-history.js +1 -1
  33. package/dist/client-stream.js +1 -1
  34. package/dist/{code-generators-DqauYyfX.d.cts → code-generators-DPAqTcAz.d.cts} +0 -2
  35. package/dist/{code-generators-DqauYyfX.d.ts → code-generators-DPAqTcAz.d.ts} +0 -2
  36. package/dist/codegen.cjs +1 -1
  37. package/dist/codegen.d.cts +1 -1
  38. package/dist/codegen.d.ts +1 -1
  39. package/dist/codegen.js +1 -1
  40. package/dist/composer-actions-runtime.cjs +1 -1
  41. package/dist/composer-actions-runtime.d.cts +4 -20
  42. package/dist/composer-actions-runtime.d.ts +4 -20
  43. package/dist/composer-actions-runtime.js +1 -1
  44. package/dist/{composer-input-DnqGCXZz.d.ts → composer-input-i_FiUp6J.d.cts} +1 -7
  45. package/dist/{composer-input-DnqGCXZz.d.cts → composer-input-i_FiUp6J.d.ts} +1 -7
  46. package/dist/{composer-store-6Iwy6WLI.d.ts → composer-store-DhGNgG7Z.d.cts} +1 -3
  47. package/dist/{composer-store-6Iwy6WLI.d.cts → composer-store-DhGNgG7Z.d.ts} +1 -3
  48. package/dist/config-diagnostics.d.cts +0 -2
  49. package/dist/config-diagnostics.d.ts +0 -2
  50. package/dist/{context-mention-manager-B-rHF98n.d.ts → context-mention-manager-DL-xwGfL.d.cts} +2 -6
  51. package/dist/{context-mention-manager-B-rHF98n.d.cts → context-mention-manager-DL-xwGfL.d.ts} +2 -6
  52. package/dist/context-mentions-inline.cjs +1 -1
  53. package/dist/context-mentions-inline.d.cts +2 -4
  54. package/dist/context-mentions-inline.d.ts +2 -4
  55. package/dist/context-mentions-inline.js +1 -1
  56. package/dist/context-mentions.cjs +1 -1
  57. package/dist/context-mentions.d.cts +3 -9
  58. package/dist/context-mentions.d.ts +3 -9
  59. package/dist/{defaults-BuOjqUAG.d.ts → defaults-Bga2Xrsp.d.cts} +1 -5
  60. package/dist/{defaults-BuOjqUAG.d.cts → defaults-Bga2Xrsp.d.ts} +1 -5
  61. package/dist/dictation-runtime.cjs +1 -1
  62. package/dist/dictation-runtime.d.cts +4 -13
  63. package/dist/dictation-runtime.d.ts +4 -13
  64. package/dist/dictation-runtime.js +1 -1
  65. package/dist/{dom-context-DHTabIn7.d.cts → dom-context-Bw-_9Evh.d.cts} +0 -2
  66. package/dist/{dom-context-DHTabIn7.d.ts → dom-context-Bw-_9Evh.d.ts} +0 -2
  67. package/dist/event-stream-view.cjs +1 -1
  68. package/dist/event-stream-view.d.cts +3 -16
  69. package/dist/event-stream-view.d.ts +3 -16
  70. package/dist/{fallback-speech-engine-SqEfkGda.d.ts → fallback-speech-engine-kLdyPcmk.d.cts} +1 -3
  71. package/dist/{fallback-speech-engine-SqEfkGda.d.cts → fallback-speech-engine-kLdyPcmk.d.ts} +1 -3
  72. package/dist/{feature-preferences-DqAmje-2.d.ts → feature-preferences-CmwZGKrf.d.cts} +1 -5
  73. package/dist/{feature-preferences-DqAmje-2.d.cts → feature-preferences-CmwZGKrf.d.ts} +1 -5
  74. package/dist/forms-ui.d.cts +2 -4
  75. package/dist/forms-ui.d.ts +2 -4
  76. package/dist/{history-confirm-dialog-B3L7QNcO.d.cts → history-confirm-dialog-i46-lPN_.d.cts} +2 -14
  77. package/dist/{history-confirm-dialog-B3L7QNcO.d.ts → history-confirm-dialog-i46-lPN_.d.ts} +2 -14
  78. package/dist/history-shell.cjs +1 -1
  79. package/dist/history-shell.d.cts +8 -27
  80. package/dist/history-shell.d.ts +8 -27
  81. package/dist/history-shell.js +1 -1
  82. package/dist/history-view.d.cts +1 -1
  83. package/dist/history-view.d.ts +1 -1
  84. package/dist/icons-extra.cjs +1 -1
  85. package/dist/icons-extra.d.cts +0 -2
  86. package/dist/icons-extra.d.ts +0 -2
  87. package/dist/index.cjs +45 -45
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.d.cts +10 -10
  90. package/dist/index.d.ts +10 -10
  91. package/dist/index.global.js +1 -1
  92. package/dist/index.global.js.map +1 -1
  93. package/dist/index.js +49 -49
  94. package/dist/index.js.map +1 -1
  95. package/dist/install.global.js +1 -1
  96. package/dist/install.global.js.map +1 -1
  97. package/dist/launcher.global.js +2 -2
  98. package/dist/launcher.global.js.map +1 -1
  99. package/dist/{loading-label-runtime-loader-JecjOfJS.d.ts → loading-label-runtime-loader-Ccr3ETd3.d.cts} +1 -3
  100. package/dist/{loading-label-runtime-loader-JecjOfJS.d.cts → loading-label-runtime-loader-Ccr3ETd3.d.ts} +1 -3
  101. package/dist/loading-label-runtime.cjs +1 -1
  102. package/dist/loading-label-runtime.d.cts +1 -1
  103. package/dist/loading-label-runtime.d.ts +1 -1
  104. package/dist/loading-label-runtime.js +1 -1
  105. package/dist/markdown-parsers.js +1 -1
  106. package/dist/{message-bubble-CBYtpDsT.d.ts → message-bubble-C6AVaH7f.d.cts} +20 -3
  107. package/dist/{message-bubble-CBYtpDsT.d.cts → message-bubble-C6AVaH7f.d.ts} +20 -3
  108. package/dist/{plugin-kit-C1mRjLgW.d.cts → plugin-kit-BVggqE3C.d.cts} +0 -2
  109. package/dist/{plugin-kit-C1mRjLgW.d.ts → plugin-kit-BVggqE3C.d.ts} +0 -2
  110. package/dist/plugin-kit.d.cts +1 -1
  111. package/dist/plugin-kit.d.ts +1 -1
  112. package/dist/preferences-runtime.cjs +1 -1
  113. package/dist/preferences-runtime.d.cts +1 -1
  114. package/dist/preferences-runtime.d.ts +1 -1
  115. package/dist/preferences-runtime.js +1 -1
  116. package/dist/{preview-_UJwwt2L.d.cts → preview-BMdRffo4.d.cts} +2 -6
  117. package/dist/{preview-_UJwwt2L.d.ts → preview-BMdRffo4.d.ts} +2 -6
  118. package/dist/{registry-B5ZV3K-h.d.ts → registry-B16l8s1b.d.cts} +1 -8
  119. package/dist/{registry-B5ZV3K-h.d.cts → registry-B16l8s1b.d.ts} +1 -8
  120. package/dist/{session-Bys8_XuB.d.cts → session-CtZHe7fc.d.cts} +8 -92
  121. package/dist/{session-Bys8_XuB.d.ts → session-CtZHe7fc.d.ts} +8 -92
  122. package/dist/session-reconnect.d.cts +2 -4
  123. package/dist/session-reconnect.d.ts +2 -4
  124. package/dist/smart-dom-reader.d.cts +2 -8
  125. package/dist/smart-dom-reader.d.ts +2 -8
  126. package/dist/testing.d.cts +0 -2
  127. package/dist/testing.d.ts +0 -2
  128. package/dist/theme-editor-preview.cjs +42 -42
  129. package/dist/theme-editor-preview.d.cts +1 -1
  130. package/dist/theme-editor-preview.d.ts +1 -1
  131. package/dist/theme-editor-preview.js +25 -25
  132. package/dist/theme-editor.cjs +25 -5
  133. package/dist/theme-editor.d.cts +2 -22
  134. package/dist/theme-editor.d.ts +2 -22
  135. package/dist/theme-editor.js +1 -1
  136. package/dist/theme-reference.cjs +1 -1
  137. package/dist/theme-reference.d.cts +2 -4
  138. package/dist/theme-reference.d.ts +2 -4
  139. package/dist/theme-reference.js +1 -1
  140. package/dist/{tool-loading-animation-d5qAQcwv.d.ts → tool-loading-animation-D2cyFvmM.d.cts} +1 -7
  141. package/dist/{tool-loading-animation-d5qAQcwv.d.cts → tool-loading-animation-D2cyFvmM.d.ts} +1 -7
  142. package/dist/{tooltip-BkW-8MnD.d.cts → tooltip-DbXkAuJL.d.cts} +0 -2
  143. package/dist/{tooltip-BkW-8MnD.d.ts → tooltip-DbXkAuJL.d.ts} +0 -2
  144. package/dist/{turn-activity-ui-q6fHVnx-.d.cts → turn-activity-ui-Do1Nd-Ow.d.cts} +2 -12
  145. package/dist/{turn-activity-ui-q6fHVnx-.d.ts → turn-activity-ui-Do1Nd-Ow.d.ts} +2 -12
  146. package/dist/turn-activity-ui.d.cts +1 -1
  147. package/dist/turn-activity-ui.d.ts +1 -1
  148. package/dist/{types-B_mj21jg.d.cts → types-BC7MRxO5.d.cts} +76 -29
  149. package/dist/{types-B_mj21jg.d.ts → types-BC7MRxO5.d.ts} +76 -29
  150. package/dist/ui-extras.js +3 -3
  151. package/dist/voice-client-tools.d.cts +1 -3
  152. package/dist/voice-client-tools.d.ts +1 -3
  153. package/dist/voice-runtime.cjs +1 -1
  154. package/dist/voice-runtime.d.cts +2 -12
  155. package/dist/voice-runtime.d.ts +2 -12
  156. package/dist/voice-runtime.js +2 -2
  157. package/dist/voice-worklet-player.d.cts +2 -6
  158. package/dist/voice-worklet-player.d.ts +2 -6
  159. package/dist/{webmcp-runtime-entry-ClEO3qdI.d.ts → webmcp-runtime-entry-B8g46vS0.d.cts} +1 -5
  160. package/dist/{webmcp-runtime-entry-ClEO3qdI.d.cts → webmcp-runtime-entry-B8g46vS0.d.ts} +1 -5
  161. package/dist/webmcp-runtime.d.cts +1 -1
  162. package/dist/webmcp-runtime.d.ts +1 -1
  163. package/dist/widget.css +1 -1
  164. package/package.json +4 -4
  165. package/src/components/event-stream-view.test.ts +5 -0
  166. package/src/components/message-bubble.ts +26 -6
  167. package/src/components/scroll-to-bottom.test.ts +135 -0
  168. package/src/components/scroll-to-bottom.ts +50 -13
  169. package/src/components/user-message-collapse.ts +117 -0
  170. package/src/defaults.ts +6 -0
  171. package/src/styles/widget.css +56 -0
  172. package/src/theme-reference.ts +2 -2
  173. package/src/types/theme.ts +29 -0
  174. package/src/types.ts +49 -5
  175. package/src/ui.scroll-additive.test.ts +219 -117
  176. package/src/ui.scroll.test.ts +176 -13
  177. package/src/ui.ts +230 -107
  178. package/src/ui.turn-activity.test.ts +7 -7
  179. package/src/ui.user-message-collapse.test.ts +540 -0
  180. package/src/utils/auto-follow.test.ts +0 -38
  181. package/src/utils/auto-follow.ts +0 -35
  182. package/src/utils/theme.test.ts +23 -0
  183. package/src/utils/tokens.ts +16 -0
  184. package/dist/chunk-CVMIncEY.js +0 -1
  185. package/dist/chunk-DVgzoVCB.js +0 -1
  186. package/dist/chunk-d54BJdKd.js +0 -1
@@ -1,19 +1,12 @@
1
- import { Ct as AgentWidgetMessage, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.cjs";
2
- import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-q6fHVnx-.cjs";
3
- import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-JecjOfJS.cjs";
4
- //#region src/components/tool-bubble.d.ts
1
+ import { Ct as AgentWidgetMessage, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-BC7MRxO5.cjs";
2
+ import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-Do1Nd-Ow.cjs";
3
+ import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-Ccr3ETd3.cjs";
5
4
  export declare const updateToolBubbleUI: (messageId: string, bubble: HTMLElement, expansionState: Set<string>, config?: AgentWidgetConfig) => void;
6
5
  export declare const createToolBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Set<string>) => HTMLElement;
7
- //#endregion
8
- //#region src/components/reasoning-bubble.d.ts
9
6
  export declare const updateReasoningBubbleUI: (messageId: string, bubble: HTMLElement, expansionState: Set<string>, config?: AgentWidgetConfig) => void;
10
7
  export declare const createReasoningBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Set<string>) => HTMLElement;
11
- //#endregion
12
- //#region src/utils/defaults-provenance.d.ts
13
8
  declare function suppliedPath(value: unknown, path: string): "absent" | "clear" | "explicit";
14
9
  declare function defaultProvenance(config: object | undefined, paths: readonly string[]): readonly string[];
15
- //#endregion
16
- //#region src/activity-dependencies.d.ts
17
10
  /** Share core's style/provenance functions with the optional rendering chunks. */
18
11
  declare const activityDependencies: {
19
12
  defaultProvenance: typeof defaultProvenance;
@@ -22,13 +15,9 @@ declare const activityDependencies: {
22
15
  getExplicitLegacyStyle: typeof getExplicitLegacyStyle$1;
23
16
  };
24
17
  type ActivityDependencies = typeof activityDependencies;
25
- //#endregion
26
- //#region src/components/activity-deps.d.ts
27
18
  export declare const initActivityUi: (icon: typeof renderLucideIcon, loadingLabels: LoadingLabelRuntime, dependencies: ActivityDependencies) => void;
28
19
  /** Shared bridge, initialized only after both optional chunks are ready. */
29
20
  export declare const turnUi: Partial<TurnActivityRuntime>;
30
- //#endregion
31
- //#region src/activity-ui.d.ts
32
21
  type DisclosureAnchor = {
33
22
  spacerHeight: number;
34
23
  initialSpacerHeight: number;
@@ -53,6 +42,5 @@ export declare function createActivityLifecycle(root: HTMLElement, getConfig: ()
53
42
  destroy(): void;
54
43
  observeMessages(messages: AgentWidgetMessage[], ids: Set<string>): void;
55
44
  };
56
- //#endregion
57
45
  export { groupToolRows, updateActivityElapsed };
58
46
  export {}
@@ -1,19 +1,12 @@
1
- import { Ct as AgentWidgetMessage, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.js";
2
- import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-q6fHVnx-.js";
3
- import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-JecjOfJS.js";
4
- //#region src/components/tool-bubble.d.ts
1
+ import { Ct as AgentWidgetMessage, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-BC7MRxO5.js";
2
+ import { a as hasExplicitThemeStyle$1, c as updateActivityElapsed, i as getExplicitLegacyStyle$1, n as TurnActivityRuntime, o as groupToolRows, s as ActivityKind } from "./turn-activity-ui-Do1Nd-Ow.js";
3
+ import { t as LoadingLabelRuntime } from "./loading-label-runtime-loader-Ccr3ETd3.js";
5
4
  export declare const updateToolBubbleUI: (messageId: string, bubble: HTMLElement, expansionState: Set<string>, config?: AgentWidgetConfig) => void;
6
5
  export declare const createToolBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Set<string>) => HTMLElement;
7
- //#endregion
8
- //#region src/components/reasoning-bubble.d.ts
9
6
  export declare const updateReasoningBubbleUI: (messageId: string, bubble: HTMLElement, expansionState: Set<string>, config?: AgentWidgetConfig) => void;
10
7
  export declare const createReasoningBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Set<string>) => HTMLElement;
11
- //#endregion
12
- //#region src/utils/defaults-provenance.d.ts
13
8
  declare function suppliedPath(value: unknown, path: string): "absent" | "clear" | "explicit";
14
9
  declare function defaultProvenance(config: object | undefined, paths: readonly string[]): readonly string[];
15
- //#endregion
16
- //#region src/activity-dependencies.d.ts
17
10
  /** Share core's style/provenance functions with the optional rendering chunks. */
18
11
  declare const activityDependencies: {
19
12
  defaultProvenance: typeof defaultProvenance;
@@ -22,13 +15,9 @@ declare const activityDependencies: {
22
15
  getExplicitLegacyStyle: typeof getExplicitLegacyStyle$1;
23
16
  };
24
17
  type ActivityDependencies = typeof activityDependencies;
25
- //#endregion
26
- //#region src/components/activity-deps.d.ts
27
18
  export declare const initActivityUi: (icon: typeof renderLucideIcon, loadingLabels: LoadingLabelRuntime, dependencies: ActivityDependencies) => void;
28
19
  /** Shared bridge, initialized only after both optional chunks are ready. */
29
20
  export declare const turnUi: Partial<TurnActivityRuntime>;
30
- //#endregion
31
- //#region src/activity-ui.d.ts
32
21
  type DisclosureAnchor = {
33
22
  spacerHeight: number;
34
23
  initialSpacerHeight: number;
@@ -53,6 +42,5 @@ export declare function createActivityLifecycle(root: HTMLElement, getConfig: ()
53
42
  destroy(): void;
54
43
  observeMessages(messages: AgentWidgetMessage[], ids: Set<string>): void;
55
44
  };
56
- //#endregion
57
45
  export { groupToolRows, updateActivityElapsed };
58
46
  export {}
@@ -1,6 +1,4 @@
1
- import { Qi as StreamAnimationPlugin } from "../types-B_mj21jg.cjs";
2
- //#region src/animations/glyph-cycle.d.ts
1
+ import { Qi as StreamAnimationPlugin } from "../types-BC7MRxO5.cjs";
3
2
  export declare const glyphCycle: StreamAnimationPlugin;
4
- //#endregion
5
3
  export { glyphCycle as default };
6
4
  export {}
@@ -1,6 +1,4 @@
1
- import { Qi as StreamAnimationPlugin } from "../types-B_mj21jg.js";
2
- //#region src/animations/glyph-cycle.d.ts
1
+ import { Qi as StreamAnimationPlugin } from "../types-BC7MRxO5.js";
3
2
  export declare const glyphCycle: StreamAnimationPlugin;
4
- //#endregion
5
3
  export { glyphCycle as default };
6
4
  export {}
@@ -1,6 +1,4 @@
1
- import { Qi as StreamAnimationPlugin } from "../types-B_mj21jg.cjs";
2
- //#region src/animations/wipe.d.ts
1
+ import { Qi as StreamAnimationPlugin } from "../types-BC7MRxO5.cjs";
3
2
  export declare const wipe: StreamAnimationPlugin;
4
- //#endregion
5
3
  export { wipe as default };
6
4
  export {}
@@ -1,6 +1,4 @@
1
- import { Qi as StreamAnimationPlugin } from "../types-B_mj21jg.js";
2
- //#region src/animations/wipe.d.ts
1
+ import { Qi as StreamAnimationPlugin } from "../types-BC7MRxO5.js";
3
2
  export declare const wipe: StreamAnimationPlugin;
4
- //#endregion
5
3
  export { wipe as default };
6
4
  export {}
@@ -1,8 +1,8 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports);const t=`The chat restarted and this browser tool was interrupted. Request a fresh proposal to try again.`,n=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},r=(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},i=e=>{if(e===null)return`null`;if(e===void 0)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}},a=e=>{if(typeof e!=`string`)return;let t=e.trim(),n=/^#([\da-f]{3}|[\da-f]{6})$/i.exec(t)?.[1];if(n){let e=n.length===3?[...n].map(e=>e+e).join(``):n;return[0,2,4].map(t=>parseInt(e.slice(t,t+2),16))}let r=/^rgba?\(\s*([^)]*)\)$/i.exec(t);if(!r)return;let i=r[1].trim().split(/\s*[,/]\s*|\s+/);if(i.length===4&&/^(?:1(?:\.0+)?|100%)$/.test(i[3])&&i.pop(),i.length!==3)return;let a=i.map(e=>/^\d+(?:\.\d+)?%?$/.test(e)?Number.parseFloat(e)*(e.endsWith(`%`)?2.55:1):NaN);if(!a.some(e=>!Number.isFinite(e)||e<0||e>255))return a},o=e=>e.reduce((e,t,n)=>{let r=t/255;return e+(r<=.04045?r/12.92:((r+.055)/1.055)**2.4)*[.2126,.7152,.0722][n]},0),s=e=>{let t=a(e?.neutral);return t?o(t)<.18?`dark`:`light`:void 0},c=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function l(e,t){let n=t.split(`.`);for(let t=0;t<n.length;t++){let r=n[t];if(!c(e)||!Object.prototype.hasOwnProperty.call(e,r))return`absent`;if(e=e[r],e===void 0||t<n.length-1&&!c(e))return`clear`}return`explicit`}const u=Symbol.for(`persona.styleProvenance`),d=(e,t)=>{for(let n of t.split(`.`)){if(typeof e!=`object`||!e)return;e=e[n]}return e},f=(e,t)=>{let n=e?.[u];return!n||!Object.prototype.hasOwnProperty.call(n.values,t)||d(e,t)!==n.values[t]?l(e,t)===`explicit`:n.explicit.includes(t)},p=(e,t)=>f(e,t)?d(e,t):void 0,m=(e,t,n)=>{let r=e,i=n??r?.colorScheme??s(r?.brand)??`light`,a=i===`dark`||i===`auto`&&(typeof document<`u`&&document.documentElement.classList.contains(`dark`)||typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches);return f(e,`theme.components.${t}`)||a&&f(e,`darkTheme.components.${t}`)},h=(e,t)=>`var(--persona-components-approval-${e.split(`.`).join(`-`)}, ${t})`,g=(e,t)=>`var(--persona-consumer-approval-${e.split(`.`).join(`-`)}, ${t})`;function _(e,t){let n=t=>{let n=p(e,`approval.${t}`);return typeof n==`string`?n:void 0},r=(e,t,r)=>n(e)||h(t,g(`requested.text`,r)),i=(t,r)=>n(t)??(m(e,`approval.${r}`)?`var(--persona-components-approval-${r.split(`.`).join(`-`)})`:void 0),a=t===`public`,o=`var(--persona-muted, #6b7280)`,s=a?`var(--persona-primary, #171717)`:`var(--persona-text, #0b0b0b)`,c=a?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:`var(--persona-text, #1f2937)`,l=n(`shadow`);return{backgroundColor:i(`backgroundColor`,`requested.background`),borderColor:i(`borderColor`,`requested.border`),shadow:l===void 0?i(`shadow`,`requested.shadow`):l.trim()===``?`none`:l,titleColor:r(`titleColor`,`requested.titleColor`,s),descriptionColor:r(`descriptionColor`,`requested.descriptionColor`,o),reasonColor:n(`reasonColor`)||n(`descriptionColor`)||h(`requested.reasonColor`,g(`requested.text`,o)),parameterBackgroundColor:n(`parameterBackgroundColor`)||h(`requested.parameters.background`,a?`var(--persona-container, #f8fafc)`:`var(--persona-container, rgba(11, 11, 11, 0.04))`),parameterTextColor:r(`parameterTextColor`,`requested.parameters.foreground`,a?`var(--persona-primary, #171717)`:`var(--persona-text, #1f2937)`),approveButtonColor:i(`approveButtonColor`,`approve.background`),approveButtonTextColor:n(`approveButtonTextColor`)||g(`approve.foreground`,`var(--persona-button-primary-fg)`),denyButtonColor:n(`denyButtonColor`)??(a?g(`deny.background`,`transparent`):void 0),denyButtonTextColor:n(`denyButtonTextColor`)||g(`deny.foreground`,c),denyBorderColor:n(`denyButtonTextColor`)||g(`deny.foreground`,`var(--persona-palette-colors-error-200)`),pendingIconColor:n(`titleColor`)||h(`requested.titleColor`,g(`requested.text`,`currentColor`))}}let v;const y=(...e)=>v?.render(...e)??null,b=(...e)=>v?.node(...e)??null;let x;const S=()=>{if(!x)throw Error(`Approval UI requires core popover dependencies.`);return x};let C=()=>void 0;const w=e=>{C=e.webMcpToolTitle,e.icons&&(v=e.icons),e.popover&&(x=e.popover)},T=e=>C(e),E=e=>{let t=(e.startsWith(`webmcp:`)?e.slice(7):e).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[_\-\s.]+/).filter(Boolean);if(t.length===0)return e;let n=t.join(` `).toLowerCase();return n.charAt(0).toUpperCase()+n.slice(1)},D=e=>e?.approval===!1?void 0:e?.approval,O=(e,t,n)=>{let r=D(n)?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},k=(e,t,n)=>{let r=D(n);e.setAttribute(`aria-expanded`,t?`true`:`false`);let i=e.querySelector(`[data-approval-details-label]`);i&&(i.textContent=t?r?.hideDetailsLabel??`Hide details`:r?.showDetailsLabel??`Show details`);let a=e.querySelector(`[data-approval-details-chevron]`);if(a){a.innerHTML=``;let e=y(t?`chevron-up`:`chevron-down`,14,`currentColor`,2);e&&a.appendChild(e)}},A=(e,t,n,r=/* @__PURE__ */ new Map)=>{let i=t.querySelector(`button[data-bubble-type="approval"]`),a=t.querySelector(`[data-approval-details]`);if(!i||!a)return;let o=O(e,r,n);k(i,o,n),a.style.display=o?``:`none`},j=(e,t,n,r)=>{let i=_(n,`public`);if(N(t,n),!r)return;let a=t.querySelector(`[data-approval-status]`);if(a){a.textContent=r.status===`approved`?`Approved`:r.status===`denied`?`Denied`:r.status===`timeout`&&r.interrupted?`Interrupted`:r.status===`timeout`?`Timeout`:`Pending`;let e=r.status===`approved`?`success`:r.status===`denied`?`error`:r.status===`timeout`?`warning`:void 0;e&&(a.className=`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`,a.style.backgroundColor=`var(--persona-palette-colors-${e}-100)`,a.style.color=`var(--persona-palette-colors-${e}-700)`),a.setAttribute(`data-approval-status`,r.status)}let o=t.querySelector(`[data-approval-icon]`);if(o){o.innerHTML=``;let e=r.status===`denied`?`shield-x`:r.status===`timeout`?`shield-alert`:`shield-check`,t=r.status===`approved`?`var(--persona-feedback-success, var(--persona-palette-colors-success-600))`:r.status===`denied`?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:r.status===`timeout`?`var(--persona-feedback-warning, var(--persona-palette-colors-warning-600))`:i.pendingIconColor,n=y(e,20,t,2);n&&o.appendChild(n)}let s=t.querySelector(`[data-approval-buttons]`);s&&(s.style.display=r.status===`pending`?``:`none`)},M=(e,a,o=/* @__PURE__ */ new Map)=>{let s=e.approval,c=D(a),l=s?.status===`pending`,u=n(`div`,`persona-approval-bubble persona-w-full persona-rounded-2xl persona-border persona-shadow-sm persona-overflow-hidden`);if(u.id=`bubble-${e.id}`,u.setAttribute(`data-message-id`,e.id),!s)return N(u,a),u;let d=n(`div`,`persona-flex persona-items-start persona-gap-3 persona-px-4 persona-py-3`),f=r(`div`,{className:`persona-flex-shrink-0 persona-mt-0.5`,attrs:{"data-approval-icon":`true`}}),p=n(`div`,`persona-flex-1 persona-min-w-0`),m=n(`div`,`persona-flex persona-items-center persona-gap-2`),h=r(`span`,{className:`persona-text-sm persona-font-medium persona-text-persona-primary`,attrs:{"data-approval-title":`true`},text:c?.title??`Approval Required`});if(m.appendChild(h),!l){let e=n(`span`,`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`);e.setAttribute(`data-approval-status`,s.status),m.appendChild(e)}if(p.appendChild(m),s.status===`timeout`&&s.interrupted){let e=n(`p`,`persona-text-sm`);e.textContent=t,p.appendChild(e)}let g=s.toolType===`webmcp`||s.toolName.startsWith(`webmcp:`)?T(s.toolName):void 0,_=c?.formatDescription?.({toolName:s.toolName,toolType:s.toolType,description:s.description,parameters:s.parameters,...g?{displayTitle:g}:{},...s.reason?{reason:s.reason}:{}}),v=!s.toolName,b=_||(v?s.description:`The assistant wants to use “${g??E(s.toolName)}”.`),x=r(`p`,{className:`persona-text-sm persona-mt-0.5 persona-text-persona-muted`,attrs:{"data-approval-summary":`true`},text:b});if(p.appendChild(x),s.reason){let e=n(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-reason`,`true`);let t=n(`span`,`persona-font-medium`);t.textContent=`${c?.reasonLabel??`Agent's stated reason:`} `,e.appendChild(t),e.appendChild(document.createTextNode(s.reason)),p.appendChild(e)}let S=c?.detailsDisplay??`collapsed`,C=!!s.description&&!v,w=C||!!s.parameters;if(S!==`hidden`&&w){let t=O(e.id,o,a),r=n(`button`,`persona-inline-flex persona-items-center persona-gap-1 persona-mt-1 persona-p-0 persona-border-none persona-bg-transparent persona-text-xs persona-font-medium persona-cursor-pointer persona-text-persona-muted`);r.type=`button`,r.setAttribute(`data-expand-header`,`true`),r.setAttribute(`data-bubble-type`,`approval`);let c=n(`span`);c.setAttribute(`data-approval-details-label`,`true`);let l=n(`span`,`persona-inline-flex persona-items-center`);l.setAttribute(`data-approval-details-chevron`,`true`),r.append(c,l),k(r,t,a),p.appendChild(r);let u=n(`div`);if(u.setAttribute(`data-approval-details`,`true`),u.style.display=t?``:`none`,C){let e=n(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-description`,`true`),e.textContent=s.description,u.appendChild(e)}if(s.parameters){let e=n(`pre`,`persona-mt-2 persona-text-xs persona-p-2 persona-rounded persona-overflow-x-auto persona-max-h-32 persona-bg-persona-container persona-text-persona-primary`);e.setAttribute(`data-approval-parameters`,`true`),e.style.fontSize=`0.75rem`,e.style.lineHeight=`1rem`,e.textContent=i(s.parameters),u.appendChild(e)}p.appendChild(u)}if(l){let e=n(`div`,`persona-flex persona-gap-2 persona-mt-2`);e.setAttribute(`data-approval-buttons`,`true`);for(let t of[`approve`,`deny`]){let n=r(`button`,{className:`persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-cursor-pointer`+(t===`approve`?` persona-border-none`:``),attrs:{type:`button`,"data-approval-action":t}}),i=y(t===`approve`?`shield-check`:`shield-x`,14,`currentColor`,2);i&&(i.style.marginRight=`4px`,n.appendChild(i)),n.appendChild(document.createTextNode(t===`approve`?c?.approveLabel??`Approve`:c?.denyLabel??`Deny`)),e.appendChild(n)}p.appendChild(e)}return d.append(f,p),u.appendChild(d),j(e.id,u,a,s),u},N=(e,t)=>{let n=_(t,`public`);e.style.backgroundColor=n.backgroundColor??`var(--persona-approval-bg)`,e.style.borderColor=n.borderColor??`var(--persona-approval-border)`,e.style.boxShadow=n.shadow===void 0?`var(--persona-approval-shadow)`:n.shadow.trim()||`none`;let r=(t,n)=>{e.querySelectorAll(t).forEach(e=>{e.style.color=n??``})};e.querySelector(`[data-approval-status]`)||e.querySelector(`[data-approval-icon] svg`)?.setAttribute(`stroke`,n.pendingIconColor),r(`[data-approval-title]`,n.titleColor),r(`[data-approval-summary], [data-approval-description], button[data-bubble-type='approval']`,n.descriptionColor),r(`[data-approval-reason]`,n.reasonColor),r(`[data-approval-parameters]`,n.parameterTextColor),e.querySelectorAll(`[data-approval-parameters]`).forEach(e=>{e.style.backgroundColor=n.parameterBackgroundColor??``});for(let t of[`approve`,`deny`]){let r=e.querySelector(`[data-approval-action="${t}"]`);if(!r)continue;let i=t===`approve`?n.approveButtonTextColor:n.denyButtonTextColor;r.style.backgroundColor=(t===`approve`?n.approveButtonColor??`var(--persona-approval-approve-bg)`:n.denyButtonColor)??``,r.style.color=i??``,r.querySelector(`svg`)?.setAttribute(`stroke`,i??`currentColor`),t===`deny`&&(r.style.border=`1px solid ${n.denyBorderColor}`)}};
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports);const t=`The chat restarted and this browser tool was interrupted. Request a fresh proposal to try again.`,n=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},r=(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},i=e=>{if(e===null)return`null`;if(e===void 0)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}},a=e=>{if(typeof e!=`string`)return;let t=e.trim(),n=/^#([\da-f]{3}|[\da-f]{6})$/i.exec(t)?.[1];if(n){let e=n.length===3?[...n].map(e=>e+e).join(``):n;return[0,2,4].map(t=>parseInt(e.slice(t,t+2),16))}let r=/^rgba?\(\s*([^)]*)\)$/i.exec(t);if(!r)return;let i=r[1].trim().split(/\s*[,/]\s*|\s+/);if(i.length===4&&/^(?:1(?:\.0+)?|100%)$/.test(i[3])&&i.pop(),i.length!==3)return;let a=i.map(e=>/^\d+(?:\.\d+)?%?$/.test(e)?Number.parseFloat(e)*(e.endsWith(`%`)?2.55:1):NaN);if(!a.some(e=>!Number.isFinite(e)||e<0||e>255))return a},o=e=>e.reduce((e,t,n)=>{let r=t/255;return e+(r<=.04045?r/12.92:((r+.055)/1.055)**2.4)*[.2126,.7152,.0722][n]},0),s=e=>{let t=a(e?.neutral);return t?o(t)<.18?`dark`:`light`:void 0},c=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function l(e,t){let n=t.split(`.`);for(let t=0;t<n.length;t++){let r=n[t];if(!c(e)||!Object.prototype.hasOwnProperty.call(e,r))return`absent`;if(e=e[r],e===void 0||t<n.length-1&&!c(e))return`clear`}return`explicit`}const u=Symbol.for(`persona.styleProvenance`),d=(e,t)=>{for(let n of t.split(`.`)){if(typeof e!=`object`||!e)return;e=e[n]}return e},f=(e,t)=>{let n=e?.[u];return!n||!Object.prototype.hasOwnProperty.call(n.values,t)||d(e,t)!==n.values[t]?l(e,t)===`explicit`:n.explicit.includes(t)},p=(e,t)=>f(e,t)?d(e,t):void 0,m=(e,t,n)=>{let r=e,i=n??r?.colorScheme??s(r?.brand)??`light`,a=i===`dark`||i===`auto`&&(typeof document<`u`&&document.documentElement.classList.contains(`dark`)||typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches);return f(e,`theme.components.${t}`)||a&&f(e,`darkTheme.components.${t}`)},h=(e,t)=>`var(--persona-components-approval-${e.split(`.`).join(`-`)}, ${t})`,g=(e,t)=>`var(--persona-consumer-approval-${e.split(`.`).join(`-`)}, ${t})`;function _(e,t){let n=t=>{let n=p(e,`approval.${t}`);return typeof n==`string`?n:void 0},r=(e,t,r)=>n(e)||h(t,g(`requested.text`,r)),i=(t,r)=>n(t)??(m(e,`approval.${r}`)?`var(--persona-components-approval-${r.split(`.`).join(`-`)})`:void 0),a=t===`public`,o=`var(--persona-muted, #6b7280)`,s=a?`var(--persona-primary, #171717)`:`var(--persona-text, #0b0b0b)`,c=a?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:`var(--persona-text, #1f2937)`,l=n(`shadow`);return{backgroundColor:i(`backgroundColor`,`requested.background`),borderColor:i(`borderColor`,`requested.border`),shadow:l===void 0?i(`shadow`,`requested.shadow`):l.trim()===``?`none`:l,titleColor:r(`titleColor`,`requested.titleColor`,s),descriptionColor:r(`descriptionColor`,`requested.descriptionColor`,o),reasonColor:n(`reasonColor`)||n(`descriptionColor`)||h(`requested.reasonColor`,g(`requested.text`,o)),parameterBackgroundColor:n(`parameterBackgroundColor`)||h(`requested.parameters.background`,a?`var(--persona-container, #f8fafc)`:`var(--persona-container, rgba(11, 11, 11, 0.04))`),parameterTextColor:r(`parameterTextColor`,`requested.parameters.foreground`,a?`var(--persona-primary, #171717)`:`var(--persona-text, #1f2937)`),approveButtonColor:i(`approveButtonColor`,`approve.background`),approveButtonTextColor:n(`approveButtonTextColor`)||g(`approve.foreground`,`var(--persona-button-primary-fg)`),denyButtonColor:n(`denyButtonColor`)??(a?g(`deny.background`,`transparent`):void 0),denyButtonTextColor:n(`denyButtonTextColor`)||g(`deny.foreground`,c),denyBorderColor:n(`denyButtonTextColor`)||g(`deny.foreground`,`var(--persona-palette-colors-error-200)`),pendingIconColor:n(`titleColor`)||h(`requested.titleColor`,g(`requested.text`,`currentColor`))}}let v;const y=(...e)=>v?.render(...e)??null,b=(...e)=>v?.node(...e)??null;let x;const S=()=>{if(!x)throw Error(`Approval UI requires core popover dependencies.`);return x};let C=()=>void 0;const w=e=>{C=e.webMcpToolTitle,e.icons&&(v=e.icons),e.popover&&(x=e.popover)},T=e=>C(e),E=e=>{let t=(e.startsWith(`webmcp:`)?e.slice(7):e).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[_\-\s.]+/).filter(Boolean);if(t.length===0)return e;let n=t.join(` `).toLowerCase();return n.charAt(0).toUpperCase()+n.slice(1)},D=e=>e?.approval===!1?void 0:e?.approval,O=(e,t,n)=>{let r=D(n)?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},k=(e,t,n)=>{let r=D(n);e.setAttribute(`aria-expanded`,t?`true`:`false`);let i=e.querySelector(`[data-approval-details-label]`);i&&(i.textContent=t?r?.hideDetailsLabel??`Hide details`:r?.showDetailsLabel??`Show details`);let a=e.querySelector(`[data-approval-details-chevron]`);if(a){a.innerHTML=``;let e=y(t?`chevron-up`:`chevron-down`,14,`currentColor`,2);e&&a.appendChild(e)}},A=(e,t,n,r=/* @__PURE__ */ new Map)=>{let i=t.querySelector(`button[data-bubble-type="approval"]`),a=t.querySelector(`[data-approval-details]`);if(!i||!a)return;let o=O(e,r,n);k(i,o,n),a.style.display=o?``:`none`},j=(e,t,n,r)=>{let i=_(n,`public`);if(N(t,n),!r)return;let a=t.querySelector(`[data-approval-status]`);if(a){a.textContent=r.status===`approved`?`Approved`:r.status===`denied`?`Denied`:r.status===`timeout`&&r.interrupted?`Interrupted`:r.status===`timeout`?`Timeout`:`Pending`;let e=r.status===`approved`?`success`:r.status===`denied`?`error`:r.status===`timeout`?`warning`:void 0;e&&(a.className=`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`,a.style.backgroundColor=`var(--persona-palette-colors-${e}-100)`,a.style.color=`var(--persona-palette-colors-${e}-700)`),a.setAttribute(`data-approval-status`,r.status)}let o=t.querySelector(`[data-approval-icon]`);if(o){o.innerHTML=``;let e=r.status===`denied`?`shield-x`:r.status===`timeout`?`shield-alert`:`shield-check`,t=r.status===`approved`?`var(--persona-feedback-success, var(--persona-palette-colors-success-600))`:r.status===`denied`?`var(--persona-feedback-error, var(--persona-palette-colors-error-600))`:r.status===`timeout`?`var(--persona-feedback-warning, var(--persona-palette-colors-warning-600))`:i.pendingIconColor,n=y(e,20,t,2);n&&o.appendChild(n)}let s=t.querySelector(`[data-approval-buttons]`);s&&(s.style.display=r.status===`pending`?``:`none`)},M=(e,a,o=/* @__PURE__ */ new Map)=>{let s=e.approval,c=D(a),l=s?.status===`pending`,u=n(`div`,`persona-approval-bubble persona-w-full persona-rounded-2xl persona-border persona-shadow-sm persona-overflow-hidden`);if(u.id=`bubble-${e.id}`,u.setAttribute(`data-message-id`,e.id),!s)return N(u,a),u;let d=n(`div`,`persona-flex persona-items-start persona-gap-3 persona-px-4 persona-py-3`),f=r(`div`,{className:`persona-flex-shrink-0 persona-mt-0.5`,attrs:{"data-approval-icon":`true`}}),p=n(`div`,`persona-flex-1 persona-min-w-0`),m=n(`div`,`persona-flex persona-items-center persona-gap-2`),h=r(`span`,{className:`persona-text-sm persona-font-medium persona-text-persona-primary`,attrs:{"data-approval-title":`true`},text:c?.title??`Approval Required`});if(m.appendChild(h),!l){let e=n(`span`,`persona-inline-flex persona-items-center persona-px-2 persona-py-0.5 persona-rounded-full persona-text-xs persona-font-medium`);e.setAttribute(`data-approval-status`,s.status),m.appendChild(e)}if(p.appendChild(m),s.status===`timeout`&&s.interrupted){let e=n(`p`,`persona-text-sm`);e.textContent=t,p.appendChild(e)}let g=s.toolType===`webmcp`||s.toolName.startsWith(`webmcp:`)?T(s.toolName):void 0,_=c?.formatDescription?.({toolName:s.toolName,toolType:s.toolType,description:s.description,parameters:s.parameters,...g?{displayTitle:g}:{},...s.reason?{reason:s.reason}:{}}),v=!s.toolName,b=_||(v?s.description:`The assistant wants to use “${g??E(s.toolName)}”.`),x=r(`p`,{className:`persona-text-sm persona-mt-0.5 persona-text-persona-muted`,attrs:{"data-approval-summary":`true`},text:b});if(p.appendChild(x),s.reason){let e=n(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-reason`,`true`);let t=n(`span`,`persona-font-medium`);t.textContent=`${c?.reasonLabel??`Agent's stated reason:`} `,e.appendChild(t),e.appendChild(document.createTextNode(s.reason)),p.appendChild(e)}let S=c?.detailsDisplay??`collapsed`,C=!!s.description&&!v,w=C||!!s.parameters;if(S!==`hidden`&&w){let t=O(e.id,o,a),r=n(`button`,`persona-inline-flex persona-items-center persona-gap-1 persona-mt-1 persona-p-0 persona-border-none persona-bg-transparent persona-text-xs persona-font-medium persona-cursor-pointer persona-text-persona-muted`);r.type=`button`,r.setAttribute(`data-expand-header`,`true`),r.setAttribute(`data-bubble-type`,`approval`);let c=n(`span`);c.setAttribute(`data-approval-details-label`,`true`);let l=n(`span`,`persona-inline-flex persona-items-center`);l.setAttribute(`data-approval-details-chevron`,`true`),r.append(c,l),k(r,t,a),p.appendChild(r);let u=n(`div`);if(u.setAttribute(`data-approval-details`,`true`),u.style.display=t?``:`none`,C){let e=n(`p`,`persona-text-sm persona-mt-1 persona-text-persona-muted`);e.setAttribute(`data-approval-description`,`true`),e.textContent=s.description,u.appendChild(e)}if(s.parameters){let e=n(`pre`,`persona-mt-2 persona-text-xs persona-p-2 persona-rounded persona-overflow-x-auto persona-max-h-32 persona-bg-persona-container persona-text-persona-primary`);e.setAttribute(`data-approval-parameters`,`true`),e.style.fontSize=`0.75rem`,e.style.lineHeight=`1rem`,e.textContent=i(s.parameters),u.appendChild(e)}p.appendChild(u)}if(l){let e=n(`div`,`persona-flex persona-gap-2 persona-mt-2`);e.setAttribute(`data-approval-buttons`,`true`);for(let t of[`approve`,`deny`]){let n=r(`button`,{className:`persona-inline-flex persona-items-center persona-px-3 persona-py-1.5 persona-rounded-md persona-text-xs persona-font-medium persona-cursor-pointer`+(t===`approve`?` persona-border-none`:``),attrs:{type:`button`,"data-approval-action":t}}),i=y(t===`approve`?`shield-check`:`shield-x`,14,`currentColor`,2);i&&(i.style.marginRight=`4px`,n.appendChild(i)),n.appendChild(document.createTextNode(t===`approve`?c?.approveLabel??`Approve`:c?.denyLabel??`Deny`)),e.appendChild(n)}p.appendChild(e)}return d.append(f,p),u.appendChild(d),j(e.id,u,a,s),u},N=(e,t)=>{let n=_(t,`public`);e.style.backgroundColor=n.backgroundColor??`var(--persona-approval-bg)`,e.style.borderColor=n.borderColor??`var(--persona-approval-border)`,e.style.boxShadow=n.shadow===void 0?`var(--persona-approval-shadow)`:n.shadow.trim()||`none`;let r=(t,n)=>{e.querySelectorAll(t).forEach(e=>{e.style.color=n??``})};e.querySelector(`[data-approval-status]`)||e.querySelector(`[data-approval-icon] svg`)?.setAttribute(`stroke`,n.pendingIconColor),r(`[data-approval-title]`,n.titleColor),r(`[data-approval-summary], [data-approval-description], button[data-bubble-type='approval']`,n.descriptionColor),r(`[data-approval-reason]`,n.reasonColor),r(`[data-approval-parameters]`,n.parameterTextColor),e.querySelectorAll(`[data-approval-parameters]`).forEach(e=>{e.style.backgroundColor=n.parameterBackgroundColor??``});for(let t of[`approve`,`deny`]){let r=e.querySelector(`[data-approval-action="${t}"]`);if(!r)continue;let i=t===`approve`?n.approveButtonTextColor:n.denyButtonTextColor;r.style.backgroundColor=(t===`approve`?n.approveButtonColor??`var(--persona-approval-approve-bg)`:n.denyButtonColor)??``,r.style.color=i??``,r.querySelector(`svg`)?.setAttribute(`stroke`,i??`currentColor`),t===`deny`&&(r.style.border=`1px solid ${n.denyBorderColor}`)}};
2
2
  /**
3
3
  * @license lucide v1.18.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
6
6
  * See the LICENSE file in the root directory of this source tree.
7
7
  */
8
- var P=/* @__PURE__ */ e((e=>{e.Ban=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M4.929 4.929 19.07 19.071`}]]}));const F={resolvedDisplay:`row`,primaryAction:`allow-once`,keyboardShortcuts:`focused`},I=e=>e?.approval===!1?void 0:{...e?.future?.v5Defaults===!0?F:{},...e?.approval};var L=P();let R=0;const z=()=>({disclosurePrefix:`approval-${++R}`,keyHandlers:/* @__PURE__ */ new Map,popovers:/* @__PURE__ */ new Map,pendingOrder:[],latestPendingApprovalId:null}),B=(e,t)=>{let n=e.keyHandlers.get(t);n&&(document.removeEventListener(`keydown`,n),e.keyHandlers.delete(t));let r=e.popovers.get(t);r&&(r.destroy(),e.popovers.delete(t))},V=(e,t)=>{B(e,t);let n=e.pendingOrder.indexOf(t);n!==-1&&e.pendingOrder.splice(n,1),e.latestPendingApprovalId===t&&(e.latestPendingApprovalId=e.pendingOrder.length?e.pendingOrder[e.pendingOrder.length-1]:null)},H=(e,t,n)=>{let r=n?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},U=e=>{let t=n(`span`,`persona-approval-kbd`);return t.textContent=e,t},W=(e,t)=>{let r=n(`span`,`persona-approval-title`);t?.titleColor&&(r.style.color=t.titleColor);let i=e.toolType===`webmcp`||e.toolName.startsWith(`webmcp:`)?T(e.toolName):void 0,a=t?.formatDescription?.({toolName:e.toolName,toolType:e.toolType,description:e.description??``,parameters:e.parameters,...i?{displayTitle:i}:{},...e.reason?{reason:e.reason}:{}});if(a)return r.textContent=a,r;let o=i??E(e.toolName),s=e.toolType&&e.toolType!==`webmcp`?e.toolType:null;r.append(`The assistant wants to use `);let c=document.createElement(`strong`);if(c.textContent=o,r.appendChild(c),s){r.append(` from `);let e=document.createElement(`strong`);e.textContent=s,r.appendChild(e)}return r},G=e=>{let i=n(`div`,`persona-approval-resolved`),a=b(L.Ban,15,`currentColor`,2);a&&i.appendChild(a);let o=n(`span`,`persona-approval-resolved-name`);o.textContent=e.toolName?E(e.toolName):`Tool`;let s=e.status===`timeout`&&e.interrupted?` approval expired. ${t}`:e.status===`timeout`?` timed out`:` denied`;return i.appendChild(r(`span`,{className:`persona-approval-resolved-text`},o,s)),i},K=(e,t,r,a,o,s,c,l,u=!1,d)=>{let f=d!==void 0,p=n(`div`,f?`persona-approval-row persona-activity-row`:`persona-approval-card persona-shadow-sm`);p.id=`bubble-${r.id}`,p.setAttribute(`data-message-id`,r.id),p.setAttribute(`data-bubble-type`,`approval`),o?.backgroundColor&&(p.style.background=o.backgroundColor),o?.borderColor&&(p.style.borderColor=o.borderColor),o?.shadow!==void 0&&(p.style.boxShadow=o.shadow.trim()===``?`none`:o.shadow);let m=o?.detailsDisplay??`collapsed`,h=!!a.description&&m!==`hidden`,g=a.parameters!=null&&m!==`hidden`&&!u,_=!!a.reason&&m!==`hidden`,v=h||g||f&&_,b=v&&H(r.id,t,o),x=o?.showDetailsLabel??`Show details`,C=o?.hideDetailsLabel??`Hide details`,w=n(f&&!v?`div`:`button`,`persona-approval-head`);w instanceof HTMLButtonElement&&(w.type=`button`),v?(w.setAttribute(`data-action`,`toggle-params`),w.setAttribute(`aria-expanded`,b?`true`:`false`),w.setAttribute(`aria-label`,b?C:x)):w.setAttribute(`data-static`,`true`);let D=n(`span`,`persona-approval-logo`),O=y(`shield-check`,16,`currentColor`,2);O&&D.appendChild(O),f||w.appendChild(D);let k=f?n(`span`,`persona-approval-title`):W(a,o),A=``;if(f){let e=(a.toolType===`webmcp`||a.toolName.startsWith(`webmcp:`)?T(a.toolName):void 0)??E(a.toolName),t=n(`span`,`persona-approval-status`);t.setAttribute(`role`,`status`),t.textContent=d,k.append(e,` · `,t),o?.titleColor&&(k.style.color=o.titleColor),A=`${e} · ${d}`}if(v){let e=n(`span`,`persona-approval-toggle`);e.setAttribute(`aria-hidden`,`true`);let t=y(`chevron-down`,14,`currentColor`,2);t&&e.appendChild(t),k.append(` `),k.appendChild(e)}w.appendChild(k),p.appendChild(w);let j=n(`div`,`persona-approval-body`),M;if(v){let e=n(`div`,`persona-approval-details`);e.setAttribute(`data-role`,`params`),e.hidden=!b;let t=t=>{let r=n(`div`,`persona-tool-detail`),i=n(`div`,`persona-tool-detail-label`);return i.textContent=t,r.appendChild(i),e.appendChild(r),r},r=f&&g?t(`Request`):e;if(f&&(h||_)&&(M=t(`Context`)),h){let t=n(`p`,`persona-approval-desc`);o?.descriptionColor&&(t.style.color=o.descriptionColor),t.textContent=a.description,(M??e).appendChild(t)}if(g){let e=n(`pre`,f?`persona-approval-params persona-tool-detail-value persona-tool-detail-code`:`persona-approval-params`);o?.parameterBackgroundColor&&(e.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(e.style.color=o.parameterTextColor),e.textContent=i(a.parameters),r.appendChild(e)}j.appendChild(e)}if(u){let e=n(`div`,`persona-approval-call`);e.setAttribute(`data-role`,`raw-call`);let t=n(`code`,`persona-approval-tool-name`);if(t.textContent=a.toolName,e.appendChild(t),a.parameters!=null){let t=n(`pre`,`persona-approval-params`);o?.parameterBackgroundColor&&(t.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(t.style.color=o.parameterTextColor),t.textContent=i(a.parameters),e.appendChild(t)}j.appendChild(e)}if(a.reason){let e=n(`p`,`persona-approval-reason`);o?.reasonColor?e.style.color=o.reasonColor:o?.descriptionColor&&(e.style.color=o.descriptionColor);let t=n(`span`,`persona-approval-reason-label`);t.textContent=`${o?.reasonLabel??`Agent's stated reason:`} `,e.append(t,document.createTextNode(a.reason)),f?M?.appendChild(e):j.appendChild(e)}let N=e=>{w.setAttribute(`aria-expanded`,String(e));let t=e?C:x;w.setAttribute(`aria-label`,f?`${A}. ${t}`:t)},P=()=>{let e=p.querySelector(`[data-role="params"]`);if(!e)return;let n=e.hidden!==!1;e.hidden=!n,f&&(j.hidden=!n),N(n),t.set(r.id,n)};if(f){if(v){let t=j.querySelector(`[data-role="params"]`);t.id=`${e.disclosurePrefix}-details-${r.id}`,w.setAttribute(`aria-controls`,t.id),N(b),j.hidden=!b,p.appendChild(j),w.addEventListener(`click`,P)}return p}let F=n(`div`,`persona-approval-actions`),I=o?.primaryAction===`allow-once`,L=o?.keyboardShortcuts!==!1&&o?.keyboardShortcuts!==`focused`,R=null,z=e=>{o?.approveButtonColor&&(e.style.background=o.approveButtonColor),o?.approveButtonTextColor&&(e.style.color=o.approveButtonTextColor)},B=n(`button`,`persona-approval-deny`);if(B.type=`button`,B.setAttribute(`data-action`,`deny`),o?.denyButtonColor&&(B.style.background=o.denyButtonColor),o?.denyButtonTextColor&&(B.style.color=o.denyButtonTextColor),B.append(o?.denyLabel??`Deny`),l){let t=n(`div`,`persona-approval-split`),i=n(`button`,`persona-approval-primary`);i.type=`button`,i.setAttribute(`data-action`,I?`allow`:`always`),z(i),i.append(o?.approveLabel??(I?`Allow once`:`Always allow`)),L&&i.append(U(`⏎`));let a=n(`button`,`persona-approval-caret`);a.type=`button`,a.setAttribute(`data-action`,`toggle-menu`),a.setAttribute(`aria-label`,`More options`),z(a);let c=y(`chevron-down`,15,`currentColor`,2);c&&a.appendChild(c),t.append(i,a),F.append(t,B),L&&B.append(U(`Esc`));let l=n(`div`,`persona-approval-menu`),u=n(`button`,`persona-approval-menu-item`);u.type=`button`,u.append(I?o?.alwaysAllowLabel??`Always allow`:`Allow once`),!I&&L&&u.append(U(`⌘⏎`)),l.appendChild(u),R=S().createPopover({anchor:t,content:l,placement:`bottom-start`,matchAnchorWidth:!0}),e.popovers.set(r.id,R),u.addEventListener(`click`,()=>{V(e,r.id),I?s({remember:!0}):s()})}else{let e=n(`button`,`persona-approval-primary persona-approval-primary--solo`);e.type=`button`,e.setAttribute(`data-action`,`allow`),z(e),e.append(o?.approveLabel??(I?`Allow once`:`Allow`)),F.append(e,B)}return j.appendChild(F),p.appendChild(j),p.addEventListener(`click`,t=>{let n=t.target instanceof Element?t.target.closest(`[data-action]`):null;if(!n)return;let i=n.getAttribute(`data-action`);i===`toggle-params`?P():i===`toggle-menu`?R?.toggle():i===`always`?(V(e,r.id),s({remember:!0})):i===`allow`?(V(e,r.id),s()):i===`deny`&&(V(e,r.id),c())}),p},q=(e=/* @__PURE__ */ new Map)=>{let t=z();return{plugin:{id:`persona-built-in-approval`,renderApproval:({message:r,approve:i,deny:a,config:o,execution:s,signal:c})=>{let l=r?.approval;if(!l)return null;let u={...I(o),..._(o,`plugin`)},d=!1,f=i,p=a;if(i=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?f():f(e))},a=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?p():p(e))},l.status!==`pending`){V(t,r.id);let o=l.status===`denied`?`Denied`:l.status===`timeout`?`Timed out`:s?.status===`running`?`Allowed · running`:s?.status===`completed`?`Completed`:s?.status===`failed`?`Failed`:`Allowed`;if(u?.resolvedDisplay===`row`)return K(t,e,r,l,u,i,a,!1,!1,o);if(u?.resolvedDisplay===`status-line`){let s=K(t,e,r,l,u,i,a,!1),c=n(`div`,`persona-approval-status`);return c.setAttribute(`role`,`status`),c.textContent=o,s.querySelector(`.persona-approval-actions`)?.replaceWith(c),s}if(l.status===`approved`){let e=document.createElement(`div`);return e.style.display=`none`,e}return G(l)}B(t,r.id);let m=!!o?.clientToken,h=u?.enableAlwaysAllow===!0,g=K(t,e,r,l,u,i,a,h,m),v=u?.keyboardShortcuts??`legacy`;if(v===`focused`||v===`legacy`&&h){t.pendingOrder.includes(r.id)||t.pendingOrder.push(r.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let e=e=>{if(!(e.defaultPrevented||e.isComposing||S().isEditableEventTarget(e))){if(v===`focused`){if(!e.composedPath().includes(g)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.composedPath()[0];if(e.key===`Enter`&&t instanceof Element&&t.closest(`[data-action]`)?.getAttribute(`data-action`)!==`allow`)return}(v!==`legacy`||r.id===t.latestPendingApprovalId)&&(e.key===`Escape`||e.key===`Enter`)&&(e.preventDefault(),e.stopImmediatePropagation(),V(t,r.id),e.key===`Escape`?a():v===`focused`||u?.primaryAction===`allow-once`||e.metaKey||e.ctrlKey?i():i({remember:!0}))}};t.keyHandlers.set(r.id,e),document.addEventListener(`keydown`,e)}return c?.addEventListener(`abort`,()=>V(t,r.id),{once:!0}),g}},teardown:()=>{for(let e of[...t.keyHandlers.keys(),...t.popovers.keys()])V(t,e);t.latestPendingApprovalId=null}}};function J(e,t,n){let i=r(`div`,{className:`persona-error-detail persona-message-bubble`});i.innerHTML=t({text:e.content,message:e,streaming:!1});let a=r(`summary`,{className:`persona-error-summary`},i,r(`span`,{className:`persona-error-more`,text:`Show more`}),r(`span`,{className:`persona-error-less`,text:`Show less`}));return r(`div`,{className:`persona-error-block`,attrs:{role:`alert`,"data-message-id":e.id,"data-actions-for":e.id}},r(`strong`,{className:`persona-error-title`,text:`Something went wrong`}),r(`details`,{className:`persona-error-details`},a),n?r(`button`,{className:`persona-message-action-btn persona-error-retry`,text:`Retry`,attrs:{type:`button`,"data-action":`regenerate`,"aria-label":`Retry response`}}):null)}exports.createApprovalBubble=M,exports.createBuiltInApprovalPlugin=q,exports.createErrorBlock=J,exports.humanizeToolName=E,exports.initApprovalUi=w,exports.updateApprovalDetailsUI=A;
8
+ var P=/* @__PURE__ */ e((e=>{e.Ban=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M4.929 4.929 19.07 19.071`}]]}));const F={resolvedDisplay:`row`,primaryAction:`allow-once`,keyboardShortcuts:`focused`},I=e=>e?.approval===!1?void 0:{...e?.future?.v5Defaults===!0?F:{},...e?.approval};var L=P();let R=0;const z=()=>({disclosurePrefix:`approval-${++R}`,keyHandlers:/* @__PURE__ */ new Map,popovers:/* @__PURE__ */ new Map,pendingOrder:[],latestPendingApprovalId:null}),B=(e,t)=>{let n=e.keyHandlers.get(t);n&&(document.removeEventListener(`keydown`,n),e.keyHandlers.delete(t));let r=e.popovers.get(t);r&&(r.destroy(),e.popovers.delete(t))},V=(e,t)=>{B(e,t);let n=e.pendingOrder.indexOf(t);n!==-1&&e.pendingOrder.splice(n,1),e.latestPendingApprovalId===t&&(e.latestPendingApprovalId=e.pendingOrder.length?e.pendingOrder[e.pendingOrder.length-1]:null)},H=(e,t,n)=>{let r=n?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},U=e=>{let t=n(`span`,`persona-approval-kbd`);return t.textContent=e,t},W=(e,t)=>{let r=n(`span`,`persona-approval-title`);t?.titleColor&&(r.style.color=t.titleColor);let i=e.toolType===`webmcp`||e.toolName.startsWith(`webmcp:`)?T(e.toolName):void 0,a=t?.formatDescription?.({toolName:e.toolName,toolType:e.toolType,description:e.description??``,parameters:e.parameters,...i?{displayTitle:i}:{},...e.reason?{reason:e.reason}:{}});if(a)return r.textContent=a,r;let o=i??E(e.toolName),s=e.toolType&&e.toolType!==`webmcp`?e.toolType:null;r.append(`The assistant wants to use `);let c=document.createElement(`strong`);if(c.textContent=o,r.appendChild(c),s){r.append(` from `);let e=document.createElement(`strong`);e.textContent=s,r.appendChild(e)}return r},G=e=>{let i=n(`div`,`persona-approval-resolved`),a=b(L.Ban,15,`currentColor`,2);a&&i.appendChild(a);let o=n(`span`,`persona-approval-resolved-name`);o.textContent=e.toolName?E(e.toolName):`Tool`;let s=e.status===`timeout`&&e.interrupted?` approval expired. ${t}`:e.status===`timeout`?` timed out`:` denied`;return i.appendChild(r(`span`,{className:`persona-approval-resolved-text`},o,s)),i},K=(e,t,r,a,o,s,c,l,u=!1,d)=>{let f=d!==void 0,p=n(`div`,f?`persona-approval-row persona-activity-row`:`persona-approval-card persona-shadow-sm`);p.id=`bubble-${r.id}`,p.setAttribute(`data-message-id`,r.id),p.setAttribute(`data-bubble-type`,`approval`),o?.backgroundColor&&(p.style.background=o.backgroundColor),o?.borderColor&&(p.style.borderColor=o.borderColor),o?.shadow!==void 0&&(p.style.boxShadow=o.shadow.trim()===``?`none`:o.shadow);let m=o?.detailsDisplay??`collapsed`,h=!!a.description&&m!==`hidden`,g=a.parameters!=null&&m!==`hidden`&&!u,_=!!a.reason&&m!==`hidden`,v=h||g||f&&_,b=v&&H(r.id,t,o),x=o?.showDetailsLabel??`Show details`,C=o?.hideDetailsLabel??`Hide details`,w=n(f&&!v?`div`:`button`,`persona-approval-head`);w instanceof HTMLButtonElement&&(w.type=`button`),v?(w.setAttribute(`data-action`,`toggle-params`),w.setAttribute(`aria-expanded`,b?`true`:`false`),w.setAttribute(`aria-label`,b?C:x)):w.setAttribute(`data-static`,`true`);let D=n(`span`,`persona-approval-logo`),O=y(`shield-check`,16,`currentColor`,2);O&&D.appendChild(O),f||w.appendChild(D);let k=f?n(`span`,`persona-approval-title`):W(a,o),A=``;if(f){let e=(a.toolType===`webmcp`||a.toolName.startsWith(`webmcp:`)?T(a.toolName):void 0)??E(a.toolName),t=n(`span`,`persona-approval-status`);t.setAttribute(`role`,`status`),t.textContent=d,k.append(e,` · `,t),o?.titleColor&&(k.style.color=o.titleColor),A=`${e} · ${d}`}if(v){let e=n(`span`,`persona-approval-toggle`);e.setAttribute(`aria-hidden`,`true`);let t=y(`chevron-down`,14,`currentColor`,2);t&&e.appendChild(t),k.append(` `),k.appendChild(e)}w.appendChild(k),p.appendChild(w);let j=n(`div`,`persona-approval-body`),M;if(v){let e=n(`div`,`persona-approval-details`);e.setAttribute(`data-role`,`params`),e.hidden=!b;let t=t=>{let r=n(`div`,`persona-tool-detail`),i=n(`div`,`persona-tool-detail-label`);return i.textContent=t,r.appendChild(i),e.appendChild(r),r},r=f&&g?t(`Request`):e;if(f&&(h||_)&&(M=t(`Context`)),h){let t=n(`p`,`persona-approval-desc`);o?.descriptionColor&&(t.style.color=o.descriptionColor),t.textContent=a.description,(M??e).appendChild(t)}if(g){let e=n(`pre`,f?`persona-approval-params persona-tool-detail-value persona-tool-detail-code`:`persona-approval-params`);o?.parameterBackgroundColor&&(e.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(e.style.color=o.parameterTextColor),e.textContent=i(a.parameters),r.appendChild(e)}j.appendChild(e)}if(u){let e=n(`div`,`persona-approval-call`);e.setAttribute(`data-role`,`raw-call`);let t=n(`code`,`persona-approval-tool-name`);if(t.textContent=a.toolName,e.appendChild(t),a.parameters!=null){let t=n(`pre`,`persona-approval-params`);o?.parameterBackgroundColor&&(t.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(t.style.color=o.parameterTextColor),t.textContent=i(a.parameters),e.appendChild(t)}j.appendChild(e)}if(a.reason){let e=n(`p`,`persona-approval-reason`);o?.reasonColor?e.style.color=o.reasonColor:o?.descriptionColor&&(e.style.color=o.descriptionColor);let t=n(`span`,`persona-approval-reason-label`);t.textContent=`${o?.reasonLabel??`Agent's stated reason:`} `,e.append(t,document.createTextNode(a.reason)),f?M?.appendChild(e):j.appendChild(e)}let N=e=>{w.setAttribute(`aria-expanded`,String(e));let t=e?C:x;w.setAttribute(`aria-label`,f?`${A}. ${t}`:t)},P=()=>{let e=p.querySelector(`[data-role="params"]`);if(!e)return;let n=e.hidden!==!1;e.hidden=!n,f&&(j.hidden=!n),N(n),t.set(r.id,n)};if(f){if(v){let t=j.querySelector(`[data-role="params"]`);t.id=`${e.disclosurePrefix}-details-${r.id}`,w.setAttribute(`aria-controls`,t.id),N(b),j.hidden=!b,p.appendChild(j),w.addEventListener(`click`,P)}return p}let F=n(`div`,`persona-approval-actions`),I=o?.primaryAction===`allow-once`,L=o?.keyboardShortcuts!==!1&&o?.keyboardShortcuts!==`focused`,R=null,z=e=>{o?.approveButtonColor&&(e.style.background=o.approveButtonColor),o?.approveButtonTextColor&&(e.style.color=o.approveButtonTextColor)},B=n(`button`,`persona-approval-deny`);if(B.type=`button`,B.setAttribute(`data-action`,`deny`),o?.denyButtonColor&&(B.style.background=o.denyButtonColor),o?.denyButtonTextColor&&(B.style.color=o.denyButtonTextColor),B.append(o?.denyLabel??`Deny`),l){let t=n(`div`,`persona-approval-split`),i=n(`button`,`persona-approval-primary`);i.type=`button`,i.setAttribute(`data-action`,I?`allow`:`always`),z(i),i.append(o?.approveLabel??(I?`Allow once`:`Always allow`)),L&&i.append(U(`⏎`));let a=n(`button`,`persona-approval-caret`);a.type=`button`,a.setAttribute(`data-action`,`toggle-menu`),a.setAttribute(`aria-label`,`More options`),z(a);let c=y(`chevron-down`,15,`currentColor`,2);c&&a.appendChild(c),t.append(i,a),F.append(t,B),L&&B.append(U(`Esc`));let l=n(`div`,`persona-approval-menu`),u=n(`button`,`persona-approval-menu-item`);u.type=`button`,u.append(I?o?.alwaysAllowLabel??`Always allow`:`Allow once`),!I&&L&&u.append(U(`⌘⏎`)),l.appendChild(u),R=S().createPopover({anchor:t,content:l,placement:`bottom-start`,matchAnchorWidth:!0}),e.popovers.set(r.id,R),u.addEventListener(`click`,()=>{V(e,r.id),I?s({remember:!0}):s()})}else{let e=n(`button`,`persona-approval-primary persona-approval-primary--solo`);e.type=`button`,e.setAttribute(`data-action`,`allow`),z(e),e.append(o?.approveLabel??(I?`Allow once`:`Allow`)),F.append(e,B)}return j.appendChild(F),p.appendChild(j),p.addEventListener(`click`,t=>{let n=t.target instanceof Element?t.target.closest(`[data-action]`):null;if(!n)return;let i=n.getAttribute(`data-action`);i===`toggle-params`?P():i===`toggle-menu`?R?.toggle():i===`always`?(V(e,r.id),s({remember:!0})):i===`allow`?(V(e,r.id),s()):i===`deny`&&(V(e,r.id),c())}),p},q=(e=/* @__PURE__ */ new Map)=>{let t=z();return{plugin:{id:`persona-built-in-approval`,renderApproval:({message:r,approve:i,deny:a,config:o,execution:s,signal:c})=>{let l=r?.approval;if(!l)return null;let u={...I(o),..._(o,`plugin`)},d=!1,f=i,p=a;if(i=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?f():f(e))},a=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?p():p(e))},l.status!==`pending`){V(t,r.id);let o=l.status===`denied`?`Denied`:l.status===`timeout`?`Timed out`:s?.status===`running`?`Allowed · running`:s?.status===`completed`?`Completed`:s?.status===`failed`?`Failed`:`Allowed`;if(u?.resolvedDisplay===`row`)return K(t,e,r,l,u,i,a,!1,!1,o);if(u?.resolvedDisplay===`status-line`){let s=K(t,e,r,l,u,i,a,!1),c=n(`div`,`persona-approval-status`);return c.setAttribute(`role`,`status`),c.textContent=o,s.querySelector(`.persona-approval-actions`)?.replaceWith(c),s}if(l.status===`approved`){let e=document.createElement(`div`);return e.style.display=`none`,e}return G(l)}B(t,r.id);let m=!!o?.clientToken,h=u?.enableAlwaysAllow===!0,g=K(t,e,r,l,u,i,a,h,m),v=u?.keyboardShortcuts??`legacy`;if(v===`focused`||v===`legacy`&&h){t.pendingOrder.includes(r.id)||t.pendingOrder.push(r.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let e=e=>{if(!(e.defaultPrevented||e.isComposing||S().isEditableEventTarget(e))){if(v===`focused`){if(!e.composedPath().includes(g)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.composedPath()[0];if(e.key===`Enter`&&t instanceof Element&&t.closest(`[data-action]`)?.getAttribute(`data-action`)!==`allow`)return}v===`legacy`&&r.id!==t.latestPendingApprovalId||e.key!==`Escape`&&e.key!==`Enter`||(e.preventDefault(),e.stopImmediatePropagation(),V(t,r.id),e.key===`Escape`?a():v===`focused`||u?.primaryAction===`allow-once`||e.metaKey||e.ctrlKey?i():i({remember:!0}))}};t.keyHandlers.set(r.id,e),document.addEventListener(`keydown`,e)}return c?.addEventListener(`abort`,()=>V(t,r.id),{once:!0}),g}},teardown:()=>{for(let e of[...t.keyHandlers.keys(),...t.popovers.keys()])V(t,e);t.latestPendingApprovalId=null}}};function J(e,t,n){let i=r(`div`,{className:`persona-error-detail persona-message-bubble`});i.innerHTML=t({text:e.content,message:e,streaming:!1});let a=r(`summary`,{className:`persona-error-summary`},i,r(`span`,{className:`persona-error-more`,text:`Show more`}),r(`span`,{className:`persona-error-less`,text:`Show less`}));return r(`div`,{className:`persona-error-block`,attrs:{role:`alert`,"data-message-id":e.id,"data-actions-for":e.id}},r(`strong`,{className:`persona-error-title`,text:`Something went wrong`}),r(`details`,{className:`persona-error-details`},a),n?r(`button`,{className:`persona-message-action-btn persona-error-retry`,text:`Retry`,attrs:{type:`button`,"data-action":`regenerate`,"aria-label":`Retry response`}}):null)}exports.createApprovalBubble=M,exports.createBuiltInApprovalPlugin=q,exports.createErrorBlock=J,exports.humanizeToolName=E,exports.initApprovalUi=w,exports.updateApprovalDetailsUI=A;
@@ -1,8 +1,7 @@
1
- import { Ct as AgentWidgetMessage, Ro as AgentWidgetPlugin, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.cjs";
2
- import { i as MessageTransform } from "./message-bubble-CBYtpDsT.cjs";
3
- import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C1mRjLgW.cjs";
1
+ import { Ct as AgentWidgetMessage, Ro as AgentWidgetPlugin, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-BC7MRxO5.cjs";
2
+ import { i as MessageTransform } from "./message-bubble-C6AVaH7f.cjs";
3
+ import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-BVggqE3C.cjs";
4
4
  import { IconNode } from "lucide";
5
- //#region src/utils/humanize-tool-name.d.ts
6
5
  /**
7
6
  * Turn a wire tool name into a user-facing label: strips the `webmcp:`
8
7
  * prefix and splits snake_case / kebab-case / camelCase into a sentence
@@ -10,8 +9,6 @@ import { IconNode } from "lucide";
10
9
  * word-like remains.
11
10
  */
12
11
  export declare const humanizeToolName: (toolName: string) => string;
13
- //#endregion
14
- //#region src/components/approval-bubble.d.ts
15
12
  /**
16
13
  * Sync the technical-details section (toggle label/chevron + visibility) with
17
14
  * the widget instance's expansion state. Called from the ui.ts expansion event
@@ -22,8 +19,6 @@ export declare const updateApprovalDetailsUI: (messageId: string, bubble: HTMLEl
22
19
  * Create an approval bubble element for inline display in the chat.
23
20
  */
24
21
  export declare const createApprovalBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Map<string, boolean>) => HTMLElement;
25
- //#endregion
26
- //#region src/components/approval-actions.d.ts
27
22
  /**
28
23
  * The built-in approval renderer, shaped as a plugin so ui.ts can run it through
29
24
  * the same `renderApproval` pipeline as user plugins (which still take
@@ -38,8 +33,6 @@ export declare const createBuiltInApprovalPlugin: (expansionState?: Map<string,
38
33
  plugin: AgentWidgetPlugin;
39
34
  teardown: () => void;
40
35
  };
41
- //#endregion
42
- //#region src/utils/icon-node.d.ts
43
36
  /**
44
37
  * Registry-free lucide icon renderer.
45
38
  *
@@ -57,8 +50,6 @@ export declare const createBuiltInApprovalPlugin: (expansionState?: Map<string,
57
50
  * back into every bundle that only needs `renderIconNode`.
58
51
  */
59
52
  declare const renderIconNode: (iconData: IconNode, size?: number | string, color?: string, strokeWidth?: number) => SVGElement | null;
60
- //#endregion
61
- //#region src/components/approval-deps.d.ts
62
53
  /**
63
54
  * Injected core dependencies for the lazy approval-ui chunk.
64
55
  *
@@ -81,10 +72,7 @@ interface ApprovalUiDeps {
81
72
  webMcpToolTitle: (toolName: string) => string | undefined;
82
73
  }
83
74
  export declare const initApprovalUi: (deps: ApprovalUiDeps) => void;
84
- //#endregion
85
- //#region src/components/error-block.d.ts
86
75
  /** Secondary transcript chrome, shipped with the lazy approval UI. */
87
76
  export declare function createErrorBlock(message: AgentWidgetMessage, transform: MessageTransform, canRetry: boolean): HTMLElement;
88
- //#endregion
89
77
  export type { ApprovalUiDeps };
90
78
  export {}
@@ -1,8 +1,7 @@
1
- import { Ct as AgentWidgetMessage, Ro as AgentWidgetPlugin, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-B_mj21jg.js";
2
- import { i as MessageTransform } from "./message-bubble-CBYtpDsT.js";
3
- import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-C1mRjLgW.js";
1
+ import { Ct as AgentWidgetMessage, Ro as AgentWidgetPlugin, ja as renderLucideIcon, k as AgentWidgetConfig } from "./types-BC7MRxO5.js";
2
+ import { i as MessageTransform } from "./message-bubble-C6AVaH7f.js";
3
+ import { i as createPopover, s as isEditableEventTarget } from "./plugin-kit-BVggqE3C.js";
4
4
  import { IconNode } from "lucide";
5
- //#region src/utils/humanize-tool-name.d.ts
6
5
  /**
7
6
  * Turn a wire tool name into a user-facing label: strips the `webmcp:`
8
7
  * prefix and splits snake_case / kebab-case / camelCase into a sentence
@@ -10,8 +9,6 @@ import { IconNode } from "lucide";
10
9
  * word-like remains.
11
10
  */
12
11
  export declare const humanizeToolName: (toolName: string) => string;
13
- //#endregion
14
- //#region src/components/approval-bubble.d.ts
15
12
  /**
16
13
  * Sync the technical-details section (toggle label/chevron + visibility) with
17
14
  * the widget instance's expansion state. Called from the ui.ts expansion event
@@ -22,8 +19,6 @@ export declare const updateApprovalDetailsUI: (messageId: string, bubble: HTMLEl
22
19
  * Create an approval bubble element for inline display in the chat.
23
20
  */
24
21
  export declare const createApprovalBubble: (message: AgentWidgetMessage, config?: AgentWidgetConfig, expansionState?: Map<string, boolean>) => HTMLElement;
25
- //#endregion
26
- //#region src/components/approval-actions.d.ts
27
22
  /**
28
23
  * The built-in approval renderer, shaped as a plugin so ui.ts can run it through
29
24
  * the same `renderApproval` pipeline as user plugins (which still take
@@ -38,8 +33,6 @@ export declare const createBuiltInApprovalPlugin: (expansionState?: Map<string,
38
33
  plugin: AgentWidgetPlugin;
39
34
  teardown: () => void;
40
35
  };
41
- //#endregion
42
- //#region src/utils/icon-node.d.ts
43
36
  /**
44
37
  * Registry-free lucide icon renderer.
45
38
  *
@@ -57,8 +50,6 @@ export declare const createBuiltInApprovalPlugin: (expansionState?: Map<string,
57
50
  * back into every bundle that only needs `renderIconNode`.
58
51
  */
59
52
  declare const renderIconNode: (iconData: IconNode, size?: number | string, color?: string, strokeWidth?: number) => SVGElement | null;
60
- //#endregion
61
- //#region src/components/approval-deps.d.ts
62
53
  /**
63
54
  * Injected core dependencies for the lazy approval-ui chunk.
64
55
  *
@@ -81,10 +72,7 @@ interface ApprovalUiDeps {
81
72
  webMcpToolTitle: (toolName: string) => string | undefined;
82
73
  }
83
74
  export declare const initApprovalUi: (deps: ApprovalUiDeps) => void;
84
- //#endregion
85
- //#region src/components/error-block.d.ts
86
75
  /** Secondary transcript chrome, shipped with the lazy approval UI. */
87
76
  export declare function createErrorBlock(message: AgentWidgetMessage, transform: MessageTransform, canRetry: boolean): HTMLElement;
88
- //#endregion
89
77
  export type { ApprovalUiDeps };
90
78
  export {}
@@ -12,4 +12,4 @@ R()}));
12
12
  * This source code is licensed under the ISC license.
13
13
  * See the LICENSE file in the root directory of this source tree.
14
14
  */
15
- const B={resolvedDisplay:`row`,primaryAction:`allow-once`,keyboardShortcuts:`focused`},V=e=>e?.approval===!1?void 0:{...e?.future?.v5Defaults===!0?B:{},...e?.approval};i(),z();let H=0;const U=()=>({disclosurePrefix:`approval-${++H}`,keyHandlers:/* @__PURE__ */ new Map,popovers:/* @__PURE__ */ new Map,pendingOrder:[],latestPendingApprovalId:null}),W=(e,t)=>{let n=e.keyHandlers.get(t);n&&(document.removeEventListener(`keydown`,n),e.keyHandlers.delete(t));let r=e.popovers.get(t);r&&(r.destroy(),e.popovers.delete(t))},G=(e,t)=>{W(e,t);let n=e.pendingOrder.indexOf(t);n!==-1&&e.pendingOrder.splice(n,1),e.latestPendingApprovalId===t&&(e.latestPendingApprovalId=e.pendingOrder.length?e.pendingOrder[e.pendingOrder.length-1]:null)},K=(e,t,n)=>{let r=n?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},q=e=>{let t=n(`span`,`persona-approval-kbd`);return t.textContent=e,t},J=(e,t)=>{let r=n(`span`,`persona-approval-title`);t?.titleColor&&(r.style.color=t.titleColor);let i=e.toolType===`webmcp`||e.toolName.startsWith(`webmcp:`)?O(e.toolName):void 0,a=t?.formatDescription?.({toolName:e.toolName,toolType:e.toolType,description:e.description??``,parameters:e.parameters,...i?{displayTitle:i}:{},...e.reason?{reason:e.reason}:{}});if(a)return r.textContent=a,r;let o=i??k(e.toolName),s=e.toolType&&e.toolType!==`webmcp`?e.toolType:null;r.append(`The assistant wants to use `);let c=document.createElement(`strong`);if(c.textContent=o,r.appendChild(c),s){r.append(` from `);let e=document.createElement(`strong`);e.textContent=s,r.appendChild(e)}return r},Y=e=>{let i=n(`div`,`persona-approval-resolved`),a=C(L,15,`currentColor`,2);a&&i.appendChild(a);let o=n(`span`,`persona-approval-resolved-name`);o.textContent=e.toolName?k(e.toolName):`Tool`;let s=e.status===`timeout`&&e.interrupted?` approval expired. ${t}`:e.status===`timeout`?` timed out`:` denied`;return i.appendChild(r(`span`,{className:`persona-approval-resolved-text`},o,s)),i},X=(e,t,r,i,o,s,c,l,u=!1,d)=>{let f=d!==void 0,p=n(`div`,f?`persona-approval-row persona-activity-row`:`persona-approval-card persona-shadow-sm`);p.id=`bubble-${r.id}`,p.setAttribute(`data-message-id`,r.id),p.setAttribute(`data-bubble-type`,`approval`),o?.backgroundColor&&(p.style.background=o.backgroundColor),o?.borderColor&&(p.style.borderColor=o.borderColor),o?.shadow!==void 0&&(p.style.boxShadow=o.shadow.trim()===``?`none`:o.shadow);let m=o?.detailsDisplay??`collapsed`,h=!!i.description&&m!==`hidden`,g=i.parameters!=null&&m!==`hidden`&&!u,_=!!i.reason&&m!==`hidden`,v=h||g||f&&_,y=v&&K(r.id,t,o),b=o?.showDetailsLabel??`Show details`,x=o?.hideDetailsLabel??`Hide details`,C=n(f&&!v?`div`:`button`,`persona-approval-head`);C instanceof HTMLButtonElement&&(C.type=`button`),v?(C.setAttribute(`data-action`,`toggle-params`),C.setAttribute(`aria-expanded`,y?`true`:`false`),C.setAttribute(`aria-label`,y?x:b)):C.setAttribute(`data-static`,`true`);let w=n(`span`,`persona-approval-logo`),E=S(`shield-check`,16,`currentColor`,2);E&&w.appendChild(E),f||C.appendChild(w);let D=f?n(`span`,`persona-approval-title`):J(i,o),A=``;if(f){let e=(i.toolType===`webmcp`||i.toolName.startsWith(`webmcp:`)?O(i.toolName):void 0)??k(i.toolName),t=n(`span`,`persona-approval-status`);t.setAttribute(`role`,`status`),t.textContent=d,D.append(e,` · `,t),o?.titleColor&&(D.style.color=o.titleColor),A=`${e} · ${d}`}if(v){let e=n(`span`,`persona-approval-toggle`);e.setAttribute(`aria-hidden`,`true`);let t=S(`chevron-down`,14,`currentColor`,2);t&&e.appendChild(t),D.append(` `),D.appendChild(e)}C.appendChild(D),p.appendChild(C);let j=n(`div`,`persona-approval-body`),M;if(v){let e=n(`div`,`persona-approval-details`);e.setAttribute(`data-role`,`params`),e.hidden=!y;let t=t=>{let r=n(`div`,`persona-tool-detail`),i=n(`div`,`persona-tool-detail-label`);return i.textContent=t,r.appendChild(i),e.appendChild(r),r},r=f&&g?t(`Request`):e;if(f&&(h||_)&&(M=t(`Context`)),h){let t=n(`p`,`persona-approval-desc`);o?.descriptionColor&&(t.style.color=o.descriptionColor),t.textContent=i.description,(M??e).appendChild(t)}if(g){let e=n(`pre`,f?`persona-approval-params persona-tool-detail-value persona-tool-detail-code`:`persona-approval-params`);o?.parameterBackgroundColor&&(e.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(e.style.color=o.parameterTextColor),e.textContent=a(i.parameters),r.appendChild(e)}j.appendChild(e)}if(u){let e=n(`div`,`persona-approval-call`);e.setAttribute(`data-role`,`raw-call`);let t=n(`code`,`persona-approval-tool-name`);if(t.textContent=i.toolName,e.appendChild(t),i.parameters!=null){let t=n(`pre`,`persona-approval-params`);o?.parameterBackgroundColor&&(t.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(t.style.color=o.parameterTextColor),t.textContent=a(i.parameters),e.appendChild(t)}j.appendChild(e)}if(i.reason){let e=n(`p`,`persona-approval-reason`);o?.reasonColor?e.style.color=o.reasonColor:o?.descriptionColor&&(e.style.color=o.descriptionColor);let t=n(`span`,`persona-approval-reason-label`);t.textContent=`${o?.reasonLabel??`Agent's stated reason:`} `,e.append(t,document.createTextNode(i.reason)),f?M?.appendChild(e):j.appendChild(e)}let N=e=>{C.setAttribute(`aria-expanded`,String(e));let t=e?x:b;C.setAttribute(`aria-label`,f?`${A}. ${t}`:t)},P=()=>{let e=p.querySelector(`[data-role="params"]`);if(!e)return;let n=e.hidden!==!1;e.hidden=!n,f&&(j.hidden=!n),N(n),t.set(r.id,n)};if(f){if(v){let t=j.querySelector(`[data-role="params"]`);t.id=`${e.disclosurePrefix}-details-${r.id}`,C.setAttribute(`aria-controls`,t.id),N(y),j.hidden=!y,p.appendChild(j),C.addEventListener(`click`,P)}return p}let F=n(`div`,`persona-approval-actions`),I=o?.primaryAction===`allow-once`,L=o?.keyboardShortcuts!==!1&&o?.keyboardShortcuts!==`focused`,R=null,z=e=>{o?.approveButtonColor&&(e.style.background=o.approveButtonColor),o?.approveButtonTextColor&&(e.style.color=o.approveButtonTextColor)},B=n(`button`,`persona-approval-deny`);if(B.type=`button`,B.setAttribute(`data-action`,`deny`),o?.denyButtonColor&&(B.style.background=o.denyButtonColor),o?.denyButtonTextColor&&(B.style.color=o.denyButtonTextColor),B.append(o?.denyLabel??`Deny`),l){let t=n(`div`,`persona-approval-split`),i=n(`button`,`persona-approval-primary`);i.type=`button`,i.setAttribute(`data-action`,I?`allow`:`always`),z(i),i.append(o?.approveLabel??(I?`Allow once`:`Always allow`)),L&&i.append(q(`⏎`));let a=n(`button`,`persona-approval-caret`);a.type=`button`,a.setAttribute(`data-action`,`toggle-menu`),a.setAttribute(`aria-label`,`More options`),z(a);let c=S(`chevron-down`,15,`currentColor`,2);c&&a.appendChild(c),t.append(i,a),F.append(t,B),L&&B.append(q(`Esc`));let l=n(`div`,`persona-approval-menu`),u=n(`button`,`persona-approval-menu-item`);u.type=`button`,u.append(I?o?.alwaysAllowLabel??`Always allow`:`Allow once`),!I&&L&&u.append(q(`⌘⏎`)),l.appendChild(u),R=T().createPopover({anchor:t,content:l,placement:`bottom-start`,matchAnchorWidth:!0}),e.popovers.set(r.id,R),u.addEventListener(`click`,()=>{G(e,r.id),I?s({remember:!0}):s()})}else{let e=n(`button`,`persona-approval-primary persona-approval-primary--solo`);e.type=`button`,e.setAttribute(`data-action`,`allow`),z(e),e.append(o?.approveLabel??(I?`Allow once`:`Allow`)),F.append(e,B)}return j.appendChild(F),p.appendChild(j),p.addEventListener(`click`,t=>{let n=t.target instanceof Element?t.target.closest(`[data-action]`):null;if(!n)return;let i=n.getAttribute(`data-action`);i===`toggle-params`?P():i===`toggle-menu`?R?.toggle():i===`always`?(G(e,r.id),s({remember:!0})):i===`allow`?(G(e,r.id),s()):i===`deny`&&(G(e,r.id),c())}),p},Z=(e=/* @__PURE__ */ new Map)=>{let t=U();return{plugin:{id:`persona-built-in-approval`,renderApproval:({message:r,approve:i,deny:a,config:o,execution:s,signal:c})=>{let l=r?.approval;if(!l)return null;let u={...V(o),...b(o,`plugin`)},d=!1,f=i,p=a;if(i=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?f():f(e))},a=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?p():p(e))},l.status!==`pending`){G(t,r.id);let o=l.status===`denied`?`Denied`:l.status===`timeout`?`Timed out`:s?.status===`running`?`Allowed · running`:s?.status===`completed`?`Completed`:s?.status===`failed`?`Failed`:`Allowed`;if(u?.resolvedDisplay===`row`)return X(t,e,r,l,u,i,a,!1,!1,o);if(u?.resolvedDisplay===`status-line`){let s=X(t,e,r,l,u,i,a,!1),c=n(`div`,`persona-approval-status`);return c.setAttribute(`role`,`status`),c.textContent=o,s.querySelector(`.persona-approval-actions`)?.replaceWith(c),s}if(l.status===`approved`){let e=document.createElement(`div`);return e.style.display=`none`,e}return Y(l)}W(t,r.id);let m=!!o?.clientToken,h=u?.enableAlwaysAllow===!0,g=X(t,e,r,l,u,i,a,h,m),_=u?.keyboardShortcuts??`legacy`;if(_===`focused`||_===`legacy`&&h){t.pendingOrder.includes(r.id)||t.pendingOrder.push(r.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let e=e=>{if(!(e.defaultPrevented||e.isComposing||T().isEditableEventTarget(e))){if(_===`focused`){if(!e.composedPath().includes(g)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.composedPath()[0];if(e.key===`Enter`&&t instanceof Element&&t.closest(`[data-action]`)?.getAttribute(`data-action`)!==`allow`)return}(_!==`legacy`||r.id===t.latestPendingApprovalId)&&(e.key===`Escape`||e.key===`Enter`)&&(e.preventDefault(),e.stopImmediatePropagation(),G(t,r.id),e.key===`Escape`?a():_===`focused`||u?.primaryAction===`allow-once`||e.metaKey||e.ctrlKey?i():i({remember:!0}))}};t.keyHandlers.set(r.id,e),document.addEventListener(`keydown`,e)}return c?.addEventListener(`abort`,()=>G(t,r.id),{once:!0}),g}},teardown:()=>{for(let e of[...t.keyHandlers.keys(),...t.popovers.keys()])G(t,e);t.latestPendingApprovalId=null}}};i();function Q(e,t,n){let i=r(`div`,{className:`persona-error-detail persona-message-bubble`});i.innerHTML=t({text:e.content,message:e,streaming:!1});let a=r(`summary`,{className:`persona-error-summary`},i,r(`span`,{className:`persona-error-more`,text:`Show more`}),r(`span`,{className:`persona-error-less`,text:`Show less`}));return r(`div`,{className:`persona-error-block`,attrs:{role:`alert`,"data-message-id":e.id,"data-actions-for":e.id}},r(`strong`,{className:`persona-error-title`,text:`Something went wrong`}),r(`details`,{className:`persona-error-details`},a),n?r(`button`,{className:`persona-message-action-btn persona-error-retry`,text:`Retry`,attrs:{type:`button`,"data-action":`regenerate`,"aria-label":`Retry response`}}):null)}export{F as createApprovalBubble,Z as createBuiltInApprovalPlugin,Q as createErrorBlock,k as humanizeToolName,D as initApprovalUi,N as updateApprovalDetailsUI};
15
+ const B={resolvedDisplay:`row`,primaryAction:`allow-once`,keyboardShortcuts:`focused`},V=e=>e?.approval===!1?void 0:{...e?.future?.v5Defaults===!0?B:{},...e?.approval};i(),z();let H=0;const U=()=>({disclosurePrefix:`approval-${++H}`,keyHandlers:/* @__PURE__ */ new Map,popovers:/* @__PURE__ */ new Map,pendingOrder:[],latestPendingApprovalId:null}),W=(e,t)=>{let n=e.keyHandlers.get(t);n&&(document.removeEventListener(`keydown`,n),e.keyHandlers.delete(t));let r=e.popovers.get(t);r&&(r.destroy(),e.popovers.delete(t))},G=(e,t)=>{W(e,t);let n=e.pendingOrder.indexOf(t);n!==-1&&e.pendingOrder.splice(n,1),e.latestPendingApprovalId===t&&(e.latestPendingApprovalId=e.pendingOrder.length?e.pendingOrder[e.pendingOrder.length-1]:null)},K=(e,t,n)=>{let r=n?.detailsDisplay??`collapsed`;return t.get(e)??r===`expanded`},q=e=>{let t=n(`span`,`persona-approval-kbd`);return t.textContent=e,t},J=(e,t)=>{let r=n(`span`,`persona-approval-title`);t?.titleColor&&(r.style.color=t.titleColor);let i=e.toolType===`webmcp`||e.toolName.startsWith(`webmcp:`)?O(e.toolName):void 0,a=t?.formatDescription?.({toolName:e.toolName,toolType:e.toolType,description:e.description??``,parameters:e.parameters,...i?{displayTitle:i}:{},...e.reason?{reason:e.reason}:{}});if(a)return r.textContent=a,r;let o=i??k(e.toolName),s=e.toolType&&e.toolType!==`webmcp`?e.toolType:null;r.append(`The assistant wants to use `);let c=document.createElement(`strong`);if(c.textContent=o,r.appendChild(c),s){r.append(` from `);let e=document.createElement(`strong`);e.textContent=s,r.appendChild(e)}return r},Y=e=>{let i=n(`div`,`persona-approval-resolved`),a=C(L,15,`currentColor`,2);a&&i.appendChild(a);let o=n(`span`,`persona-approval-resolved-name`);o.textContent=e.toolName?k(e.toolName):`Tool`;let s=e.status===`timeout`&&e.interrupted?` approval expired. ${t}`:e.status===`timeout`?` timed out`:` denied`;return i.appendChild(r(`span`,{className:`persona-approval-resolved-text`},o,s)),i},X=(e,t,r,i,o,s,c,l,u=!1,d)=>{let f=d!==void 0,p=n(`div`,f?`persona-approval-row persona-activity-row`:`persona-approval-card persona-shadow-sm`);p.id=`bubble-${r.id}`,p.setAttribute(`data-message-id`,r.id),p.setAttribute(`data-bubble-type`,`approval`),o?.backgroundColor&&(p.style.background=o.backgroundColor),o?.borderColor&&(p.style.borderColor=o.borderColor),o?.shadow!==void 0&&(p.style.boxShadow=o.shadow.trim()===``?`none`:o.shadow);let m=o?.detailsDisplay??`collapsed`,h=!!i.description&&m!==`hidden`,g=i.parameters!=null&&m!==`hidden`&&!u,_=!!i.reason&&m!==`hidden`,v=h||g||f&&_,y=v&&K(r.id,t,o),b=o?.showDetailsLabel??`Show details`,x=o?.hideDetailsLabel??`Hide details`,C=n(f&&!v?`div`:`button`,`persona-approval-head`);C instanceof HTMLButtonElement&&(C.type=`button`),v?(C.setAttribute(`data-action`,`toggle-params`),C.setAttribute(`aria-expanded`,y?`true`:`false`),C.setAttribute(`aria-label`,y?x:b)):C.setAttribute(`data-static`,`true`);let w=n(`span`,`persona-approval-logo`),E=S(`shield-check`,16,`currentColor`,2);E&&w.appendChild(E),f||C.appendChild(w);let D=f?n(`span`,`persona-approval-title`):J(i,o),A=``;if(f){let e=(i.toolType===`webmcp`||i.toolName.startsWith(`webmcp:`)?O(i.toolName):void 0)??k(i.toolName),t=n(`span`,`persona-approval-status`);t.setAttribute(`role`,`status`),t.textContent=d,D.append(e,` · `,t),o?.titleColor&&(D.style.color=o.titleColor),A=`${e} · ${d}`}if(v){let e=n(`span`,`persona-approval-toggle`);e.setAttribute(`aria-hidden`,`true`);let t=S(`chevron-down`,14,`currentColor`,2);t&&e.appendChild(t),D.append(` `),D.appendChild(e)}C.appendChild(D),p.appendChild(C);let j=n(`div`,`persona-approval-body`),M;if(v){let e=n(`div`,`persona-approval-details`);e.setAttribute(`data-role`,`params`),e.hidden=!y;let t=t=>{let r=n(`div`,`persona-tool-detail`),i=n(`div`,`persona-tool-detail-label`);return i.textContent=t,r.appendChild(i),e.appendChild(r),r},r=f&&g?t(`Request`):e;if(f&&(h||_)&&(M=t(`Context`)),h){let t=n(`p`,`persona-approval-desc`);o?.descriptionColor&&(t.style.color=o.descriptionColor),t.textContent=i.description,(M??e).appendChild(t)}if(g){let e=n(`pre`,f?`persona-approval-params persona-tool-detail-value persona-tool-detail-code`:`persona-approval-params`);o?.parameterBackgroundColor&&(e.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(e.style.color=o.parameterTextColor),e.textContent=a(i.parameters),r.appendChild(e)}j.appendChild(e)}if(u){let e=n(`div`,`persona-approval-call`);e.setAttribute(`data-role`,`raw-call`);let t=n(`code`,`persona-approval-tool-name`);if(t.textContent=i.toolName,e.appendChild(t),i.parameters!=null){let t=n(`pre`,`persona-approval-params`);o?.parameterBackgroundColor&&(t.style.background=o.parameterBackgroundColor),o?.parameterTextColor&&(t.style.color=o.parameterTextColor),t.textContent=a(i.parameters),e.appendChild(t)}j.appendChild(e)}if(i.reason){let e=n(`p`,`persona-approval-reason`);o?.reasonColor?e.style.color=o.reasonColor:o?.descriptionColor&&(e.style.color=o.descriptionColor);let t=n(`span`,`persona-approval-reason-label`);t.textContent=`${o?.reasonLabel??`Agent's stated reason:`} `,e.append(t,document.createTextNode(i.reason)),f?M?.appendChild(e):j.appendChild(e)}let N=e=>{C.setAttribute(`aria-expanded`,String(e));let t=e?x:b;C.setAttribute(`aria-label`,f?`${A}. ${t}`:t)},P=()=>{let e=p.querySelector(`[data-role="params"]`);if(!e)return;let n=e.hidden!==!1;e.hidden=!n,f&&(j.hidden=!n),N(n),t.set(r.id,n)};if(f){if(v){let t=j.querySelector(`[data-role="params"]`);t.id=`${e.disclosurePrefix}-details-${r.id}`,C.setAttribute(`aria-controls`,t.id),N(y),j.hidden=!y,p.appendChild(j),C.addEventListener(`click`,P)}return p}let F=n(`div`,`persona-approval-actions`),I=o?.primaryAction===`allow-once`,L=o?.keyboardShortcuts!==!1&&o?.keyboardShortcuts!==`focused`,R=null,z=e=>{o?.approveButtonColor&&(e.style.background=o.approveButtonColor),o?.approveButtonTextColor&&(e.style.color=o.approveButtonTextColor)},B=n(`button`,`persona-approval-deny`);if(B.type=`button`,B.setAttribute(`data-action`,`deny`),o?.denyButtonColor&&(B.style.background=o.denyButtonColor),o?.denyButtonTextColor&&(B.style.color=o.denyButtonTextColor),B.append(o?.denyLabel??`Deny`),l){let t=n(`div`,`persona-approval-split`),i=n(`button`,`persona-approval-primary`);i.type=`button`,i.setAttribute(`data-action`,I?`allow`:`always`),z(i),i.append(o?.approveLabel??(I?`Allow once`:`Always allow`)),L&&i.append(q(`⏎`));let a=n(`button`,`persona-approval-caret`);a.type=`button`,a.setAttribute(`data-action`,`toggle-menu`),a.setAttribute(`aria-label`,`More options`),z(a);let c=S(`chevron-down`,15,`currentColor`,2);c&&a.appendChild(c),t.append(i,a),F.append(t,B),L&&B.append(q(`Esc`));let l=n(`div`,`persona-approval-menu`),u=n(`button`,`persona-approval-menu-item`);u.type=`button`,u.append(I?o?.alwaysAllowLabel??`Always allow`:`Allow once`),!I&&L&&u.append(q(`⌘⏎`)),l.appendChild(u),R=T().createPopover({anchor:t,content:l,placement:`bottom-start`,matchAnchorWidth:!0}),e.popovers.set(r.id,R),u.addEventListener(`click`,()=>{G(e,r.id),I?s({remember:!0}):s()})}else{let e=n(`button`,`persona-approval-primary persona-approval-primary--solo`);e.type=`button`,e.setAttribute(`data-action`,`allow`),z(e),e.append(o?.approveLabel??(I?`Allow once`:`Allow`)),F.append(e,B)}return j.appendChild(F),p.appendChild(j),p.addEventListener(`click`,t=>{let n=t.target instanceof Element?t.target.closest(`[data-action]`):null;if(!n)return;let i=n.getAttribute(`data-action`);i===`toggle-params`?P():i===`toggle-menu`?R?.toggle():i===`always`?(G(e,r.id),s({remember:!0})):i===`allow`?(G(e,r.id),s()):i===`deny`&&(G(e,r.id),c())}),p},Z=(e=/* @__PURE__ */ new Map)=>{let t=U();return{plugin:{id:`persona-built-in-approval`,renderApproval:({message:r,approve:i,deny:a,config:o,execution:s,signal:c})=>{let l=r?.approval;if(!l)return null;let u={...V(o),...b(o,`plugin`)},d=!1,f=i,p=a;if(i=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?f():f(e))},a=e=>{d||c?.aborted||l.status!==`pending`||(d=!0,e===void 0?p():p(e))},l.status!==`pending`){G(t,r.id);let o=l.status===`denied`?`Denied`:l.status===`timeout`?`Timed out`:s?.status===`running`?`Allowed · running`:s?.status===`completed`?`Completed`:s?.status===`failed`?`Failed`:`Allowed`;if(u?.resolvedDisplay===`row`)return X(t,e,r,l,u,i,a,!1,!1,o);if(u?.resolvedDisplay===`status-line`){let s=X(t,e,r,l,u,i,a,!1),c=n(`div`,`persona-approval-status`);return c.setAttribute(`role`,`status`),c.textContent=o,s.querySelector(`.persona-approval-actions`)?.replaceWith(c),s}if(l.status===`approved`){let e=document.createElement(`div`);return e.style.display=`none`,e}return Y(l)}W(t,r.id);let m=!!o?.clientToken,h=u?.enableAlwaysAllow===!0,g=X(t,e,r,l,u,i,a,h,m),_=u?.keyboardShortcuts??`legacy`;if(_===`focused`||_===`legacy`&&h){t.pendingOrder.includes(r.id)||t.pendingOrder.push(r.id),t.latestPendingApprovalId=t.pendingOrder[t.pendingOrder.length-1];let e=e=>{if(!(e.defaultPrevented||e.isComposing||T().isEditableEventTarget(e))){if(_===`focused`){if(!e.composedPath().includes(g)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.composedPath()[0];if(e.key===`Enter`&&t instanceof Element&&t.closest(`[data-action]`)?.getAttribute(`data-action`)!==`allow`)return}_===`legacy`&&r.id!==t.latestPendingApprovalId||e.key!==`Escape`&&e.key!==`Enter`||(e.preventDefault(),e.stopImmediatePropagation(),G(t,r.id),e.key===`Escape`?a():_===`focused`||u?.primaryAction===`allow-once`||e.metaKey||e.ctrlKey?i():i({remember:!0}))}};t.keyHandlers.set(r.id,e),document.addEventListener(`keydown`,e)}return c?.addEventListener(`abort`,()=>G(t,r.id),{once:!0}),g}},teardown:()=>{for(let e of[...t.keyHandlers.keys(),...t.popovers.keys()])G(t,e);t.latestPendingApprovalId=null}}};i();function Q(e,t,n){let i=r(`div`,{className:`persona-error-detail persona-message-bubble`});i.innerHTML=t({text:e.content,message:e,streaming:!1});let a=r(`summary`,{className:`persona-error-summary`},i,r(`span`,{className:`persona-error-more`,text:`Show more`}),r(`span`,{className:`persona-error-less`,text:`Show less`}));return r(`div`,{className:`persona-error-block`,attrs:{role:`alert`,"data-message-id":e.id,"data-actions-for":e.id}},r(`strong`,{className:`persona-error-title`,text:`Something went wrong`}),r(`details`,{className:`persona-error-details`},a),n?r(`button`,{className:`persona-message-action-btn persona-error-retry`,text:`Retry`,attrs:{type:`button`,"data-action":`regenerate`,"aria-label":`Retry response`}}):null)}export{F as createApprovalBubble,Z as createBuiltInApprovalPlugin,Q as createErrorBlock,k as humanizeToolName,D as initApprovalUi,N as updateApprovalDetailsUI};
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),t=`[data-persona-root] .persona-artifact-split-root{gap:var(--persona-artifact-split-gap,.5rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn{padding:var(--persona-artifact-toolbar-icon-padding,.25rem);border-radius:var(--persona-artifact-toolbar-icon-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-icon-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-icon-bg,var(--persona-surface,#fff));color:var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827));cursor:pointer;justify-content:center;align-items:center;line-height:1;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn:hover{color:var(--persona-artifact-toolbar-icon-hover-color,inherit);background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn[aria-pressed=true],[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));border-color:var(--persona-artifact-doc-toggle-active-border,var(--persona-icon-btn-active-border,var(--persona-border,#e5e7eb)));color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn{padding:var(--persona-artifact-toolbar-copy-padding,.25rem .5rem);border-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff));color:var(--persona-artifact-toolbar-copy-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)));cursor:pointer;align-items:center;gap:.35rem;font-size:.75rem;line-height:1.25;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-split-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-split-btn{--persona-split-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab{background:var(--persona-artifact-tab-bg,transparent);border-radius:var(--persona-artifact-tab-radius,.5rem);color:var(--persona-artifact-tab-color,inherit);white-space:nowrap;max-width:var(--persona-artifact-tab-max-width,12rem);text-overflow:ellipsis;overflow:hidden}[data-persona-root] .persona-artifact-tab.persona-bg-persona-container{background:var(--persona-artifact-tab-active-bg,var(--persona-container,#f3f4f6));border-color:var(--persona-artifact-tab-active-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-toolbar{background:var(--persona-artifact-toolbar-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab:hover{background:var(--persona-artifact-tab-hover-bg,var(--persona-container,#f3f4f6))}[data-persona-root] .persona-artifact-tab:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-artifact-list{background:var(--persona-artifact-tab-list-bg,transparent);border-bottom-color:var(--persona-artifact-tab-list-border-color,var(--persona-border,#e5e7eb));padding:var(--persona-artifact-tab-list-padding,.5rem);scrollbar-width:thin;scroll-behavior:smooth}[data-persona-root] .persona-artifact-list::-webkit-scrollbar{height:6px}[data-persona-root] .persona-artifact-list::-webkit-scrollbar-thumb{background:var(--persona-artifact-tab-list-scrollbar,var(--persona-scrollbar-thumb,var(--persona-border,#e5e7eb)));border-radius:9999px}[data-persona-root] .persona-artifact-toolbar-document{border-bottom:var(--persona-artifact-toolbar-border,1px solid var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card{background:var(--persona-artifact-card-bg,var(--persona-surface,#fff));border:var(--persona-artifact-card-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-card-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));cursor:pointer;transition:background-color .15s,border-color .15s}[data-persona-root] .persona-artifact-card:hover{background:var(--persona-artifact-card-hover-bg,#f3f4f6);border-color:var(--persona-artifact-card-hover-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{gap:var(--persona-artifact-toolbar-toggle-group-gap,2px);padding:var(--persona-artifact-toolbar-toggle-group-padding,2px);border:var(--persona-artifact-toolbar-toggle-group-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-toolbar-toggle-group-radius,var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))));background:var(--persona-artifact-toolbar-toggle-group-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{padding:calc(var(--persona-artifact-toolbar-icon-padding,var(--persona-icon-btn-padding,.25rem)) - var(--persona-artifact-toolbar-toggle-group-padding,2px));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:0 0;border:none}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}@supports selector(:has(*)){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{content:"";top:var(--persona-artifact-toolbar-toggle-group-padding,2px);bottom:var(--persona-artifact-toolbar-toggle-group-padding,2px);left:var(--persona-artifact-toolbar-toggle-group-padding,2px);width:calc(50% - var(--persona-artifact-toolbar-toggle-group-padding,2px) - (var(--persona-artifact-toolbar-toggle-group-gap,2px) / 2));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);pointer-events:none;transition:transform .18s;position:absolute}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:has(>.persona-icon-btn:last-child[aria-pressed=true]):before{transform:translateX(calc(100% + var(--persona-artifact-toolbar-toggle-group-gap,2px)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{box-shadow:none;background:0 0}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{transition:none}}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-split-handle{display:none!important}@media (max-width:640px){[data-persona-root] .persona-artifact-split-handle{display:none!important}}@media (min-width:641px){[data-persona-root] .persona-artifact-pane{width:var(--persona-artifact-pane-width,40%);max-width:var(--persona-artifact-pane-max-width,28rem);min-width:var(--persona-artifact-pane-min-width,0);box-shadow:var(--persona-artifact-pane-shadow,none);flex-shrink:0}[data-persona-root].persona-artifact-expanded .persona-artifact-split-root>:first-child{display:none}[data-persona-root].persona-artifact-expanded .persona-artifact-pane{width:100%;max-width:none}[data-persona-root].persona-artifact-expanded .persona-artifact-split-handle{display:none!important}}@media (max-width:640px){[data-persona-root] .persona-artifact-expand-btn{display:none!important}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-expand-btn{display:none!important}[data-persona-root] .persona-artifact-frame{background:var(--persona-artifact-frame-bg,#fff);width:100%;height:100%;position:relative}[data-persona-root] .persona-artifact-iframe{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--persona-artifact-frame-bg,#fff);border:0;width:100%;height:100%;display:block}[data-persona-root] .persona-artifact-frame-loading{background:var(--persona-artifact-frame-bg,#fff);opacity:1;transition:opacity var(--persona-artifact-frame-loading-fade,.2s) ease;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[data-persona-root] .persona-artifact-frame-loading--out{opacity:0}[data-persona-root] .persona-artifact-frame-loading-indicator{flex-direction:column;align-items:center;gap:.625rem;display:flex}[data-persona-root] .persona-artifact-frame-loading-text{color:var(--persona-artifact-frame-loading-color,var(--persona-text-muted,#6b7280));opacity:0;font-size:.8125rem;font-weight:500;transition:opacity .24s}[data-persona-root] .persona-artifact-frame-loading-text--visible{opacity:1}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-artifact-frame-loading-text{transition:none}}[data-persona-root] .persona-artifact-content{width:100%;min-width:0;max-width:100%}[data-persona-root] .persona-artifact-content>.persona-artifact-preview-body>*{min-width:0;max-width:100%}[data-persona-root] .persona-artifact-preview-body{display:contents}[data-persona-root] .persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-content-flush .persona-code-pre{border-radius:0;min-height:100%;padding:.5rem .75rem .5rem 0}[data-persona-root] .persona-artifact-inline{border:var(--persona-artifact-inline-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-inline-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));background:var(--persona-artifact-inline-bg,var(--persona-surface,#fff));overflow:hidden}[data-persona-root] .persona-artifact-inline.persona-artifact-inline--card{background:0 0;border:none;border-radius:0;overflow:visible}[data-persona-root] .persona-artifact-inline-chrome{background:var(--persona-artifact-inline-chrome-bg,var(--persona-surface,#fff));border-bottom:1px solid var(--persona-artifact-inline-chrome-border,var(--persona-border,#e5e7eb));align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead{min-width:0;color:var(--persona-artifact-inline-title-color,var(--persona-text,#111827));flex:auto;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-type,[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-weight:400}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}[data-persona-root] .persona-artifact-status-detail{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-variant-numeric:tabular-nums;margin-left:.375rem}[data-persona-root] .persona-artifact-inline-chrome-actions{flex:none;align-items:center;gap:.25rem;display:flex}[data-persona-root] .persona-artifact-inline-body{padding:.75rem}[data-persona-root] .persona-artifact-inline .persona-artifact-frame{height:var(--persona-artifact-inline-body-height,var(--persona-artifact-inline-frame-height,320px))}[data-persona-root] .persona-artifact-inline-body.persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-inline-body--sized{height:var(--persona-artifact-inline-body-height,auto)}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-source-window--fixed,[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-frame{height:100%}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-status-view{min-height:100%}[data-persona-root] .persona-artifact-source-window{min-width:0}[data-persona-root] .persona-artifact-source-window--fixed{overflow-y:auto}[data-persona-root] .persona-artifact-source-window--clip{overflow:hidden}[data-persona-root] .persona-artifact-fade-top:not(.persona-artifact-fade-bottom){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-bottom:not(.persona-artifact-fade-top){-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-top.persona-artifact-fade-bottom{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%)}[data-persona-root] .persona-artifact-tab-fade-start:not(.persona-artifact-tab-fade-end){-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-end:not(.persona-artifact-tab-fade-start){-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-start.persona-artifact-tab-fade-end{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%)}[data-persona-root] .persona-artifact-status-view{min-height:var(--persona-artifact-inline-body-height,160px);justify-content:center;align-items:center;display:flex}[data-persona-root] .persona-artifact-inline-body--cap{max-height:var(--persona-artifact-inline-body-height,none);overflow-y:auto}[data-persona-root] .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,0);background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-surface,#fff)));overflow:hidden}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-split-root{position:relative;gap:0!important}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-pane{background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-container,#f8fafc)));box-shadow:none!important;border-left-width:0!important;border-left-color:#0000!important}[data-persona-root].persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-border-left .persona-artifact-pane{border-top:none!important;border-bottom:none!important;border-right:none!important;border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-left .persona-artifact-pane{border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-appearance-detached .persona-artifact-split-root{background:var(--persona-panel-canvas-bg)}@media (min-width:641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-appearance-detached .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)));border:var(--persona-panel-border,1px solid var(--persona-border,#e5e7eb));box-shadow:var(--persona-artifact-pane-shadow,var(--persona-panel-shadow,var(--persona-palette-shadows-xl,0 25px 50px -12px #00000040)))}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-chat-flush .persona-artifact-pane{margin-top:var(--persona-panel-inset);margin-right:var(--persona-panel-inset);margin-bottom:var(--persona-panel-inset)}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-split-root{position:relative}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-widget-container{overflow:hidden;border-top-right-radius:0!important;border-bottom-right-radius:0!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-pane{overflow:hidden;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important;border-bottom-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split.persona-artifact-appearance-panel .persona-artifact-pane{border-left:1px solid var(--persona-border,#e5e7eb)}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-backdrop{z-index:55!important;position:absolute!important;inset:0!important}@media (min-width:641px){[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane{z-index:60;transition:transform .2s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f;width:min(100%, var(--persona-artifact-drawer-width,min(calc(100% - 1rem), 22rem)))!important;max-width:var(--persona-artifact-drawer-width,22rem)!important}[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}@media (max-width:640px){[data-persona-root] .persona-artifact-pane{width:min(100vw, var(--persona-artifact-drawer-width,min(100vw - 1.5rem, 22rem)));z-index:60;transition:transform .2s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}[data-persona-root] .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}`;const n=e=>e.nodeType===Node.DOCUMENT_NODE,r=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host!==void 0;function i(e){let t=e.getRootNode?.();return t&&r(t)||t&&n(t)?t:e.ownerDocument??document}function a(e,t,r){let i=n(e)?e.head:e,a=t.replace(/["\\]/g,`\\$&`);if(i.querySelector(`style[data-persona-plugin-style="${a}"]`))return;let o=(n(e)?e:e.ownerDocument??document).createElement(`style`);o.setAttribute(`data-persona-plugin-style`,t),o.textContent=r,i.appendChild(o)}function o(e,t,o){if(n(e)||r(e)){a(e,t,o);return}let s=e;if(s.isConnected){a(i(s),t,o);return}let c=s.ownerDocument??document;a(c,t,o),queueMicrotask(()=>{let e=i(s);e!==c&&a(e,t,o)})}const s=e=>o(e,`artifacts`,t),c=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},l=()=>document.createDocumentFragment(),u=(...e)=>e.filter(Boolean).join(` `),d=e=>{if(typeof e!=`string`)return;let t=e.trim(),n=/^#([\da-f]{3}|[\da-f]{6})$/i.exec(t)?.[1];if(n){let e=n.length===3?[...n].map(e=>e+e).join(``):n;return[0,2,4].map(t=>parseInt(e.slice(t,t+2),16))}let r=/^rgba?\(\s*([^)]*)\)$/i.exec(t);if(!r)return;let i=r[1].trim().split(/\s*[,/]\s*|\s+/);if(i.length===4&&/^(?:1(?:\.0+)?|100%)$/.test(i[3])&&i.pop(),i.length!==3)return;let a=i.map(e=>/^\d+(?:\.\d+)?%?$/.test(e)?Number.parseFloat(e)*(e.endsWith(`%`)?2.55:1):NaN);if(!a.some(e=>!Number.isFinite(e)||e<0||e>255))return a},f=e=>e.reduce((e,t,n)=>{let r=t/255;return e+(r<=.04045?r/12.92:((r+.055)/1.055)**2.4)*[.2126,.7152,.0722][n]},0),p=e=>{let t=d(e?.neutral);return t?f(t)<.18?`dark`:`light`:void 0},m=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function h(e,t){let n=t.split(`.`);for(let t=0;t<n.length;t++){let r=n[t];if(!m(e)||!Object.prototype.hasOwnProperty.call(e,r))return`absent`;if(e=e[r],e===void 0||t<n.length-1&&!m(e))return`clear`}return`explicit`}const g=Symbol.for(`persona.styleProvenance`),_=(e,t)=>{for(let n of t.split(`.`)){if(typeof e!=`object`||!e)return;e=e[n]}return e},v=(e,t)=>{let n=e?.[g];return!n||!Object.prototype.hasOwnProperty.call(n.values,t)||_(e,t)!==n.values[t]?h(e,t)===`explicit`:n.explicit.includes(t)},y=(e,t,n)=>{let r=e,i=n??r?.colorScheme??p(r?.brand)??`light`,a=i===`dark`||i===`auto`&&(typeof document<`u`&&document.documentElement.classList.contains(`dark`)||typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches);return v(e,`theme.components.${t}`)||a&&v(e,`darkTheme.components.${t}`)};function b(e,t,n){return t?.trim()||(y(e,`artifact.${n}`)?`var(--persona-components-artifact-${n.split(`.`).join(`-`)})`:void 0)}function x(e){let t=String(e).split(/[\\/]/);return t[t.length-1]??``}function S(e){let t=x(e),n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function C(e){if(typeof e!=`string`)return``;let t=e.indexOf(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),t=`[data-persona-root] .persona-artifact-split-root{gap:var(--persona-artifact-split-gap,.5rem)}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn{padding:var(--persona-artifact-toolbar-icon-padding,.25rem);border-radius:var(--persona-artifact-toolbar-icon-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-icon-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-icon-bg,var(--persona-surface,#fff));color:var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827));cursor:pointer;justify-content:center;align-items:center;line-height:1;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn:hover{color:var(--persona-artifact-toolbar-icon-hover-color,inherit);background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-icon-btn[aria-pressed=true],[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));border-color:var(--persona-artifact-doc-toggle-active-border,var(--persona-icon-btn-active-border,var(--persona-border,#e5e7eb)));color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn{padding:var(--persona-artifact-toolbar-copy-padding,.25rem .5rem);border-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff));color:var(--persona-artifact-toolbar-copy-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)));cursor:pointer;align-items:center;gap:.35rem;font-size:.75rem;line-height:1.25;display:inline-flex}[data-persona-root] .persona-artifact-toolbar-document .persona-artifact-doc-copy-btn:hover,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-artifact-doc-copy-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-artifact-toolbar-document .persona-split-btn,[data-persona-root] .persona-artifact-inline-chrome-actions .persona-split-btn{--persona-split-radius:var(--persona-artifact-toolbar-copy-radius,var(--persona-radius-md,.375rem));border:var(--persona-artifact-toolbar-copy-border,1px solid var(--persona-border,#e5e7eb));background:var(--persona-artifact-toolbar-copy-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab{background:var(--persona-artifact-tab-bg,transparent);border-radius:var(--persona-artifact-tab-radius,.5rem);color:var(--persona-artifact-tab-color,inherit);white-space:nowrap;max-width:var(--persona-artifact-tab-max-width,12rem);text-overflow:ellipsis;overflow:hidden}[data-persona-root] .persona-artifact-tab.persona-bg-persona-container{background:var(--persona-artifact-tab-active-bg,var(--persona-container,#f3f4f6));border-color:var(--persona-artifact-tab-active-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-toolbar{background:var(--persona-artifact-toolbar-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-artifact-tab:hover{background:var(--persona-artifact-tab-hover-bg,var(--persona-container,#f3f4f6))}[data-persona-root] .persona-artifact-tab:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-artifact-list{background:var(--persona-artifact-tab-list-bg,transparent);border-bottom-color:var(--persona-artifact-tab-list-border-color,var(--persona-border,#e5e7eb));padding:var(--persona-artifact-tab-list-padding,.5rem);scrollbar-width:thin;scroll-behavior:smooth}[data-persona-root] .persona-artifact-list::-webkit-scrollbar{height:6px}[data-persona-root] .persona-artifact-list::-webkit-scrollbar-thumb{background:var(--persona-artifact-tab-list-scrollbar,var(--persona-scrollbar-thumb,var(--persona-border,#e5e7eb)));border-radius:9999px}[data-persona-root] .persona-artifact-toolbar-document{border-bottom:var(--persona-artifact-toolbar-border,1px solid var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card{background:var(--persona-artifact-card-bg,var(--persona-surface,#fff));border:var(--persona-artifact-card-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-card-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));cursor:pointer;transition:background-color .15s,border-color .15s}[data-persona-root] .persona-artifact-card:hover{background:var(--persona-artifact-card-hover-bg,#f3f4f6);border-color:var(--persona-artifact-card-hover-border,var(--persona-border,#e5e7eb))}[data-persona-root] .persona-artifact-card:focus-visible{outline:2px solid var(--persona-accent,#171717);outline-offset:2px}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{gap:var(--persona-artifact-toolbar-toggle-group-gap,2px);padding:var(--persona-artifact-toolbar-toggle-group-padding,2px);border:var(--persona-artifact-toolbar-toggle-group-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-toolbar-toggle-group-radius,var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))));background:var(--persona-artifact-toolbar-toggle-group-bg,var(--persona-surface,#fff))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{padding:calc(var(--persona-artifact-toolbar-icon-padding,var(--persona-icon-btn-padding,.25rem)) - var(--persona-artifact-toolbar-toggle-group-padding,2px));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:0 0;border:none}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn:hover{background:var(--persona-artifact-toolbar-icon-hover-bg,var(--persona-icon-btn-hover-bg,var(--persona-container,#f3f4f6)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);color:var(--persona-artifact-doc-toggle-active-color,var(--persona-artifact-doc-toolbar-icon-color,var(--persona-text,#111827)))}@supports selector(:has(*)){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{content:"";top:var(--persona-artifact-toolbar-toggle-group-padding,2px);bottom:var(--persona-artifact-toolbar-toggle-group-padding,2px);left:var(--persona-artifact-toolbar-toggle-group-padding,2px);width:calc(50% - var(--persona-artifact-toolbar-toggle-group-padding,2px) - (var(--persona-artifact-toolbar-toggle-group-gap,2px) / 2));border-radius:var(--persona-artifact-toolbar-toggle-radius,calc(var(--persona-artifact-toolbar-icon-radius,var(--persona-icon-btn-radius,var(--persona-radius-md,.375rem))) - 2px));background:var(--persona-artifact-doc-toggle-active-bg,var(--persona-icon-btn-active-bg,var(--persona-container,#f3f4f6)));box-shadow:inset 0 0 0 1px var(--persona-artifact-doc-toggle-active-border,transparent);pointer-events:none;transition:transform .18s;position:absolute}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:has(>.persona-icon-btn:last-child[aria-pressed=true]):before{transform:translateX(calc(100% + var(--persona-artifact-toolbar-toggle-group-gap,2px)))}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn{position:relative}[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group>.persona-icon-btn[aria-pressed=true]{box-shadow:none;background:0 0}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-toggle-group.persona-artifact-toggle-group:before{transition:none}}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-split-handle{display:none!important}@media (max-width:640px){[data-persona-root] .persona-artifact-split-handle{display:none!important}}@media (min-width:641px){[data-persona-root] .persona-artifact-pane{width:var(--persona-artifact-pane-width,40%);max-width:var(--persona-artifact-pane-max-width,28rem);min-width:var(--persona-artifact-pane-min-width,0);box-shadow:var(--persona-artifact-pane-shadow,none);flex-shrink:0}[data-persona-root].persona-artifact-expanded .persona-artifact-split-root>:first-child{display:none}[data-persona-root].persona-artifact-expanded .persona-artifact-pane{width:100%;max-width:none}[data-persona-root].persona-artifact-expanded .persona-artifact-split-handle{display:none!important}}@media (max-width:640px){[data-persona-root] .persona-artifact-expand-btn{display:none!important}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-expand-btn{display:none!important}[data-persona-root] .persona-artifact-frame{background:var(--persona-artifact-frame-bg,#fff);width:100%;height:100%;position:relative}[data-persona-root] .persona-artifact-iframe{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--persona-artifact-frame-bg,#fff);border:0;width:100%;height:100%;display:block}[data-persona-root] .persona-artifact-frame-loading{background:var(--persona-artifact-frame-bg,#fff);opacity:1;transition:opacity var(--persona-artifact-frame-loading-fade,.2s) ease;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}[data-persona-root] .persona-artifact-frame-loading--out{opacity:0}[data-persona-root] .persona-artifact-frame-loading-indicator{flex-direction:column;align-items:center;gap:.625rem;display:flex}[data-persona-root] .persona-artifact-frame-loading-text{color:var(--persona-artifact-frame-loading-color,var(--persona-text-muted,#6b7280));opacity:0;font-size:.8125rem;font-weight:500;transition:opacity .24s}[data-persona-root] .persona-artifact-frame-loading-text--visible{opacity:1}@media (prefers-reduced-motion:reduce){[data-persona-root] .persona-artifact-frame-loading-text{transition:none}}[data-persona-root] .persona-artifact-content{width:100%;min-width:0;max-width:100%}[data-persona-root] .persona-artifact-content>.persona-artifact-preview-body>*{min-width:0;max-width:100%}[data-persona-root] .persona-artifact-preview-body{display:contents}[data-persona-root] .persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-content-flush .persona-code-pre{border-radius:0;min-height:100%;padding:.5rem .75rem .5rem 0}[data-persona-root] .persona-artifact-inline{border:var(--persona-artifact-inline-border,1px solid var(--persona-border,#e5e7eb));border-radius:var(--persona-artifact-inline-radius,var(--persona-message-assistant-radius,var(--persona-radius-lg,.5rem)));background:var(--persona-artifact-inline-bg,var(--persona-surface,#fff));overflow:hidden}[data-persona-root] .persona-artifact-inline.persona-artifact-inline--card{background:0 0;border:none;border-radius:0;overflow:visible}[data-persona-root] .persona-artifact-inline-chrome{background:var(--persona-artifact-inline-chrome-bg,var(--persona-surface,#fff));border-bottom:1px solid var(--persona-artifact-inline-chrome-border,var(--persona-border,#e5e7eb));align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead{min-width:0;color:var(--persona-artifact-inline-title-color,var(--persona-text,#111827));flex:auto;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;display:flex}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-type,[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-weight:400}[data-persona-root] .persona-artifact-inline-chrome-lead .persona-artifact-inline-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}[data-persona-root] .persona-artifact-status-detail{color:var(--persona-artifact-inline-muted-color,var(--persona-text-muted,#6b7280));font-variant-numeric:tabular-nums;margin-left:.375rem}[data-persona-root] .persona-artifact-inline-chrome-actions{flex:none;align-items:center;gap:.25rem;display:flex}[data-persona-root] .persona-artifact-inline-body{padding:.75rem}[data-persona-root] .persona-artifact-inline .persona-artifact-frame{height:var(--persona-artifact-inline-body-height,var(--persona-artifact-inline-frame-height,320px))}[data-persona-root] .persona-artifact-inline-body.persona-artifact-content-flush{padding:0}[data-persona-root] .persona-artifact-inline-body--sized{height:var(--persona-artifact-inline-body-height,auto)}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-source-window--fixed,[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-frame{height:100%}[data-persona-root] .persona-artifact-inline-body--sized .persona-artifact-status-view{min-height:100%}[data-persona-root] .persona-artifact-source-window{min-width:0}[data-persona-root] .persona-artifact-source-window--fixed{overflow-y:auto}[data-persona-root] .persona-artifact-source-window--clip{overflow:hidden}[data-persona-root] .persona-artifact-fade-top:not(.persona-artifact-fade-bottom){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-bottom:not(.persona-artifact-fade-top){-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));-webkit-mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px));mask-image:linear-gradient(to top, transparent 0, #000 var(--persona-artifact-fade-size,40px))}[data-persona-root] .persona-artifact-fade-top.persona-artifact-fade-bottom{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--persona-artifact-fade-size,40px), #000 calc(100% - var(--persona-artifact-fade-size,40px)), transparent 100%)}[data-persona-root] .persona-artifact-tab-fade-start:not(.persona-artifact-tab-fade-end){-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-end:not(.persona-artifact-tab-fade-start){-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));-webkit-mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px));mask-image:linear-gradient(to left, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px))}[data-persona-root] .persona-artifact-tab-fade-start.persona-artifact-tab-fade-end{-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--persona-artifact-tab-fade-size,24px), #000 calc(100% - var(--persona-artifact-tab-fade-size,24px)), transparent 100%)}[data-persona-root] .persona-artifact-status-view{min-height:var(--persona-artifact-inline-body-height,160px);justify-content:center;align-items:center;display:flex}[data-persona-root] .persona-artifact-inline-body--cap{max-height:var(--persona-artifact-inline-body-height,none);overflow-y:auto}[data-persona-root] .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,0);background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-surface,#fff)));overflow:hidden}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-split-root{position:relative;gap:0!important}[data-persona-root].persona-artifact-appearance-seamless .persona-artifact-pane{background-color:var(--persona-artifact-pane-bg,var(--persona-components-artifact-pane-background,var(--persona-container,#f8fafc)));box-shadow:none!important;border-left-width:0!important;border-left-color:#0000!important}[data-persona-root].persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-border-left .persona-artifact-pane{border-top:none!important;border-bottom:none!important;border-right:none!important;border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-left .persona-artifact-pane{border-left:var(--persona-artifact-pane-border-left)!important}[data-persona-root].persona-artifact-appearance-seamless.persona-artifact-border-full .persona-artifact-pane{border:var(--persona-artifact-pane-border)!important}[data-persona-root].persona-artifact-appearance-detached .persona-artifact-split-root{background:var(--persona-panel-canvas-bg)}@media (min-width:641px){[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-appearance-detached .persona-artifact-pane{border-radius:var(--persona-artifact-pane-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)));border:var(--persona-panel-border,1px solid var(--persona-border,#e5e7eb));box-shadow:var(--persona-artifact-pane-shadow,var(--persona-panel-shadow,var(--persona-palette-shadows-xl,0 25px 50px -12px #00000040)))}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-chat-flush .persona-artifact-pane{margin-top:var(--persona-panel-inset);margin-right:var(--persona-panel-inset);margin-bottom:var(--persona-panel-inset)}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-split-root{position:relative}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-widget-container{overflow:hidden;border-top-right-radius:0!important;border-bottom-right-radius:0!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split .persona-artifact-pane{overflow:hidden;border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-top-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important;border-bottom-right-radius:var(--persona-artifact-welded-outer-radius,var(--persona-panel-radius,var(--persona-radius-xl,.75rem)))!important}[data-persona-root]:not(.persona-artifact-narrow-host).persona-artifact-welded-split.persona-artifact-appearance-panel .persona-artifact-pane{border-left:1px solid var(--persona-border,#e5e7eb)}}[data-persona-root].persona-artifact-narrow-host .persona-artifact-backdrop{z-index:55!important;position:absolute!important;inset:0!important}@media (min-width:641px){[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane{z-index:60;transition:transform .2s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f;width:min(100%, var(--persona-artifact-drawer-width,min(calc(100% - 1rem), 22rem)))!important;max-width:var(--persona-artifact-drawer-width,22rem)!important}[data-persona-root].persona-artifact-narrow-host .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}@media (max-width:640px){[data-persona-root] .persona-artifact-pane{width:min(100vw, var(--persona-artifact-drawer-width,min(100vw - 1.5rem, 22rem)));z-index:60;transition:transform .2s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0000001f}[data-persona-root] .persona-artifact-pane.persona-artifact-drawer-open{transform:translate(0)}}`;const n=e=>e.nodeType===Node.DOCUMENT_NODE,r=e=>e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.host!==void 0;function i(e){let t=e.getRootNode?.();return t&&r(t)||t&&n(t)?t:e.ownerDocument??document}function a(e,t,r){let i=n(e)?e.head:e,a=t.replace(/["\\]/g,`\\$&`);if(i.querySelector(`style[data-persona-plugin-style="${a}"]`))return;let o=(n(e)?e:e.ownerDocument??document).createElement(`style`);o.setAttribute(`data-persona-plugin-style`,t),o.textContent=r,i.appendChild(o)}function o(e,t,o){if(n(e)||r(e)){a(e,t,o);return}let s=e;if(s.isConnected){a(i(s),t,o);return}let c=s.ownerDocument??document;a(c,t,o),queueMicrotask(()=>{let e=i(s);e!==c&&a(e,t,o)})}const s=e=>o(e,`artifacts`,t),c=(e,t)=>{let n=document.createElement(e);return t&&(n.className=t),n},l=()=>document.createDocumentFragment(),u=(...e)=>e.filter(Boolean).join(` `),d=e=>{if(typeof e!=`string`)return;let t=e.trim(),n=/^#([\da-f]{3}|[\da-f]{6})$/i.exec(t)?.[1];if(n){let e=n.length===3?[...n].map(e=>e+e).join(``):n;return[0,2,4].map(t=>parseInt(e.slice(t,t+2),16))}let r=/^rgba?\(\s*([^)]*)\)$/i.exec(t);if(!r)return;let i=r[1].trim().split(/\s*[,/]\s*|\s+/);if(i.length===4&&/^(?:1(?:\.0+)?|100%)$/.test(i[3])&&i.pop(),i.length!==3)return;let a=i.map(e=>/^\d+(?:\.\d+)?%?$/.test(e)?Number.parseFloat(e)*(e.endsWith(`%`)?2.55:1):NaN);if(!a.some(e=>!Number.isFinite(e)||e<0||e>255))return a},f=e=>e.reduce((e,t,n)=>{let r=t/255;return e+(r<=.04045?r/12.92:((r+.055)/1.055)**2.4)*[.2126,.7152,.0722][n]},0),p=e=>{let t=d(e?.neutral);return t?f(t)<.18?`dark`:`light`:void 0},m=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function h(e,t){let n=t.split(`.`);for(let t=0;t<n.length;t++){let r=n[t];if(!m(e)||!Object.prototype.hasOwnProperty.call(e,r))return`absent`;if(e=e[r],e===void 0||t<n.length-1&&!m(e))return`clear`}return`explicit`}const g=Symbol.for(`persona.styleProvenance`),_=(e,t)=>{for(let n of t.split(`.`)){if(typeof e!=`object`||!e)return;e=e[n]}return e},v=(e,t)=>{let n=e?.[g];return!n||!Object.prototype.hasOwnProperty.call(n.values,t)||_(e,t)!==n.values[t]?h(e,t)===`explicit`:n.explicit.includes(t)},y=(e,t,n)=>{let r=e,i=n??r?.colorScheme??p(r?.brand)??`light`,a=i===`dark`||i===`auto`&&(typeof document<`u`&&document.documentElement.classList.contains(`dark`)||typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches);return v(e,`theme.components.${t}`)||a&&v(e,`darkTheme.components.${t}`)};function b(e,t,n){return t?.trim()||(y(e,`artifact.${n}`)?`var(--persona-components-artifact-${n.split(`.`).join(`-`)})`:void 0)}function x(e){let t=String(e).split(/[\\/]/);return t[t.length-1]??``}function S(e){let t=x(e),n=t.lastIndexOf(`.`);return n<=0?``:t.slice(n+1).toLowerCase()}function C(e){if(typeof e!=`string`)return``;let t=e.indexOf(`
2
2
  `);if(t===-1||!e.slice(0,t).startsWith("```"))return e;let n=e.slice(t+1),r=n.lastIndexOf(`
3
3
  `);return(r===-1?n:n.slice(0,r)).split("`​``").join("```")}function ee(e){let t=S(e.path);if(t)return t===`html`||t===`htm`?`html`:t===`svg`?`svg`:t===`md`||t===`mdx`?`markdown`:`other`;let n=(e.mimeType||``).toLowerCase();return n.includes(`html`)?`html`:n.includes(`svg`)?`svg`:n.includes(`markdown`)?`markdown`:`other`}function w(e){switch(ee(e)){case`html`:return`HTML`;case`svg`:return`SVG`;case`markdown`:return`Markdown`;default:{let t=S(e.path);return t?t.toUpperCase():`File`}}}function T(e){let t=e.markdown??``;return e.file?{filename:x(e.file.path)||`artifact`,mime:e.file.mimeType||`application/octet-stream`,content:C(t)}:{filename:`${e.title||`artifact`}.md`,mime:`text/markdown`,content:t}}function te(e){let t=new Blob([e.content],{type:e.mime}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e.filename,r.click(),URL.revokeObjectURL(n)}let E;const D=e=>{E=e},O=(...e)=>E?.applyLoadingAnimation(...e);let k=null;const A=e=>{k=e.componentRegistry,D(e.loadingLabels),e.buttons&&(M=e.buttons)},j=()=>k;let M;const N=()=>{if(!M)throw Error(`Artifact UI must be initialized with core button factories before rendering.`);return M},P=(...e)=>N().createIconButton(...e),F=(...e)=>N().createLabelButton(...e),I=(...e)=>N().createSplitButton(...e),ne=(...e)=>N().createToggleGroup(...e),L=`persona-artifact-custom-action-btn`;function re(e,t){let n=t?.documentChrome??!1,r;if(typeof e.icon==`function`){r=e.showLabel?c(`button`,`persona-label-btn persona-label-btn--sm `+L+(n?` persona-artifact-doc-copy-btn`:``)):c(`button`,`persona-icon-btn `+L+(n?` persona-artifact-doc-icon-btn`:``)),r.type=`button`,r.setAttribute(`aria-label`,e.label),r.title=e.label;try{let t=e.icon();t&&r.appendChild(t)}catch{}if(e.showLabel){let t=c(`span`);t.textContent=e.label,r.appendChild(t)}}else r=e.showLabel||!e.icon?F({icon:e.icon,label:e.label,className:L+(n?` persona-artifact-doc-copy-btn`:``)}):P({icon:e.icon,label:e.label,className:L+(n?` persona-artifact-doc-icon-btn`:``)});return t?.onClick&&r.addEventListener(`click`,t.onClick),r}function ie(e){if(!e)return null;let t={artifactId:e.id,title:e.title??``,artifactType:e.artifactType};return e.artifactType===`markdown`?(t.markdown=e.markdown??``,e.file&&(t.file=e.file)):t.jsonPayload=JSON.stringify({component:e.component,props:e.props},null,2),t}const ae=`http://www.w3.org/2000/svg`;function oe(e){let t=document.createElementNS(ae,`svg`);t.setAttribute(`class`,u(`persona-spinner`,e)),t.setAttribute(`viewBox`,`0 0 24 24`),t.setAttribute(`aria-hidden`,`true`),t.setAttribute(`focusable`,`false`);let n=document.createElementNS(ae,`circle`);n.setAttribute(`class`,`persona-spinner-track`),n.setAttribute(`cx`,`12`),n.setAttribute(`cy`,`12`),n.setAttribute(`r`,`9`);let r=document.createElementNS(ae,`circle`);return r.setAttribute(`class`,`persona-spinner-arc`),r.setAttribute(`cx`,`12`),r.setAttribute(`cy`,`12`),r.setAttribute(`r`,`9`),t.appendChild(n),t.appendChild(r),t}function se(e,t,n){e.textContent=t,O(e,{animation:n?.loadingAnimation??`shimmer`,duration:`${n?.loadingAnimationDuration??2e3}ms`,color:n?.loadingAnimationColor,secondaryColor:n?.loadingAnimationSecondaryColor})}const ce=`persona-artifact-status-label`,le=`persona-artifact-status-detail`,R=`data-artifact-status-label`,z=/* @__PURE__ */ new Map,ue=()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now();function B(e){e&&z.delete(e)}function V(e){let t=e.artifactType===`markdown`?e.file:void 0;return t?w(t):e.artifactType===`component`?`Component`:`Document`}function H(e,t,n){let r=V(e),i=`Generating ${r.toLowerCase()}...`,a=t?.statusLabel;if(typeof a==`string`)return{label:a};if(typeof a!=`function`)return{label:i};let o=e.id,s=z.get(o);e.status!==`complete`&&s===void 0&&(s=ue(),z.set(o,s));let c=s===void 0?0:Math.max(0,ue()-s),l=e.artifactType===`component`,u=!l&&typeof e.markdown==`string`?e.markdown:``,d=l?0:u.length,f=l||u===``?0:u.split(`
4
4
  `).length,p=e.artifactType===`markdown`?e.file:void 0,m={artifactId:o,artifactType:e.artifactType,title:e.title,typeLabel:r,file:p,chars:d,lines:f,elapsedMs:c,content:()=>l?``:u,surface:n};try{let e=a(m);return typeof e==`string`?{label:e}:e&&typeof e==`object`&&typeof e.label==`string`?{label:e.label,detail:typeof e.detail==`string`?e.detail:void 0}:{label:i}}catch{return{label:i}}}function U(e){e.className=ce,e.removeAttribute(`data-preserve-animation`),e.style.removeProperty(`--persona-tool-anim-duration`),e.style.removeProperty(`--persona-tool-anim-color`),e.style.removeProperty(`--persona-tool-anim-secondary-color`),e.replaceChildren()}function W(e,t,n){let r=e.querySelector(`:scope > .${ce}`);r||(r=c(`span`,ce),e.appendChild(r)),r.getAttribute(R)!==t.label&&(U(r),se(r,t.label,n),r.setAttribute(R,t.label));let i=e.querySelector(`:scope > .${le}`),a=t.detail;a?(i||(i=c(`span`,le),e.appendChild(i)),i.textContent!==a&&(i.textContent=a)):i&&i.remove()}const G={keyword:`persona-code-token-keyword`,string:`persona-code-token-string`,comment:`persona-code-token-comment`,number:`persona-code-token-number`,tag:`persona-code-token-tag`,attr:`persona-code-token-attr`,property:`persona-code-token-property`},K={html:`html`,htm:`html`,xhtml:`html`,xml:`html`,svg:`html`,css:`css`,js:`js`,jsx:`js`,mjs:`js`,cjs:`js`,ts:`js`,tsx:`js`,mts:`js`,cts:`js`,javascript:`js`,typescript:`js`,ecmascript:`js`,json:`json`,jsonc:`json`,json5:`json`};function de(e,t){let n=(e||``).trim().toLowerCase();if(n&&K[n])return K[n];if(t){let e=t.lastIndexOf(`.`);if(e>=0){let n=t.slice(e+1).toLowerCase();if(K[n])return K[n]}}return null}function q(e,t){let n=[],r=0,i=0,a=t=>{t>i&&n.push({type:`plain`,value:e.slice(i,t)})};for(;r<e.length;){let o=!1;for(let s of t){s.re.lastIndex=r;let t=s.re.exec(e);if(t&&t.index===r&&t[0].length>0){a(r);let e=s.map?s.map(t[0]):s.type;n.push({type:e,value:t[0]}),r+=t[0].length,i=r,o=!0;break}}o||(r+=1)}return a(e.length),n}const fe=/* @__PURE__ */ new Set(/* @__PURE__ */ `abstract.any.as.async.await.boolean.break.case.catch.class.const.continue.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.instanceof.interface.keyof.let.namespace.never.new.null.number.object.of.private.protected.public.readonly.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unknown.var.void.while.yield`.split(`.`)),pe=[{type:`comment`,re:/\/\/[^\n]*/y},{type:`comment`,re:/\/\*[\s\S]*?\*\//y},{type:`string`,re:/`(?:\\[\s\S]|[^\\`])*`/y},{type:`string`,re:/"(?:\\.|[^"\\\n])*"/y},{type:`string`,re:/'(?:\\.|[^'\\\n])*'/y},{type:`number`,re:/0[xX][0-9a-fA-F]+|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:`plain`,re:/[A-Za-z_$][\w$]*/y,map:e=>fe.has(e)?`keyword`:`plain`}];function me(e){return q(e,pe)}const J=[{type:`string`,re:/"(?:\\.|[^"\\])*"/y},{type:`number`,re:/-?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/y},{type:`plain`,re:/[A-Za-z_]\w*/y,map:e=>e===`true`||e===`false`||e===`null`?`keyword`:`plain`}];function Y(e){let t=q(e,J);for(let e=0;e<t.length;e+=1){if(t[e].type!==`string`)continue;let n=e+1;for(;n<t.length&&t[n].value.trim()===``;)n+=1;let r=t[n];r&&r.value.replace(/^\s*/,``).startsWith(`:`)&&(t[e].type=`property`)}return t}const he=[{type:`comment`,re:/\/\*[\s\S]*?\*\//y},{type:`string`,re:/"(?:\\.|[^"\\\n])*"/y},{type:`string`,re:/'(?:\\.|[^'\\\n])*'/y},{type:`keyword`,re:/@[A-Za-z-]+/y},{type:`number`,re:/#[0-9a-fA-F]{3,8}\b/y},{type:`number`,re:/-?(?:\d+\.?\d*|\.\d+)(?:[a-z%]+)?/y},{type:`plain`,re:/[A-Za-z_-][\w-]*/y}];function ge(e){let t=q(e,he),n=``;for(let e=0;e<t.length;e+=1){let r=t[e];if(r.type===`plain`&&/^[A-Za-z_-][\w-]*$/.test(r.value)){let i=e+1;for(;i<t.length&&t[i].value.trim()===``;)i+=1;let a=t[i];a&&a.value.replace(/^\s*/,``).startsWith(`:`)&&(n===``||n===`{`||n===`}`||n===`;`||n===`,`)&&(r.type=`property`)}let i=r.value.replace(/\s+$/,``);i&&(n=i[i.length-1])}return t}const _e=[{type:`tag`,re:/<\/?\s*[A-Za-z][\w:-]*/y},{type:`string`,re:/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/y},{type:`attr`,re:/[A-Za-z_:@][\w:.-]*(?=\s*=)/y},{type:`attr`,re:/[A-Za-z_:@][\w:.-]*/y},{type:`tag`,re:/\/?>/y}];function ve(e){let t=[],n=(e,n)=>{n&&t.push({type:e,value:n})},r=e.length,i=0;for(;i<r;){if(e.startsWith(`<!--`,i)){let t=e.indexOf(`-->`,i+4),a=t===-1?r:t+3;n(`comment`,e.slice(i,a)),i=a;continue}if(e[i]===`<`&&e[i+1]===`!`){let t=e.indexOf(`>`,i),a=t===-1?r:t+1;n(`tag`,e.slice(i,a)),i=a;continue}if(e[i]===`<`&&/[A-Za-z/]/.test(e[i+1]||``)){let n=e.indexOf(`>`,i),a=n===-1?r:n+1,o=e.slice(i,a);for(let e of q(o,_e))t.push(e);i=a;let s=/^<\s*(script|style)\b/i.exec(o);if(s&&!/\/>\s*$/.test(o)){let n=s[1].toLowerCase(),a=RegExp(`</\\s*`+n+`\\s*>`,`i`).exec(e.slice(i)),o=a?i+a.index:r,c=e.slice(i,o),l=n===`script`?me(c):ge(c);for(let e of l)t.push(e);i=o}continue}let a=e.indexOf(`<`,i);if(a===i)n(`plain`,e[i]),i+=1;else{let t=a===-1?r:a;n(`plain`,e.slice(i,t)),i=t}}return t}function ye(e,t){switch(t){case`html`:return ve(e);case`css`:return ge(e);case`js`:return me(e);case`json`:return Y(e)}}function be(e){let t=l(),n=c(`span`,`persona-code-line`),r=(e,t)=>{if(!t)return;let r=G[e];if(r){let e=c(`span`,r);e.textContent=t,n.appendChild(e)}else n.appendChild(document.createTextNode(t))};for(let i of e){let e=i.value.split(`