@athenaintel/react 0.21.1 → 0.21.2

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.
@@ -61,31 +61,36 @@ const TiptapText = ({ text }) => {
61
61
  attributes: {
62
62
  class: "prose prose-sm dark:prose-invert max-w-none focus:outline-none"
63
63
  },
64
- handleClick: (_view, _pos, event) => {
65
- var _a;
66
- if (event.button !== 0) {
67
- return false;
68
- }
69
- const target = event.target;
70
- const targetElement = target instanceof HTMLElement ? target : target instanceof Node ? target.parentElement : null;
71
- if (!targetElement) {
72
- return false;
73
- }
74
- const link = targetElement.closest("a[href]");
75
- if (!(link instanceof HTMLAnchorElement)) {
76
- return false;
77
- }
78
- if (handleLinkClickRef.current({
79
- href: link.getAttribute("href") ?? link.href,
80
- linkText: link.textContent,
81
- target: link.target,
82
- nativeEvent: event
83
- })) {
64
+ // ProseMirror's `handleClick` fires on `mouseup`, where `preventDefault`
65
+ // cannot cancel the anchor's navigation; the native `click` event can.
66
+ handleDOMEvents: {
67
+ click: (_view, event) => {
68
+ var _a;
69
+ if (event.button !== 0 || event.defaultPrevented) {
70
+ return false;
71
+ }
72
+ const target = event.target;
73
+ const targetElement = target instanceof HTMLElement ? target : target instanceof Node ? target.parentElement : null;
74
+ if (!targetElement) {
75
+ return false;
76
+ }
77
+ const link = targetElement.closest("a[href]");
78
+ if (!(link instanceof HTMLAnchorElement)) {
79
+ return false;
80
+ }
81
+ if (handleLinkClickRef.current({
82
+ href: link.getAttribute("href") ?? link.href,
83
+ linkText: link.textContent,
84
+ target: link.target,
85
+ nativeEvent: event
86
+ })) {
87
+ event.preventDefault();
88
+ return true;
89
+ }
90
+ event.preventDefault();
91
+ (_a = window.open(link.href, link.target || "_blank")) == null ? void 0 : _a.focus();
84
92
  return true;
85
93
  }
86
- event.preventDefault();
87
- (_a = window.open(link.href, link.target || "_blank")) == null ? void 0 : _a.focus();
88
- return true;
89
94
  }
90
95
  }
91
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tiptap-text.cjs","sources":["../../src/chat/tiptap-text.tsx"],"sourcesContent":["import { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport Link from \"@tiptap/extension-link\";\nimport { Table } from \"@tiptap/extension-table\";\nimport { TableRow } from \"@tiptap/extension-table-row\";\nimport { TableCell } from \"@tiptap/extension-table-cell\";\nimport { TableHeader } from \"@tiptap/extension-table-header\";\nimport { Markdown } from \"tiptap-markdown\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef } from \"react\";\nimport { MentionExtension } from \"../chat-ui/mentions/mention-extension\";\nimport { useAthenaLinkClickHandler } from \"./athena-citation-links\";\n\nconst extensions = [\n StarterKit.configure({\n codeBlock: {\n HTMLAttributes: {\n class: \"rounded-md bg-muted p-3 font-mono text-sm\",\n },\n },\n }),\n Link.configure({\n openOnClick: false,\n autolink: true,\n HTMLAttributes: {\n class: \"text-primary underline\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n Table.configure({\n resizable: false,\n HTMLAttributes: {\n class: \"aui-table\",\n },\n }),\n TableRow,\n TableCell,\n TableHeader,\n Markdown.configure({\n html: true,\n tightLists: true,\n linkify: true,\n breaks: true,\n transformPastedText: false,\n transformCopiedText: false,\n }),\n MentionExtension,\n];\n\nexport const TiptapText: FC<{ text: string }> = ({ text }) => {\n const handleLinkClick = useAthenaLinkClickHandler();\n const handleLinkClickRef = useRef(handleLinkClick);\n handleLinkClickRef.current = handleLinkClick;\n\n const editor = useEditor({\n immediatelyRender: true,\n extensions,\n content: text,\n editable: false,\n editorProps: {\n attributes: {\n class: \"prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n },\n handleClick: (_view, _pos, event) => {\n if (event.button !== 0) {\n return false;\n }\n\n const target = event.target;\n const targetElement =\n target instanceof HTMLElement\n ? target\n : target instanceof Node\n ? target.parentElement\n : null;\n if (!targetElement) {\n return false;\n }\n\n const link = targetElement.closest(\"a[href]\");\n if (!(link instanceof HTMLAnchorElement)) {\n return false;\n }\n\n if (\n handleLinkClickRef.current({\n href: link.getAttribute(\"href\") ?? link.href,\n linkText: link.textContent,\n target: link.target,\n nativeEvent: event,\n })\n ) {\n return true;\n }\n\n event.preventDefault();\n window.open(link.href, link.target || \"_blank\")?.focus();\n return true;\n },\n },\n });\n\n useEffect(() => {\n if (editor && text !== (editor.storage as any).markdown?.getMarkdown()) {\n editor.commands.setContent(text);\n }\n }, [text, editor]);\n\n return <EditorContent editor={editor} />;\n};\n"],"names":["Table","TableRow","TableCell","TableHeader","Markdown","MentionExtension","useAthenaLinkClickHandler","useRef","useEditor","useEffect","jsx","EditorContent"],"mappings":";;;;;;;;;;;;;;AAaA,MAAM,aAAa;AAAA,EACjB,WAAW,UAAU;AAAA,IACnB,WAAW;AAAA,MACT,gBAAgB;AAAA,QACd,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AAAA,EACD,KAAK,UAAU;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,IACV,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,IAAA;AAAA,EACP,CACD;AAAA,EACDA,MAAAA,MAAM,UAAU;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,MACd,OAAO;AAAA,IAAA;AAAA,EACT,CACD;AAAA,EACDC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,eAAAA,SAAS,UAAU;AAAA,IACjB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EAAA,CACtB;AAAA,EACDC,iBAAAA;AACF;AAEO,MAAM,aAAmC,CAAC,EAAE,WAAW;AAC5D,QAAM,kBAAkBC,oBAAAA,0BAAA;AACxB,QAAM,qBAAqBC,MAAAA,OAAO,eAAe;AACjD,qBAAmB,UAAU;AAE7B,QAAM,SAASC,QAAAA,UAAU;AAAA,IACvB,mBAAmB;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,MACX,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,MAET,aAAa,CAAC,OAAO,MAAM,UAAU;;AACnC,YAAI,MAAM,WAAW,GAAG;AACtB,iBAAO;AAAA,QACT;AAEA,cAAM,SAAS,MAAM;AACrB,cAAM,gBACJ,kBAAkB,cACd,SACA,kBAAkB,OAChB,OAAO,gBACP;AACR,YAAI,CAAC,eAAe;AAClB,iBAAO;AAAA,QACT;AAEA,cAAM,OAAO,cAAc,QAAQ,SAAS;AAC5C,YAAI,EAAE,gBAAgB,oBAAoB;AACxC,iBAAO;AAAA,QACT;AAEA,YACE,mBAAmB,QAAQ;AAAA,UACzB,MAAM,KAAK,aAAa,MAAM,KAAK,KAAK;AAAA,UACxC,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,aAAa;AAAA,QAAA,CACd,GACD;AACA,iBAAO;AAAA,QACT;AAEA,cAAM,eAAA;AACN,qBAAO,KAAK,KAAK,MAAM,KAAK,UAAU,QAAQ,MAA9C,mBAAiD;AACjD,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EACF,CACD;AAEDC,QAAAA,UAAU,MAAM;;AACd,QAAI,UAAU,WAAU,YAAO,QAAgB,aAAvB,mBAAiC,gBAAe;AACtE,aAAO,SAAS,WAAW,IAAI;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,SAAOC,+BAACC,QAAAA,iBAAc,QAAgB;AACxC;;"}
1
+ {"version":3,"file":"tiptap-text.cjs","sources":["../../src/chat/tiptap-text.tsx"],"sourcesContent":["import { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport Link from \"@tiptap/extension-link\";\nimport { Table } from \"@tiptap/extension-table\";\nimport { TableRow } from \"@tiptap/extension-table-row\";\nimport { TableCell } from \"@tiptap/extension-table-cell\";\nimport { TableHeader } from \"@tiptap/extension-table-header\";\nimport { Markdown } from \"tiptap-markdown\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef } from \"react\";\nimport { MentionExtension } from \"../chat-ui/mentions/mention-extension\";\nimport { useAthenaLinkClickHandler } from \"./athena-citation-links\";\n\nconst extensions = [\n StarterKit.configure({\n codeBlock: {\n HTMLAttributes: {\n class: \"rounded-md bg-muted p-3 font-mono text-sm\",\n },\n },\n }),\n Link.configure({\n openOnClick: false,\n autolink: true,\n HTMLAttributes: {\n class: \"text-primary underline\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n Table.configure({\n resizable: false,\n HTMLAttributes: {\n class: \"aui-table\",\n },\n }),\n TableRow,\n TableCell,\n TableHeader,\n Markdown.configure({\n html: true,\n tightLists: true,\n linkify: true,\n breaks: true,\n transformPastedText: false,\n transformCopiedText: false,\n }),\n MentionExtension,\n];\n\nexport const TiptapText: FC<{ text: string }> = ({ text }) => {\n const handleLinkClick = useAthenaLinkClickHandler();\n const handleLinkClickRef = useRef(handleLinkClick);\n handleLinkClickRef.current = handleLinkClick;\n\n const editor = useEditor({\n immediatelyRender: true,\n extensions,\n content: text,\n editable: false,\n editorProps: {\n attributes: {\n class: \"prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n },\n // ProseMirror's `handleClick` fires on `mouseup`, where `preventDefault`\n // cannot cancel the anchor's navigation; the native `click` event can.\n handleDOMEvents: {\n click: (_view, event) => {\n if (event.button !== 0 || event.defaultPrevented) {\n return false;\n }\n\n const target = event.target;\n const targetElement =\n target instanceof HTMLElement\n ? target\n : target instanceof Node\n ? target.parentElement\n : null;\n if (!targetElement) {\n return false;\n }\n\n const link = targetElement.closest(\"a[href]\");\n if (!(link instanceof HTMLAnchorElement)) {\n return false;\n }\n\n if (\n handleLinkClickRef.current({\n href: link.getAttribute(\"href\") ?? link.href,\n linkText: link.textContent,\n target: link.target,\n nativeEvent: event,\n })\n ) {\n event.preventDefault();\n return true;\n }\n\n event.preventDefault();\n window.open(link.href, link.target || \"_blank\")?.focus();\n return true;\n },\n },\n },\n });\n\n useEffect(() => {\n if (editor && text !== (editor.storage as any).markdown?.getMarkdown()) {\n editor.commands.setContent(text);\n }\n }, [text, editor]);\n\n return <EditorContent editor={editor} />;\n};\n"],"names":["Table","TableRow","TableCell","TableHeader","Markdown","MentionExtension","useAthenaLinkClickHandler","useRef","useEditor","useEffect","jsx","EditorContent"],"mappings":";;;;;;;;;;;;;;AAaA,MAAM,aAAa;AAAA,EACjB,WAAW,UAAU;AAAA,IACnB,WAAW;AAAA,MACT,gBAAgB;AAAA,QACd,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AAAA,EACD,KAAK,UAAU;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,IACV,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,IAAA;AAAA,EACP,CACD;AAAA,EACDA,MAAAA,MAAM,UAAU;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,MACd,OAAO;AAAA,IAAA;AAAA,EACT,CACD;AAAA,EACDC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,eAAAA,SAAS,UAAU;AAAA,IACjB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EAAA,CACtB;AAAA,EACDC,iBAAAA;AACF;AAEO,MAAM,aAAmC,CAAC,EAAE,WAAW;AAC5D,QAAM,kBAAkBC,oBAAAA,0BAAA;AACxB,QAAM,qBAAqBC,MAAAA,OAAO,eAAe;AACjD,qBAAmB,UAAU;AAE7B,QAAM,SAASC,QAAAA,UAAU;AAAA,IACvB,mBAAmB;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,MACX,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA;AAAA;AAAA,MAIT,iBAAiB;AAAA,QACf,OAAO,CAAC,OAAO,UAAU;;AACvB,cAAI,MAAM,WAAW,KAAK,MAAM,kBAAkB;AAChD,mBAAO;AAAA,UACT;AAEA,gBAAM,SAAS,MAAM;AACrB,gBAAM,gBACJ,kBAAkB,cACd,SACA,kBAAkB,OAChB,OAAO,gBACP;AACR,cAAI,CAAC,eAAe;AAClB,mBAAO;AAAA,UACT;AAEA,gBAAM,OAAO,cAAc,QAAQ,SAAS;AAC5C,cAAI,EAAE,gBAAgB,oBAAoB;AACxC,mBAAO;AAAA,UACT;AAEA,cACE,mBAAmB,QAAQ;AAAA,YACzB,MAAM,KAAK,aAAa,MAAM,KAAK,KAAK;AAAA,YACxC,UAAU,KAAK;AAAA,YACf,QAAQ,KAAK;AAAA,YACb,aAAa;AAAA,UAAA,CACd,GACD;AACA,kBAAM,eAAA;AACN,mBAAO;AAAA,UACT;AAEA,gBAAM,eAAA;AACN,uBAAO,KAAK,KAAK,MAAM,KAAK,UAAU,QAAQ,MAA9C,mBAAiD;AACjD,iBAAO;AAAA,QACT;AAAA,MAAA;AAAA,IACF;AAAA,EACF,CACD;AAEDC,QAAAA,UAAU,MAAM;;AACd,QAAI,UAAU,WAAU,YAAO,QAAgB,aAAvB,mBAAiC,gBAAe;AACtE,aAAO,SAAS,WAAW,IAAI;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,SAAOC,+BAACC,QAAAA,iBAAc,QAAgB;AACxC;;"}
@@ -59,31 +59,36 @@ const TiptapText = ({ text }) => {
59
59
  attributes: {
60
60
  class: "prose prose-sm dark:prose-invert max-w-none focus:outline-none"
61
61
  },
62
- handleClick: (_view, _pos, event) => {
63
- var _a;
64
- if (event.button !== 0) {
65
- return false;
66
- }
67
- const target = event.target;
68
- const targetElement = target instanceof HTMLElement ? target : target instanceof Node ? target.parentElement : null;
69
- if (!targetElement) {
70
- return false;
71
- }
72
- const link = targetElement.closest("a[href]");
73
- if (!(link instanceof HTMLAnchorElement)) {
74
- return false;
75
- }
76
- if (handleLinkClickRef.current({
77
- href: link.getAttribute("href") ?? link.href,
78
- linkText: link.textContent,
79
- target: link.target,
80
- nativeEvent: event
81
- })) {
62
+ // ProseMirror's `handleClick` fires on `mouseup`, where `preventDefault`
63
+ // cannot cancel the anchor's navigation; the native `click` event can.
64
+ handleDOMEvents: {
65
+ click: (_view, event) => {
66
+ var _a;
67
+ if (event.button !== 0 || event.defaultPrevented) {
68
+ return false;
69
+ }
70
+ const target = event.target;
71
+ const targetElement = target instanceof HTMLElement ? target : target instanceof Node ? target.parentElement : null;
72
+ if (!targetElement) {
73
+ return false;
74
+ }
75
+ const link = targetElement.closest("a[href]");
76
+ if (!(link instanceof HTMLAnchorElement)) {
77
+ return false;
78
+ }
79
+ if (handleLinkClickRef.current({
80
+ href: link.getAttribute("href") ?? link.href,
81
+ linkText: link.textContent,
82
+ target: link.target,
83
+ nativeEvent: event
84
+ })) {
85
+ event.preventDefault();
86
+ return true;
87
+ }
88
+ event.preventDefault();
89
+ (_a = window.open(link.href, link.target || "_blank")) == null ? void 0 : _a.focus();
82
90
  return true;
83
91
  }
84
- event.preventDefault();
85
- (_a = window.open(link.href, link.target || "_blank")) == null ? void 0 : _a.focus();
86
- return true;
87
92
  }
88
93
  }
89
94
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tiptap-text.js","sources":["../../src/chat/tiptap-text.tsx"],"sourcesContent":["import { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport Link from \"@tiptap/extension-link\";\nimport { Table } from \"@tiptap/extension-table\";\nimport { TableRow } from \"@tiptap/extension-table-row\";\nimport { TableCell } from \"@tiptap/extension-table-cell\";\nimport { TableHeader } from \"@tiptap/extension-table-header\";\nimport { Markdown } from \"tiptap-markdown\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef } from \"react\";\nimport { MentionExtension } from \"../chat-ui/mentions/mention-extension\";\nimport { useAthenaLinkClickHandler } from \"./athena-citation-links\";\n\nconst extensions = [\n StarterKit.configure({\n codeBlock: {\n HTMLAttributes: {\n class: \"rounded-md bg-muted p-3 font-mono text-sm\",\n },\n },\n }),\n Link.configure({\n openOnClick: false,\n autolink: true,\n HTMLAttributes: {\n class: \"text-primary underline\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n Table.configure({\n resizable: false,\n HTMLAttributes: {\n class: \"aui-table\",\n },\n }),\n TableRow,\n TableCell,\n TableHeader,\n Markdown.configure({\n html: true,\n tightLists: true,\n linkify: true,\n breaks: true,\n transformPastedText: false,\n transformCopiedText: false,\n }),\n MentionExtension,\n];\n\nexport const TiptapText: FC<{ text: string }> = ({ text }) => {\n const handleLinkClick = useAthenaLinkClickHandler();\n const handleLinkClickRef = useRef(handleLinkClick);\n handleLinkClickRef.current = handleLinkClick;\n\n const editor = useEditor({\n immediatelyRender: true,\n extensions,\n content: text,\n editable: false,\n editorProps: {\n attributes: {\n class: \"prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n },\n handleClick: (_view, _pos, event) => {\n if (event.button !== 0) {\n return false;\n }\n\n const target = event.target;\n const targetElement =\n target instanceof HTMLElement\n ? target\n : target instanceof Node\n ? target.parentElement\n : null;\n if (!targetElement) {\n return false;\n }\n\n const link = targetElement.closest(\"a[href]\");\n if (!(link instanceof HTMLAnchorElement)) {\n return false;\n }\n\n if (\n handleLinkClickRef.current({\n href: link.getAttribute(\"href\") ?? link.href,\n linkText: link.textContent,\n target: link.target,\n nativeEvent: event,\n })\n ) {\n return true;\n }\n\n event.preventDefault();\n window.open(link.href, link.target || \"_blank\")?.focus();\n return true;\n },\n },\n });\n\n useEffect(() => {\n if (editor && text !== (editor.storage as any).markdown?.getMarkdown()) {\n editor.commands.setContent(text);\n }\n }, [text, editor]);\n\n return <EditorContent editor={editor} />;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAaA,MAAM,aAAa;AAAA,EACjB,WAAW,UAAU;AAAA,IACnB,WAAW;AAAA,MACT,gBAAgB;AAAA,QACd,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AAAA,EACD,KAAK,UAAU;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,IACV,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,IAAA;AAAA,EACP,CACD;AAAA,EACD,MAAM,UAAU;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,MACd,OAAO;AAAA,IAAA;AAAA,EACT,CACD;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,UAAU;AAAA,IACjB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EAAA,CACtB;AAAA,EACD;AACF;AAEO,MAAM,aAAmC,CAAC,EAAE,WAAW;AAC5D,QAAM,kBAAkB,0BAAA;AACxB,QAAM,qBAAqB,OAAO,eAAe;AACjD,qBAAmB,UAAU;AAE7B,QAAM,SAAS,UAAU;AAAA,IACvB,mBAAmB;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,MACX,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,MAET,aAAa,CAAC,OAAO,MAAM,UAAU;;AACnC,YAAI,MAAM,WAAW,GAAG;AACtB,iBAAO;AAAA,QACT;AAEA,cAAM,SAAS,MAAM;AACrB,cAAM,gBACJ,kBAAkB,cACd,SACA,kBAAkB,OAChB,OAAO,gBACP;AACR,YAAI,CAAC,eAAe;AAClB,iBAAO;AAAA,QACT;AAEA,cAAM,OAAO,cAAc,QAAQ,SAAS;AAC5C,YAAI,EAAE,gBAAgB,oBAAoB;AACxC,iBAAO;AAAA,QACT;AAEA,YACE,mBAAmB,QAAQ;AAAA,UACzB,MAAM,KAAK,aAAa,MAAM,KAAK,KAAK;AAAA,UACxC,UAAU,KAAK;AAAA,UACf,QAAQ,KAAK;AAAA,UACb,aAAa;AAAA,QAAA,CACd,GACD;AACA,iBAAO;AAAA,QACT;AAEA,cAAM,eAAA;AACN,qBAAO,KAAK,KAAK,MAAM,KAAK,UAAU,QAAQ,MAA9C,mBAAiD;AACjD,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EACF,CACD;AAED,YAAU,MAAM;;AACd,QAAI,UAAU,WAAU,YAAO,QAAgB,aAAvB,mBAAiC,gBAAe;AACtE,aAAO,SAAS,WAAW,IAAI;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,SAAO,oBAAC,iBAAc,QAAgB;AACxC;"}
1
+ {"version":3,"file":"tiptap-text.js","sources":["../../src/chat/tiptap-text.tsx"],"sourcesContent":["import { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport Link from \"@tiptap/extension-link\";\nimport { Table } from \"@tiptap/extension-table\";\nimport { TableRow } from \"@tiptap/extension-table-row\";\nimport { TableCell } from \"@tiptap/extension-table-cell\";\nimport { TableHeader } from \"@tiptap/extension-table-header\";\nimport { Markdown } from \"tiptap-markdown\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef } from \"react\";\nimport { MentionExtension } from \"../chat-ui/mentions/mention-extension\";\nimport { useAthenaLinkClickHandler } from \"./athena-citation-links\";\n\nconst extensions = [\n StarterKit.configure({\n codeBlock: {\n HTMLAttributes: {\n class: \"rounded-md bg-muted p-3 font-mono text-sm\",\n },\n },\n }),\n Link.configure({\n openOnClick: false,\n autolink: true,\n HTMLAttributes: {\n class: \"text-primary underline\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n Table.configure({\n resizable: false,\n HTMLAttributes: {\n class: \"aui-table\",\n },\n }),\n TableRow,\n TableCell,\n TableHeader,\n Markdown.configure({\n html: true,\n tightLists: true,\n linkify: true,\n breaks: true,\n transformPastedText: false,\n transformCopiedText: false,\n }),\n MentionExtension,\n];\n\nexport const TiptapText: FC<{ text: string }> = ({ text }) => {\n const handleLinkClick = useAthenaLinkClickHandler();\n const handleLinkClickRef = useRef(handleLinkClick);\n handleLinkClickRef.current = handleLinkClick;\n\n const editor = useEditor({\n immediatelyRender: true,\n extensions,\n content: text,\n editable: false,\n editorProps: {\n attributes: {\n class: \"prose prose-sm dark:prose-invert max-w-none focus:outline-none\",\n },\n // ProseMirror's `handleClick` fires on `mouseup`, where `preventDefault`\n // cannot cancel the anchor's navigation; the native `click` event can.\n handleDOMEvents: {\n click: (_view, event) => {\n if (event.button !== 0 || event.defaultPrevented) {\n return false;\n }\n\n const target = event.target;\n const targetElement =\n target instanceof HTMLElement\n ? target\n : target instanceof Node\n ? target.parentElement\n : null;\n if (!targetElement) {\n return false;\n }\n\n const link = targetElement.closest(\"a[href]\");\n if (!(link instanceof HTMLAnchorElement)) {\n return false;\n }\n\n if (\n handleLinkClickRef.current({\n href: link.getAttribute(\"href\") ?? link.href,\n linkText: link.textContent,\n target: link.target,\n nativeEvent: event,\n })\n ) {\n event.preventDefault();\n return true;\n }\n\n event.preventDefault();\n window.open(link.href, link.target || \"_blank\")?.focus();\n return true;\n },\n },\n },\n });\n\n useEffect(() => {\n if (editor && text !== (editor.storage as any).markdown?.getMarkdown()) {\n editor.commands.setContent(text);\n }\n }, [text, editor]);\n\n return <EditorContent editor={editor} />;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAaA,MAAM,aAAa;AAAA,EACjB,WAAW,UAAU;AAAA,IACnB,WAAW;AAAA,MACT,gBAAgB;AAAA,QACd,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,EACF,CACD;AAAA,EACD,KAAK,UAAU;AAAA,IACb,aAAa;AAAA,IACb,UAAU;AAAA,IACV,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,IAAA;AAAA,EACP,CACD;AAAA,EACD,MAAM,UAAU;AAAA,IACd,WAAW;AAAA,IACX,gBAAgB;AAAA,MACd,OAAO;AAAA,IAAA;AAAA,EACT,CACD;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,UAAU;AAAA,IACjB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EAAA,CACtB;AAAA,EACD;AACF;AAEO,MAAM,aAAmC,CAAC,EAAE,WAAW;AAC5D,QAAM,kBAAkB,0BAAA;AACxB,QAAM,qBAAqB,OAAO,eAAe;AACjD,qBAAmB,UAAU;AAE7B,QAAM,SAAS,UAAU;AAAA,IACvB,mBAAmB;AAAA,IACnB;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,MACX,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA;AAAA;AAAA,MAIT,iBAAiB;AAAA,QACf,OAAO,CAAC,OAAO,UAAU;;AACvB,cAAI,MAAM,WAAW,KAAK,MAAM,kBAAkB;AAChD,mBAAO;AAAA,UACT;AAEA,gBAAM,SAAS,MAAM;AACrB,gBAAM,gBACJ,kBAAkB,cACd,SACA,kBAAkB,OAChB,OAAO,gBACP;AACR,cAAI,CAAC,eAAe;AAClB,mBAAO;AAAA,UACT;AAEA,gBAAM,OAAO,cAAc,QAAQ,SAAS;AAC5C,cAAI,EAAE,gBAAgB,oBAAoB;AACxC,mBAAO;AAAA,UACT;AAEA,cACE,mBAAmB,QAAQ;AAAA,YACzB,MAAM,KAAK,aAAa,MAAM,KAAK,KAAK;AAAA,YACxC,UAAU,KAAK;AAAA,YACf,QAAQ,KAAK;AAAA,YACb,aAAa;AAAA,UAAA,CACd,GACD;AACA,kBAAM,eAAA;AACN,mBAAO;AAAA,UACT;AAEA,gBAAM,eAAA;AACN,uBAAO,KAAK,KAAK,MAAM,KAAK,UAAU,QAAQ,MAA9C,mBAAiD;AACjD,iBAAO;AAAA,QACT;AAAA,MAAA;AAAA,IACF;AAAA,EACF,CACD;AAED,YAAU,MAAM;;AACd,QAAI,UAAU,WAAU,YAAO,QAAgB,aAAvB,mBAAiC,gBAAe;AACtE,aAAO,SAAS,WAAW,IAAI;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,SAAO,oBAAC,iBAAc,QAAgB;AACxC;"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const version = "0.21.1";
3
+ const version = "0.21.2";
4
4
  const packageJson = {
5
5
  version
6
6
  };
@@ -1,4 +1,4 @@
1
- const version = "0.21.1";
1
+ const version = "0.21.2";
2
2
  const packageJson = {
3
3
  version
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athenaintel/react",
3
- "version": "0.21.1",
3
+ "version": "0.21.2",
4
4
  "description": "Athena React SDK — Build AI-powered chat applications with the Athena platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",