@assistant-ui/react-native 0.1.45 → 0.1.47

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/index.d.ts +13 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -3
  4. package/dist/primitives/actionBar/ActionBarCopy.d.ts +2 -2
  5. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  6. package/dist/primitives/actionBar/ActionBarCopy.js +2 -1
  7. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  8. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +2 -2
  9. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  10. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +2 -1
  11. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  12. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +2 -2
  13. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  14. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +2 -1
  15. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  16. package/dist/primitives/composer/ComposerInput.d.ts +1 -1
  17. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  18. package/dist/primitives/composer/ComposerInput.js +55 -38
  19. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  20. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  21. package/dist/primitives/message/MessageContent.js +13 -10
  22. package/dist/primitives/message/MessageContent.js.map +1 -1
  23. package/dist/primitives/message/MessageParts.d.ts +1 -0
  24. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  25. package/dist/primitives/message/MessageParts.js +22 -3
  26. package/dist/primitives/message/MessageParts.js.map +1 -1
  27. package/dist/primitives/message.d.ts +1 -0
  28. package/dist/primitives/message.d.ts.map +1 -1
  29. package/dist/primitives/message.js +4 -3
  30. package/dist/primitives/message.js.map +1 -1
  31. package/dist/primitives/messagePart.js +1 -1
  32. package/dist/primitives/thread/ThreadMessages.d.ts +7 -5
  33. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  34. package/dist/primitives/thread/ThreadMessages.js +109 -376
  35. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  36. package/dist/primitives/thread/ThreadRowsFlatList.d.ts +29 -0
  37. package/dist/primitives/thread/ThreadRowsFlatList.d.ts.map +1 -0
  38. package/dist/primitives/thread/ThreadRowsFlatList.js +226 -0
  39. package/dist/primitives/thread/ThreadRowsFlatList.js.map +1 -0
  40. package/dist/primitives/thread/flatListScroll.d.ts +52 -0
  41. package/dist/primitives/thread/flatListScroll.d.ts.map +1 -0
  42. package/dist/primitives/thread/flatListScroll.js +380 -0
  43. package/dist/primitives/thread/flatListScroll.js.map +1 -0
  44. package/dist/primitives/thread.d.ts +2 -0
  45. package/dist/primitives/thread.d.ts.map +1 -1
  46. package/dist/primitives/thread.js +5 -2
  47. package/dist/primitives/thread.js.map +1 -1
  48. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +10 -0
  49. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  50. package/dist/primitives/threadListItem/ThreadListItemTitle.js +47 -0
  51. package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -0
  52. package/dist/primitives/threadListItem.d.ts +1 -1
  53. package/dist/primitives/threadListItem.d.ts.map +1 -1
  54. package/dist/primitives/threadListItem.js +3 -3
  55. package/dist/primitives/threadListItem.js.map +1 -1
  56. package/package.json +8 -7
  57. package/src/index.ts +22 -1
  58. package/src/primitives/actionBar/ActionBar.test.tsx +45 -0
  59. package/src/primitives/actionBar/ActionBarCopy.tsx +12 -3
  60. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +13 -3
  61. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +13 -3
  62. package/src/primitives/composer/ComposerInput.test.tsx +64 -4
  63. package/src/primitives/composer/ComposerInput.tsx +13 -2
  64. package/src/primitives/message/MessageContent.runtime.test.tsx +35 -0
  65. package/src/primitives/message/MessageContent.test.tsx +68 -4
  66. package/src/primitives/message/MessageContent.tsx +19 -9
  67. package/src/primitives/message/MessageParts.test.tsx +68 -1
  68. package/src/primitives/message/MessageParts.tsx +17 -1
  69. package/src/primitives/message.test.tsx +74 -0
  70. package/src/primitives/message.ts +1 -0
  71. package/src/primitives/thread/ThreadMessages.test.tsx +28 -1
  72. package/src/primitives/thread/ThreadMessages.tsx +49 -343
  73. package/src/primitives/thread/ThreadRowsFlatList.test.tsx +253 -0
  74. package/src/primitives/thread/ThreadRowsFlatList.tsx +159 -0
  75. package/src/primitives/thread/flatListScroll.ts +467 -0
  76. package/src/primitives/thread.ts +5 -0
  77. package/src/primitives/threadListItem/ThreadListItemTitle.test.tsx +164 -0
  78. package/src/primitives/threadListItem/ThreadListItemTitle.tsx +23 -0
  79. package/src/primitives/threadListItem.ts +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContent.js","names":["ReactElement","Fragment","useMemo","Text","getMessagePartKeys","ThreadUserMessagePart","ThreadAssistantMessagePart","MessagePartState","useAui","useAuiState","ToolCallMessagePartProps","DataMessagePartProps","MessageContentPart","MessageContentStatePart","MessageContentProps","renderText","props","part","Extract","type","index","renderToolCall","renderImage","renderReasoning","renderSource","renderFile","renderData","DefaultTextRenderer","t0","$","_c","t1","text","ToolUIDisplay","Fallback","aui","toolName","s","tools","toolUIs","render","Render","t2","message","partMethods","t3","t4","unstable_recordInteraction","t5","addToolResult","respondToToolApproval","resumeToolCall","DataUIDisplay","name","named","dataRenderers","renderers","fallbacks","MessageContent","content","_temp","partKeys","key","map","parts","_c","Fragment"],"sources":["../../../src/primitives/message/MessageContent.tsx"],"sourcesContent":["import { type ReactElement, Fragment, useMemo } from \"react\";\nimport { Text } from \"react-native\";\nimport { getMessagePartKeys } from \"@assistant-ui/core/internal\";\nimport type {\n ThreadUserMessagePart,\n ThreadAssistantMessagePart,\n MessagePartState,\n} from \"@assistant-ui/core\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type {\n ToolCallMessagePartProps,\n DataMessagePartProps,\n} from \"@assistant-ui/core/react\";\n\ntype MessageContentPart = ThreadUserMessagePart | ThreadAssistantMessagePart;\ntype MessageContentStatePart = MessagePartState;\n\nexport type MessageContentProps = {\n renderText?: (props: {\n part: Extract<MessageContentPart, { type: \"text\" }>;\n index: number;\n }) => ReactElement;\n renderToolCall?: (props: {\n part: Extract<MessageContentPart, { type: \"tool-call\" }>;\n index: number;\n }) => ReactElement;\n renderImage?: (props: {\n part: Extract<MessageContentPart, { type: \"image\" }>;\n index: number;\n }) => ReactElement;\n renderReasoning?: (props: {\n part: Extract<MessageContentPart, { type: \"reasoning\" }>;\n index: number;\n }) => ReactElement;\n renderSource?: (props: {\n part: Extract<MessageContentPart, { type: \"source\" }>;\n index: number;\n }) => ReactElement;\n renderFile?: (props: {\n part: Extract<MessageContentPart, { type: \"file\" }>;\n index: number;\n }) => ReactElement;\n renderData?: (props: {\n part: Extract<MessageContentPart, { type: \"data\" }>;\n index: number;\n }) => ReactElement;\n};\n\nconst DefaultTextRenderer = ({\n part,\n}: {\n part: Extract<MessageContentPart, { type: \"text\" }>;\n}) => {\n return <Text>{part.text}</Text>;\n};\n\nconst ToolUIDisplay = ({\n Fallback,\n part,\n index,\n}: {\n Fallback:\n | ((props: {\n part: Extract<MessageContentPart, { type: \"tool-call\" }>;\n index: number;\n }) => ReactElement)\n | undefined;\n part: Extract<MessageContentStatePart, { type: \"tool-call\" }>;\n index: number;\n}) => {\n const aui = useAui();\n const Render = useAuiState(\n (s) => s.tools.toolUIs[part.toolName]?.[0]?.render,\n );\n\n const partMethods = useMemo(() => aui.message.part({ index }), [aui, index]);\n\n if (Render) {\n return (\n <Render\n {...(part as ToolCallMessagePartProps)}\n addResult={partMethods.addToolResult}\n resume={partMethods.resumeToolCall}\n respondToApproval={partMethods.respondToToolApproval}\n {...(partMethods.unstable_recordInteraction && {\n unstable_recordInteraction: partMethods.unstable_recordInteraction,\n })}\n />\n );\n }\n if (Fallback) return <Fallback part={part} index={index} />;\n return null;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n part,\n index,\n}: {\n Fallback:\n | ((props: {\n part: Extract<MessageContentPart, { type: \"data\" }>;\n index: number;\n }) => ReactElement)\n | undefined;\n part: Extract<MessageContentStatePart, { type: \"data\" }>;\n index: number;\n}) => {\n const Render = useAuiState((s) => {\n const named = s.dataRenderers.renderers[part.name]?.[0];\n return named ?? s.dataRenderers.fallbacks[0];\n });\n if (Render) return <Render {...(part as DataMessagePartProps)} />;\n if (Fallback) return <Fallback part={part} index={index} />;\n return null;\n};\n\nexport const MessageContent = ({\n renderText,\n renderToolCall,\n renderImage,\n renderReasoning,\n renderSource,\n renderFile,\n renderData,\n}: MessageContentProps) => {\n const content = useAuiState((s) => s.message.parts);\n const partKeys = getMessagePartKeys(content);\n\n return (\n <>\n {content.map((part, index) => {\n const key = partKeys[index];\n switch (part.type) {\n case \"text\":\n return (\n <Fragment key={key}>\n {renderText ? (\n renderText({ part, index })\n ) : (\n <DefaultTextRenderer part={part} />\n )}\n </Fragment>\n );\n case \"tool-call\":\n return (\n <Fragment key={key}>\n <ToolUIDisplay\n Fallback={renderToolCall}\n part={part}\n index={index}\n />\n </Fragment>\n );\n case \"image\":\n if (!renderImage) return null;\n return (\n <Fragment key={key}>{renderImage({ part, index })}</Fragment>\n );\n case \"reasoning\":\n if (!renderReasoning) return null;\n return (\n <Fragment key={key}>{renderReasoning({ part, index })}</Fragment>\n );\n case \"source\":\n if (!renderSource) return null;\n return (\n <Fragment key={key}>{renderSource({ part, index })}</Fragment>\n );\n case \"file\":\n if (!renderFile) return null;\n return <Fragment key={key}>{renderFile({ part, index })}</Fragment>;\n case \"data\":\n return (\n <Fragment key={key}>\n <DataUIDisplay\n Fallback={renderData}\n part={part}\n index={index}\n />\n </Fragment>\n );\n default:\n return null;\n }\n })}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MessageContent.js","names":["ReactElement","Fragment","useMemo","Text","ThreadUserMessagePart","ThreadAssistantMessagePart","MessagePartState","useAui","useAuiState","PartByIndexProvider","ToolCallMessagePartProps","DataMessagePartProps","DefaultMessageImage","getMessagePartKeys","resolveToolRender","MessageContentPart","MessageContentStatePart","MessageContentProps","renderText","props","part","Extract","type","index","renderToolCall","renderImage","renderReasoning","renderSource","renderFile","renderData","DefaultTextRenderer","t0","$","_c","t1","text","ToolUIDisplay","Fallback","aui","s","tools","Render","t2","message","partMethods","t3","t4","unstable_recordInteraction","t5","addToolResult","respondToToolApproval","resumeToolCall","DataUIDisplay","name","named","dataRenderers","renderers","fallbacks","MessageContent","content","_temp","partKeys","key","map","parts","_c","Fragment"],"sources":["../../../src/primitives/message/MessageContent.tsx"],"sourcesContent":["import { type ReactElement, Fragment, useMemo } from \"react\";\nimport { Text } from \"react-native\";\nimport type {\n ThreadUserMessagePart,\n ThreadAssistantMessagePart,\n MessagePartState,\n} from \"@assistant-ui/core\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport {\n PartByIndexProvider,\n type ToolCallMessagePartProps,\n type DataMessagePartProps,\n} from \"@assistant-ui/core/react\";\nimport { DefaultMessageImage } from \"./MessageParts\";\nimport {\n getMessagePartKeys,\n resolveToolRender,\n} from \"@assistant-ui/core/internal\";\n\ntype MessageContentPart = ThreadUserMessagePart | ThreadAssistantMessagePart;\ntype MessageContentStatePart = MessagePartState;\n\nexport type MessageContentProps = {\n renderText?: (props: {\n part: Extract<MessageContentPart, { type: \"text\" }>;\n index: number;\n }) => ReactElement;\n renderToolCall?: (props: {\n part: Extract<MessageContentPart, { type: \"tool-call\" }>;\n index: number;\n }) => ReactElement;\n renderImage?: (props: {\n part: Extract<MessageContentPart, { type: \"image\" }>;\n index: number;\n }) => ReactElement;\n renderReasoning?: (props: {\n part: Extract<MessageContentPart, { type: \"reasoning\" }>;\n index: number;\n }) => ReactElement;\n renderSource?: (props: {\n part: Extract<MessageContentPart, { type: \"source\" }>;\n index: number;\n }) => ReactElement;\n renderFile?: (props: {\n part: Extract<MessageContentPart, { type: \"file\" }>;\n index: number;\n }) => ReactElement;\n renderData?: (props: {\n part: Extract<MessageContentPart, { type: \"data\" }>;\n index: number;\n }) => ReactElement;\n};\n\nconst DefaultTextRenderer = ({\n part,\n}: {\n part: Extract<MessageContentPart, { type: \"text\" }>;\n}) => {\n return <Text>{part.text}</Text>;\n};\n\nconst ToolUIDisplay = ({\n Fallback,\n part,\n index,\n}: {\n Fallback:\n | ((props: {\n part: Extract<MessageContentPart, { type: \"tool-call\" }>;\n index: number;\n }) => ReactElement)\n | undefined;\n part: Extract<MessageContentStatePart, { type: \"tool-call\" }>;\n index: number;\n}) => {\n const aui = useAui();\n const Render = useAuiState((s) => resolveToolRender(s.tools, part));\n\n const partMethods = useMemo(() => aui.message.part({ index }), [aui, index]);\n\n if (Render) {\n return (\n <Render\n {...(part as ToolCallMessagePartProps)}\n addResult={partMethods.addToolResult}\n resume={partMethods.resumeToolCall}\n respondToApproval={partMethods.respondToToolApproval}\n {...(partMethods.unstable_recordInteraction && {\n unstable_recordInteraction: partMethods.unstable_recordInteraction,\n })}\n />\n );\n }\n if (Fallback) return <Fallback part={part} index={index} />;\n return null;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n part,\n index,\n}: {\n Fallback:\n | ((props: {\n part: Extract<MessageContentPart, { type: \"data\" }>;\n index: number;\n }) => ReactElement)\n | undefined;\n part: Extract<MessageContentStatePart, { type: \"data\" }>;\n index: number;\n}) => {\n const Render = useAuiState((s) => {\n const named = s.dataRenderers.renderers[part.name]?.[0];\n return named ?? s.dataRenderers.fallbacks[0];\n });\n if (Render) return <Render {...(part as DataMessagePartProps)} />;\n if (Fallback) return <Fallback part={part} index={index} />;\n return null;\n};\n\nexport const MessageContent = ({\n renderText,\n renderToolCall,\n renderImage,\n renderReasoning,\n renderSource,\n renderFile,\n renderData,\n}: MessageContentProps) => {\n const content = useAuiState((s) => s.message.parts);\n const partKeys = getMessagePartKeys(content);\n\n return (\n <>\n {content.map((part, index) => {\n const key = partKeys[index];\n switch (part.type) {\n case \"text\":\n return (\n <Fragment key={key}>\n {renderText ? (\n renderText({ part, index })\n ) : (\n <DefaultTextRenderer part={part} />\n )}\n </Fragment>\n );\n case \"tool-call\":\n return (\n <Fragment key={key}>\n <ToolUIDisplay\n Fallback={renderToolCall}\n part={part}\n index={index}\n />\n </Fragment>\n );\n case \"image\":\n return (\n <Fragment key={key}>\n {renderImage ? (\n renderImage({ part, index })\n ) : (\n <PartByIndexProvider index={index}>\n <DefaultMessageImage />\n </PartByIndexProvider>\n )}\n </Fragment>\n );\n case \"reasoning\":\n if (!renderReasoning) return null;\n return (\n <Fragment key={key}>{renderReasoning({ part, index })}</Fragment>\n );\n case \"source\":\n if (!renderSource) return null;\n return (\n <Fragment key={key}>{renderSource({ part, index })}</Fragment>\n );\n case \"file\":\n if (!renderFile) return null;\n return <Fragment key={key}>{renderFile({ part, index })}</Fragment>;\n case \"data\":\n return (\n <Fragment key={key}>\n <DataUIDisplay\n Fallback={renderData}\n part={part}\n index={index}\n />\n </Fragment>\n );\n default:\n return null;\n }\n })}\n </>\n );\n};\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { FC } from "react";
2
2
  import { MessagePrimitiveParts as MessagePrimitivePartsBase, MessagePartComponent as MessagePartComponentBase, MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase } from "@assistant-ui/core/react";
3
+ export declare const DefaultMessageImage: () => import("react").JSX.Element;
3
4
  export declare namespace MessagePrimitiveParts {
4
5
  type Props = MessagePrimitivePartsBase.Props;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageParts.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageParts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EACL,qBAAqB,IAAI,yBAAyB,EAClD,oBAAoB,IAAI,wBAAwB,EAChD,2BAA2B,IAAI,+BAA+B,EAE/D,MAAM,0BAA0B,CAAC;AAOlC,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC;CACrD;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAejE,CAAC;AAIF,OAAO,EACL,wBAAwB,IAAI,oBAAoB,EAChD,+BAA+B,IAAI,2BAA2B,GAC/D,CAAC"}
1
+ {"version":3,"file":"MessageParts.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageParts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EACL,qBAAqB,IAAI,yBAAyB,EAClD,oBAAoB,IAAI,wBAAwB,EAChD,2BAA2B,IAAI,+BAA+B,EAE/D,MAAM,0BAA0B,CAAC;AASlC,eAAO,MAAM,mBAAmB,mCAE/B,CAAC;AAQF,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC;CACrD;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAmBjE,CAAC;AAIF,OAAO,EACL,wBAAwB,IAAI,oBAAoB,EAChD,+BAA+B,IAAI,2BAA2B,GAC/D,CAAC"}
@@ -1,11 +1,29 @@
1
+ import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
1
2
  import { MessagePartComponent as MessagePartComponentBase, MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase, MessagePrimitiveParts as MessagePrimitiveParts$1, messagePartsDefaultComponents } from "@assistant-ui/core/react";
2
3
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
4
  import { Text } from "react-native";
4
5
  import { jsx } from "react/jsx-runtime";
5
6
  //#region src/primitives/message/MessageParts.tsx
7
+ const DEFAULT_IMAGE_STYLE = {
8
+ width: "100%",
9
+ aspectRatio: 1
10
+ };
11
+ const DefaultMessageImage = () => {
12
+ const $ = c(1);
13
+ let t0;
14
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
15
+ t0 = /* @__PURE__ */ jsx(MessagePartPrimitiveImage, {
16
+ style: DEFAULT_IMAGE_STYLE,
17
+ resizeMode: "contain"
18
+ });
19
+ $[0] = t0;
20
+ } else t0 = $[0];
21
+ return t0;
22
+ };
6
23
  const rnDefaultComponents = {
7
24
  ...messagePartsDefaultComponents,
8
- Text: ({ text }) => /* @__PURE__ */ jsx(Text, { children: text })
25
+ Text: ({ text }) => /* @__PURE__ */ jsx(Text, { children: text }),
26
+ Image: DefaultMessageImage
9
27
  };
10
28
  /**
11
29
  * Renders the parts of a message with React Native-specific default components.
@@ -36,7 +54,8 @@ const MessagePrimitiveParts = (props) => {
36
54
  if ($[5] !== components) {
37
55
  t0 = components ? {
38
56
  ...components,
39
- Text: components.Text ?? rnDefaultComponents.Text
57
+ Text: components.Text ?? rnDefaultComponents.Text,
58
+ Image: components.Image ?? rnDefaultComponents.Image
40
59
  } : rnDefaultComponents;
41
60
  $[5] = components;
42
61
  $[6] = t0;
@@ -56,6 +75,6 @@ const MessagePrimitiveParts = (props) => {
56
75
  };
57
76
  MessagePrimitiveParts.displayName = "MessagePrimitive.Parts";
58
77
  //#endregion
59
- export { MessagePartComponentBase as MessagePartComponent, MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex, MessagePrimitiveParts };
78
+ export { DefaultMessageImage, MessagePartComponentBase as MessagePartComponent, MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex, MessagePrimitiveParts };
60
79
 
61
80
  //# sourceMappingURL=MessageParts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageParts.js","names":["FC","Text","MessagePrimitiveParts","MessagePrimitivePartsBase","MessagePartComponent","MessagePartComponentBase","MessagePrimitivePartByIndex","MessagePrimitivePartByIndexBase","messagePartsDefaultComponents","rnDefaultComponents","text","Props","props","$","_c","t0","children","components","rest","merged","t1","t2","displayName","_c","MessagePrimitivePartsBase","merged"],"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { Text } from \"react-native\";\nimport {\n MessagePrimitiveParts as MessagePrimitivePartsBase,\n MessagePartComponent as MessagePartComponentBase,\n MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase,\n messagePartsDefaultComponents,\n} from \"@assistant-ui/core/react\";\n\nconst rnDefaultComponents = {\n ...messagePartsDefaultComponents,\n Text: ({ text }: { text: string }) => <Text>{text}</Text>,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\nexport namespace MessagePrimitiveParts {\n export type Props = MessagePrimitivePartsBase.Props;\n}\n\n/**\n * Renders the parts of a message with React Native-specific default components.\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = (\n props,\n) => {\n if (\"children\" in props) {\n return (\n <MessagePrimitivePartsBase>{props.children}</MessagePrimitivePartsBase>\n );\n }\n\n const { components, ...rest } = props;\n const merged = components\n ? { ...components, Text: components.Text ?? rnDefaultComponents.Text }\n : rnDefaultComponents;\n\n return <MessagePrimitivePartsBase components={merged as any} {...rest} />;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\nexport {\n MessagePartComponentBase as MessagePartComponent,\n MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex,\n};\n"],"mappings":";;;;;AASA,MAAMS,sBAAsB;CAC1B,GAAGD;CACHP,OAAO,EAAES,WAA6B,oBAAC,MAAD,EAAA,UAAOA,KAAW,CAAA;AAC1D;;;;AASA,MAAaR,yBAAyDU,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGpE,IAAI,cAAcF,OAAK;EAAA,IAAAG;EAAA,IAAAF,EAAA,OAAAD,MAAAI,UAAA;GAEnBD,KAAA,oBAACS,yBAAD,EAAA,UAA4BZ,MAAKI,SAAP,CAAA;GAA6CH,EAAA,KAAAD,MAAAI;GAAAH,EAAA,KAAAE;EAAA,OAAAA,KAAAF,EAAA;EAAA,OAAvEE;CAAuE;CAE1E,IAAAE;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,OAAA;EAED,CAAA,CAAAK,YAAA,GAAAC,QAAgCN;EAAMC,EAAA,KAAAD;EAAAC,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAD,aAAAJ,EAAA;EAAAK,OAAAL,EAAA;CAAA;CAAA,IAAAE;CAAA,IAAAF,EAAA,OAAAI,YAAA;EACvBF,KAAAE,aAAA;GAAA,GACNA;GAAUhB,MAAQgB,WAAUhB,QAASQ,oBAAmBR;EAC3C,IAFPQ;EAEQI,EAAA,KAAAI;EAAAJ,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAEuB,MAAAO,KAAAD;CAAa,IAAAE;CAAA,IAAAR,EAAA,OAAAK,QAAAL,EAAA,OAAAO,IAAA;EAApDC,KAAA,oBAACG,yBAAD;GAAuC,YAAAJ;GAAa,GAAMF;EAAI,CAAA;EAAIL,EAAA,KAAAK;EAAAL,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAAlEQ;AAAkE;AAG3EnB,sBAAsBoB,cAAc"}
1
+ {"version":3,"file":"MessageParts.js","names":["FC","Text","MessagePrimitiveParts","MessagePrimitivePartsBase","MessagePartComponent","MessagePartComponentBase","MessagePrimitivePartByIndex","MessagePrimitivePartByIndexBase","messagePartsDefaultComponents","MessagePartPrimitiveImage","DEFAULT_IMAGE_STYLE","width","aspectRatio","const","DefaultMessageImage","$","_c","t0","Symbol","for","rnDefaultComponents","text","Image","Props","props","children","components","rest","merged","t1","t2","displayName","_c","MessagePrimitivePartsBase","merged"],"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { Text } from \"react-native\";\nimport {\n MessagePrimitiveParts as MessagePrimitivePartsBase,\n MessagePartComponent as MessagePartComponentBase,\n MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase,\n messagePartsDefaultComponents,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\n\n// React Native derives no intrinsic size from a remote or data URI, so an\n// Image with no dimensions lays out at zero. The default fills the available\n// width and keeps the picture whole inside a square box; a consumer that knows\n// its own aspect ratio overrides `components.Image`.\nconst DEFAULT_IMAGE_STYLE = { width: \"100%\", aspectRatio: 1 } as const;\n\nexport const DefaultMessageImage = () => (\n <MessagePartPrimitiveImage style={DEFAULT_IMAGE_STYLE} resizeMode=\"contain\" />\n);\n\nconst rnDefaultComponents = {\n ...messagePartsDefaultComponents,\n Text: ({ text }: { text: string }) => <Text>{text}</Text>,\n Image: DefaultMessageImage,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\nexport namespace MessagePrimitiveParts {\n export type Props = MessagePrimitivePartsBase.Props;\n}\n\n/**\n * Renders the parts of a message with React Native-specific default components.\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = (\n props,\n) => {\n if (\"children\" in props) {\n return (\n <MessagePrimitivePartsBase>{props.children}</MessagePrimitivePartsBase>\n );\n }\n\n const { components, ...rest } = props;\n const merged = components\n ? {\n ...components,\n Text: components.Text ?? rnDefaultComponents.Text,\n Image: components.Image ?? rnDefaultComponents.Image,\n }\n : rnDefaultComponents;\n\n return <MessagePrimitivePartsBase components={merged as any} {...rest} />;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\nexport {\n MessagePartComponentBase as MessagePartComponent,\n MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex,\n};\n"],"mappings":";;;;;;AAcA,MAAMU,sBAAsB;CAAEC,OAAO;CAAQC,aAAa;AAAE;AAE5D,MAAaE,4BAAsB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAG,OAAAC,IAAA,2BAAA,GAAA;EACjCF,KAAA,oBAAC,2BAAD;GAAkCP,OAAAA;GAAgC,YAAA;EAAS,CAAA;EAAGK,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,OAA9EE;AAA8E;AAGhF,MAAMG,sBAAsB;CAC1B,GAAGZ;CACHP,OAAO,EAAEoB,WAA6B,oBAAC,MAAD,EAAA,UAAOA,KAAW,CAAA;CACxDC,OAAOR;AACT;;;;AASA,MAAaZ,yBAAyDsB,UAAA;CAAA,MAAAT,IAAAC,EAAA,EAAA;CAGpE,IAAI,cAAcQ,OAAK;EAAA,IAAAP;EAAA,IAAAF,EAAA,OAAAS,MAAAC,UAAA;GAEnBR,KAAA,oBAACgB,yBAAD,EAAA,UAA4BT,MAAKC,SAAP,CAAA;GAA6CV,EAAA,KAAAS,MAAAC;GAAAV,EAAA,KAAAE;EAAA,OAAAA,KAAAF,EAAA;EAAA,OAAvEE;CAAuE;CAE1E,IAAAS;CAAA,IAAAC;CAAA,IAAAZ,EAAA,OAAAS,OAAA;EAED,CAAA,CAAAE,YAAA,GAAAC,QAAgCH;EAAMT,EAAA,KAAAS;EAAAT,EAAA,KAAAW;EAAAX,EAAA,KAAAY;CAAA,OAAA;EAAAD,aAAAX,EAAA;EAAAY,OAAAZ,EAAA;CAAA;CAAA,IAAAE;CAAA,IAAAF,EAAA,OAAAW,YAAA;EACvBT,KAAAS,aAAA;GAAA,GAENA;GAAUzB,MACPyB,WAAUzB,QAASmB,oBAAmBnB;GAAKqB,OAC1CI,WAAUJ,SAAUF,oBAAmBE;EAE9B,IANPF;EAMQL,EAAA,KAAAW;EAAAX,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAEuB,MAAAc,KAAAD;CAAa,IAAAE;CAAA,IAAAf,EAAA,OAAAY,QAAAZ,EAAA,OAAAc,IAAA;EAApDC,KAAA,oBAACG,yBAAD;GAAuC,YAAAJ;GAAa,GAAMF;EAAI,CAAA;EAAIZ,EAAA,KAAAY;EAAAZ,EAAA,KAAAc;EAAAd,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,OAAlEe;AAAkE;AAG3E5B,sBAAsB6B,cAAc"}
@@ -2,6 +2,7 @@ export { MessageRoot as Root, type MessageRootProps as RootProps, } from "./mess
2
2
  export { MessageContent as Content, type MessageContentProps as ContentProps, } from "./message/MessageContent.js";
3
3
  export { MessagePrimitiveParts as Parts, MessagePrimitivePartByIndex as PartByIndex, } from "./message/MessageParts.js";
4
4
  export { MessagePrimitiveGroupedParts as GroupedParts } from "@assistant-ui/core/react";
5
+ export { MessagePrimitiveQuote as Quote } from "@assistant-ui/core/react";
5
6
  export { MessageIf as If, type MessageIfProps as IfProps, } from "./message/MessageIf.js";
6
7
  export { MessageAttachments as Attachments, type MessageAttachmentsProps as AttachmentsProps, MessageAttachmentByIndex as AttachmentByIndex, type MessageAttachmentByIndexProps as AttachmentByIndexProps, } from "./message/MessageAttachments.js";
7
8
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/primitives/message.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,IAAI,EACnB,KAAK,gBAAgB,IAAI,SAAS,GACnC,iCAA8B;AAC/B,OAAO,EACL,cAAc,IAAI,OAAO,EACzB,KAAK,mBAAmB,IAAI,YAAY,GACzC,oCAAiC;AAClC,OAAO,EACL,qBAAqB,IAAI,KAAK,EAC9B,2BAA2B,IAAI,WAAW,GAC3C,kCAA+B;AAChC,OAAO,EAAE,4BAA4B,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EACL,SAAS,IAAI,EAAE,EACf,KAAK,cAAc,IAAI,OAAO,GAC/B,+BAA4B;AAC7B,OAAO,EACL,kBAAkB,IAAI,WAAW,EACjC,KAAK,uBAAuB,IAAI,gBAAgB,EAChD,wBAAwB,IAAI,iBAAiB,EAC7C,KAAK,6BAA6B,IAAI,sBAAsB,GAC7D,wCAAqC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/primitives/message.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,IAAI,EACnB,KAAK,gBAAgB,IAAI,SAAS,GACnC,iCAA8B;AAC/B,OAAO,EACL,cAAc,IAAI,OAAO,EACzB,KAAK,mBAAmB,IAAI,YAAY,GACzC,oCAAiC;AAClC,OAAO,EACL,qBAAqB,IAAI,KAAK,EAC9B,2BAA2B,IAAI,WAAW,GAC3C,kCAA+B;AAChC,OAAO,EAAE,4BAA4B,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,SAAS,IAAI,EAAE,EACf,KAAK,cAAc,IAAI,OAAO,GAC/B,+BAA4B;AAC7B,OAAO,EACL,kBAAkB,IAAI,WAAW,EACjC,KAAK,uBAAuB,IAAI,gBAAgB,EAChD,wBAAwB,IAAI,iBAAiB,EAC7C,KAAK,6BAA6B,IAAI,sBAAsB,GAC7D,wCAAqC"}
@@ -1,10 +1,10 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
2
  import { MessageRoot } from "./message/MessageRoot.js";
3
- import { MessageContent } from "./message/MessageContent.js";
4
3
  import { MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase, MessagePrimitiveParts } from "./message/MessageParts.js";
4
+ import { MessageContent } from "./message/MessageContent.js";
5
5
  import { MessageIf } from "./message/MessageIf.js";
6
6
  import { MessageAttachmentByIndex, MessageAttachments } from "./message/MessageAttachments.js";
7
- import { MessagePrimitiveGroupedParts as GroupedParts } from "@assistant-ui/core/react";
7
+ import { MessagePrimitiveGroupedParts as GroupedParts, MessagePrimitiveQuote as Quote } from "@assistant-ui/core/react";
8
8
  //#region src/primitives/message.ts
9
9
  var message_exports = /* @__PURE__ */ __exportAll({
10
10
  AttachmentByIndex: () => MessageAttachmentByIndex,
@@ -14,9 +14,10 @@ var message_exports = /* @__PURE__ */ __exportAll({
14
14
  If: () => MessageIf,
15
15
  PartByIndex: () => MessagePrimitivePartByIndexBase,
16
16
  Parts: () => MessagePrimitiveParts,
17
+ Quote: () => Quote,
17
18
  Root: () => MessageRoot
18
19
  });
19
20
  //#endregion
20
- export { MessageAttachmentByIndex as AttachmentByIndex, MessageAttachments as Attachments, MessageContent as Content, GroupedParts, MessageIf as If, MessagePrimitivePartByIndexBase as PartByIndex, MessagePrimitiveParts as Parts, MessageRoot as Root, message_exports };
21
+ export { MessageAttachmentByIndex as AttachmentByIndex, MessageAttachments as Attachments, MessageContent as Content, GroupedParts, MessageIf as If, MessagePrimitivePartByIndexBase as PartByIndex, MessagePrimitiveParts as Parts, Quote, MessageRoot as Root, message_exports };
21
22
 
22
23
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","names":["MessageRoot","Root","MessageRootProps","RootProps","MessageContent","Content","MessageContentProps","ContentProps","MessagePrimitiveParts","Parts","MessagePrimitivePartByIndex","PartByIndex","MessagePrimitiveGroupedParts","GroupedParts","MessageIf","If","MessageIfProps","IfProps","MessageAttachments","Attachments","MessageAttachmentsProps","AttachmentsProps","MessageAttachmentByIndex","AttachmentByIndex","MessageAttachmentByIndexProps","AttachmentByIndexProps"],"sources":["../../src/primitives/message.ts"],"sourcesContent":["export {\n MessageRoot as Root,\n type MessageRootProps as RootProps,\n} from \"./message/MessageRoot\";\nexport {\n MessageContent as Content,\n type MessageContentProps as ContentProps,\n} from \"./message/MessageContent\";\nexport {\n MessagePrimitiveParts as Parts,\n MessagePrimitivePartByIndex as PartByIndex,\n} from \"./message/MessageParts\";\nexport { MessagePrimitiveGroupedParts as GroupedParts } from \"@assistant-ui/core/react\";\nexport {\n MessageIf as If,\n type MessageIfProps as IfProps,\n} from \"./message/MessageIf\";\nexport {\n MessageAttachments as Attachments,\n type MessageAttachmentsProps as AttachmentsProps,\n MessageAttachmentByIndex as AttachmentByIndex,\n type MessageAttachmentByIndexProps as AttachmentByIndexProps,\n} from \"./message/MessageAttachments\";\n"],"mappings":""}
1
+ {"version":3,"file":"message.js","names":["MessageRoot","Root","MessageRootProps","RootProps","MessageContent","Content","MessageContentProps","ContentProps","MessagePrimitiveParts","Parts","MessagePrimitivePartByIndex","PartByIndex","MessagePrimitiveGroupedParts","GroupedParts","MessagePrimitiveQuote","Quote","MessageIf","If","MessageIfProps","IfProps","MessageAttachments","Attachments","MessageAttachmentsProps","AttachmentsProps","MessageAttachmentByIndex","AttachmentByIndex","MessageAttachmentByIndexProps","AttachmentByIndexProps"],"sources":["../../src/primitives/message.ts"],"sourcesContent":["export {\n MessageRoot as Root,\n type MessageRootProps as RootProps,\n} from \"./message/MessageRoot\";\nexport {\n MessageContent as Content,\n type MessageContentProps as ContentProps,\n} from \"./message/MessageContent\";\nexport {\n MessagePrimitiveParts as Parts,\n MessagePrimitivePartByIndex as PartByIndex,\n} from \"./message/MessageParts\";\nexport { MessagePrimitiveGroupedParts as GroupedParts } from \"@assistant-ui/core/react\";\nexport { MessagePrimitiveQuote as Quote } from \"@assistant-ui/core/react\";\nexport {\n MessageIf as If,\n type MessageIfProps as IfProps,\n} from \"./message/MessageIf\";\nexport {\n MessageAttachments as Attachments,\n type MessageAttachmentsProps as AttachmentsProps,\n MessageAttachmentByIndex as AttachmentByIndex,\n type MessageAttachmentByIndexProps as AttachmentByIndexProps,\n} from \"./message/MessageAttachments\";\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
- import { MessagePartPrimitiveText } from "./messagePart/MessagePartText.js";
3
2
  import { MessagePartPrimitiveImage } from "./messagePart/MessagePartImage.js";
3
+ import { MessagePartPrimitiveText } from "./messagePart/MessagePartText.js";
4
4
  import { MessagePartPrimitiveInProgress } from "./messagePart/MessagePartInProgress.js";
5
5
  import { PartPrimitiveMessages as Messages } from "@assistant-ui/core/react";
6
6
  //#region src/primitives/messagePart.ts
@@ -2,6 +2,7 @@ import { type ComponentType, type ReactNode } from "react";
2
2
  import { FlatList, type FlatListProps } from "react-native";
3
3
  import type { ThreadMessage } from "@assistant-ui/core";
4
4
  import type { MessageState } from "@assistant-ui/core/store";
5
+ import { type FlatListHistory } from "./flatListScroll.js";
5
6
  type MessageComponents = {
6
7
  Message: ComponentType;
7
8
  EditComposer?: ComponentType | undefined;
@@ -36,11 +37,12 @@ export type ThreadMessagesFlatListProps = Omit<FlatListProps<ThreadMessage>, "da
36
37
  scrollToBottomOnRunStart?: boolean | undefined;
37
38
  scrollToBottomOnInitialize?: boolean | undefined;
38
39
  scrollToBottomOnThreadSwitch?: boolean | undefined;
39
- history?: {
40
- hasMore: boolean;
41
- isLoadingMore: boolean;
42
- loadMore: () => void;
43
- } | undefined;
40
+ /**
41
+ * Pages older messages in when the list nears its start. Defaults to the
42
+ * runtime's `thread.hasEarlier` / `isLoadingEarlier` / `loadEarlier()`;
43
+ * pass it to drive paging from app state instead.
44
+ */
45
+ history?: FlatListHistory | undefined;
44
46
  };
45
47
  /** @deprecated Use ThreadMessagesFlatListProps instead. */
46
48
  export type ThreadMessagesProps = ThreadMessagesFlatListProps;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadMessages.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadMessages.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AACf,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,EAInB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAQ7D,KAAK,iBAAiB,GAClB;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,kBAAkB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACxC,gBAAgB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C,GACD;IACE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,kBAAkB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,aAAa,CAAC;IAC3B,gBAAgB,EAAE,aAAa,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEN,KAAK,eAAe,GAChB;IACE,4DAA4D;IAC5D,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,YAAY,CAAA;KAAE,KAAK,SAAS,CAAC;IAC1D,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,aAAa,CAAC,aAAa,CAAC,EAC5B,MAAM,GAAG,YAAY,GAAG,UAAU,CACnC,GACC,eAAe,GAAG;IAChB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/C,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnD,OAAO,CAAC,EACJ;QACE,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;KACtB,GACD,SAAS,CAAC;CACf,CAAC;AAEJ,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AAiX9D,eAAO,MAAM,sBAAsB,iIAiIlC,CAAC;AAGF,gEAAgE;AAChE,eAAO,MAAM,cAAc,iIAuB1B,CAAC"}
1
+ {"version":3,"file":"ThreadMessages.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadMessages.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EACL,KAAK,eAAe,EAOrB,4BAAyB;AAE1B,KAAK,iBAAiB,GAClB;IACE,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,kBAAkB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACxC,gBAAgB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C,GACD;IACE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,gBAAgB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,kBAAkB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,aAAa,CAAC;IAC3B,gBAAgB,EAAE,aAAa,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C,CAAC;AAEN,KAAK,eAAe,GAChB;IACE,4DAA4D;IAC5D,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,YAAY,CAAA;KAAE,KAAK,SAAS,CAAC;IAC1D,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,aAAa,CAAC,aAAa,CAAC,EAC5B,MAAM,GAAG,YAAY,GAAG,UAAU,CACnC,GACC,eAAe,GAAG;IAChB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/C,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnD;;;;OAIG;IACH,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CACvC,CAAC;AAEJ,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AA4G9D,eAAO,MAAM,sBAAsB,iIAsGlC,CAAC;AAGF,gEAAgE;AAChE,eAAO,MAAM,cAAc,iIAuB1B,CAAC"}