@opencx/widget-react 5.0.0-beta.9 → 5.1.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 (79) hide show
  1. package/dist/{Chart.impl-DfwpmxVg.cjs → Chart.impl-BAZW1JIf.cjs} +2 -2
  2. package/dist/{Chart.impl-DfwpmxVg.cjs.map → Chart.impl-BAZW1JIf.cjs.map} +1 -1
  3. package/dist/{Chart.impl-BOItNccb.js → Chart.impl-yQQ21xSV.js} +2 -2
  4. package/dist/{Chart.impl-BOItNccb.js.map → Chart.impl-yQQ21xSV.js.map} +1 -1
  5. package/dist/index-BhDQakmD.cjs +375 -0
  6. package/dist/index-BhDQakmD.cjs.map +1 -0
  7. package/dist/{index-CYVpvKPr.js → index-D_tSsyE7.js} +5682 -4984
  8. package/dist/index-D_tSsyE7.js.map +1 -0
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/package.json.d.ts +1 -1
  12. package/dist/src/WidgetPopoverContent.d.ts.map +1 -1
  13. package/dist/src/companion/CompanionContent.d.ts.map +1 -1
  14. package/dist/src/companion/CompanionFrame.d.ts +2 -1
  15. package/dist/src/companion/CompanionFrame.d.ts.map +1 -1
  16. package/dist/src/companion/CompanionQuestions.d.ts +11 -0
  17. package/dist/src/companion/CompanionQuestions.d.ts.map +1 -0
  18. package/dist/src/companion/WidgetCompanion.d.ts.map +1 -1
  19. package/dist/src/companion/message-styles.d.ts +8 -1
  20. package/dist/src/companion/message-styles.d.ts.map +1 -1
  21. package/dist/src/components/ClarificationQuestions.d.ts.map +1 -1
  22. package/dist/src/components/ConnectionsSettings.d.ts.map +1 -1
  23. package/dist/src/components/Header.d.ts.map +1 -1
  24. package/dist/src/components/PageActionCard.d.ts +2 -2
  25. package/dist/src/components/PageActionCard.d.ts.map +1 -1
  26. package/dist/src/components/ReplyQuote.d.ts +7 -0
  27. package/dist/src/components/ReplyQuote.d.ts.map +1 -0
  28. package/dist/src/components/RichText.d.ts +6 -2
  29. package/dist/src/components/RichText.d.ts.map +1 -1
  30. package/dist/src/components/UserMessage.d.ts.map +1 -1
  31. package/dist/src/components/configured-text-styles.d.ts +11 -0
  32. package/dist/src/components/configured-text-styles.d.ts.map +1 -0
  33. package/dist/src/components/custom-components/AgentMessageDefaultComponent.d.ts.map +1 -1
  34. package/dist/src/hooks/useInitialQuestionRequired.d.ts +3 -0
  35. package/dist/src/hooks/useInitialQuestionRequired.d.ts.map +1 -0
  36. package/dist/src/page-controls/accessible-name.d.ts +0 -16
  37. package/dist/src/page-controls/accessible-name.d.ts.map +1 -1
  38. package/dist/src/page-controls/act-types.d.ts +2 -17
  39. package/dist/src/page-controls/act-types.d.ts.map +1 -1
  40. package/dist/src/page-controls/act.d.ts +2 -0
  41. package/dist/src/page-controls/act.d.ts.map +1 -1
  42. package/dist/src/page-controls/action-meaning.d.ts +7 -0
  43. package/dist/src/page-controls/action-meaning.d.ts.map +1 -0
  44. package/dist/src/page-controls/control-ref.d.ts +8 -18
  45. package/dist/src/page-controls/control-ref.d.ts.map +1 -1
  46. package/dist/src/page-controls/guard.d.ts.map +1 -1
  47. package/dist/src/page-controls/pointer-sequence.d.ts +3 -1
  48. package/dist/src/page-controls/pointer-sequence.d.ts.map +1 -1
  49. package/dist/src/page-controls/read-controls.d.ts.map +1 -1
  50. package/dist/src/page-controls/select-option.d.ts +3 -0
  51. package/dist/src/page-controls/select-option.d.ts.map +1 -0
  52. package/dist/src/page-controls/send-context.d.ts.map +1 -1
  53. package/dist/src/page-marks/mark-source.d.ts +6 -0
  54. package/dist/src/page-marks/mark-source.d.ts.map +1 -0
  55. package/dist/src/page-marks/mark-thumbnail.d.ts +2 -0
  56. package/dist/src/page-marks/mark-thumbnail.d.ts.map +1 -1
  57. package/dist/src/page-marks/page-element.d.ts +1 -7
  58. package/dist/src/page-marks/page-element.d.ts.map +1 -1
  59. package/dist/src/page-marks/usePageMarking.d.ts +1 -6
  60. package/dist/src/page-marks/usePageMarking.d.ts.map +1 -1
  61. package/dist/src/page-privacy.d.ts +11 -0
  62. package/dist/src/page-privacy.d.ts.map +1 -0
  63. package/dist/src/screens/chat/ChatFooter.d.ts.map +1 -1
  64. package/dist/src/screens/chat/ChatInput.d.ts +3 -1
  65. package/dist/src/screens/chat/ChatInput.d.ts.map +1 -1
  66. package/dist/src/screens/chat/agent/AgentChatPageActions.d.ts +1 -1
  67. package/dist/src/screens/chat/agent/AgentChatPageActions.d.ts.map +1 -1
  68. package/dist/src/screens/chat/agent/AgentChatPageEffects.d.ts.map +1 -1
  69. package/dist/src/screens/chat/agent/use-page-effect-is-current.d.ts +5 -0
  70. package/dist/src/screens/chat/agent/use-page-effect-is-current.d.ts.map +1 -0
  71. package/dist/src/screens/chat/usePageMarkComposer.d.ts +1 -0
  72. package/dist/src/screens/chat/usePageMarkComposer.d.ts.map +1 -1
  73. package/dist/src/screens/index.d.ts.map +1 -1
  74. package/package.json +3 -3
  75. package/dist/index-BQvciEuH.cjs +0 -347
  76. package/dist/index-BQvciEuH.cjs.map +0 -1
  77. package/dist/index-CYVpvKPr.js.map +0 -1
  78. package/dist/src/page-controls/needs-consent.d.ts +0 -15
  79. package/dist/src/page-controls/needs-consent.d.ts.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("@radix-ui/react-popover");require("framer-motion");require("react");require("@opencx/widget-react-headless");const e=require("./index-BQvciEuH.cjs");exports.HostedSpecRenderer=e.HostedSpecRenderer;exports.Widget=e.Widget;exports.segmentContent=e.segmentContent;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("@radix-ui/react-popover");require("framer-motion");require("react");require("@opencx/widget-react-headless");const e=require("./index-BhDQakmD.cjs");exports.HostedSpecRenderer=e.HostedSpecRenderer;exports.Widget=e.Widget;exports.segmentContent=e.segmentContent;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import "@radix-ui/react-popover";
3
3
  import "framer-motion";
4
4
  import "react";
5
5
  import "@opencx/widget-react-headless";
6
- import { H as s, W as n, s as a } from "./index-CYVpvKPr.js";
6
+ import { H as s, W as n, s as a } from "./index-D_tSsyE7.js";
7
7
  export {
8
8
  s as HostedSpecRenderer,
9
9
  n as Widget,
@@ -1,7 +1,7 @@
1
1
  declare const _default: {
2
2
  "name": "@opencx/widget-react",
3
3
  "private": false,
4
- "version": "5.0.0-beta.9",
4
+ "version": "5.1.0",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPopoverContent.d.ts","sourceRoot":"","sources":["../../src/WidgetPopoverContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,wBAAgB,aAAa,sBA6E5B;AAED,wBAAgB,oBAAoB,sBAmCnC"}
1
+ {"version":3,"file":"WidgetPopoverContent.d.ts","sourceRoot":"","sources":["../../src/WidgetPopoverContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoB,MAAM,OAAO,CAAC;AA0BzC,wBAAgB,aAAa,sBAoF5B;AAED,wBAAgB,oBAAoB,sBAmCnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompanionContent.d.ts","sourceRoot":"","sources":["../../../src/companion/CompanionContent.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAOlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAoFlE,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,EAAE;IACD,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB;iDAC6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzD,gEAAgE;IAChE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,qBAoKA"}
1
+ {"version":3,"file":"CompanionContent.d.ts","sourceRoot":"","sources":["../../../src/companion/CompanionContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAclE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAoFlE,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,WAAW,EACX,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,EAAE;IACD,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB;iDAC6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACzD,gEAAgE;IAChE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,qBAuLA"}
@@ -8,9 +8,10 @@ import { default as React } from 'react';
8
8
  * commitAttachRef). Here the ref callback is stable (useCallback, no deps),
9
9
  * so it runs exactly once per DOM node lifecycle and cannot loop.
10
10
  */
11
- export declare function CompanionFrame({ initialContent, style, iframeRef, children, }: {
11
+ export declare function CompanionFrame({ initialContent, title, style, iframeRef, children, }: {
12
12
  /** Full HTML document written once into the frame (styles in <head>) */
13
13
  initialContent: string;
14
+ title?: string;
14
15
  style: React.CSSProperties;
15
16
  /** Receives the iframe element (shared widget contentIframeRef) */
16
17
  iframeRef?: React.MutableRefObject<HTMLIFrameElement | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"CompanionFrame.d.ts","sourceRoot":"","sources":["../../../src/companion/CompanionFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE;IACD,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,mEAAmE;IACnE,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC7D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAqCA"}
1
+ {"version":3,"file":"CompanionFrame.d.ts","sourceRoot":"","sources":["../../../src/companion/CompanionFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,KAA0B,EAC1B,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE;IACD,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,mEAAmE;IACnE,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC7D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAgCA"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ /** A separate surface: questions must never resize the animated composer. */
3
+ export declare function CompanionQuestions({ onHeightChange, maxHeight, onDismiss, onToggleFullscreen, }: {
4
+ onHeightChange: (height: number) => void;
5
+ maxHeight: number;
6
+ onDismiss: () => void;
7
+ onToggleFullscreen: () => void;
8
+ }): React.JSX.Element;
9
+ /** Required and optional starters share the same floating presentation. */
10
+ export declare function CompanionQuestionButtons(): React.JSX.Element;
11
+ //# sourceMappingURL=CompanionQuestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompanionQuestions.d.ts","sourceRoot":"","sources":["../../../src/companion/CompanionQuestions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAOvD,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,SAAS,EACT,SAAS,EACT,kBAAkB,GACnB,EAAE;IACD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,qBAiCA;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,sBA8BvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetCompanion.d.ts","sourceRoot":"","sources":["../../../src/companion/WidgetCompanion.tsx"],"names":[],"mappings":"AACA,OAAO,KAMN,MAAM,OAAO,CAAC;AA2Df,wBAAgB,eAAe,6BAgtB9B"}
1
+ {"version":3,"file":"WidgetCompanion.d.ts","sourceRoot":"","sources":["../../../src/companion/WidgetCompanion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAMN,MAAM,OAAO,CAAC;AA4Df,wBAAgB,eAAe,6BA4vB9B"}
@@ -1,2 +1,9 @@
1
- export declare const FLAT_MESSAGE_CSS = "\n[data-companion-root] [data-component=\"chat/msgs/root\"] {\n overflow-x: hidden !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg_group/root\"],\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/root\"],\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/msgs\"] {\n min-width: 0 !important;\n max-width: 100% !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] {\n background: transparent !important;\n padding: 2px 0 !important;\n border-radius: 0 !important;\n max-width: 100% !important;\n min-width: 0 !important;\n overflow-wrap: break-word !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] table {\n display: block;\n max-width: 100%;\n overflow-x: auto;\n border-collapse: collapse;\n}\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] th,\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] td {\n overflow-wrap: normal;\n word-break: normal;\n white-space: normal;\n vertical-align: top;\n text-align: start;\n padding: 4px 10px 4px 0;\n border-bottom: 1px solid hsl(var(--opencx-border));\n}\n[data-companion-root] [data-component=\"chat/agent_msg_group/root/avatar\"],\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/avatar\"] {\n display: none !important;\n}\n[data-companion-root] [data-component=\"chat/user_msg/msg\"] {\n background: hsl(var(--opencx-secondary)) !important;\n color: hsl(var(--opencx-secondary-foreground)) !important;\n padding: 8px 12px !important;\n border-radius: 10px !important;\n}\n";
1
+ export declare const FLAT_MESSAGE_CSS = "\n[data-companion-root] [data-component=\"chat/msgs/root\"] {\n overflow-x: hidden !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg_group/root\"],\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/root\"],\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/msgs\"] {\n min-width: 0 !important;\n max-width: 100% !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] {\n background: transparent !important;\n padding: 2px 0 !important;\n border-radius: 0 !important;\n max-width: 100% !important;\n min-width: 0 !important;\n overflow-wrap: break-word !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] table {\n display: block;\n max-width: 100%;\n overflow-x: auto;\n border-collapse: collapse;\n}\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] th,\n[data-companion-root] [data-component=\"chat/agent_msg/msg\"] td {\n overflow-wrap: normal;\n word-break: normal;\n white-space: normal;\n vertical-align: top;\n text-align: start;\n padding: 4px 10px 4px 0;\n border-bottom: 1px solid hsl(var(--opencx-border));\n}\n[data-companion-root] [data-component=\"chat/user_msg/msg\"] {\n background: hsl(var(--opencx-secondary)) !important;\n color: hsl(var(--opencx-secondary-foreground)) !important;\n padding: 8px 12px !important;\n border-radius: 10px !important;\n}\n";
2
+ export declare const HIDE_AVATARS_CSS = "\n[data-companion-root] [data-component=\"chat/agent_msg_group/root/avatar\"],\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/avatar\"] {\n display: none !important;\n}\n";
3
+ /**
4
+ * Flat layout WITH avatars: a reply reads as a document, so the avatar marks
5
+ * where it starts — top-aligned with the first line and sized to it — instead
6
+ * of hanging at the bottom beside the actions row like a chat bubble's.
7
+ */
8
+ export declare const FLAT_AVATARS_CSS = "\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/root\"] {\n align-items: flex-start !important;\n}\n[data-companion-root] [data-component=\"chat/agent_msg_group/avatar_and_msgs/avatar\"] {\n width: 20px !important;\n height: 20px !important;\n margin-top: 2px !important;\n}\n/* Steps, rendered blocks, the working spinner and the actions row are siblings\n of the text groups in a streamed turn: indent them by the avatar gutter\n (20px avatar + 8px gap) so everything shares the text's left edge. The\n typing row carries its own avatar, so it keeps the gutter instead \u2014 indenting\n it would jump the avatar sideways when the reply replaces it. */\n[data-companion-root] [data-component=\"chat/streaming_turn/root\"] > :not([data-component=\"chat/agent_msg_group/root\"]):not([data-component=\"chat/bot_loading/root\"]) {\n margin-inline-start: 28px !important;\n}\n[data-companion-root] [data-component=\"chat/bot_loading/root\"] {\n align-items: flex-start !important;\n}\n/* Its avatar is the row's first child (LoadingDefaultComponent renders no\n data-component on it), sized to match a reply's. */\n[data-companion-root] [data-component=\"chat/bot_loading/root\"] > :first-child {\n width: 20px !important;\n height: 20px !important;\n margin-top: 2px !important;\n}\n";
2
9
  //# sourceMappingURL=message-styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-styles.d.ts","sourceRoot":"","sources":["../../../src/companion/message-styles.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,umDA4C5B,CAAC"}
1
+ {"version":3,"file":"message-styles.d.ts","sourceRoot":"","sources":["../../../src/companion/message-styles.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,+5CAwC5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+MAK5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,wzCA2B5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClarificationQuestions.d.ts","sourceRoot":"","sources":["../../../src/components/ClarificationQuestions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAyC,MAAM,OAAO,CAAC;AAK9D;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AA4BF,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,GACR,EAAE,2BAA2B,4BAyO7B"}
1
+ {"version":3,"file":"ClarificationQuestions.d.ts","sourceRoot":"","sources":["../../../src/components/ClarificationQuestions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAyC,MAAM,OAAO,CAAC;AAM9D;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AA4BF,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,GACR,EAAE,2BAA2B,4BAmP7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionsSettings.d.ts","sourceRoot":"","sources":["../../../src/components/ConnectionsSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAqPA"}
1
+ {"version":3,"file":"ConnectionsSettings.d.ts","sourceRoot":"","sources":["../../../src/components/ConnectionsSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAsPA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,KAAmB,MAAM,OAAO,CAAC;AAwBxC;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,EACxC,OAAO,EAAE,MAAM,GACd,MAAM,CAYR;AA+VD,wBAAgB,eAAe,sBA2B9B;AAED,wBAAgB,MAAM,sBAmCrB"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,KAAmB,MAAM,OAAO,CAAC;AAwBxC;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,YAAY,CAAC,aAAa,CAAC,EACxC,OAAO,EAAE,MAAM,GACd,MAAM,CAYR;AA+VD,wBAAgB,eAAe,sBA2B9B;AAED,wBAAgB,MAAM,sBAuCrB"}
@@ -8,8 +8,8 @@ import { default as React } from 'react';
8
8
  * nobody reads, and "Allow the agent to click Cancel subscription?" is a
9
9
  * question everybody reads.
10
10
  *
11
- * One chip at a time, and No is final: the agent is told it was declined
12
- * and does not get to ask again or reach the same control another way.
11
+ * One request at a time. No declines this call; any later request must ask
12
+ * for its own confirmation before touching the page.
13
13
  */
14
14
  export declare function PageActionCard({ request }: {
15
15
  request: PendingPageAction;
@@ -1 +1 @@
1
- {"version":3,"file":"PageActionCard.d.ts","sourceRoot":"","sources":["../../../src/components/PageActionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,qBAiCzE"}
1
+ {"version":3,"file":"PageActionCard.d.ts","sourceRoot":"","sources":["../../../src/components/PageActionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,qBA8CzE"}
@@ -0,0 +1,7 @@
1
+ import { WidgetAgentMessage } from '@opencx/widget-core';
2
+ import { default as React } from 'react';
3
+ /** An in-bubble quote that links to its original message. */
4
+ export declare function ReplyQuote({ replyTo, }: {
5
+ replyTo: NonNullable<WidgetAgentMessage['replyTo']>;
6
+ }): React.JSX.Element;
7
+ //# sourceMappingURL=ReplyQuote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplyQuote.d.ts","sourceRoot":"","sources":["../../../src/components/ReplyQuote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,EACzB,OAAO,GACR,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;CACrD,qBA4CA"}
@@ -1,7 +1,11 @@
1
1
  import { default as React } from 'react';
2
- export declare function RichText({ children, messageType, messageId, }: {
2
+ type RichTextProps = {
3
3
  children: string;
4
4
  messageType?: string;
5
5
  messageId?: string;
6
- }): React.JSX.Element;
6
+ };
7
+ export declare function RichText(props: RichTextProps): React.JSX.Element;
8
+ /** Host-authored footer HTML can keep safe typography and spacing. */
9
+ export declare function ConfiguredRichText(props: RichTextProps): React.JSX.Element;
10
+ export {};
7
11
  //# sourceMappingURL=RichText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../src/components/RichText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAkC1B,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,qBA6CA"}
1
+ {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../src/components/RichText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAsC1B,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,qBAE5C;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,qBAEtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMessage.d.ts","sourceRoot":"","sources":["../../../src/components/UserMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,GACf,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB,qBA0DA"}
1
+ {"version":3,"file":"UserMessage.d.ts","sourceRoot":"","sources":["../../../src/components/UserMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,cAAc,EACd,aAAa,EACb,cAAc,GACf,EAAE;IACD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;CACzB,qBA2DA"}
@@ -0,0 +1,11 @@
1
+ import { defaultSchema } from 'rehype-sanitize';
2
+ export declare const configuredTextSchema: typeof defaultSchema;
3
+ type HtmlNode = {
4
+ type: string;
5
+ properties?: Record<string, unknown>;
6
+ children?: HtmlNode[];
7
+ };
8
+ /** Allow presentation styles without URL loads, CSS escapes or positioning. */
9
+ export declare function filterConfiguredStyles(): (node: HtmlNode) => void;
10
+ export {};
11
+ //# sourceMappingURL=configured-text-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configured-text-styles.d.ts","sourceRoot":"","sources":["../../../src/components/configured-text-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,eAAO,MAAM,oBAAoB,EAAE,OAAO,aAQzC,CAAC;AAOF,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,sBAAsB,KACd,MAAM,QAAQ,KAAG,IAAI,CAoB5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentMessageDefaultComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-components/AgentMessageDefaultComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAkB,MAAM,OAAO,CAAC;AASvC,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAAG;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE;QACnB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;QACxC,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC,CAAC;IACF,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,4BA6GF"}
1
+ {"version":3,"file":"AgentMessageDefaultComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/custom-components/AgentMessageDefaultComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAkB,MAAM,OAAO,CAAC;AAiCvC,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAAG;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE;QACnB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;QACxC,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC,CAAC;IACF,UAAU,CAAC,EAAE;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,4BAgIF"}
@@ -0,0 +1,3 @@
1
+ /** Share the first-message requirement between the composer and its launcher. */
2
+ export declare function useInitialQuestionRequired(): boolean;
3
+ //# sourceMappingURL=useInitialQuestionRequired.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInitialQuestionRequired.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInitialQuestionRequired.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,wBAAgB,0BAA0B,YASzC"}
@@ -1,19 +1,3 @@
1
- /**
2
- * The accessible name of a control — the words a screen reader would say.
3
- *
4
- * This is the whole point of reading the page: a customer says "the Change
5
- * plan button", and the only way that matches a node is if we resolved the
6
- * name the same way their browser does. A CSS class or a tag name is not a
7
- * name; `aria-label`, a `<label>`, a `placeholder` and the visible text are.
8
- *
9
- * A trimmed-down accname resolution, in spec order for the cases that occur
10
- * on real pages: aria-labelledby → aria-label → the native label (label
11
- * element, legend, alt, title-of-image) → visible text → placeholder →
12
- * title. `value` is NEVER a name source, even where the spec allows it for
13
- * buttons, because an `<input type="submit" value="…">` is the one place
14
- * where a field's value and its name are the same string, and letting it
15
- * through would make "no values" depend on an input type.
16
- */
17
1
  /**
18
2
  * Resolve the name. Returns '' when the control has none — a nameless
19
3
  * control is one the agent cannot talk about, so the reader drops it rather
@@ -1 +1 @@
1
- {"version":3,"file":"accessible-name.d.ts","sourceRoot":"","sources":["../../../src/page-controls/accessible-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqDH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAwCtD"}
1
+ {"version":3,"file":"accessible-name.d.ts","sourceRoot":"","sources":["../../../src/page-controls/accessible-name.ts"],"names":[],"mappings":"AAwDA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAyCtD"}
@@ -9,17 +9,6 @@
9
9
  /** What the agent can do to a control. Deliberately small. */
10
10
  export declare const PAGE_ACTIONS: readonly ["click", "fill", "select", "check", "uncheck"];
11
11
  export type PageAction = (typeof PAGE_ACTIONS)[number];
12
- /**
13
- * Actions that COMMIT something on the customer's behalf — money moves, a
14
- * record is destroyed, a form is submitted. These never happen without the
15
- * visitor saying yes to that exact control, first.
16
- *
17
- * Recognised from what the control IS and what it SAYS, because that is all
18
- * a page reliably tells us. It over-includes on purpose: asking about a
19
- * harmless "Apply filters" button costs one chip, and not asking about
20
- * "Delete account" costs an account.
21
- */
22
- export declare const COMMITTING_WORDS: RegExp;
23
12
  /** The answer, in the same words the server and the agent use. */
24
13
  export type ActOutcome = 'done' | 'covered' | 'gone' | 'hidden' | 'unsupported' | 'no_change' | 'declined';
25
14
  export type ActResult = {
@@ -27,12 +16,8 @@ export type ActResult = {
27
16
  /** One short sentence for the agent to pass on. Never page text. */
28
17
  detail?: string;
29
18
  };
30
- /**
31
- * How long the page gets to react before we look at what changed. Long
32
- * enough for a re-render, a menu to open or a fetch to come back on a local
33
- * network; short enough that the turn's round trip stays under its budget.
34
- */
35
- export declare const SETTLE_MS = 500;
19
+ /** Maximum observation window; visible aria-busy regions defer quiet completion. */
20
+ export declare const SETTLE_MS = 3000;
36
21
  /**
37
22
  * Controls the widget will never act on, whatever the agent asks and
38
23
  * whatever the visitor allows. A password or a file picker is not something
@@ -1 +1 @@
1
- {"version":3,"file":"act-types.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,YAAY,0DAMf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,QAC4M,CAAC;AAE1O,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,SAAS,GACT,MAAM,GACN,QAAQ,GACR,aAAa,GACb,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAA0C,CAAC"}
1
+ {"version":3,"file":"act-types.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,YAAY,0DAMf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,kEAAkE;AAClE,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,SAAS,GACT,MAAM,GACN,QAAQ,GACR,aAAa,GACb,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,SAAS,OAAQ,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAA0C,CAAC"}
@@ -4,5 +4,7 @@ export declare function actOnPage(input: {
4
4
  action: PageAction;
5
5
  value?: string;
6
6
  settleMs?: number;
7
+ consentIsCurrent?: () => boolean;
8
+ observationIsCurrent?: () => boolean;
7
9
  }): Promise<ActResult>;
8
10
  //# sourceMappingURL=act.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AA+FrB,wBAAsB,SAAS,CAAC,KAAK,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,SAAS,CAAC,CAerB"}
1
+ {"version":3,"file":"act.d.ts","sourceRoot":"","sources":["../../../src/page-controls/act.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AA4HrB,wBAAsB,SAAS,CAAC,KAAK,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC;CACtC,GAAG,OAAO,CAAC,SAAS,CAAC,CAcrB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Recheck native action meaning before dispatch. These values stay local: URLs
3
+ * and form metadata must not be copied into the agent's tool reply.
4
+ * Host JavaScript is still responsible for its own event-handler behavior.
5
+ */
6
+ export declare function captureActionMeaning(element: HTMLElement): () => boolean;
7
+ //# sourceMappingURL=action-meaning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-meaning.d.ts","sourceRoot":"","sources":["../../../src/page-controls/action-meaning.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,OAAO,CAiCxE"}
@@ -1,28 +1,18 @@
1
- /**
2
- * The table behind the references — held here, in the page, never sent.
3
- *
4
- * Every control the agent can talk about is one the reader put in this table
5
- * in this turn. The wire carries `c7`; only this module knows which node
6
- * that is. Three properties fall out of that, and they are the reason the
7
- * table exists instead of the agent authoring CSS selectors:
8
- *
9
- * - The agent cannot reach a node we did not offer it. There is no selector
10
- * to widen, no text to guess at, no way to name the password field we
11
- * skipped.
12
- * - A reference is checkable. Before drawing or clicking, `resolve` says
13
- * whether that exact node is still in the document — a stale reference
14
- * after a re-render is a "no", not a click on whatever moved into place.
15
- * - The nodes are held weakly, so a table entry never keeps a detached
16
- * subtree of the customer's page alive.
17
- */
18
1
  /** Open a new reading. Returns the mint function for its references. */
19
- export declare function beginSnapshot(): (el: HTMLElement) => string;
2
+ export declare function beginSnapshot(): (el: HTMLElement, name?: string) => string;
20
3
  /**
21
4
  * The element behind a reference, or null — gone from the table, collected,
22
5
  * or no longer in the document. "No longer the same node" and "not found"
23
6
  * are deliberately the same answer: both mean do not act.
24
7
  */
25
8
  export declare function resolveRef(ref: string): HTMLElement | null;
9
+ /** Guard-only inspection: a stale element must never be authorized to act.
10
+ * Keeping its identity status separate lets the guard report a more specific
11
+ * privacy/visibility refusal before returning "gone" for a changed operation. */
12
+ export declare function inspectRef(ref: string): {
13
+ element: HTMLElement;
14
+ isCurrent: boolean;
15
+ } | null;
26
16
  /** Test seam: forget every reading. */
27
17
  export declare function resetRefsForTest(): void;
28
18
  //# sourceMappingURL=control-ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-ref.d.ts","sourceRoot":"","sources":["../../../src/page-controls/control-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,wEAAwE;AACxE,wBAAgB,aAAa,IAAI,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAW3D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAM1D;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
1
+ {"version":3,"file":"control-ref.d.ts","sourceRoot":"","sources":["../../../src/page-controls/control-ref.ts"],"names":[],"mappings":"AAuNA,wEAAwE;AACxE,wBAAgB,aAAa,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAsC1E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAG1D;AAED;;iFAEiF;AACjF,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAUrD;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,IAAI,IAAI,CAUvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/page-controls/guard.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY;AACtB,8EAA8E;AAC5E;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE;AACpC,4EAA4E;GAC1E;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC/B,gDAAgD;GAC9C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE;AACjC,uDAAuD;GACrD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE;AAClC;;;;;GAKG;GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA6BxD,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA6BlD"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/page-controls/guard.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY;AACtB,8EAA8E;AAC5E;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE;AACpC,4EAA4E;GAC1E;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC/B,gDAAgD;GAC9C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE;AACjC,uDAAuD;GACrD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE;AAClC;;;;;GAKG;GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA6BxD,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAgClD"}
@@ -1,3 +1,5 @@
1
+ /** Widget dismissal must distinguish our page actions from visitor clicks. */
2
+ export declare function isAgentPointerEvent(event: Event): boolean;
1
3
  /**
2
4
  * Click the way a pointer does, not the way `el.click()` does.
3
5
  *
@@ -10,5 +12,5 @@
10
12
  * So: the full sequence a mouse produces, at the control's own centre,
11
13
  * with focus moved first like a real press does.
12
14
  */
13
- export declare function firePointerSequence(el: HTMLElement): void;
15
+ export declare function firePointerSequence(el: HTMLElement, mayDispatch?: () => boolean): 'not-started' | 'interrupted' | 'completed';
14
16
  //# sourceMappingURL=pointer-sequence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointer-sequence.d.ts","sourceRoot":"","sources":["../../../src/page-controls/pointer-sequence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAyCzD"}
1
+ {"version":3,"file":"pointer-sequence.d.ts","sourceRoot":"","sources":["../../../src/page-controls/pointer-sequence.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,WAAW,EACf,WAAW,GAAE,MAAM,OAAoB,GACtC,aAAa,GAAG,aAAa,GAAG,WAAW,CAqD7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-controls.d.ts","sourceRoot":"","sources":["../../../src/page-controls/read-controls.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AAsJjB,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,QAAmB,GACvB,mBAAmB,CAyDrB"}
1
+ {"version":3,"file":"read-controls.d.ts","sourceRoot":"","sources":["../../../src/page-controls/read-controls.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AAsJjB,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,QAAmB,GACvB,mBAAmB,CA6DrB"}
@@ -0,0 +1,3 @@
1
+ /** Resolve the same unambiguous, enabled option for consent and execution. */
2
+ export declare function resolveSelectOption(element: HTMLElement, value: string | undefined): HTMLOptionElement | null;
3
+ //# sourceMappingURL=select-option.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-option.d.ts","sourceRoot":"","sources":["../../../src/page-controls/select-option.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,iBAAiB,GAAG,IAAI,CAsB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"send-context.d.ts","sourceRoot":"","sources":["../../../src/page-controls/send-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAmBtC"}
1
+ {"version":3,"file":"send-context.d.ts","sourceRoot":"","sources":["../../../src/page-controls/send-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAIjC;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAuBtC"}
@@ -0,0 +1,6 @@
1
+ import { PageMark } from './page-mark';
2
+ export declare function registerPageMarkSources(mark: PageMark, elements: readonly HTMLElement[]): void;
3
+ export declare function isPageMarkShareable(mark: PageMark): boolean;
4
+ /** Refresh both serialized mark representations from the original live nodes. */
5
+ export declare function pageMarkForSend(mark: PageMark): PageMark | null;
6
+ //# sourceMappingURL=mark-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-source.d.ts","sourceRoot":"","sources":["../../../src/page-marks/mark-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAa5C,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,SAAS,WAAW,EAAE,QAGjC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAa3D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAa/D"}
@@ -22,4 +22,6 @@ export declare function awaitSnapshotUrl(mark: {
22
22
  export declare function fileFromDataUrl(dataUrl: string, name: string): File | null;
23
23
  /** The key's in-flight/settled snapshot, if one was started. */
24
24
  export declare function getThumbnail(key: object): Promise<string | null> | undefined;
25
+ /** Preserve a validated mark's local preview without sharing mutable metadata. */
26
+ export declare function copyThumbnail(source: object, target: object): void;
25
27
  //# sourceMappingURL=mark-thumbnail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mark-thumbnail.d.ts","sourceRoot":"","sources":["../../../src/page-marks/mark-thumbnail.ts"],"names":[],"mappings":"AA6DA,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,QAE1D;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAe/C;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAa1E;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAE5E"}
1
+ {"version":3,"file":"mark-thumbnail.d.ts","sourceRoot":"","sources":["../../../src/page-marks/mark-thumbnail.ts"],"names":[],"mappings":"AA+DA,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,QAG1D;AAID;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAoB/C;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAa1E;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAE5E;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAG3D"}
@@ -1,3 +1,4 @@
1
+ export { WIDGET_OWNED_SELECTOR } from '../page-privacy';
1
2
  /**
2
3
  * The page vocabulary shared by every mark on the host page — the visitor's
3
4
  * (`page-mark.ts`) and the agent's (`agent-mark.ts`).
@@ -57,13 +58,6 @@ export declare const VIEWPORT_MARGIN_PX = 8;
57
58
  export declare function clampRectToViewport(rect: Rect, margin?: number): Rect;
58
59
  /** Describe an element for the AI. */
59
60
  export declare function describeElement(el: HTMLElement): MarkedElement;
60
- /**
61
- * The single source of truth for "this node belongs to the widget": the embed
62
- * root, host-portaled chrome, and every mark overlay. Both the `closest()`
63
- * ownership check below and the mark-mode cursor's injected `:not()` chain
64
- * derive from this list — add new widget-owned markers HERE.
65
- */
66
- export declare const WIDGET_OWNED_SELECTOR: readonly ["#opencx-root", "[data-opencx-root]", "[data-opencx-overlay]"];
67
61
  /**
68
62
  * True for nodes that belong to the widget itself — no mark may ever target
69
63
  * the widget's own UI.
@@ -1 +1 @@
1
- {"version":3,"file":"page-element.d.ts","sourceRoot":"","sources":["../../../src/page-marks/page-element.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wDAAwD;AACxD,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAiDF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAoC3D;AAcD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CA+B7D;AAED,6EAA6E;AAC7E,wBAAgB,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAQxC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,MAA2B,GAClC,IAAI,CAiBN;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,aAAa,CAQ9D;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,0EAIxB,CAAC;AAIX;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmBlE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,WAAW,GAAG,IAAI,CA8BrB"}
1
+ {"version":3,"file":"page-element.d.ts","sourceRoot":"","sources":["../../../src/page-marks/page-element.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD;;;;;;;GAOG;AAEH,wDAAwD;AACxD,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAiDF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CA0C3D;AAcD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CA+B7D;AAED,6EAA6E;AAC7E,wBAAgB,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAQxC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,MAA2B,GAClC,IAAI,CAiBN;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,aAAa,CAU9D;AAUD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAwBlE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,WAAW,GAAG,IAAI,CA8BrB"}
@@ -26,16 +26,11 @@ export type MarkHover = {
26
26
  * editor card stays usable, and the complete pointer/click sequence is
27
27
  * swallowed so marking a button never activates it.
28
28
  */
29
- export declare function usePageMarking({ enabled, onAttach, uploadSnapshot, accentColor, zIndex, }: {
29
+ export declare function usePageMarking({ enabled, onAttach, accentColor, zIndex, }: {
30
30
  /** Whether this composer currently exposes page marking. */
31
31
  enabled: boolean;
32
32
  /** Notification only — the provider owns the mark either way. */
33
33
  onAttach?: (mark: PageMark) => void;
34
- /**
35
- * Uploads a mark's thumbnail as a message file and resolves its URL (null
36
- * on failure). Without it, marks are sent text-only after a reload.
37
- */
38
- uploadSnapshot?: (file: File) => Promise<string | null>;
39
34
  accentColor: string;
40
35
  /** Host-page ink layer, normally resolved from the configured widget z-index. */
41
36
  zIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"usePageMarking.d.ts","sourceRoot":"","sources":["../../../src/page-marks/usePageMarking.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,IAAI,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AAuBrB,gEAAgE;AAChE,MAAM,MAAM,SAAS,GAAG;IACtB,uEAAuE;IACvE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAQF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,cAAc,EACd,WAAW,EACX,MAAM,GACP,EAAE;IACD,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;;;;sBA8BsC,SAAS;mBAoSrC,MAAM;IA2Cb,+DAA+D;;;;EAKlE"}
1
+ {"version":3,"file":"usePageMarking.d.ts","sourceRoot":"","sources":["../../../src/page-marks/usePageMarking.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,IAAI,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AAwBrB,gEAAgE;AAChE,MAAM,MAAM,SAAS,GAAG;IACtB,uEAAuE;IACvE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAQF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE;IACD,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;;;;sBA8BsC,SAAS;mBAoSrC,MAAM;IAyCb,+DAA+D;;;;EAKlE"}
@@ -0,0 +1,11 @@
1
+ /** Shared privacy boundary for page names, marks and captures. */
2
+ export declare const WIDGET_OWNED_SELECTOR: readonly ["#opencx-root", "[data-opencx-root]", "[data-opencx-overlay]"];
3
+ export declare const PAGE_VALUE_SELECTOR = "input,textarea,select,[contenteditable]:not([contenteditable=\"false\"]),[role=\"textbox\"],[role=\"searchbox\"],[role=\"combobox\"]";
4
+ export declare function isPageElementPrivate(el: Element): boolean;
5
+ /** Read from live nodes so CSS and private ancestors/referenced labels apply. */
6
+ export declare function safePageText(el: Element): string;
7
+ /** URL metadata never includes credentials, query parameters or fragments. */
8
+ export declare function safePageUrl(value: string): string;
9
+ /** Form values and opaque embedded pixels cannot be reliably redacted. */
10
+ export declare function canCapturePageElement(el: Element): boolean;
11
+ //# sourceMappingURL=page-privacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-privacy.d.ts","sourceRoot":"","sources":["../../src/page-privacy.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,qBAAqB,0EAIxB,CAAC;AAEX,eAAO,MAAM,mBAAmB,yIACgG,CAAC;AAuBjI,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CASzD;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAwBhD;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAY1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatFooter.d.ts","sourceRoot":"","sources":["../../../../src/screens/chat/ChatFooter.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAoE1B,wBAAgB,UAAU,sBA2CzB"}
1
+ {"version":3,"file":"ChatFooter.d.ts","sourceRoot":"","sources":["../../../../src/screens/chat/ChatFooter.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAC;AAoE1B,wBAAgB,UAAU,sBAiDzB"}
@@ -4,7 +4,9 @@ import { default as React } from 'react';
4
4
  * Exported so companion's quick-ask state renders the exact same composer
5
5
  * (not a bespoke bar), inheriting every customization automatically.
6
6
  */
7
- export declare function ChatInput({ trailingActions, placeholder, hideAttachTools, }?: {
7
+ export declare function ChatInput({ trailingActions, placeholder, hideAttachTools, disabled, }?: {
8
+ /** Keep the composer visible while a required starter must be chosen. */
9
+ disabled?: boolean;
8
10
  /**
9
11
  * Extra controls rendered in the composer's action row, just before the
10
12
  * send button. Companion uses it to slot a conversation-history button into
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../../src/screens/chat/ChatInput.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AA8C5E;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,WAAW,EACX,eAAe,GAChB,GAAE;IACD;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,qBA2qBL"}
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../../src/screens/chat/ChatInput.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAkD5E;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EACxB,eAAe,EACf,WAAW,EACX,eAAe,EACf,QAAgB,GACjB,GAAE;IACD,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CACtB,qBAytBL"}
@@ -2,7 +2,7 @@
2
2
  * The agent's hands on the host page.
3
3
  *
4
4
  * Three things happen here and nowhere else: the visitor is asked before
5
- * anything that commits, the action is performed against the element the
5
+ * every action, the action is performed against the element the
6
6
  * reference resolves to, and the turn is told what actually happened.
7
7
  *
8
8
  * Every path answers the waiting call exactly once. A refusal, a decline, a
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatPageActions.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat/agent/AgentChatPageActions.tsx"],"names":[],"mappings":"AAaA;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,SA2EnC"}
1
+ {"version":3,"file":"AgentChatPageActions.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat/agent/AgentChatPageActions.tsx"],"names":[],"mappings":"AAeA;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,SA0JnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatPageEffects.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat/agent/AgentChatPageEffects.tsx"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,SAsGnC"}
1
+ {"version":3,"file":"AgentChatPageEffects.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat/agent/AgentChatPageEffects.tsx"],"names":[],"mappings":"AAoBA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,SAyInC"}
@@ -0,0 +1,5 @@
1
+ /** A delayed DOM effect must still belong to this mounted, active turn. */
2
+ export declare function usePageEffectIsCurrent(effects: readonly {
3
+ key: string;
4
+ }[], isStreaming: boolean): (key: string) => boolean;
5
+ //# sourceMappingURL=use-page-effect-is-current.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-page-effect-is-current.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat/agent/use-page-effect-is-current.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,EACnC,WAAW,EAAE,OAAO,SAYZ,MAAM,aAMf"}
@@ -21,5 +21,6 @@ export declare function usePageMarkComposer({ enabled, inputRef, }: {
21
21
  disarm: () => void;
22
22
  toggle: () => void;
23
23
  };
24
+ uploadSnapshot: (file: File) => Promise<string | null>;
24
25
  };
25
26
  //# sourceMappingURL=usePageMarkComposer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePageMarkComposer.d.ts","sourceRoot":"","sources":["../../../../src/screens/chat/usePageMarkComposer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMpD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CACjD;;;;;;;;;;;;;EAoCA"}
1
+ {"version":3,"file":"usePageMarkComposer.d.ts","sourceRoot":"","sources":["../../../../src/screens/chat/usePageMarkComposer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMpD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CACjD;;;;;;;;;;;;;2BAcgB,IAAI,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;EAsB7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,wBAAgB,UAAU,sBAsDzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,wBAAgB,UAAU,sBAsDzB"}