@assistant-ui/react-native 0.1.44 → 0.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
- package/dist/primitives/attachment/AttachmentName.js.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
- package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
- package/dist/primitives/composer/ComposerCancel.js.map +1 -1
- package/dist/primitives/composer/ComposerInput.js.map +1 -1
- package/dist/primitives/composer/ComposerQuote.js.map +1 -1
- package/dist/primitives/composer/ComposerQuoteDismiss.js.map +1 -1
- package/dist/primitives/composer/ComposerQuoteText.js.map +1 -1
- package/dist/primitives/composer/ComposerRoot.js.map +1 -1
- package/dist/primitives/composer/ComposerSend.js.map +1 -1
- package/dist/primitives/error/ErrorMessage.js.map +1 -1
- package/dist/primitives/error/ErrorRoot.js.map +1 -1
- package/dist/primitives/message/MessageContent.d.ts.map +1 -1
- package/dist/primitives/message/MessageContent.js +43 -33
- package/dist/primitives/message/MessageContent.js.map +1 -1
- package/dist/primitives/message/MessageIf.js.map +1 -1
- package/dist/primitives/message/MessageParts.js.map +1 -1
- package/dist/primitives/message/MessageRoot.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartImage.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
- package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -1
- package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -1
- package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
- package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
- package/dist/primitives/thread/ThreadIf.js.map +1 -1
- package/dist/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/primitives/thread/ThreadRoot.js.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
- package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
- package/package.json +12 -9
- package/src/primitives/message/MessageContent.test.tsx +46 -1
- package/src/primitives/message/MessageContent.tsx +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageIf.js","names":["ReactNode","useAuiState","MessageIfProps","children","user","assistant","running","last","MessageIf","t0","$","_c","message","_temp","undefined","role","isRunning","status","type","isLast","t1","s"],"sources":["../../../src/primitives/message/MessageIf.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type MessageIfProps = {\n children: ReactNode;\n user?: boolean | undefined;\n assistant?: boolean | undefined;\n running?: boolean | undefined;\n last?: boolean | undefined;\n};\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.message...} />` instead.\n */\nexport const MessageIf = ({\n children,\n user,\n assistant,\n running,\n last,\n}: MessageIfProps) => {\n const message = useAuiState((s) => s.message);\n\n if (user !== undefined) {\n if (user !== (message.role === \"user\")) return null;\n }\n\n if (assistant !== undefined) {\n if (assistant !== (message.role === \"assistant\")) return null;\n }\n\n if (running !== undefined) {\n const isRunning =\n message.role === \"assistant\" && message.status.type === \"running\";\n if (running !== isRunning) return null;\n }\n\n if (last !== undefined) {\n if (last !== message.isLast) return null;\n }\n\n return <>{children}</>;\n};\n"],"mappings":";;;;;;;AAcA,MAAaQ,aAAYC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAR,UAAAC,MAAAC,WAAAC,SAAAC,SAAAE;CAOxB,MAAAG,UAAgBX,YAAYY,KAAgB;CAE5C,IAAIT,SAASU,KAAAA,GACPV;MAAAA,UAAUQ,QAAOG,SAAU,SAAO,OAAS;CAAA;CAGjD,IAAIV,cAAcS,KAAAA,GACZT;MAAAA,eAAeO,QAAOG,SAAU,cAAY,OAAS;CAAA;CAG3D,IAAIT,YAAYQ,KAAAA,GAGVR;MAAAA,aADFM,QAAOG,SAAU,eAAeH,QAAOK,OAAOC,SAAU,YACjC,OAAS;CAAA;CAGpC,IAAIX,SAASO,KAAAA,GACPP;MAAAA,SAASK,QAAOO,QAAO,OAAS;CAAA;CACrC,IAAAC;CAAA,IAAAV,EAAA,OAAAP,UAAA;EAEMiB,KAAA,oBAAA,UAAA,EAAGjB,SAAQ,CAAA;EAAIO,EAAA,KAAAP;EAAAO,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAfU;AAAe;AA3BC,SAAAP,MAAAQ,GAAA;CAAA,OAOYA,EAACT;AAAQ"}
|
|
1
|
+
{"version":3,"file":"MessageIf.js","names":["ReactNode","useAuiState","MessageIfProps","children","user","assistant","running","last","MessageIf","t0","$","_c","message","_temp","undefined","role","isRunning","status","type","isLast","t1","s","_c"],"sources":["../../../src/primitives/message/MessageIf.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type MessageIfProps = {\n children: ReactNode;\n user?: boolean | undefined;\n assistant?: boolean | undefined;\n running?: boolean | undefined;\n last?: boolean | undefined;\n};\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.message...} />` instead.\n */\nexport const MessageIf = ({\n children,\n user,\n assistant,\n running,\n last,\n}: MessageIfProps) => {\n const message = useAuiState((s) => s.message);\n\n if (user !== undefined) {\n if (user !== (message.role === \"user\")) return null;\n }\n\n if (assistant !== undefined) {\n if (assistant !== (message.role === \"assistant\")) return null;\n }\n\n if (running !== undefined) {\n const isRunning =\n message.role === \"assistant\" && message.status.type === \"running\";\n if (running !== isRunning) return null;\n }\n\n if (last !== undefined) {\n if (last !== message.isLast) return null;\n }\n\n return <>{children}</>;\n};\n"],"mappings":";;;;;;;AAcA,MAAaQ,aAAYC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAR,UAAAC,MAAAC,WAAAC,SAAAC,SAAAE;CAOxB,MAAAG,UAAgBX,YAAYY,KAAgB;CAE5C,IAAIT,SAASU,KAAAA,GACPV;MAAAA,UAAUQ,QAAOG,SAAU,SAAO,OAAS;CAAA;CAGjD,IAAIV,cAAcS,KAAAA,GACZT;MAAAA,eAAeO,QAAOG,SAAU,cAAY,OAAS;CAAA;CAG3D,IAAIT,YAAYQ,KAAAA,GAGVR;MAAAA,aADFM,QAAOG,SAAU,eAAeH,QAAOK,OAAOC,SAAU,YACjC,OAAS;CAAA;CAGpC,IAAIX,SAASO,KAAAA,GACPP;MAAAA,SAASK,QAAOO,QAAO,OAAS;CAAA;CACrC,IAAAC;CAAA,IAAAV,EAAA,OAAAP,UAAA;EAEMiB,KAAA,oBAAA,UAAA,EAAGjB,SAAQ,CAAA;EAAIO,EAAA,KAAAP;EAAAO,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAfU;AAAe;AA3BC,SAAAP,MAAAQ,GAAA;CAAA,OAOYA,EAACT;AAAQ"}
|
|
@@ -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"],"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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageRoot.js","names":["ReactNode","View","ViewProps","MessageRootProps","children","MessageRoot","t0","$","_c","viewProps","t1"],"sources":["../../../src/primitives/message/MessageRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type MessageRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const MessageRoot = ({ children, ...viewProps }: MessageRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,eAAcC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAA4CC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EAC/DC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
1
|
+
{"version":3,"file":"MessageRoot.js","names":["ReactNode","View","ViewProps","MessageRootProps","children","MessageRoot","t0","$","_c","viewProps","t1","_c"],"sources":["../../../src/primitives/message/MessageRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type MessageRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const MessageRoot = ({ children, ...viewProps }: MessageRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,eAAcC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAA4CC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EAC/DC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagePartImage.js","names":["ComponentRef","ForwardRefExoticComponent","forwardRef","RefAttributes","Image","ImageProps","useAuiState","MessagePartPrimitiveImage","Element","Props","Omit","props","forwardedRef","$","_c","uri","_temp","undefined","t0","t1","displayName","MessagePartImageProps","s","part","type","image"],"sources":["../../../src/primitives/messagePart/MessagePartImage.tsx"],"sourcesContent":["import {\n type ComponentRef,\n type ForwardRefExoticComponent,\n forwardRef,\n type RefAttributes,\n} from \"react\";\nimport { Image, type ImageProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace MessagePartPrimitiveImage {\n export type Element = ComponentRef<typeof Image>;\n export type Props = Omit<ImageProps, \"source\">;\n}\n\nexport const MessagePartPrimitiveImage: ForwardRefExoticComponent<\n MessagePartPrimitiveImage.Props &\n RefAttributes<MessagePartPrimitiveImage.Element>\n> = forwardRef<\n MessagePartPrimitiveImage.Element,\n MessagePartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const uri = useAuiState((s) => {\n const part = s.part;\n return part.type === \"image\" ? part.image : undefined;\n });\n\n if (uri === undefined) return null;\n return <Image source={{ uri }} {...props} ref={forwardedRef} />;\n});\n\nMessagePartPrimitiveImage.displayName = \"MessagePartPrimitive.Image\";\n\nexport type MessagePartImageProps = MessagePartPrimitiveImage.Props;\n"],"mappings":";;;;;;AAcA,MAAaO,4BAGTL,YAGFS,OAAAC,iBAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACA,MAAAC,MAAYT,YAAYU,KAGvB;CAED,IAAID,QAAQE,KAAAA,GAAS,OAAS;CAAK,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EACbG,KAAA,EAAAH,IAAM;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,SAAAE,EAAA,OAAAK,IAAA;EAAtBC,KAAA,oBAAC,OAAD;GAAe,QAAAD;GAAO,GAAMP;GAAYC,KAAAA;EAAY,CAAA;EAAIC,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAAxDM;AAAwD,CAChE;AAEDZ,0BAA0Ba,cAAc;AAVtC,SAAAJ,MAAAM,GAAA;CAEE,MAAAC,OAAaD,EAACC;CAAM,OACbA,KAAIC,SAAU,UAAUD,KAAIE,QAA5BR,KAAAA;AAA8C"}
|
|
1
|
+
{"version":3,"file":"MessagePartImage.js","names":["ComponentRef","ForwardRefExoticComponent","forwardRef","RefAttributes","Image","ImageProps","useAuiState","MessagePartPrimitiveImage","Element","Props","Omit","props","forwardedRef","$","_c","uri","_temp","undefined","t0","t1","displayName","MessagePartImageProps","s","part","type","image","_c"],"sources":["../../../src/primitives/messagePart/MessagePartImage.tsx"],"sourcesContent":["import {\n type ComponentRef,\n type ForwardRefExoticComponent,\n forwardRef,\n type RefAttributes,\n} from \"react\";\nimport { Image, type ImageProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace MessagePartPrimitiveImage {\n export type Element = ComponentRef<typeof Image>;\n export type Props = Omit<ImageProps, \"source\">;\n}\n\nexport const MessagePartPrimitiveImage: ForwardRefExoticComponent<\n MessagePartPrimitiveImage.Props &\n RefAttributes<MessagePartPrimitiveImage.Element>\n> = forwardRef<\n MessagePartPrimitiveImage.Element,\n MessagePartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const uri = useAuiState((s) => {\n const part = s.part;\n return part.type === \"image\" ? part.image : undefined;\n });\n\n if (uri === undefined) return null;\n return <Image source={{ uri }} {...props} ref={forwardedRef} />;\n});\n\nMessagePartPrimitiveImage.displayName = \"MessagePartPrimitive.Image\";\n\nexport type MessagePartImageProps = MessagePartPrimitiveImage.Props;\n"],"mappings":";;;;;;AAcA,MAAaO,4BAGTL,YAGFS,OAAAC,iBAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACA,MAAAC,MAAYT,YAAYU,KAGvB;CAED,IAAID,QAAQE,KAAAA,GAAS,OAAS;CAAK,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EACbG,KAAA,EAAAH,IAAM;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,IAAAM;CAAA,IAAAN,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,SAAAE,EAAA,OAAAK,IAAA;EAAtBC,KAAA,oBAAC,OAAD;GAAe,QAAAD;GAAO,GAAMP;GAAYC,KAAAA;EAAY,CAAA;EAAIC,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAAxDM;AAAwD,CAChE;AAEDZ,0BAA0Ba,cAAc;AAVtC,SAAAJ,MAAAM,GAAA;CAEE,MAAAC,OAAaD,EAACC;CAAM,OACbA,KAAIC,SAAU,UAAUD,KAAIE,QAA5BR,KAAAA;AAA8C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagePartText.js","names":["ComponentRef","ForwardRefExoticComponent","forwardRef","RefAttributes","Text","TextProps","useAuiState","MessagePartPrimitiveText","Element","Props","Omit","props","forwardedRef","$","_c","text","_temp","t0","displayName","MessagePartTextProps","s","part","type"],"sources":["../../../src/primitives/messagePart/MessagePartText.tsx"],"sourcesContent":["import {\n type ComponentRef,\n type ForwardRefExoticComponent,\n forwardRef,\n type RefAttributes,\n} from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace MessagePartPrimitiveText {\n export type Element = ComponentRef<typeof Text>;\n export type Props = Omit<TextProps, \"children\">;\n}\n\nexport const MessagePartPrimitiveText: ForwardRefExoticComponent<\n MessagePartPrimitiveText.Props &\n RefAttributes<MessagePartPrimitiveText.Element>\n> = forwardRef<\n MessagePartPrimitiveText.Element,\n MessagePartPrimitiveText.Props\n>((props, forwardedRef) => {\n const text = useAuiState((s) => {\n const part = s.part;\n return part.type === \"text\" || part.type === \"reasoning\" ? part.text : \"\";\n });\n\n return (\n <Text {...props} ref={forwardedRef}>\n {text}\n </Text>\n );\n});\n\nMessagePartPrimitiveText.displayName = \"MessagePartPrimitive.Text\";\n\nexport type MessagePartTextProps = MessagePartPrimitiveText.Props;\n"],"mappings":";;;;;;AAcA,MAAaO,2BAGTL,YAGFS,OAAAC,iBAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACA,MAAAC,OAAaT,YAAYU,KAGxB;CAAE,IAAAC;CAAA,IAAAJ,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,SAAAE,EAAA,OAAAE,MAAA;EAGDE,KAAA,oBAAC,MAAD;GAAK,GAAKN;GAAYC,KAAAA;GACnBG,UAAAA;EADE,CAAA;EAEEF,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAFPI;AAEO,CAEV;AAEDV,yBAAyBW,cAAc;AAbrC,SAAAF,MAAAI,GAAA;CAEE,MAAAC,OAAaD,EAACC;CAAM,OACbA,KAAIC,SAAU,UAAUD,KAAIC,SAAU,cAAcD,KAAIN,OAAxD;AAAkE"}
|
|
1
|
+
{"version":3,"file":"MessagePartText.js","names":["ComponentRef","ForwardRefExoticComponent","forwardRef","RefAttributes","Text","TextProps","useAuiState","MessagePartPrimitiveText","Element","Props","Omit","props","forwardedRef","$","_c","text","_temp","t0","displayName","MessagePartTextProps","s","part","type","_c"],"sources":["../../../src/primitives/messagePart/MessagePartText.tsx"],"sourcesContent":["import {\n type ComponentRef,\n type ForwardRefExoticComponent,\n forwardRef,\n type RefAttributes,\n} from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace MessagePartPrimitiveText {\n export type Element = ComponentRef<typeof Text>;\n export type Props = Omit<TextProps, \"children\">;\n}\n\nexport const MessagePartPrimitiveText: ForwardRefExoticComponent<\n MessagePartPrimitiveText.Props &\n RefAttributes<MessagePartPrimitiveText.Element>\n> = forwardRef<\n MessagePartPrimitiveText.Element,\n MessagePartPrimitiveText.Props\n>((props, forwardedRef) => {\n const text = useAuiState((s) => {\n const part = s.part;\n return part.type === \"text\" || part.type === \"reasoning\" ? part.text : \"\";\n });\n\n return (\n <Text {...props} ref={forwardedRef}>\n {text}\n </Text>\n );\n});\n\nMessagePartPrimitiveText.displayName = \"MessagePartPrimitive.Text\";\n\nexport type MessagePartTextProps = MessagePartPrimitiveText.Props;\n"],"mappings":";;;;;;AAcA,MAAaO,2BAGTL,YAGFS,OAAAC,iBAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACA,MAAAC,OAAaT,YAAYU,KAGxB;CAAE,IAAAC;CAAA,IAAAJ,EAAA,OAAAD,gBAAAC,EAAA,OAAAF,SAAAE,EAAA,OAAAE,MAAA;EAGDE,KAAA,oBAAC,MAAD;GAAK,GAAKN;GAAYC,KAAAA;GACnBG,UAAAA;EADE,CAAA;EAEEF,EAAA,KAAAD;EAAAC,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAFPI;AAEO,CAEV;AAEDV,yBAAyBW,cAAc;AAbrC,SAAAF,MAAAI,GAAA;CAEE,MAAAC,OAAaD,EAACC;CAAM,OACbA,KAAIC,SAAU,UAAUD,KAAIC,SAAU,cAAcD,KAAIN,OAAxD;AAAkE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueItemRemove.js","names":["useCallback","Pressable","PressableProps","useAui","QueueItemRemoveProps","Omit","children","QueueItemRemove","t0","$","_c","pressableProps","aui","t1","queueItem","remove","handleRemove","t2"],"sources":["../../../src/primitives/queueItem/QueueItemRemove.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { Pressable, type PressableProps } from \"react-native\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport type QueueItemRemoveProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const QueueItemRemove = ({\n children,\n ...pressableProps\n}: QueueItemRemoveProps) => {\n const aui = useAui();\n\n const handleRemove = useCallback(() => {\n aui.queueItem.remove();\n }, [aui]);\n\n return (\n <Pressable\n onPress={handleRemove}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAWA,MAAaO,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CACrB,MAAAG,MAAYT,OAAO;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAG,IAAAE,WAAA;EAEYD,WAAA;GAC/BD,IAAGE,UAAUC,OAAQ;EAAC;EACvBN,EAAA,KAAAG,IAAAE;EAAAL,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAFD,MAAAO,eAAqBH;CAEX,IAAAI;CAAA,IAAAR,EAAA,OAAAH,YAAAG,EAAA,OAAAO,gBAAAP,EAAA,OAAAE,gBAAA;EAGRM,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBL;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OANZQ;AAMY"}
|
|
1
|
+
{"version":3,"file":"QueueItemRemove.js","names":["useCallback","Pressable","PressableProps","useAui","QueueItemRemoveProps","Omit","children","QueueItemRemove","t0","$","_c","pressableProps","aui","t1","queueItem","remove","handleRemove","t2","_c"],"sources":["../../../src/primitives/queueItem/QueueItemRemove.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { Pressable, type PressableProps } from \"react-native\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport type QueueItemRemoveProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const QueueItemRemove = ({\n children,\n ...pressableProps\n}: QueueItemRemoveProps) => {\n const aui = useAui();\n\n const handleRemove = useCallback(() => {\n aui.queueItem.remove();\n }, [aui]);\n\n return (\n <Pressable\n onPress={handleRemove}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAWA,MAAaO,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CACrB,MAAAG,MAAYT,OAAO;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAG,IAAAE,WAAA;EAEYD,WAAA;GAC/BD,IAAGE,UAAUC,OAAQ;EAAC;EACvBN,EAAA,KAAAG,IAAAE;EAAAL,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAFD,MAAAO,eAAqBH;CAEX,IAAAI;CAAA,IAAAR,EAAA,OAAAH,YAAAG,EAAA,OAAAO,gBAAAP,EAAA,OAAAE,gBAAA;EAGRM,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBL;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OANZQ;AAMY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueItemSteer.js","names":["useCallback","Pressable","PressableProps","useAui","QueueItemSteerProps","Omit","children","QueueItemSteer","t0","$","_c","pressableProps","aui","t1","queueItem","steer","handleSteer","t2"],"sources":["../../../src/primitives/queueItem/QueueItemSteer.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { Pressable, type PressableProps } from \"react-native\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport type QueueItemSteerProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const QueueItemSteer = ({\n children,\n ...pressableProps\n}: QueueItemSteerProps) => {\n const aui = useAui();\n\n const handleSteer = useCallback(() => {\n aui.queueItem.steer();\n }, [aui]);\n\n return (\n <Pressable\n onPress={handleSteer}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAWA,MAAaO,kBAAiBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CACpB,MAAAG,MAAYT,OAAO;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAG,IAAAE,WAAA;EAEWD,WAAA;GAC9BD,IAAGE,UAAUC,MAAO;EAAC;EACtBN,EAAA,KAAAG,IAAAE;EAAAL,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAFD,MAAAO,cAAoBH;CAEV,IAAAI;CAAA,IAAAR,EAAA,OAAAH,YAAAG,EAAA,OAAAO,eAAAP,EAAA,OAAAE,gBAAA;EAGRM,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBL;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OANZQ;AAMY"}
|
|
1
|
+
{"version":3,"file":"QueueItemSteer.js","names":["useCallback","Pressable","PressableProps","useAui","QueueItemSteerProps","Omit","children","QueueItemSteer","t0","$","_c","pressableProps","aui","t1","queueItem","steer","handleSteer","t2","_c"],"sources":["../../../src/primitives/queueItem/QueueItemSteer.tsx"],"sourcesContent":["import { useCallback } from \"react\";\nimport { Pressable, type PressableProps } from \"react-native\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport type QueueItemSteerProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const QueueItemSteer = ({\n children,\n ...pressableProps\n}: QueueItemSteerProps) => {\n const aui = useAui();\n\n const handleSteer = useCallback(() => {\n aui.queueItem.steer();\n }, [aui]);\n\n return (\n <Pressable\n onPress={handleSteer}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAWA,MAAaO,kBAAiBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CACpB,MAAAG,MAAYT,OAAO;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAG,IAAAE,WAAA;EAEWD,WAAA;GAC9BD,IAAGE,UAAUC,MAAO;EAAC;EACtBN,EAAA,KAAAG,IAAAE;EAAAL,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAFD,MAAAO,cAAoBH;CAEV,IAAAI;CAAA,IAAAR,EAAA,OAAAH,YAAAG,EAAA,OAAAO,eAAAP,EAAA,OAAAE,gBAAA;EAGRM,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBL;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OANZQ;AAMY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueItemText.js","names":["ReactNode","Text","TextProps","useAuiState","QueueItemTextProps","children","QueueItemText","t0","$","_c","textProps","text","_temp3","t1","t2","_temp","part","type","_temp2","part_0","s","queueItem","parts","filter","map","join"],"sources":["../../../src/primitives/queueItem/QueueItemText.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type QueueItemTextProps = TextProps & {\n children?: ReactNode;\n};\n\nexport const QueueItemText = ({\n children,\n ...textProps\n}: QueueItemTextProps) => {\n const text = useAuiState((s) =>\n // hosts on the pre-parts adapter shape may omit the field at runtime\n (s.queueItem.parts ?? [])\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\\n\\n\"),\n );\n\n return <Text {...textProps}>{children ?? text}</Text>;\n};\n"],"mappings":";;;;;AAQA,MAAaM,iBAAgBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CACnB,MAAAG,OAAaR,YAAYS,MAMzB;CAE6B,MAAAC,KAAAR,YAAAM;CAAgB,IAAAG;CAAA,IAAAN,EAAA,OAAAK,MAAAL,EAAA,OAAAE,WAAA;EAAtCI,KAAA,oBAAC,MAAD;GAAK,GAAKJ;GAAYG,UAAAA;EAAjB,CAAA;EAAyCL,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAA9CM;AAA8C;AAZ1B,SAAAC,MAAAC,MAAA;CAAA,OAOLA,KAAIC,SAAU;AAAM;AAPf,SAAAC,OAAAC,QAAA;CAAA,OAQRH,OAAIL;AAAK;AARD,SAAAC,OAAAQ,GAAA;CAAA,QAMxBA,EAACC,UAAUC,SAAX,CAAA,EAAA,CAAuBC,OACdR,KAA8B,CAAC,CAAAS,IAClCN,MAAmB,CAAC,CAAAO,KACnB,MAAM;AAAC"}
|
|
1
|
+
{"version":3,"file":"QueueItemText.js","names":["ReactNode","Text","TextProps","useAuiState","QueueItemTextProps","children","QueueItemText","t0","$","_c","textProps","text","_temp3","t1","t2","_temp","part","type","_temp2","part_0","s","queueItem","parts","filter","map","join","_c"],"sources":["../../../src/primitives/queueItem/QueueItemText.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type QueueItemTextProps = TextProps & {\n children?: ReactNode;\n};\n\nexport const QueueItemText = ({\n children,\n ...textProps\n}: QueueItemTextProps) => {\n const text = useAuiState((s) =>\n // hosts on the pre-parts adapter shape may omit the field at runtime\n (s.queueItem.parts ?? [])\n .filter((part) => part.type === \"text\")\n .map((part) => part.text)\n .join(\"\\n\\n\"),\n );\n\n return <Text {...textProps}>{children ?? text}</Text>;\n};\n"],"mappings":";;;;;AAQA,MAAaM,iBAAgBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CACnB,MAAAG,OAAaR,YAAYS,MAMzB;CAE6B,MAAAC,KAAAR,YAAAM;CAAgB,IAAAG;CAAA,IAAAN,EAAA,OAAAK,MAAAL,EAAA,OAAAE,WAAA;EAAtCI,KAAA,oBAAC,MAAD;GAAK,GAAKJ;GAAYG,UAAAA;EAAjB,CAAA;EAAyCL,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAA9CM;AAA8C;AAZ1B,SAAAC,MAAAC,MAAA;CAAA,OAOLA,KAAIC,SAAU;AAAM;AAPf,SAAAC,OAAAC,QAAA;CAAA,OAQRH,OAAIL;AAAK;AARD,SAAAC,OAAAQ,GAAA;CAAA,QAMxBA,EAACC,UAAUC,SAAX,CAAA,EAAA,CAAuBC,OACdR,KAA8B,CAAC,CAAAS,IAClCN,MAAmB,CAAC,CAAAO,KACnB,MAAM;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestionDescription.js","names":["ReactNode","Text","TextProps","useAuiState","SuggestionDescriptionProps","children","SuggestionDescription","t0","$","_c","textProps","label","_temp","t1","t2","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionDescription.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type SuggestionDescriptionProps = TextProps & {\n children?: ReactNode;\n};\n\nexport const SuggestionDescription = ({\n children,\n ...textProps\n}: SuggestionDescriptionProps) => {\n const label = useAuiState((s) => s.suggestion.label);\n\n return <Text {...textProps}>{children ?? label}</Text>;\n};\n"],"mappings":";;;;;AAQA,MAAaM,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAC3B,MAAAG,QAAcR,YAAYS,KAAyB;CAEtB,MAAAC,KAAAR,YAAAM;CAAiB,IAAAG;CAAA,IAAAN,EAAA,OAAAK,MAAAL,EAAA,OAAAE,WAAA;EAAvCI,KAAA,oBAAC,MAAD;GAAK,GAAKJ;GAAYG,UAAAA;EAAjB,CAAA;EAA0CL,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAA/CM;AAA+C;AANnB,SAAAF,MAAAG,GAAA;CAAA,OAIFA,EAACC,WAAWL;AAAM"}
|
|
1
|
+
{"version":3,"file":"SuggestionDescription.js","names":["ReactNode","Text","TextProps","useAuiState","SuggestionDescriptionProps","children","SuggestionDescription","t0","$","_c","textProps","label","_temp","t1","t2","s","suggestion","_c"],"sources":["../../../src/primitives/suggestion/SuggestionDescription.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type SuggestionDescriptionProps = TextProps & {\n children?: ReactNode;\n};\n\nexport const SuggestionDescription = ({\n children,\n ...textProps\n}: SuggestionDescriptionProps) => {\n const label = useAuiState((s) => s.suggestion.label);\n\n return <Text {...textProps}>{children ?? label}</Text>;\n};\n"],"mappings":";;;;;AAQA,MAAaM,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAC3B,MAAAG,QAAcR,YAAYS,KAAyB;CAEtB,MAAAC,KAAAR,YAAAM;CAAiB,IAAAG;CAAA,IAAAN,EAAA,OAAAK,MAAAL,EAAA,OAAAE,WAAA;EAAvCI,KAAA,oBAAC,MAAD;GAAK,GAAKJ;GAAYG,UAAAA;EAAjB,CAAA;EAA0CL,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAA/CM;AAA+C;AANnB,SAAAF,MAAAG,GAAA;CAAA,OAIFA,EAACC,WAAWL;AAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestionTitle.js","names":["ReactNode","Text","TextProps","useAuiState","SuggestionTitleProps","children","SuggestionTitle","t0","$","_c","textProps","title","_temp","t1","t2","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionTitle.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type SuggestionTitleProps = TextProps & {\n children?: ReactNode;\n};\n\nexport const SuggestionTitle = ({\n children,\n ...textProps\n}: SuggestionTitleProps) => {\n const title = useAuiState((s) => s.suggestion.title);\n\n return <Text {...textProps}>{children ?? title}</Text>;\n};\n"],"mappings":";;;;;AAQA,MAAaM,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CACrB,MAAAG,QAAcR,YAAYS,KAAyB;CAEtB,MAAAC,KAAAR,YAAAM;CAAiB,IAAAG;CAAA,IAAAN,EAAA,OAAAK,MAAAL,EAAA,OAAAE,WAAA;EAAvCI,KAAA,oBAAC,MAAD;GAAK,GAAKJ;GAAYG,UAAAA;EAAjB,CAAA;EAA0CL,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAA/CM;AAA+C;AANzB,SAAAF,MAAAG,GAAA;CAAA,OAIIA,EAACC,WAAWL;AAAM"}
|
|
1
|
+
{"version":3,"file":"SuggestionTitle.js","names":["ReactNode","Text","TextProps","useAuiState","SuggestionTitleProps","children","SuggestionTitle","t0","$","_c","textProps","title","_temp","t1","t2","s","suggestion","_c"],"sources":["../../../src/primitives/suggestion/SuggestionTitle.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Text, type TextProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type SuggestionTitleProps = TextProps & {\n children?: ReactNode;\n};\n\nexport const SuggestionTitle = ({\n children,\n ...textProps\n}: SuggestionTitleProps) => {\n const title = useAuiState((s) => s.suggestion.title);\n\n return <Text {...textProps}>{children ?? title}</Text>;\n};\n"],"mappings":";;;;;AAQA,MAAaM,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CACrB,MAAAG,QAAcR,YAAYS,KAAyB;CAEtB,MAAAC,KAAAR,YAAAM;CAAiB,IAAAG;CAAA,IAAAN,EAAA,OAAAK,MAAAL,EAAA,OAAAE,WAAA;EAAvCI,KAAA,oBAAC,MAAD;GAAK,GAAKJ;GAAYG,UAAAA;EAAjB,CAAA;EAA0CL,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAA/CM;AAA+C;AANzB,SAAAF,MAAAG,GAAA;CAAA,OAIIA,EAACC,WAAWL;AAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestionTrigger.js","names":["Pressable","PressableProps","useAuiState","useSuggestionTrigger","SuggestionTriggerProps","Omit","children","send","clearComposer","SuggestionTrigger","t0","$","_c","disabledProp","pressableProps","t1","disabled","undefined","prompt","_temp","t2","trigger","t3","t4","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionTrigger.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useSuggestionTrigger } from \"@assistant-ui/core/react\";\n\nexport type SuggestionTriggerProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion.\n */\n send?: boolean | undefined;\n /**\n * Whether to clear the composer. When send is false, determines if composer\n * text is replaced (true) or appended (false).\n * @default true\n */\n clearComposer?: boolean | undefined;\n};\n\nexport const SuggestionTrigger = ({\n children,\n send,\n clearComposer = true,\n disabled: disabledProp,\n ...pressableProps\n}: SuggestionTriggerProps) => {\n const prompt = useAuiState((s) => s.suggestion.prompt);\n const { trigger, disabled } = useSuggestionTrigger({\n prompt,\n send,\n clearComposer,\n });\n\n return (\n <Pressable\n onPress={trigger}\n disabled={disabledProp ?? disabled}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAsBA,MAAaS,qBAAoBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAN;CAAA,IAAAO;CAAA,IAAAC;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAJ,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAJ,UAAAC,MAAAC,eAAAO,IAAAC,UAAAH,cAAA,GAAAC,kBAAAJ;EAMTC,EAAA,KAAAD;EAAAC,EAAA,KAAAL;EAAAK,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;CAAA,OAAA;EAAAT,WAAAK,EAAA;EAAAE,eAAAF,EAAA;EAAAG,iBAAAH,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,KAAAJ,EAAA;CAAA;CAHvB,MAAAH,gBAAAO,OAAAE,KAAAA,IAAA,OAAAF;CAIA,MAAAG,SAAehB,YAAYiB,KAA0B;CAAE,IAAAC;CAAA,IAAAT,EAAA,OAAAH,iBAAAG,EAAA,OAAAO,UAAAP,EAAA,OAAAJ,MAAA;EACJa,KAAA;GAAAF;GAAAX;GAAAC;EAInD;EAACG,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAJ;EAAAI,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAJD,MAAA,EAAAU,SAAAL,aAA8Bb,qBAAqBiB,EAIlD;CAKa,MAAAE,KAAAT,gBAAAG;CAAwB,IAAAO;CAAA,IAAAZ,EAAA,QAAAL,YAAAK,EAAA,QAAAG,kBAAAH,EAAA,QAAAW,MAAAX,EAAA,QAAAU,SAAA;EAFpCE,KAAA,oBAAC,WAAD;GACWF,SAAAA;GACC,UAAAC;GACQ,mBAAA;GAAQ,GACtBR;GAEHR;EANO,CAAA;EAOEK,EAAA,MAAAL;EAAAK,EAAA,MAAAG;EAAAH,EAAA,MAAAW;EAAAX,EAAA,MAAAU;EAAAV,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAPZY;AAOY;AAtBiB,SAAAJ,MAAAK,GAAA;CAAA,OAOGA,EAACC,WAAWP;AAAO"}
|
|
1
|
+
{"version":3,"file":"SuggestionTrigger.js","names":["Pressable","PressableProps","useAuiState","useSuggestionTrigger","SuggestionTriggerProps","Omit","children","send","clearComposer","SuggestionTrigger","t0","$","_c","disabledProp","pressableProps","t1","disabled","undefined","prompt","_temp","t2","trigger","t3","t4","s","suggestion","_c"],"sources":["../../../src/primitives/suggestion/SuggestionTrigger.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useSuggestionTrigger } from \"@assistant-ui/core/react\";\n\nexport type SuggestionTriggerProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion.\n */\n send?: boolean | undefined;\n /**\n * Whether to clear the composer. When send is false, determines if composer\n * text is replaced (true) or appended (false).\n * @default true\n */\n clearComposer?: boolean | undefined;\n};\n\nexport const SuggestionTrigger = ({\n children,\n send,\n clearComposer = true,\n disabled: disabledProp,\n ...pressableProps\n}: SuggestionTriggerProps) => {\n const prompt = useAuiState((s) => s.suggestion.prompt);\n const { trigger, disabled } = useSuggestionTrigger({\n prompt,\n send,\n clearComposer,\n });\n\n return (\n <Pressable\n onPress={trigger}\n disabled={disabledProp ?? disabled}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAsBA,MAAaS,qBAAoBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAN;CAAA,IAAAO;CAAA,IAAAC;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAJ,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAJ,UAAAC,MAAAC,eAAAO,IAAAC,UAAAH,cAAA,GAAAC,kBAAAJ;EAMTC,EAAA,KAAAD;EAAAC,EAAA,KAAAL;EAAAK,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;CAAA,OAAA;EAAAT,WAAAK,EAAA;EAAAE,eAAAF,EAAA;EAAAG,iBAAAH,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,KAAAJ,EAAA;CAAA;CAHvB,MAAAH,gBAAAO,OAAAE,KAAAA,IAAA,OAAAF;CAIA,MAAAG,SAAehB,YAAYiB,KAA0B;CAAE,IAAAC;CAAA,IAAAT,EAAA,OAAAH,iBAAAG,EAAA,OAAAO,UAAAP,EAAA,OAAAJ,MAAA;EACJa,KAAA;GAAAF;GAAAX;GAAAC;EAInD;EAACG,EAAA,KAAAH;EAAAG,EAAA,KAAAO;EAAAP,EAAA,KAAAJ;EAAAI,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAJD,MAAA,EAAAU,SAAAL,aAA8Bb,qBAAqBiB,EAIlD;CAKa,MAAAE,KAAAT,gBAAAG;CAAwB,IAAAO;CAAA,IAAAZ,EAAA,QAAAL,YAAAK,EAAA,QAAAG,kBAAAH,EAAA,QAAAW,MAAAX,EAAA,QAAAU,SAAA;EAFpCE,KAAA,oBAAC,WAAD;GACWF,SAAAA;GACC,UAAAC;GACQ,mBAAA;GAAQ,GACtBR;GAEHR;EANO,CAAA;EAOEK,EAAA,MAAAL;EAAAK,EAAA,MAAAG;EAAAH,EAAA,MAAAW;EAAAX,EAAA,MAAAU;EAAAV,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAPZY;AAOY;AAtBiB,SAAAJ,MAAAK,GAAA;CAAA,OAOGA,EAACC,WAAWP;AAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadEmpty.js","names":["ReactNode","AuiIf","ThreadEmptyProps","children","ThreadEmpty","t0","$","_c","t1","_temp","s","thread","isEmpty"],"sources":["../../../src/primitives/thread/ThreadEmpty.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { AuiIf } from \"@assistant-ui/store\";\n\nexport type ThreadEmptyProps = {\n children: ReactNode;\n};\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread.isEmpty} />` instead.\n */\nexport const ThreadEmpty = ({ children }: ThreadEmptyProps) => (\n <AuiIf condition={(s) => s.thread.isEmpty}>{children}</AuiIf>\n);\n"],"mappings":";;;;;;;AAUA,MAAaI,eAAcC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAJ,aAAAE;CAA8B,IAAAG;CAAA,IAAAF,EAAA,OAAAH,UAAA;EACxDK,KAAA,oBAAC,OAAD;GAAkB,WAAAC;GAA0BN;EAAtC,CAAA;EAAuDG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,OAA7DE;AAA6D;AADpC,SAAAC,MAAAC,GAAA;CAAA,OACAA,EAACC,OAAOC;AAAQ"}
|
|
1
|
+
{"version":3,"file":"ThreadEmpty.js","names":["ReactNode","AuiIf","ThreadEmptyProps","children","ThreadEmpty","t0","$","_c","t1","_temp","s","thread","isEmpty","_c"],"sources":["../../../src/primitives/thread/ThreadEmpty.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { AuiIf } from \"@assistant-ui/store\";\n\nexport type ThreadEmptyProps = {\n children: ReactNode;\n};\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread.isEmpty} />` instead.\n */\nexport const ThreadEmpty = ({ children }: ThreadEmptyProps) => (\n <AuiIf condition={(s) => s.thread.isEmpty}>{children}</AuiIf>\n);\n"],"mappings":";;;;;;;AAUA,MAAaI,eAAcC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAJ,aAAAE;CAA8B,IAAAG;CAAA,IAAAF,EAAA,OAAAH,UAAA;EACxDK,KAAA,oBAAC,OAAD;GAAkB,WAAAC;GAA0BN;EAAtC,CAAA;EAAuDG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,OAA7DE;AAA6D;AADpC,SAAAC,MAAAC,GAAA;CAAA,OACAA,EAACC,OAAOC;AAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadIf.js","names":["ReactNode","useAuiState","ThreadIfProps","children","empty","running","ThreadIf","t0","$","_c","thread","_temp","undefined","isEmpty","isRunning","t1","s"],"sources":["../../../src/primitives/thread/ThreadIf.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type ThreadIfProps = {\n children: ReactNode;\n empty?: boolean | undefined;\n running?: boolean | undefined;\n};\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread...} />` instead.\n */\nexport const ThreadIf = ({ children, empty, running }: ThreadIfProps) => {\n const thread = useAuiState((s) => s.thread);\n\n if (empty !== undefined && empty !== thread.isEmpty) return null;\n if (running !== undefined && running !== thread.isRunning) return null;\n\n return <>{children}</>;\n};\n"],"mappings":";;;;;;;AAYA,MAAaM,YAAWC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAN,UAAAC,OAAAC,YAAAE;CACvB,MAAAG,SAAeT,YAAYU,KAAe;CAE1C,IAAIP,UAAUQ,KAAAA,KAAaR,UAAUM,OAAMG,SAAQ,OAAS;CAC5D,IAAIR,YAAYO,KAAAA,KAAaP,YAAYK,OAAMI,WAAU,OAAS;CAAK,IAAAC;CAAA,IAAAP,EAAA,OAAAL,UAAA;EAEhEY,KAAA,oBAAA,UAAA,EAAGZ,SAAQ,CAAA;EAAIK,EAAA,KAAAL;EAAAK,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,OAAfO;AAAe;AANA,SAAAJ,MAAAK,GAAA;CAAA,OACYA,EAACN;AAAO"}
|
|
1
|
+
{"version":3,"file":"ThreadIf.js","names":["ReactNode","useAuiState","ThreadIfProps","children","empty","running","ThreadIf","t0","$","_c","thread","_temp","undefined","isEmpty","isRunning","t1","s","_c"],"sources":["../../../src/primitives/thread/ThreadIf.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport type ThreadIfProps = {\n children: ReactNode;\n empty?: boolean | undefined;\n running?: boolean | undefined;\n};\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread...} />` instead.\n */\nexport const ThreadIf = ({ children, empty, running }: ThreadIfProps) => {\n const thread = useAuiState((s) => s.thread);\n\n if (empty !== undefined && empty !== thread.isEmpty) return null;\n if (running !== undefined && running !== thread.isRunning) return null;\n\n return <>{children}</>;\n};\n"],"mappings":";;;;;;;AAYA,MAAaM,YAAWC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAN,UAAAC,OAAAC,YAAAE;CACvB,MAAAG,SAAeT,YAAYU,KAAe;CAE1C,IAAIP,UAAUQ,KAAAA,KAAaR,UAAUM,OAAMG,SAAQ,OAAS;CAC5D,IAAIR,YAAYO,KAAAA,KAAaP,YAAYK,OAAMI,WAAU,OAAS;CAAK,IAAAC;CAAA,IAAAP,EAAA,OAAAL,UAAA;EAEhEY,KAAA,oBAAA,UAAA,EAAGZ,SAAQ,CAAA;EAAIK,EAAA,KAAAL;EAAAK,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,OAAfO;AAAe;AANA,SAAAJ,MAAAK,GAAA;CAAA,OACYA,EAACN;AAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadMessages.js","names":["ComponentType","FC","ForwardedRef","ReactNode","RefObject","forwardRef","memo","useCallback","useEffect","useRef","FlatList","FlatListProps","LayoutChangeEvent","NativeScrollEvent","NativeSyntheticEvent","ThreadMessage","MessageState","RenderChildrenWithAccessor","useAuiEvent","useAuiState","MessageByIndexProvider","MessageComponents","Message","EditComposer","UserEditComposer","AssistantEditComposer","SystemEditComposer","UserMessage","AssistantMessage","SystemMessage","MessagesContent","components","children","value","message","ThreadMessagesFlatListProps","Omit","autoScroll","scrollToBottomOnRunStart","scrollToBottomOnInitialize","scrollToBottomOnThreadSwitch","history","hasMore","isLoadingMore","loadMore","ThreadMessagesProps","DEFAULT_SYSTEM_MESSAGE","AT_BOTTOM_THRESHOLD","useHistoryLoad","onStartReached","loadRequestedRef","current","handleStartReached","NonNullable","info","error","canLoadMore","getComponent","role","isEditing","_exhaustiveCheck","Error","ThreadMessageComponent","t0","$","_c","_temp","_temp2","t1","Component","t2","ThreadMessageByIndex","index","prev","next","displayName","ThreadMessageByChildren","aui","thread","getState","getItem","setForwardedRef","ref","T","useComposedFlatListRef","forwardedRef","flatListRef","node","setFlatListRef","const","useThreadMessagesFlatListAutoScroll","hasMessages","horizontal","t3","t4","t5","undefined","t6","Symbol","for","contentHeight","viewportHeight","scrollY","metricsRef","isAtBottomRef","lastScrollEventOffsetRef","initializeScrollRequestedRef","contentSizeVersionRef","pendingScrollToBottomRef","t7","updateIsAtBottom","t8","animated","contentHeight_0","viewportHeight_0","offset","Math","max","scrollToOffset","scrollToBottom","t9","event","wasAtBottom","previousViewportHeight","viewportHeight_1","nativeEvent","layout","width","height","pending","minimumContentSizeVersion","handleLayout","t10","event_0","contentOffset","contentSize","layoutMeasurement","scrollOffset","x","y","previousEventOffset","wasPinnedToBottom","upwardMove","handleScroll","t11","metrics","contentHeight_1","previousContentHeight","wasAtBottom_0","pendingScroll","handleContentSizeChange","t12","t13","t14","t15","t16","ThreadMessagesFlatList","flatListProps","onContentSizeChange","onLayout","onScroll","onStartReachedThreshold","scrollEventThrottle","messages","_temp3","length","handleAutoScrollContentSizeChange","handleAutoScrollLayout","handleAutoScrollScroll","renderItem","keyExtractor","_temp4","scrollTracking","minIndexForVisible","ThreadMessages","props","s","s_0","composer","item","id"],"sources":["../../../src/primitives/thread/ThreadMessages.tsx"],"sourcesContent":["import {\n type ComponentType,\n type FC,\n type ForwardedRef,\n type ReactNode,\n type RefObject,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport {\n FlatList,\n type FlatListProps,\n type LayoutChangeEvent,\n type NativeScrollEvent,\n type NativeSyntheticEvent,\n} from \"react-native\";\nimport type { ThreadMessage } from \"@assistant-ui/core\";\nimport type { MessageState } from \"@assistant-ui/core/store\";\nimport {\n RenderChildrenWithAccessor,\n useAuiEvent,\n useAuiState,\n} from \"@assistant-ui/store\";\nimport { MessageByIndexProvider } from \"@assistant-ui/core/react\";\n\ntype MessageComponents =\n | {\n Message: ComponentType;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage?: ComponentType | undefined;\n AssistantMessage?: ComponentType | undefined;\n SystemMessage?: ComponentType | undefined;\n }\n | {\n Message?: ComponentType | undefined;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage: ComponentType;\n AssistantMessage: ComponentType;\n SystemMessage?: ComponentType | undefined;\n };\n\ntype MessagesContent =\n | {\n /** @deprecated Use the children render function instead. */\n components: MessageComponents;\n children?: never;\n }\n | {\n children: (value: { message: MessageState }) => ReactNode;\n components?: never;\n };\n\nexport type ThreadMessagesFlatListProps = Omit<\n FlatListProps<ThreadMessage>,\n \"data\" | \"renderItem\" | \"children\"\n> &\n MessagesContent & {\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n history?:\n | {\n hasMore: boolean;\n isLoadingMore: boolean;\n loadMore: () => void;\n }\n | undefined;\n };\n\n/** @deprecated Use ThreadMessagesFlatListProps instead. */\nexport type ThreadMessagesProps = ThreadMessagesFlatListProps;\n\nconst DEFAULT_SYSTEM_MESSAGE = () => null;\nconst AT_BOTTOM_THRESHOLD = 4;\n\nconst useHistoryLoad = (\n history: ThreadMessagesFlatListProps[\"history\"],\n onStartReached: FlatListProps<ThreadMessage>[\"onStartReached\"],\n) => {\n const loadRequestedRef = useRef(false);\n const hasMore = history?.hasMore ?? false;\n const isLoadingMore = history?.isLoadingMore ?? false;\n\n // The latch is scoped to one commit so a no-op load cannot disable paging.\n useEffect(() => {\n loadRequestedRef.current = isLoadingMore;\n });\n\n const handleStartReached = useCallback<\n NonNullable<FlatListProps<ThreadMessage>[\"onStartReached\"]>\n >(\n (info) => {\n onStartReached?.(info);\n if (loadRequestedRef.current) return;\n loadRequestedRef.current = true;\n try {\n history?.loadMore();\n } catch (error) {\n loadRequestedRef.current = false;\n throw error;\n }\n },\n [history, onStartReached],\n );\n\n return {\n canLoadMore: hasMore && !isLoadingMore,\n handleStartReached,\n };\n};\n\nconst getComponent = (\n components: MessageComponents,\n role: ThreadMessage[\"role\"],\n isEditing: boolean,\n) => {\n switch (role) {\n case \"user\":\n if (isEditing) {\n return (\n components.UserEditComposer ??\n components.EditComposer ??\n components.UserMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return components.UserMessage ?? (components.Message as ComponentType);\n }\n case \"assistant\":\n if (isEditing) {\n return (\n components.AssistantEditComposer ??\n components.EditComposer ??\n components.AssistantMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return (\n components.AssistantMessage ?? (components.Message as ComponentType)\n );\n }\n case \"system\":\n if (isEditing) {\n return (\n components.SystemEditComposer ??\n components.EditComposer ??\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n } else {\n return (\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n }\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unknown message role: ${_exhaustiveCheck}`);\n }\n }\n};\n\nconst ThreadMessageComponent: FC<{ components: MessageComponents }> = ({\n components,\n}) => {\n const role = useAuiState((s) => s.message.role);\n const isEditing = useAuiState((s) => s.message.composer.isEditing);\n const Component = getComponent(components, role, isEditing);\n\n return <Component />;\n};\n\nconst ThreadMessageByIndex = memo(\n ({ index, components }: { index: number; components: MessageComponents }) => {\n return (\n <MessageByIndexProvider index={index}>\n <ThreadMessageComponent components={components} />\n </MessageByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index && prev.components === next.components,\n);\nThreadMessageByIndex.displayName = \"ThreadPrimitive.MessageByIndex\";\n\nconst ThreadMessageByChildren = memo(\n ({\n index,\n children,\n }: {\n index: number;\n children: (value: { message: MessageState }) => ReactNode;\n }) => {\n return (\n <MessageByIndexProvider index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) => aui.thread.message({ index }).getState()}\n >\n {(getItem) =>\n children({\n get message() {\n return getItem();\n },\n })\n }\n </RenderChildrenWithAccessor>\n </MessageByIndexProvider>\n );\n },\n (prev, next) => prev.index === next.index && prev.children === next.children,\n);\nThreadMessageByChildren.displayName = \"ThreadPrimitive.MessageByChildren\";\n\nconst setForwardedRef = <T,>(ref: ForwardedRef<T>, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n};\n\nconst useComposedFlatListRef = (\n forwardedRef: ForwardedRef<FlatList<ThreadMessage>>,\n) => {\n const flatListRef = useRef<FlatList<ThreadMessage> | null>(null);\n\n const setFlatListRef = useCallback(\n (node: FlatList<ThreadMessage> | null) => {\n flatListRef.current = node;\n setForwardedRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n return [flatListRef, setFlatListRef] as const;\n};\n\nconst useThreadMessagesFlatListAutoScroll = ({\n flatListRef,\n hasMessages,\n horizontal = false,\n autoScroll = true,\n scrollToBottomOnRunStart = true,\n scrollToBottomOnInitialize = true,\n scrollToBottomOnThreadSwitch = true,\n}: {\n flatListRef: RefObject<FlatList<ThreadMessage> | null>;\n hasMessages: boolean;\n horizontal?: boolean | null | undefined;\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n}) => {\n const metricsRef = useRef({\n contentHeight: 0,\n viewportHeight: 0,\n scrollY: 0,\n });\n const isAtBottomRef = useRef(true);\n const lastScrollEventOffsetRef = useRef(0);\n const initializeScrollRequestedRef = useRef(false);\n const contentSizeVersionRef = useRef(0);\n const pendingScrollToBottomRef = useRef<\n | false\n | {\n animated: boolean;\n minimumContentSizeVersion: number;\n }\n >(false);\n\n const updateIsAtBottom = useCallback(() => {\n const { contentHeight, scrollY, viewportHeight } = metricsRef.current;\n isAtBottomRef.current =\n contentHeight <= viewportHeight ||\n contentHeight - scrollY - viewportHeight <= AT_BOTTOM_THRESHOLD;\n }, []);\n\n // Commanding a scroll records the intended position immediately; the\n // native scroll echo is bridged and throttled, so waiting for it lets a\n // fast stream observe stale metrics and drop out of following.\n const scrollToBottom = useCallback(\n (animated: boolean) => {\n const { contentHeight, viewportHeight } = metricsRef.current;\n const offset = Math.max(0, contentHeight - viewportHeight);\n metricsRef.current.scrollY = offset;\n isAtBottomRef.current = true;\n flatListRef.current?.scrollToOffset({ offset, animated });\n },\n [flatListRef],\n );\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const wasAtBottom = isAtBottomRef.current;\n const previousViewportHeight = metricsRef.current.viewportHeight;\n const viewportHeight = horizontal\n ? event.nativeEvent.layout.width\n : event.nativeEvent.layout.height;\n metricsRef.current.viewportHeight = viewportHeight;\n updateIsAtBottom();\n const pending = pendingScrollToBottomRef.current;\n if (\n pending &&\n contentSizeVersionRef.current >= pending.minimumContentSizeVersion &&\n viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pending.animated);\n return;\n }\n if (!wasAtBottom) return;\n // Layout changes are never user gestures, so they must not unpin. Past\n // the first measurement, a viewport change while pinned re-commands the\n // bottom position, since no content-size event follows a bare keyboard\n // open or close.\n if (\n autoScroll &&\n previousViewportHeight !== 0 &&\n viewportHeight !== previousViewportHeight\n ) {\n scrollToBottom(pending ? pending.animated : false);\n } else {\n isAtBottomRef.current = true;\n }\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const { contentOffset, contentSize, layoutMeasurement } =\n event.nativeEvent;\n const scrollOffset = horizontal ? contentOffset.x : contentOffset.y;\n const previousEventOffset = lastScrollEventOffsetRef.current;\n const wasPinnedToBottom = isAtBottomRef.current;\n lastScrollEventOffsetRef.current = scrollOffset;\n metricsRef.current = {\n contentHeight: horizontal ? contentSize.width : contentSize.height,\n viewportHeight: horizontal\n ? layoutMeasurement.width\n : layoutMeasurement.height,\n scrollY: scrollOffset,\n };\n updateIsAtBottom();\n const upwardMove = scrollOffset < previousEventOffset;\n // Only a deliberate upward move unpins or cancels a pending scroll.\n // Gestures are detected echo-to-echo because a commanded scroll\n // optimistically moves the tracked position ahead of its ascending\n // animation echoes, and those echoes must not unpin mid-flight.\n if (wasPinnedToBottom && !upwardMove) {\n isAtBottomRef.current = true;\n }\n if (!isAtBottomRef.current && upwardMove) {\n pendingScrollToBottomRef.current = false;\n }\n },\n [horizontal, updateIsAtBottom],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n const metrics = metricsRef.current;\n const contentHeight = horizontal ? width : height;\n const previousContentHeight = metrics.contentHeight;\n const wasAtBottom = isAtBottomRef.current;\n if (contentHeight > 0) contentSizeVersionRef.current += 1;\n metrics.contentHeight = contentHeight;\n updateIsAtBottom();\n\n // Initialize and thread-switch requests are repeated after the list has\n // measured so the explicit bottom offset uses real content metrics.\n const pendingScroll = pendingScrollToBottomRef.current;\n if (\n pendingScroll &&\n contentSizeVersionRef.current >=\n pendingScroll.minimumContentSizeVersion &&\n metrics.viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pendingScroll.animated);\n return;\n }\n\n if (!autoScroll) return;\n if (!wasAtBottom) return;\n if (previousContentHeight === 0) return;\n if (contentHeight <= previousContentHeight) return;\n\n scrollToBottom(false);\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n useEffect(() => {\n if (!scrollToBottomOnInitialize) return;\n if (!hasMessages) {\n initializeScrollRequestedRef.current = false;\n return;\n }\n if (initializeScrollRequestedRef.current) return;\n\n initializeScrollRequestedRef.current = true;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: Math.max(1, contentSizeVersionRef.current),\n };\n scrollToBottom(false);\n }, [hasMessages, scrollToBottom, scrollToBottomOnInitialize]);\n\n useAuiEvent(\"thread.runStart\", () => {\n if (!scrollToBottomOnRunStart) return;\n pendingScrollToBottomRef.current = {\n animated: true,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(true);\n });\n\n useAuiEvent(\"threads.selectionChanged\", () => {\n if (!scrollToBottomOnThreadSwitch) return;\n initializeScrollRequestedRef.current = false;\n lastScrollEventOffsetRef.current = 0;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(false);\n });\n\n return {\n handleLayout,\n handleScroll,\n handleContentSizeChange,\n };\n};\n\nexport const ThreadMessagesFlatList = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesFlatListProps\n>(\n (\n {\n autoScroll,\n components,\n children,\n onContentSizeChange,\n onLayout,\n onScroll,\n onStartReached,\n onStartReachedThreshold,\n scrollEventThrottle,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n history,\n ...flatListProps\n },\n forwardedRef,\n ) => {\n const messages = useAuiState((s) => s.thread.messages);\n const [flatListRef, setFlatListRef] = useComposedFlatListRef(forwardedRef);\n const {\n handleContentSizeChange: handleAutoScrollContentSizeChange,\n handleLayout: handleAutoScrollLayout,\n handleScroll: handleAutoScrollScroll,\n } = useThreadMessagesFlatListAutoScroll({\n flatListRef,\n hasMessages: messages.length > 0,\n horizontal: flatListProps.horizontal,\n autoScroll,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n });\n\n const renderItem = useCallback(\n ({ index }: { item: ThreadMessage; index: number }) => {\n if (children) {\n return (\n <ThreadMessageByChildren index={index}>\n {children}\n </ThreadMessageByChildren>\n );\n }\n return <ThreadMessageByIndex index={index} components={components!} />;\n },\n [components, children],\n );\n\n const keyExtractor = useCallback((item: ThreadMessage) => item.id, []);\n\n const scrollTracking =\n (autoScroll ?? true) ||\n (scrollToBottomOnInitialize ?? true) ||\n (scrollToBottomOnRunStart ?? true) ||\n (scrollToBottomOnThreadSwitch ?? true);\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n handleAutoScrollLayout(event);\n onLayout?.(event);\n },\n [handleAutoScrollLayout, onLayout],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n handleAutoScrollScroll(event);\n onScroll?.(event);\n },\n [handleAutoScrollScroll, onScroll],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n handleAutoScrollContentSizeChange(width, height);\n onContentSizeChange?.(width, height);\n },\n [handleAutoScrollContentSizeChange, onContentSizeChange],\n );\n\n const { canLoadMore, handleStartReached } = useHistoryLoad(\n history,\n onStartReached,\n );\n\n return (\n <FlatList\n ref={setFlatListRef}\n data={messages as unknown as ThreadMessage[]}\n renderItem={renderItem}\n keyExtractor={keyExtractor}\n maintainVisibleContentPosition={{ minIndexForVisible: 0 }}\n {...(scrollTracking\n ? {\n onContentSizeChange: handleContentSizeChange,\n onLayout: handleLayout,\n onScroll: handleScroll,\n scrollEventThrottle: scrollEventThrottle ?? 16,\n }\n : {\n ...(onContentSizeChange && { onContentSizeChange }),\n ...(onLayout && { onLayout }),\n ...(onScroll && { onScroll }),\n ...(scrollEventThrottle !== undefined && { scrollEventThrottle }),\n })}\n {...(history\n ? {\n ...(canLoadMore\n ? { onStartReached: handleStartReached }\n : onStartReached\n ? { onStartReached }\n : {}),\n onStartReachedThreshold: onStartReachedThreshold ?? 1,\n }\n : {\n ...(onStartReached && { onStartReached }),\n ...(onStartReachedThreshold !== undefined && {\n onStartReachedThreshold,\n }),\n })}\n {...flatListProps}\n />\n );\n },\n);\nThreadMessagesFlatList.displayName = \"ThreadPrimitive.MessagesFlatList\";\n\n/** @deprecated Use ThreadPrimitive.MessagesFlatList instead. */\nexport const ThreadMessages = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesProps\n>(\n (\n {\n autoScroll = false,\n scrollToBottomOnInitialize = false,\n scrollToBottomOnRunStart = false,\n scrollToBottomOnThreadSwitch = false,\n ...props\n },\n ref,\n ) => (\n <ThreadMessagesFlatList\n ref={ref}\n autoScroll={autoScroll}\n scrollToBottomOnInitialize={scrollToBottomOnInitialize}\n scrollToBottomOnRunStart={scrollToBottomOnRunStart}\n scrollToBottomOnThreadSwitch={scrollToBottomOnThreadSwitch}\n {...props}\n />\n ),\n);\nThreadMessages.displayName = \"ThreadPrimitive.Messages\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThreadMessages.js","names":["ComponentType","FC","ForwardedRef","ReactNode","RefObject","forwardRef","memo","useCallback","useEffect","useRef","FlatList","FlatListProps","LayoutChangeEvent","NativeScrollEvent","NativeSyntheticEvent","ThreadMessage","MessageState","RenderChildrenWithAccessor","useAuiEvent","useAuiState","MessageByIndexProvider","MessageComponents","Message","EditComposer","UserEditComposer","AssistantEditComposer","SystemEditComposer","UserMessage","AssistantMessage","SystemMessage","MessagesContent","components","children","value","message","ThreadMessagesFlatListProps","Omit","autoScroll","scrollToBottomOnRunStart","scrollToBottomOnInitialize","scrollToBottomOnThreadSwitch","history","hasMore","isLoadingMore","loadMore","ThreadMessagesProps","DEFAULT_SYSTEM_MESSAGE","AT_BOTTOM_THRESHOLD","useHistoryLoad","onStartReached","loadRequestedRef","current","handleStartReached","NonNullable","info","error","canLoadMore","getComponent","role","isEditing","_exhaustiveCheck","Error","ThreadMessageComponent","t0","$","_c","_temp","_temp2","t1","Component","t2","ThreadMessageByIndex","index","prev","next","displayName","ThreadMessageByChildren","aui","thread","getState","getItem","setForwardedRef","ref","T","useComposedFlatListRef","forwardedRef","flatListRef","node","setFlatListRef","const","useThreadMessagesFlatListAutoScroll","hasMessages","horizontal","t3","t4","t5","undefined","t6","Symbol","for","contentHeight","viewportHeight","scrollY","metricsRef","isAtBottomRef","lastScrollEventOffsetRef","initializeScrollRequestedRef","contentSizeVersionRef","pendingScrollToBottomRef","t7","updateIsAtBottom","t8","animated","contentHeight_0","viewportHeight_0","offset","Math","max","scrollToOffset","scrollToBottom","t9","event","wasAtBottom","previousViewportHeight","viewportHeight_1","nativeEvent","layout","width","height","pending","minimumContentSizeVersion","handleLayout","t10","event_0","contentOffset","contentSize","layoutMeasurement","scrollOffset","x","y","previousEventOffset","wasPinnedToBottom","upwardMove","handleScroll","t11","metrics","contentHeight_1","previousContentHeight","wasAtBottom_0","pendingScroll","handleContentSizeChange","t12","t13","t14","t15","t16","ThreadMessagesFlatList","flatListProps","onContentSizeChange","onLayout","onScroll","onStartReachedThreshold","scrollEventThrottle","messages","_temp3","length","handleAutoScrollContentSizeChange","handleAutoScrollLayout","handleAutoScrollScroll","renderItem","keyExtractor","_temp4","scrollTracking","minIndexForVisible","ThreadMessages","props","s","s_0","composer","item","id","_exhaustiveCheck","_c"],"sources":["../../../src/primitives/thread/ThreadMessages.tsx"],"sourcesContent":["import {\n type ComponentType,\n type FC,\n type ForwardedRef,\n type ReactNode,\n type RefObject,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport {\n FlatList,\n type FlatListProps,\n type LayoutChangeEvent,\n type NativeScrollEvent,\n type NativeSyntheticEvent,\n} from \"react-native\";\nimport type { ThreadMessage } from \"@assistant-ui/core\";\nimport type { MessageState } from \"@assistant-ui/core/store\";\nimport {\n RenderChildrenWithAccessor,\n useAuiEvent,\n useAuiState,\n} from \"@assistant-ui/store\";\nimport { MessageByIndexProvider } from \"@assistant-ui/core/react\";\n\ntype MessageComponents =\n | {\n Message: ComponentType;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage?: ComponentType | undefined;\n AssistantMessage?: ComponentType | undefined;\n SystemMessage?: ComponentType | undefined;\n }\n | {\n Message?: ComponentType | undefined;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage: ComponentType;\n AssistantMessage: ComponentType;\n SystemMessage?: ComponentType | undefined;\n };\n\ntype MessagesContent =\n | {\n /** @deprecated Use the children render function instead. */\n components: MessageComponents;\n children?: never;\n }\n | {\n children: (value: { message: MessageState }) => ReactNode;\n components?: never;\n };\n\nexport type ThreadMessagesFlatListProps = Omit<\n FlatListProps<ThreadMessage>,\n \"data\" | \"renderItem\" | \"children\"\n> &\n MessagesContent & {\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n history?:\n | {\n hasMore: boolean;\n isLoadingMore: boolean;\n loadMore: () => void;\n }\n | undefined;\n };\n\n/** @deprecated Use ThreadMessagesFlatListProps instead. */\nexport type ThreadMessagesProps = ThreadMessagesFlatListProps;\n\nconst DEFAULT_SYSTEM_MESSAGE = () => null;\nconst AT_BOTTOM_THRESHOLD = 4;\n\nconst useHistoryLoad = (\n history: ThreadMessagesFlatListProps[\"history\"],\n onStartReached: FlatListProps<ThreadMessage>[\"onStartReached\"],\n) => {\n const loadRequestedRef = useRef(false);\n const hasMore = history?.hasMore ?? false;\n const isLoadingMore = history?.isLoadingMore ?? false;\n\n // The latch is scoped to one commit so a no-op load cannot disable paging.\n useEffect(() => {\n loadRequestedRef.current = isLoadingMore;\n });\n\n const handleStartReached = useCallback<\n NonNullable<FlatListProps<ThreadMessage>[\"onStartReached\"]>\n >(\n (info) => {\n onStartReached?.(info);\n if (loadRequestedRef.current) return;\n loadRequestedRef.current = true;\n try {\n history?.loadMore();\n } catch (error) {\n loadRequestedRef.current = false;\n throw error;\n }\n },\n [history, onStartReached],\n );\n\n return {\n canLoadMore: hasMore && !isLoadingMore,\n handleStartReached,\n };\n};\n\nconst getComponent = (\n components: MessageComponents,\n role: ThreadMessage[\"role\"],\n isEditing: boolean,\n) => {\n switch (role) {\n case \"user\":\n if (isEditing) {\n return (\n components.UserEditComposer ??\n components.EditComposer ??\n components.UserMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return components.UserMessage ?? (components.Message as ComponentType);\n }\n case \"assistant\":\n if (isEditing) {\n return (\n components.AssistantEditComposer ??\n components.EditComposer ??\n components.AssistantMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return (\n components.AssistantMessage ?? (components.Message as ComponentType)\n );\n }\n case \"system\":\n if (isEditing) {\n return (\n components.SystemEditComposer ??\n components.EditComposer ??\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n } else {\n return (\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n }\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unknown message role: ${_exhaustiveCheck}`);\n }\n }\n};\n\nconst ThreadMessageComponent: FC<{ components: MessageComponents }> = ({\n components,\n}) => {\n const role = useAuiState((s) => s.message.role);\n const isEditing = useAuiState((s) => s.message.composer.isEditing);\n const Component = getComponent(components, role, isEditing);\n\n return <Component />;\n};\n\nconst ThreadMessageByIndex = memo(\n ({ index, components }: { index: number; components: MessageComponents }) => {\n return (\n <MessageByIndexProvider index={index}>\n <ThreadMessageComponent components={components} />\n </MessageByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index && prev.components === next.components,\n);\nThreadMessageByIndex.displayName = \"ThreadPrimitive.MessageByIndex\";\n\nconst ThreadMessageByChildren = memo(\n ({\n index,\n children,\n }: {\n index: number;\n children: (value: { message: MessageState }) => ReactNode;\n }) => {\n return (\n <MessageByIndexProvider index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) => aui.thread.message({ index }).getState()}\n >\n {(getItem) =>\n children({\n get message() {\n return getItem();\n },\n })\n }\n </RenderChildrenWithAccessor>\n </MessageByIndexProvider>\n );\n },\n (prev, next) => prev.index === next.index && prev.children === next.children,\n);\nThreadMessageByChildren.displayName = \"ThreadPrimitive.MessageByChildren\";\n\nconst setForwardedRef = <T,>(ref: ForwardedRef<T>, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n};\n\nconst useComposedFlatListRef = (\n forwardedRef: ForwardedRef<FlatList<ThreadMessage>>,\n) => {\n const flatListRef = useRef<FlatList<ThreadMessage> | null>(null);\n\n const setFlatListRef = useCallback(\n (node: FlatList<ThreadMessage> | null) => {\n flatListRef.current = node;\n setForwardedRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n return [flatListRef, setFlatListRef] as const;\n};\n\nconst useThreadMessagesFlatListAutoScroll = ({\n flatListRef,\n hasMessages,\n horizontal = false,\n autoScroll = true,\n scrollToBottomOnRunStart = true,\n scrollToBottomOnInitialize = true,\n scrollToBottomOnThreadSwitch = true,\n}: {\n flatListRef: RefObject<FlatList<ThreadMessage> | null>;\n hasMessages: boolean;\n horizontal?: boolean | null | undefined;\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n}) => {\n const metricsRef = useRef({\n contentHeight: 0,\n viewportHeight: 0,\n scrollY: 0,\n });\n const isAtBottomRef = useRef(true);\n const lastScrollEventOffsetRef = useRef(0);\n const initializeScrollRequestedRef = useRef(false);\n const contentSizeVersionRef = useRef(0);\n const pendingScrollToBottomRef = useRef<\n | false\n | {\n animated: boolean;\n minimumContentSizeVersion: number;\n }\n >(false);\n\n const updateIsAtBottom = useCallback(() => {\n const { contentHeight, scrollY, viewportHeight } = metricsRef.current;\n isAtBottomRef.current =\n contentHeight <= viewportHeight ||\n contentHeight - scrollY - viewportHeight <= AT_BOTTOM_THRESHOLD;\n }, []);\n\n // Commanding a scroll records the intended position immediately; the\n // native scroll echo is bridged and throttled, so waiting for it lets a\n // fast stream observe stale metrics and drop out of following.\n const scrollToBottom = useCallback(\n (animated: boolean) => {\n const { contentHeight, viewportHeight } = metricsRef.current;\n const offset = Math.max(0, contentHeight - viewportHeight);\n metricsRef.current.scrollY = offset;\n isAtBottomRef.current = true;\n flatListRef.current?.scrollToOffset({ offset, animated });\n },\n [flatListRef],\n );\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const wasAtBottom = isAtBottomRef.current;\n const previousViewportHeight = metricsRef.current.viewportHeight;\n const viewportHeight = horizontal\n ? event.nativeEvent.layout.width\n : event.nativeEvent.layout.height;\n metricsRef.current.viewportHeight = viewportHeight;\n updateIsAtBottom();\n const pending = pendingScrollToBottomRef.current;\n if (\n pending &&\n contentSizeVersionRef.current >= pending.minimumContentSizeVersion &&\n viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pending.animated);\n return;\n }\n if (!wasAtBottom) return;\n // Layout changes are never user gestures, so they must not unpin. Past\n // the first measurement, a viewport change while pinned re-commands the\n // bottom position, since no content-size event follows a bare keyboard\n // open or close.\n if (\n autoScroll &&\n previousViewportHeight !== 0 &&\n viewportHeight !== previousViewportHeight\n ) {\n scrollToBottom(pending ? pending.animated : false);\n } else {\n isAtBottomRef.current = true;\n }\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const { contentOffset, contentSize, layoutMeasurement } =\n event.nativeEvent;\n const scrollOffset = horizontal ? contentOffset.x : contentOffset.y;\n const previousEventOffset = lastScrollEventOffsetRef.current;\n const wasPinnedToBottom = isAtBottomRef.current;\n lastScrollEventOffsetRef.current = scrollOffset;\n metricsRef.current = {\n contentHeight: horizontal ? contentSize.width : contentSize.height,\n viewportHeight: horizontal\n ? layoutMeasurement.width\n : layoutMeasurement.height,\n scrollY: scrollOffset,\n };\n updateIsAtBottom();\n const upwardMove = scrollOffset < previousEventOffset;\n // Only a deliberate upward move unpins or cancels a pending scroll.\n // Gestures are detected echo-to-echo because a commanded scroll\n // optimistically moves the tracked position ahead of its ascending\n // animation echoes, and those echoes must not unpin mid-flight.\n if (wasPinnedToBottom && !upwardMove) {\n isAtBottomRef.current = true;\n }\n if (!isAtBottomRef.current && upwardMove) {\n pendingScrollToBottomRef.current = false;\n }\n },\n [horizontal, updateIsAtBottom],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n const metrics = metricsRef.current;\n const contentHeight = horizontal ? width : height;\n const previousContentHeight = metrics.contentHeight;\n const wasAtBottom = isAtBottomRef.current;\n if (contentHeight > 0) contentSizeVersionRef.current += 1;\n metrics.contentHeight = contentHeight;\n updateIsAtBottom();\n\n // Initialize and thread-switch requests are repeated after the list has\n // measured so the explicit bottom offset uses real content metrics.\n const pendingScroll = pendingScrollToBottomRef.current;\n if (\n pendingScroll &&\n contentSizeVersionRef.current >=\n pendingScroll.minimumContentSizeVersion &&\n metrics.viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pendingScroll.animated);\n return;\n }\n\n if (!autoScroll) return;\n if (!wasAtBottom) return;\n if (previousContentHeight === 0) return;\n if (contentHeight <= previousContentHeight) return;\n\n scrollToBottom(false);\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n useEffect(() => {\n if (!scrollToBottomOnInitialize) return;\n if (!hasMessages) {\n initializeScrollRequestedRef.current = false;\n return;\n }\n if (initializeScrollRequestedRef.current) return;\n\n initializeScrollRequestedRef.current = true;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: Math.max(1, contentSizeVersionRef.current),\n };\n scrollToBottom(false);\n }, [hasMessages, scrollToBottom, scrollToBottomOnInitialize]);\n\n useAuiEvent(\"thread.runStart\", () => {\n if (!scrollToBottomOnRunStart) return;\n pendingScrollToBottomRef.current = {\n animated: true,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(true);\n });\n\n useAuiEvent(\"threads.selectionChanged\", () => {\n if (!scrollToBottomOnThreadSwitch) return;\n initializeScrollRequestedRef.current = false;\n lastScrollEventOffsetRef.current = 0;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(false);\n });\n\n return {\n handleLayout,\n handleScroll,\n handleContentSizeChange,\n };\n};\n\nexport const ThreadMessagesFlatList = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesFlatListProps\n>(\n (\n {\n autoScroll,\n components,\n children,\n onContentSizeChange,\n onLayout,\n onScroll,\n onStartReached,\n onStartReachedThreshold,\n scrollEventThrottle,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n history,\n ...flatListProps\n },\n forwardedRef,\n ) => {\n const messages = useAuiState((s) => s.thread.messages);\n const [flatListRef, setFlatListRef] = useComposedFlatListRef(forwardedRef);\n const {\n handleContentSizeChange: handleAutoScrollContentSizeChange,\n handleLayout: handleAutoScrollLayout,\n handleScroll: handleAutoScrollScroll,\n } = useThreadMessagesFlatListAutoScroll({\n flatListRef,\n hasMessages: messages.length > 0,\n horizontal: flatListProps.horizontal,\n autoScroll,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n });\n\n const renderItem = useCallback(\n ({ index }: { item: ThreadMessage; index: number }) => {\n if (children) {\n return (\n <ThreadMessageByChildren index={index}>\n {children}\n </ThreadMessageByChildren>\n );\n }\n return <ThreadMessageByIndex index={index} components={components!} />;\n },\n [components, children],\n );\n\n const keyExtractor = useCallback((item: ThreadMessage) => item.id, []);\n\n const scrollTracking =\n (autoScroll ?? true) ||\n (scrollToBottomOnInitialize ?? true) ||\n (scrollToBottomOnRunStart ?? true) ||\n (scrollToBottomOnThreadSwitch ?? true);\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n handleAutoScrollLayout(event);\n onLayout?.(event);\n },\n [handleAutoScrollLayout, onLayout],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n handleAutoScrollScroll(event);\n onScroll?.(event);\n },\n [handleAutoScrollScroll, onScroll],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n handleAutoScrollContentSizeChange(width, height);\n onContentSizeChange?.(width, height);\n },\n [handleAutoScrollContentSizeChange, onContentSizeChange],\n );\n\n const { canLoadMore, handleStartReached } = useHistoryLoad(\n history,\n onStartReached,\n );\n\n return (\n <FlatList\n ref={setFlatListRef}\n data={messages as unknown as ThreadMessage[]}\n renderItem={renderItem}\n keyExtractor={keyExtractor}\n maintainVisibleContentPosition={{ minIndexForVisible: 0 }}\n {...(scrollTracking\n ? {\n onContentSizeChange: handleContentSizeChange,\n onLayout: handleLayout,\n onScroll: handleScroll,\n scrollEventThrottle: scrollEventThrottle ?? 16,\n }\n : {\n ...(onContentSizeChange && { onContentSizeChange }),\n ...(onLayout && { onLayout }),\n ...(onScroll && { onScroll }),\n ...(scrollEventThrottle !== undefined && { scrollEventThrottle }),\n })}\n {...(history\n ? {\n ...(canLoadMore\n ? { onStartReached: handleStartReached }\n : onStartReached\n ? { onStartReached }\n : {}),\n onStartReachedThreshold: onStartReachedThreshold ?? 1,\n }\n : {\n ...(onStartReached && { onStartReached }),\n ...(onStartReachedThreshold !== undefined && {\n onStartReachedThreshold,\n }),\n })}\n {...flatListProps}\n />\n );\n },\n);\nThreadMessagesFlatList.displayName = \"ThreadPrimitive.MessagesFlatList\";\n\n/** @deprecated Use ThreadPrimitive.MessagesFlatList instead. */\nexport const ThreadMessages = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesProps\n>(\n (\n {\n autoScroll = false,\n scrollToBottomOnInitialize = false,\n scrollToBottomOnRunStart = false,\n scrollToBottomOnThreadSwitch = false,\n ...props\n },\n ref,\n ) => (\n <ThreadMessagesFlatList\n ref={ref}\n autoScroll={autoScroll}\n scrollToBottomOnInitialize={scrollToBottomOnInitialize}\n scrollToBottomOnRunStart={scrollToBottomOnRunStart}\n scrollToBottomOnThreadSwitch={scrollToBottomOnThreadSwitch}\n {...props}\n />\n ),\n);\nThreadMessages.displayName = \"ThreadPrimitive.Messages\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadRoot.js","names":["ReactNode","View","ViewProps","ThreadRootProps","children","ThreadRoot","t0","$","_c","viewProps","t1"],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type ThreadRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const ThreadRoot = ({ children, ...viewProps }: ThreadRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,cAAaC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAA2CC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EAC7DC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
1
|
+
{"version":3,"file":"ThreadRoot.js","names":["ReactNode","View","ViewProps","ThreadRootProps","children","ThreadRoot","t0","$","_c","viewProps","t1","_c"],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type ThreadRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const ThreadRoot = ({ children, ...viewProps }: ThreadRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,cAAaC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAA2CC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EAC7DC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadSuggestion.js","names":["Pressable","PressableProps","useSuggestionTrigger","ThreadSuggestionProps","Omit","children","prompt","send","clearComposer","ThreadSuggestion","t0","$","_c","disabledProp","pressableProps","t1","disabled","undefined","t2","trigger","t3","t4"],"sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useSuggestionTrigger } from \"@assistant-ui/core/react\";\n\nexport type ThreadSuggestionProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n /** The suggestion prompt. */\n prompt: string;\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion.\n */\n send?: boolean | undefined;\n /**\n * Whether to clear the composer. When send is false, determines if composer\n * text is replaced (true) or appended (false).\n * @default true\n */\n clearComposer?: boolean | undefined;\n};\n\nexport const ThreadSuggestion = ({\n children,\n prompt,\n send,\n clearComposer = true,\n disabled: disabledProp,\n ...pressableProps\n}: ThreadSuggestionProps) => {\n const { trigger, disabled } = useSuggestionTrigger({\n prompt,\n send,\n clearComposer,\n });\n\n return (\n <Pressable\n onPress={trigger}\n disabled={disabledProp ?? disabled}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAuBA,MAAaS,oBAAmBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAR;CAAA,IAAAC;CAAA,IAAAQ;CAAA,IAAAJ,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAL,UAAAC,QAAAC,MAAAC,eAAAO,IAAAC,UAAAH,cAAA,GAAAC,kBAAAJ;EAOTC,EAAA,KAAAD;EAAAC,EAAA,KAAAN;EAAAM,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAL;EAAAK,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;CAAA,OAAA;EAAAV,WAAAM,EAAA;EAAAE,eAAAF,EAAA;EAAAG,iBAAAH,EAAA;EAAAL,SAAAK,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,KAAAJ,EAAA;CAAA;CAHtB,MAAAH,gBAAAO,OAAAE,KAAAA,IAAA,OAAAF;CAAoB,IAAAG;CAAA,IAAAP,EAAA,OAAAH,iBAAAG,EAAA,OAAAL,UAAAK,EAAA,OAAAJ,MAAA;EAI+BW,KAAA;GAAAZ;GAAAC;GAAAC;EAInD;EAACG,EAAA,KAAAH;EAAAG,EAAA,KAAAL;EAAAK,EAAA,KAAAJ;EAAAI,EAAA,MAAAO;CAAA,OAAAA,KAAAP,EAAA;CAJD,MAAA,EAAAQ,SAAAH,aAA8Bd,qBAAqBgB,EAIlD;CAKa,MAAAE,KAAAP,gBAAAG;CAAwB,IAAAK;CAAA,IAAAV,EAAA,QAAAN,YAAAM,EAAA,QAAAG,kBAAAH,EAAA,QAAAS,MAAAT,EAAA,QAAAQ,SAAA;EAFpCE,KAAA,oBAAC,WAAD;GACWF,SAAAA;GACC,UAAAC;GACQ,mBAAA;GAAQ,GACtBN;GAEHT;EANO,CAAA;EAOEM,EAAA,MAAAN;EAAAM,EAAA,MAAAG;EAAAH,EAAA,MAAAS;EAAAT,EAAA,MAAAQ;EAAAR,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAPZU;AAOY"}
|
|
1
|
+
{"version":3,"file":"ThreadSuggestion.js","names":["Pressable","PressableProps","useSuggestionTrigger","ThreadSuggestionProps","Omit","children","prompt","send","clearComposer","ThreadSuggestion","t0","$","_c","disabledProp","pressableProps","t1","disabled","undefined","t2","trigger","t3","t4","_c"],"sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useSuggestionTrigger } from \"@assistant-ui/core/react\";\n\nexport type ThreadSuggestionProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n /** The suggestion prompt. */\n prompt: string;\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion.\n */\n send?: boolean | undefined;\n /**\n * Whether to clear the composer. When send is false, determines if composer\n * text is replaced (true) or appended (false).\n * @default true\n */\n clearComposer?: boolean | undefined;\n};\n\nexport const ThreadSuggestion = ({\n children,\n prompt,\n send,\n clearComposer = true,\n disabled: disabledProp,\n ...pressableProps\n}: ThreadSuggestionProps) => {\n const { trigger, disabled } = useSuggestionTrigger({\n prompt,\n send,\n clearComposer,\n });\n\n return (\n <Pressable\n onPress={trigger}\n disabled={disabledProp ?? disabled}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAuBA,MAAaS,oBAAmBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAC;CAAA,IAAAR;CAAA,IAAAC;CAAA,IAAAQ;CAAA,IAAAJ,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAL,UAAAC,QAAAC,MAAAC,eAAAO,IAAAC,UAAAH,cAAA,GAAAC,kBAAAJ;EAOTC,EAAA,KAAAD;EAAAC,EAAA,KAAAN;EAAAM,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAL;EAAAK,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;CAAA,OAAA;EAAAV,WAAAM,EAAA;EAAAE,eAAAF,EAAA;EAAAG,iBAAAH,EAAA;EAAAL,SAAAK,EAAA;EAAAJ,OAAAI,EAAA;EAAAI,KAAAJ,EAAA;CAAA;CAHtB,MAAAH,gBAAAO,OAAAE,KAAAA,IAAA,OAAAF;CAAoB,IAAAG;CAAA,IAAAP,EAAA,OAAAH,iBAAAG,EAAA,OAAAL,UAAAK,EAAA,OAAAJ,MAAA;EAI+BW,KAAA;GAAAZ;GAAAC;GAAAC;EAInD;EAACG,EAAA,KAAAH;EAAAG,EAAA,KAAAL;EAAAK,EAAA,KAAAJ;EAAAI,EAAA,MAAAO;CAAA,OAAAA,KAAAP,EAAA;CAJD,MAAA,EAAAQ,SAAAH,aAA8Bd,qBAAqBgB,EAIlD;CAKa,MAAAE,KAAAP,gBAAAG;CAAwB,IAAAK;CAAA,IAAAV,EAAA,QAAAN,YAAAM,EAAA,QAAAG,kBAAAH,EAAA,QAAAS,MAAAT,EAAA,QAAAQ,SAAA;EAFpCE,KAAA,oBAAC,WAAD;GACWF,SAAAA;GACC,UAAAC;GACQ,mBAAA;GAAQ,GACtBN;GAEHT;EANO,CAAA;EAOEM,EAAA,MAAAN;EAAAM,EAAA,MAAAG;EAAAH,EAAA,MAAAS;EAAAT,EAAA,MAAAQ;EAAAR,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAPZU;AAOY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItems.js","names":["ReactElement","useCallback","FlatList","FlatListProps","useAuiState","ThreadListItemByIndexProvider","ThreadListItemsProps","Omit","renderItem","props","threadId","index","ThreadListItems","t0","$","_c","flatListProps","threadIds","_temp","t1","t2","item","renderFlatListItem","keyExtractor","_temp2","t3","s","threads","item_0"],"sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"sourcesContent":["import { type ReactElement, useCallback } from \"react\";\nimport { FlatList, type FlatListProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { ThreadListItemByIndexProvider } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemsProps = Omit<\n FlatListProps<string>,\n \"data\" | \"renderItem\"\n> & {\n renderItem: (props: { threadId: string; index: number }) => ReactElement;\n};\n\nexport const ThreadListItems = ({\n renderItem,\n ...flatListProps\n}: ThreadListItemsProps) => {\n const threadIds = useAuiState((s) => s.threads.threadIds);\n\n const renderFlatListItem = useCallback(\n ({ item, index }: { item: string; index: number }) => {\n return (\n <ThreadListItemByIndexProvider index={index} archived={false}>\n {renderItem({ threadId: item, index })}\n </ThreadListItemByIndexProvider>\n );\n },\n [renderItem],\n );\n\n const keyExtractor = useCallback((item: string) => item, []);\n\n return (\n <FlatList\n data={threadIds as string[]}\n renderItem={renderFlatListItem}\n keyExtractor={keyExtractor}\n {...flatListProps}\n />\n );\n};\n"],"mappings":";;;;;;;AAYA,MAAaY,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAR;CAAA,IAAAM,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAL,YAAA,GAAAQ,iBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAN;CAAA,OAAA;EAAAQ,gBAAAF,EAAA;EAAAN,aAAAM,EAAA;CAAA;CACrB,MAAAG,YAAkBb,YAAYc,KAA0B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAN,YAAA;EAGxDW,MAAAC,OAAA;GAAC,MAAA,EAAAC,MAAAV,UAAAS;GAAgD,OAE7C,oBAAC,+BAAD;IAAsCT;IAAiB,UAAA;IACpDH,UAAAA,WAAW;KAAAE,UAAYW;KAAIV;IAAQ,CAAC;GADT,CAAA;EAEE;EAEnCG,EAAA,KAAAN;EAAAM,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAPH,MAAAQ,qBAA2BH;CAW3B,MAAAI,eAAqBC;CAIX,MAAAJ,KAAAH;CAAqB,IAAAQ;CAAA,IAAAX,EAAA,OAAAE,iBAAAF,EAAA,OAAAQ,sBAAAR,EAAA,OAAAM,IAAA;EAD7BK,KAAA,oBAAC,UAAD;GACQ,MAAAL;GACME,YAAAA;GACEC;GAAY,GACtBP;EAAa,CAAA;EACjBF,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;EAAAR,EAAA,KAAAM;EAAAN,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,OALFW;AAKE;AAzByB,SAAAP,MAAAQ,GAAA;CAAA,OAIQA,EAACC,QAAQV;AAAU;AAJ3B,SAAAO,OAAAI,QAAA;CAAA,OAiBsBP;AAAI"}
|
|
1
|
+
{"version":3,"file":"ThreadListItems.js","names":["ReactElement","useCallback","FlatList","FlatListProps","useAuiState","ThreadListItemByIndexProvider","ThreadListItemsProps","Omit","renderItem","props","threadId","index","ThreadListItems","t0","$","_c","flatListProps","threadIds","_temp","t1","t2","item","renderFlatListItem","keyExtractor","_temp2","t3","s","threads","item_0","_c"],"sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"sourcesContent":["import { type ReactElement, useCallback } from \"react\";\nimport { FlatList, type FlatListProps } from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { ThreadListItemByIndexProvider } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemsProps = Omit<\n FlatListProps<string>,\n \"data\" | \"renderItem\"\n> & {\n renderItem: (props: { threadId: string; index: number }) => ReactElement;\n};\n\nexport const ThreadListItems = ({\n renderItem,\n ...flatListProps\n}: ThreadListItemsProps) => {\n const threadIds = useAuiState((s) => s.threads.threadIds);\n\n const renderFlatListItem = useCallback(\n ({ item, index }: { item: string; index: number }) => {\n return (\n <ThreadListItemByIndexProvider index={index} archived={false}>\n {renderItem({ threadId: item, index })}\n </ThreadListItemByIndexProvider>\n );\n },\n [renderItem],\n );\n\n const keyExtractor = useCallback((item: string) => item, []);\n\n return (\n <FlatList\n data={threadIds as string[]}\n renderItem={renderFlatListItem}\n keyExtractor={keyExtractor}\n {...flatListProps}\n />\n );\n};\n"],"mappings":";;;;;;;AAYA,MAAaY,mBAAkBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAR;CAAA,IAAAM,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAL,YAAA,GAAAQ,iBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAN;CAAA,OAAA;EAAAQ,gBAAAF,EAAA;EAAAN,aAAAM,EAAA;CAAA;CACrB,MAAAG,YAAkBb,YAAYc,KAA0B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAN,YAAA;EAGxDW,MAAAC,OAAA;GAAC,MAAA,EAAAC,MAAAV,UAAAS;GAAgD,OAE7C,oBAAC,+BAAD;IAAsCT;IAAiB,UAAA;IACpDH,UAAAA,WAAW;KAAAE,UAAYW;KAAIV;IAAQ,CAAC;GADT,CAAA;EAEE;EAEnCG,EAAA,KAAAN;EAAAM,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAPH,MAAAQ,qBAA2BH;CAW3B,MAAAI,eAAqBC;CAIX,MAAAJ,KAAAH;CAAqB,IAAAQ;CAAA,IAAAX,EAAA,OAAAE,iBAAAF,EAAA,OAAAQ,sBAAAR,EAAA,OAAAM,IAAA;EAD7BK,KAAA,oBAAC,UAAD;GACQ,MAAAL;GACME,YAAAA;GACEC;GAAY,GACtBP;EAAa,CAAA;EACjBF,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;EAAAR,EAAA,KAAAM;EAAAN,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,OALFW;AAKE;AAzByB,SAAAP,MAAAQ,GAAA;CAAA,OAIQA,EAACC,QAAQV;AAAU;AAJ3B,SAAAO,OAAAI,QAAA;CAAA,OAiBsBP;AAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListNew.js","names":["ReactNode","Platform","Pressable","PressableProps","PressableStateCallbackType","useAuiState","useThreadListNew","ThreadListNewProps","Omit","children","state","isActive","ThreadListNew","t0","$","_c","accessibilityState","pressableProps","_temp","switchToNewThread","selected","t1","t2","OS","undefined","t3","t4","s","threads","newThreadId","mainThreadId"],"sources":["../../../src/primitives/threadList/ThreadListNew.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n Platform,\n Pressable,\n type PressableProps,\n type PressableStateCallbackType,\n} from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useThreadListNew } from \"@assistant-ui/core/react\";\n\nexport type ThreadListNewProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children:\n | ReactNode\n | ((\n state: PressableStateCallbackType & { isActive: boolean },\n ) => ReactNode);\n};\n\nexport const ThreadListNew = ({\n children,\n accessibilityState,\n ...pressableProps\n}: ThreadListNewProps) => {\n const isActive = useAuiState(\n (s) => s.threads.newThreadId === s.threads.mainThreadId,\n );\n const { switchToNewThread } = useThreadListNew();\n const selected = accessibilityState?.selected ?? isActive;\n\n return (\n <Pressable\n onPress={switchToNewThread}\n accessibilityRole=\"button\"\n accessibilityState={{ ...accessibilityState, selected }}\n aria-current={Platform.OS === \"web\" && selected ? \"true\" : undefined}\n {...pressableProps}\n >\n {typeof children === \"function\"\n ? (state) => children({ ...state, isActive })\n : children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAqBA,MAAaY,iBAAgBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAJ,UAAAO,oBAAA,GAAAC,kBAAAJ;EAITC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAL;EAAAK,EAAA,KAAAG;CAAA,OAAA;EAAAD,qBAAAF,EAAA;EAAAL,WAAAK,EAAA;EAAAG,iBAAAH,EAAA;CAAA;CACnB,MAAAH,WAAiBN,YACfa,KACF;CACA,MAAA,EAAAC,sBAA8Bb,iBAAiB;CAC/C,MAAAc,WAAiBJ,oBAAkBI,YAAlBT;CAAyC,IAAAU;CAAA,IAAAP,EAAA,OAAAE,sBAAAF,EAAA,OAAAM,UAAA;EAMlCC,KAAA;GAAA,GAAKL;GAAkBI;EAAW;EAACN,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CACzC,MAAAQ,KAAArB,SAAQsB,OAAQ,SAAhBH,WAAA,SAAAI,KAAAA;CAAsD,IAAAC;CAAA,IAAAX,EAAA,OAAAL,YAAAK,EAAA,OAAAH,UAAA;EAGnEc,KAAA,OAAOhB,aAAa,cAApBC,UACcD,SAAS;GAAA,GAAKC;GAAKC;EAAW,CAAC,IAD7CF;EAEWK,EAAA,KAAAL;EAAAK,EAAA,KAAAH;EAAAG,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAG,kBAAAH,EAAA,QAAAK,qBAAAL,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAW,IAAA;EATdC,KAAA,oBAAC,WAAD;GACWP,SAAAA;GACS,mBAAA;GACE,oBAAAE;GACN,gBAAAC;GAAsD,GAChEL;GAEHQ,UAAAA;EAPO,CAAA;EAUEX,EAAA,MAAAG;EAAAH,EAAA,MAAAK;EAAAL,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAW;EAAAX,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAVZY;AAUY;AAtBa,SAAAR,MAAAS,GAAA;CAAA,OAMlBA,EAACC,QAAQC,gBAAiBF,EAACC,QAAQE;AAAa"}
|
|
1
|
+
{"version":3,"file":"ThreadListNew.js","names":["ReactNode","Platform","Pressable","PressableProps","PressableStateCallbackType","useAuiState","useThreadListNew","ThreadListNewProps","Omit","children","state","isActive","ThreadListNew","t0","$","_c","accessibilityState","pressableProps","_temp","switchToNewThread","selected","t1","t2","OS","undefined","t3","t4","s","threads","newThreadId","mainThreadId","_c"],"sources":["../../../src/primitives/threadList/ThreadListNew.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n Platform,\n Pressable,\n type PressableProps,\n type PressableStateCallbackType,\n} from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useThreadListNew } from \"@assistant-ui/core/react\";\n\nexport type ThreadListNewProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children:\n | ReactNode\n | ((\n state: PressableStateCallbackType & { isActive: boolean },\n ) => ReactNode);\n};\n\nexport const ThreadListNew = ({\n children,\n accessibilityState,\n ...pressableProps\n}: ThreadListNewProps) => {\n const isActive = useAuiState(\n (s) => s.threads.newThreadId === s.threads.mainThreadId,\n );\n const { switchToNewThread } = useThreadListNew();\n const selected = accessibilityState?.selected ?? isActive;\n\n return (\n <Pressable\n onPress={switchToNewThread}\n accessibilityRole=\"button\"\n accessibilityState={{ ...accessibilityState, selected }}\n aria-current={Platform.OS === \"web\" && selected ? \"true\" : undefined}\n {...pressableProps}\n >\n {typeof children === \"function\"\n ? (state) => children({ ...state, isActive })\n : children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAqBA,MAAaY,iBAAgBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAJ,UAAAO,oBAAA,GAAAC,kBAAAJ;EAITC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAL;EAAAK,EAAA,KAAAG;CAAA,OAAA;EAAAD,qBAAAF,EAAA;EAAAL,WAAAK,EAAA;EAAAG,iBAAAH,EAAA;CAAA;CACnB,MAAAH,WAAiBN,YACfa,KACF;CACA,MAAA,EAAAC,sBAA8Bb,iBAAiB;CAC/C,MAAAc,WAAiBJ,oBAAkBI,YAAlBT;CAAyC,IAAAU;CAAA,IAAAP,EAAA,OAAAE,sBAAAF,EAAA,OAAAM,UAAA;EAMlCC,KAAA;GAAA,GAAKL;GAAkBI;EAAW;EAACN,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CACzC,MAAAQ,KAAArB,SAAQsB,OAAQ,SAAhBH,WAAA,SAAAI,KAAAA;CAAsD,IAAAC;CAAA,IAAAX,EAAA,OAAAL,YAAAK,EAAA,OAAAH,UAAA;EAGnEc,KAAA,OAAOhB,aAAa,cAApBC,UACcD,SAAS;GAAA,GAAKC;GAAKC;EAAW,CAAC,IAD7CF;EAEWK,EAAA,KAAAL;EAAAK,EAAA,KAAAH;EAAAG,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAG,kBAAAH,EAAA,QAAAK,qBAAAL,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAW,IAAA;EATdC,KAAA,oBAAC,WAAD;GACWP,SAAAA;GACS,mBAAA;GACE,oBAAAE;GACN,gBAAAC;GAAsD,GAChEL;GAEHQ,UAAAA;EAPO,CAAA;EAUEX,EAAA,MAAAG;EAAAH,EAAA,MAAAK;EAAAL,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAW;EAAAX,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAVZY;AAUY;AAtBa,SAAAR,MAAAS,GAAA;CAAA,OAMlBA,EAACC,QAAQC,gBAAiBF,EAACC,QAAQE;AAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListRoot.js","names":["ReactNode","View","ViewProps","ThreadListRootProps","children","ThreadListRoot","t0","$","_c","viewProps","t1"],"sources":["../../../src/primitives/threadList/ThreadListRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type ThreadListRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const ThreadListRoot = ({\n children,\n ...viewProps\n}: ThreadListRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,kBAAiBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EACbC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
1
|
+
{"version":3,"file":"ThreadListRoot.js","names":["ReactNode","View","ViewProps","ThreadListRootProps","children","ThreadListRoot","t0","$","_c","viewProps","t1","_c"],"sources":["../../../src/primitives/threadList/ThreadListRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type ThreadListRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const ThreadListRoot = ({\n children,\n ...viewProps\n}: ThreadListRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,kBAAiBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EACbC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemArchive.js","names":["Pressable","PressableProps","useThreadListItemArchive","ThreadListItemArchiveProps","Omit","children","ThreadListItemArchive","t0","$","_c","pressableProps","archive","t1"],"sources":["../../../src/primitives/threadListItem/ThreadListItemArchive.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useThreadListItemArchive } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemArchiveProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const ThreadListItemArchive = ({\n children,\n ...pressableProps\n}: ThreadListItemArchiveProps) => {\n const { archive } = useThreadListItemArchive();\n\n return (\n <Pressable onPress={archive} accessibilityRole=\"button\" {...pressableProps}>\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAUA,MAAaM,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CAC3B,MAAA,EAAAG,YAAoBT,yBAAyB;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAG,WAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,gBAAA;EAG7CE,KAAA,oBAAC,WAAD;GAAoBD,SAAAA;GAA2B,mBAAA;GAAQ,GAAKD;GACzDL;EADO,CAAA;EAEEG,EAAA,KAAAG;EAAAH,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAFZI;AAEY"}
|
|
1
|
+
{"version":3,"file":"ThreadListItemArchive.js","names":["Pressable","PressableProps","useThreadListItemArchive","ThreadListItemArchiveProps","Omit","children","ThreadListItemArchive","t0","$","_c","pressableProps","archive","t1","_c"],"sources":["../../../src/primitives/threadListItem/ThreadListItemArchive.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useThreadListItemArchive } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemArchiveProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const ThreadListItemArchive = ({\n children,\n ...pressableProps\n}: ThreadListItemArchiveProps) => {\n const { archive } = useThreadListItemArchive();\n\n return (\n <Pressable onPress={archive} accessibilityRole=\"button\" {...pressableProps}>\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAUA,MAAaM,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CAC3B,MAAA,EAAAG,YAAoBT,yBAAyB;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAG,WAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,gBAAA;EAG7CE,KAAA,oBAAC,WAAD;GAAoBD,SAAAA;GAA2B,mBAAA;GAAQ,GAAKD;GACzDL;EADO,CAAA;EAEEG,EAAA,KAAAG;EAAAH,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OAFZI;AAEY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemDelete.js","names":["Pressable","PressableProps","useThreadListItemDelete","ThreadListItemDeleteProps","Omit","children","ThreadListItemDelete","t0","$","_c","pressableProps","delete","deleteThread","t1"],"sources":["../../../src/primitives/threadListItem/ThreadListItemDelete.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useThreadListItemDelete } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemDeleteProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const ThreadListItemDelete = ({\n children,\n ...pressableProps\n}: ThreadListItemDeleteProps) => {\n const { delete: deleteThread } = useThreadListItemDelete();\n\n return (\n <Pressable\n onPress={deleteThread}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAUA,MAAaM,wBAAuBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CAC1B,MAAA,EAAAG,QAAAC,iBAAiCV,wBAAwB;CAAE,IAAAW;CAAA,IAAAL,EAAA,OAAAH,YAAAG,EAAA,OAAAI,gBAAAJ,EAAA,OAAAE,gBAAA;EAGzDG,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBF;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAI;EAAAJ,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OANZK;AAMY"}
|
|
1
|
+
{"version":3,"file":"ThreadListItemDelete.js","names":["Pressable","PressableProps","useThreadListItemDelete","ThreadListItemDeleteProps","Omit","children","ThreadListItemDelete","t0","$","_c","pressableProps","delete","deleteThread","t1","_c"],"sources":["../../../src/primitives/threadListItem/ThreadListItemDelete.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useThreadListItemDelete } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemDeleteProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const ThreadListItemDelete = ({\n children,\n ...pressableProps\n}: ThreadListItemDeleteProps) => {\n const { delete: deleteThread } = useThreadListItemDelete();\n\n return (\n <Pressable\n onPress={deleteThread}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAUA,MAAaM,wBAAuBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CAC1B,MAAA,EAAAG,QAAAC,iBAAiCV,wBAAwB;CAAE,IAAAW;CAAA,IAAAL,EAAA,OAAAH,YAAAG,EAAA,OAAAI,gBAAAJ,EAAA,OAAAE,gBAAA;EAGzDG,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBF;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAI;EAAAJ,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OANZK;AAMY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemRoot.js","names":["ReactNode","View","ViewProps","ThreadListItemRootProps","children","ThreadListItemRoot","t0","$","_c","viewProps","t1"],"sources":["../../../src/primitives/threadListItem/ThreadListItemRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type ThreadListItemRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const ThreadListItemRoot = ({\n children,\n ...viewProps\n}: ThreadListItemRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,sBAAqBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EACjBC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
1
|
+
{"version":3,"file":"ThreadListItemRoot.js","names":["ReactNode","View","ViewProps","ThreadListItemRootProps","children","ThreadListItemRoot","t0","$","_c","viewProps","t1","_c"],"sources":["../../../src/primitives/threadListItem/ThreadListItemRoot.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { View, type ViewProps } from \"react-native\";\n\nexport type ThreadListItemRootProps = ViewProps & {\n children: ReactNode;\n};\n\nexport const ThreadListItemRoot = ({\n children,\n ...viewProps\n}: ThreadListItemRootProps) => {\n return <View {...viewProps}>{children}</View>;\n};\n"],"mappings":";;;;AAOA,MAAaK,sBAAqBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,aAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,YAAAF,EAAA;CAAA;CAAA,IAAAG;CAAA,IAAAH,EAAA,OAAAH,YAAAG,EAAA,OAAAE,WAAA;EACjBC,KAAA,oBAAC,MAAD;GAAK,GAAKD;GAAYL;EAAjB,CAAA;EAAiCG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,OAAtCG;AAAsC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemTrigger.js","names":["ReactNode","Platform","Pressable","PressableProps","PressableStateCallbackType","useAuiState","useThreadListItemTrigger","ThreadListItemTriggerProps","Omit","children","state","isActive","ThreadListItemTrigger","t0","$","_c","accessibilityState","pressableProps","_temp","switchTo","selected","t1","t2","OS","undefined","t3","t4","s","threads","mainThreadId","threadListItem","id"],"sources":["../../../src/primitives/threadListItem/ThreadListItemTrigger.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n Platform,\n Pressable,\n type PressableProps,\n type PressableStateCallbackType,\n} from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useThreadListItemTrigger } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemTriggerProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children:\n | ReactNode\n | ((\n state: PressableStateCallbackType & { isActive: boolean },\n ) => ReactNode);\n};\n\nexport const ThreadListItemTrigger = ({\n children,\n accessibilityState,\n ...pressableProps\n}: ThreadListItemTriggerProps) => {\n const isActive = useAuiState(\n (s) => s.threads.mainThreadId === s.threadListItem.id,\n );\n const { switchTo } = useThreadListItemTrigger();\n const selected = accessibilityState?.selected ?? isActive;\n\n return (\n <Pressable\n onPress={switchTo}\n accessibilityRole=\"button\"\n accessibilityState={{ ...accessibilityState, selected }}\n aria-current={Platform.OS === \"web\" && selected ? \"true\" : undefined}\n {...pressableProps}\n >\n {typeof children === \"function\"\n ? (state) => children({ ...state, isActive })\n : children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAqBA,MAAaY,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAJ,UAAAO,oBAAA,GAAAC,kBAAAJ;EAITC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAL;EAAAK,EAAA,KAAAG;CAAA,OAAA;EAAAD,qBAAAF,EAAA;EAAAL,WAAAK,EAAA;EAAAG,iBAAAH,EAAA;CAAA;CAC3B,MAAAH,WAAiBN,YACfa,KACF;CACA,MAAA,EAAAC,aAAqBb,yBAAyB;CAC9C,MAAAc,WAAiBJ,oBAAkBI,YAAlBT;CAAyC,IAAAU;CAAA,IAAAP,EAAA,OAAAE,sBAAAF,EAAA,OAAAM,UAAA;EAMlCC,KAAA;GAAA,GAAKL;GAAkBI;EAAW;EAACN,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CACzC,MAAAQ,KAAArB,SAAQsB,OAAQ,SAAhBH,WAAA,SAAAI,KAAAA;CAAsD,IAAAC;CAAA,IAAAX,EAAA,OAAAL,YAAAK,EAAA,OAAAH,UAAA;EAGnEc,KAAA,OAAOhB,aAAa,cAApBC,UACcD,SAAS;GAAA,GAAKC;GAAKC;EAAW,CAAC,IAD7CF;EAEWK,EAAA,KAAAL;EAAAK,EAAA,KAAAH;EAAAG,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAG,kBAAAH,EAAA,QAAAK,YAAAL,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAW,IAAA;EATdC,KAAA,oBAAC,WAAD;GACWP,SAAAA;GACS,mBAAA;GACE,oBAAAE;GACN,gBAAAC;GAAsD,GAChEL;GAEHQ,UAAAA;EAPO,CAAA;EAUEX,EAAA,MAAAG;EAAAH,EAAA,MAAAK;EAAAL,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAW;EAAAX,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAVZY;AAUY;AAtBqB,SAAAR,MAAAS,GAAA;CAAA,OAM1BA,EAACC,QAAQC,iBAAkBF,EAACG,eAAeC;AAAG"}
|
|
1
|
+
{"version":3,"file":"ThreadListItemTrigger.js","names":["ReactNode","Platform","Pressable","PressableProps","PressableStateCallbackType","useAuiState","useThreadListItemTrigger","ThreadListItemTriggerProps","Omit","children","state","isActive","ThreadListItemTrigger","t0","$","_c","accessibilityState","pressableProps","_temp","switchTo","selected","t1","t2","OS","undefined","t3","t4","s","threads","mainThreadId","threadListItem","id","_c"],"sources":["../../../src/primitives/threadListItem/ThreadListItemTrigger.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport {\n Platform,\n Pressable,\n type PressableProps,\n type PressableStateCallbackType,\n} from \"react-native\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useThreadListItemTrigger } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemTriggerProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children:\n | ReactNode\n | ((\n state: PressableStateCallbackType & { isActive: boolean },\n ) => ReactNode);\n};\n\nexport const ThreadListItemTrigger = ({\n children,\n accessibilityState,\n ...pressableProps\n}: ThreadListItemTriggerProps) => {\n const isActive = useAuiState(\n (s) => s.threads.mainThreadId === s.threadListItem.id,\n );\n const { switchTo } = useThreadListItemTrigger();\n const selected = accessibilityState?.selected ?? isActive;\n\n return (\n <Pressable\n onPress={switchTo}\n accessibilityRole=\"button\"\n accessibilityState={{ ...accessibilityState, selected }}\n aria-current={Platform.OS === \"web\" && selected ? \"true\" : undefined}\n {...pressableProps}\n >\n {typeof children === \"function\"\n ? (state) => children({ ...state, isActive })\n : children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;;AAqBA,MAAaY,yBAAwBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAP;CAAA,IAAAQ;CAAA,IAAAH,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAJ,UAAAO,oBAAA,GAAAC,kBAAAJ;EAITC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;EAAAF,EAAA,KAAAL;EAAAK,EAAA,KAAAG;CAAA,OAAA;EAAAD,qBAAAF,EAAA;EAAAL,WAAAK,EAAA;EAAAG,iBAAAH,EAAA;CAAA;CAC3B,MAAAH,WAAiBN,YACfa,KACF;CACA,MAAA,EAAAC,aAAqBb,yBAAyB;CAC9C,MAAAc,WAAiBJ,oBAAkBI,YAAlBT;CAAyC,IAAAU;CAAA,IAAAP,EAAA,OAAAE,sBAAAF,EAAA,OAAAM,UAAA;EAMlCC,KAAA;GAAA,GAAKL;GAAkBI;EAAW;EAACN,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CACzC,MAAAQ,KAAArB,SAAQsB,OAAQ,SAAhBH,WAAA,SAAAI,KAAAA;CAAsD,IAAAC;CAAA,IAAAX,EAAA,OAAAL,YAAAK,EAAA,OAAAH,UAAA;EAGnEc,KAAA,OAAOhB,aAAa,cAApBC,UACcD,SAAS;GAAA,GAAKC;GAAKC;EAAW,CAAC,IAD7CF;EAEWK,EAAA,KAAAL;EAAAK,EAAA,KAAAH;EAAAG,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAG,kBAAAH,EAAA,QAAAK,YAAAL,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAW,IAAA;EATdC,KAAA,oBAAC,WAAD;GACWP,SAAAA;GACS,mBAAA;GACE,oBAAAE;GACN,gBAAAC;GAAsD,GAChEL;GAEHQ,UAAAA;EAPO,CAAA;EAUEX,EAAA,MAAAG;EAAAH,EAAA,MAAAK;EAAAL,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAW;EAAAX,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAVZY;AAUY;AAtBqB,SAAAR,MAAAS,GAAA;CAAA,OAM1BA,EAACC,QAAQC,iBAAkBF,EAACG,eAAeC;AAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemUnarchive.js","names":["Pressable","PressableProps","useThreadListItemUnarchive","ThreadListItemUnarchiveProps","Omit","children","ThreadListItemUnarchive","t0","$","_c","pressableProps","unarchive","t1"],"sources":["../../../src/primitives/threadListItem/ThreadListItemUnarchive.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useThreadListItemUnarchive } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemUnarchiveProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const ThreadListItemUnarchive = ({\n children,\n ...pressableProps\n}: ThreadListItemUnarchiveProps) => {\n const { unarchive } = useThreadListItemUnarchive();\n\n return (\n <Pressable\n onPress={unarchive}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAUA,MAAaM,2BAA0BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CAC7B,MAAA,EAAAG,cAAsBT,2BAA2B;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAH,YAAAG,EAAA,OAAAE,kBAAAF,EAAA,OAAAG,WAAA;EAGjDC,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBD;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OANZI;AAMY"}
|
|
1
|
+
{"version":3,"file":"ThreadListItemUnarchive.js","names":["Pressable","PressableProps","useThreadListItemUnarchive","ThreadListItemUnarchiveProps","Omit","children","ThreadListItemUnarchive","t0","$","_c","pressableProps","unarchive","t1","_c"],"sources":["../../../src/primitives/threadListItem/ThreadListItemUnarchive.tsx"],"sourcesContent":["import { Pressable, type PressableProps } from \"react-native\";\nimport { useThreadListItemUnarchive } from \"@assistant-ui/core/react\";\n\nexport type ThreadListItemUnarchiveProps = Omit<\n PressableProps,\n \"onPress\" | \"children\"\n> & {\n children: PressableProps[\"children\"];\n};\n\nexport const ThreadListItemUnarchive = ({\n children,\n ...pressableProps\n}: ThreadListItemUnarchiveProps) => {\n const { unarchive } = useThreadListItemUnarchive();\n\n return (\n <Pressable\n onPress={unarchive}\n accessibilityRole=\"button\"\n {...pressableProps}\n >\n {children}\n </Pressable>\n );\n};\n"],"mappings":";;;;;AAUA,MAAaM,2BAA0BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAJ;CAAA,IAAAK;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAF,UAAA,GAAAK,kBAAAH;EAGTC,EAAA,KAAAD;EAAAC,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAA;EAAAL,WAAAG,EAAA;EAAAE,iBAAAF,EAAA;CAAA;CAC7B,MAAA,EAAAG,cAAsBT,2BAA2B;CAAE,IAAAU;CAAA,IAAAJ,EAAA,OAAAH,YAAAG,EAAA,OAAAE,kBAAAF,EAAA,OAAAG,WAAA;EAGjDC,KAAA,oBAAC,WAAD;GACWD,SAAAA;GACS,mBAAA;GAAQ,GACtBD;GAEHL;EALO,CAAA;EAMEG,EAAA,KAAAH;EAAAG,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAAA,OANZI;AAMY"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assistant-ui/react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.45",
|
|
4
4
|
"description": "React Native bindings for assistant-ui",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"assistant",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
],
|
|
32
32
|
"sideEffects": false,
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@assistant-ui/core": "^0.3.
|
|
35
|
-
"@assistant-ui/store": "^0.3.
|
|
36
|
-
"@assistant-ui/tap": "^0.9.
|
|
37
|
-
"assistant-cloud": "^0.2.
|
|
38
|
-
"assistant-stream": "^0.3.
|
|
34
|
+
"@assistant-ui/core": "^0.3.23",
|
|
35
|
+
"@assistant-ui/store": "^0.3.17",
|
|
36
|
+
"@assistant-ui/tap": "^0.9.21",
|
|
37
|
+
"assistant-cloud": "^0.2.5",
|
|
38
|
+
"assistant-stream": "^0.3.47"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@types/react": "*",
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@assistant-ui/x-buildutils": "0.0.
|
|
51
|
+
"@assistant-ui/x-buildutils": "0.0.30",
|
|
52
|
+
"@assistant-ui/x-react18": "0.0.0",
|
|
52
53
|
"@babel/core": "^7.29.7",
|
|
53
54
|
"@types/react": "^19.3.0",
|
|
54
55
|
"@types/react-dom": "^19.3.0",
|
|
@@ -56,8 +57,8 @@
|
|
|
56
57
|
"react": "^19.3.0",
|
|
57
58
|
"react-dom": "^19.3.0",
|
|
58
59
|
"react-native": "^0.87.1",
|
|
59
|
-
"react-native-web": "^0.21.
|
|
60
|
-
"vitest": "^5.0.
|
|
60
|
+
"react-native-web": "^0.21.3",
|
|
61
|
+
"vitest": "^5.0.3"
|
|
61
62
|
},
|
|
62
63
|
"publishConfig": {
|
|
63
64
|
"access": "public",
|
|
@@ -76,6 +77,8 @@
|
|
|
76
77
|
"build": "aui-build",
|
|
77
78
|
"test": "vitest run",
|
|
78
79
|
"typecheck": "tsc --noEmit",
|
|
80
|
+
"test:peer-react18": "vitest run --config vitest.peer-react18.config.ts",
|
|
81
|
+
"test:types:peer-react18": "aui-react18-types",
|
|
79
82
|
"test:watch": "vitest"
|
|
80
83
|
}
|
|
81
84
|
}
|