@assistant-ui/react 0.7.1 → 0.7.3
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/dist/api/ContentPartRuntime.d.ts +5 -1
- package/dist/api/ContentPartRuntime.d.ts.map +1 -1
- package/dist/api/ContentPartRuntime.js.map +1 -1
- package/dist/api/ContentPartRuntime.mjs.map +1 -1
- package/dist/api/RuntimePathTypes.d.ts +0 -3
- package/dist/api/RuntimePathTypes.d.ts.map +1 -1
- package/dist/api/RuntimePathTypes.js.map +1 -1
- package/dist/api/ThreadListRuntime.d.ts +0 -5
- package/dist/api/ThreadListRuntime.d.ts.map +1 -1
- package/dist/api/ThreadListRuntime.js +4 -10
- package/dist/api/ThreadListRuntime.js.map +1 -1
- package/dist/api/ThreadListRuntime.mjs +4 -10
- package/dist/api/ThreadListRuntime.mjs.map +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.d.ts.map +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.js +6 -3
- package/dist/runtimes/edge/converters/fromCoreMessage.js.map +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.mjs +6 -3
- package/dist/runtimes/edge/converters/fromCoreMessage.mjs.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +3 -2
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +3 -2
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts +5 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js +18 -6
- package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs +18 -6
- package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.d.ts +4 -4
- package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +1 -0
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +1 -0
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
- package/dist/types/AssistantTypes.d.ts +60 -51
- package/dist/types/AssistantTypes.d.ts.map +1 -1
- package/dist/types/AssistantTypes.js.map +1 -1
- package/dist/ui/{attachment.d.ts → attachment-ui.d.ts} +3 -3
- package/dist/ui/attachment-ui.d.ts.map +1 -0
- package/dist/ui/{attachment.js → attachment-ui.js} +9 -9
- package/dist/ui/attachment-ui.js.map +1 -0
- package/dist/ui/{attachment.mjs → attachment-ui.mjs} +6 -6
- package/dist/ui/attachment-ui.mjs.map +1 -0
- package/dist/ui/composer.js +2 -2
- package/dist/ui/composer.js.map +1 -1
- package/dist/ui/composer.mjs +1 -1
- package/dist/ui/composer.mjs.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -2
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +1 -1
- package/dist/ui/index.mjs.map +1 -1
- package/dist/ui/user-message.js +2 -2
- package/dist/ui/user-message.js.map +1 -1
- package/dist/ui/user-message.mjs +1 -1
- package/dist/ui/user-message.mjs.map +1 -1
- package/dist/utils/smooth/SmoothContext.d.ts +42 -42
- package/package.json +3 -3
- package/src/api/ContentPartRuntime.ts +6 -2
- package/src/api/RuntimePathTypes.ts +0 -4
- package/src/api/ThreadListRuntime.ts +4 -16
- package/src/runtimes/edge/converters/fromCoreMessage.ts +4 -0
- package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +5 -2
- package/src/runtimes/external-store/ThreadMessageLike.tsx +21 -4
- package/src/runtimes/local/ChatModelAdapter.tsx +4 -4
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +1 -0
- package/src/types/AssistantTypes.ts +65 -52
- package/src/ui/{attachment.tsx → attachment-ui.tsx} +3 -3
- package/src/ui/composer.tsx +1 -1
- package/src/ui/index.ts +1 -1
- package/src/ui/user-message.tsx +1 -1
- package/dist/ui/attachment.d.ts.map +0 -1
- package/dist/ui/attachment.js.map +0 -1
- package/dist/ui/attachment.mjs.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/ui/attachment-ui.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n forwardRef,\n PropsWithChildren,\n useEffect,\n useState,\n type FC,\n} from \"react\";\nimport { CircleXIcon, FileIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { AttachmentPrimitive } from \"../primitives\";\nimport { useAttachment } from \"../context/react/AttachmentContext\";\nimport {\n AvatarImage,\n AvatarRoot,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"./base\";\nimport { Dialog, DialogTrigger, DialogContent } from \"./base/dialog\";\nimport { AvatarFallback } from \"@radix-ui/react-avatar\";\nimport { useShallow } from \"zustand/shallow\";\nimport { DialogTitle } from \"@radix-ui/react-dialog\";\n\nconst AttachmentRoot = withDefaults(AttachmentPrimitive.Root, {\n className: \"aui-attachment-root\",\n});\n\nAttachmentRoot.displayName = \"AttachmentRoot\";\n\nconst useFileSrc = (file: File | undefined) => {\n const [src, setSrc] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!file) {\n setSrc(undefined);\n return;\n }\n\n const objectUrl = URL.createObjectURL(file);\n setSrc(objectUrl);\n\n return () => {\n URL.revokeObjectURL(objectUrl);\n };\n }, [file]);\n\n return src;\n};\n\nconst useAttachmentSrc = () => {\n const { file, src } = useAttachment(\n useShallow((a): { file?: File; src?: string } => {\n if (a.type !== \"image\") return {};\n if (a.file) return { file: a.file };\n const src = a.content?.filter((c) => c.type === \"image\")[0]?.image;\n if (!src) return {};\n return { src };\n }),\n );\n\n return useFileSrc(file) ?? src;\n};\n\ntype AttachmentPreviewProps = {\n src: string;\n};\n\nconst AttachmentPreview: FC<AttachmentPreviewProps> = ({ src }) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n return (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={src}\n style={{\n width: \"auto\",\n height: \"auto\",\n maxWidth: \"75dvh\",\n maxHeight: \"75dvh\",\n display: isLoaded ? \"block\" : \"none\",\n overflow: \"clip\",\n }}\n onLoad={() => setIsLoaded(true)}\n alt=\"Image Preview\"\n />\n );\n};\n\nconst AttachmentPreviewDialog: FC<PropsWithChildren> = ({ children }) => {\n const src = useAttachmentSrc();\n\n if (!src) return children;\n\n return (\n <Dialog>\n <DialogTrigger className=\"aui-attachment-preview-trigger\" asChild>\n {children}\n </DialogTrigger>\n <DialogContent>\n <DialogTitle className=\"aui-sr-only\">\n Image Attachment Preview\n </DialogTitle>\n <AttachmentPreview src={src} />\n </DialogContent>\n </Dialog>\n );\n};\n\nconst AttachmentThumb: FC = () => {\n const isImage = useAttachment((a) => a.type === \"image\");\n const src = useAttachmentSrc();\n return (\n <AvatarRoot className=\"aui-attachment-thumb\">\n <AvatarFallback delayMs={isImage ? 200 : 0}>\n <FileIcon />\n </AvatarFallback>\n <AvatarImage src={src}></AvatarImage>\n </AvatarRoot>\n );\n};\n\nconst AttachmentUI: FC = () => {\n const canRemove = useAttachment((a) => a.source !== \"message\");\n const typeLabel = useAttachment((a) => {\n const type = a.type;\n switch (type) {\n case \"image\":\n return \"Image\";\n case \"document\":\n return \"Document\";\n case \"file\":\n return \"File\";\n default:\n const _exhaustiveCheck: never = type;\n throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);\n }\n });\n return (\n <Tooltip>\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <AttachmentRoot>\n <AttachmentThumb />\n <div className=\"aui-attachment-text\">\n <p className=\"aui-attachment-name\">\n <AttachmentPrimitive.Name />\n </p>\n <p className=\"aui-attachment-type\">{typeLabel}</p>\n </div>\n {canRemove && <AttachmentRemove />}\n </AttachmentRoot>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n );\n};\n\nAttachmentUI.displayName = \"Attachment\";\n\nnamespace AttachmentRemove {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AttachmentRemove = forwardRef<\n AttachmentRemove.Element,\n AttachmentRemove.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { removeAttachment: { tooltip = \"Remove file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <AttachmentPrimitive.Remove asChild>\n <TooltipIconButton\n tooltip={tooltip}\n className=\"aui-attachment-remove\"\n side=\"top\"\n {...props}\n ref={ref}\n >\n {props.children ?? <CircleXIcon />}\n </TooltipIconButton>\n </AttachmentPrimitive.Remove>\n );\n});\n\nAttachmentRemove.displayName = \"AttachmentRemove\";\n\nconst exports = {\n Root: AttachmentRoot,\n Remove: AttachmentRemove,\n};\n\nexport default Object.assign(AttachmentUI, exports) as typeof AttachmentUI &\n typeof exports;\n"],"mappings":"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","names":["src"]}
|
package/dist/ui/composer.js
CHANGED
@@ -42,7 +42,7 @@ var import_tooltip_icon_button = require("./base/tooltip-icon-button.cjs");
|
|
42
42
|
var import_CircleStopIcon = require("./base/CircleStopIcon.cjs");
|
43
43
|
var import_primitives = require("../primitives/index.cjs");
|
44
44
|
var import_ThreadContext = require("../context/react/ThreadContext.cjs");
|
45
|
-
var
|
45
|
+
var import_attachment_ui = __toESM(require("./attachment-ui.cjs"));
|
46
46
|
var import_jsx_runtime = require("react/jsx-runtime");
|
47
47
|
var useAllowAttachments = (ensureCapability = false) => {
|
48
48
|
const { composer: { allowAttachments = true } = {} } = (0, import_thread_config.useThreadConfig)();
|
@@ -88,7 +88,7 @@ var ComposerAttachments = ({ components }) => {
|
|
88
88
|
{
|
89
89
|
components: {
|
90
90
|
...components,
|
91
|
-
Attachment: components?.Attachment ??
|
91
|
+
Attachment: components?.Attachment ?? import_attachment_ui.default
|
92
92
|
}
|
93
93
|
}
|
94
94
|
) });
|
package/dist/ui/composer.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/ui/composer.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport { PaperclipIcon, SendHorizontalIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { CircleStopIcon } from \"./base/CircleStopIcon\";\nimport { ComposerPrimitive, ThreadPrimitive } from \"../primitives\";\nimport { useThread } from \"../context/react/ThreadContext\";\nimport Attachment from \"./attachment\";\n\nconst useAllowAttachments = (ensureCapability = false) => {\n const { composer: { allowAttachments = true } = {} } = useThreadConfig();\n const attachmentsSupported = useThread((t) => t.capabilities.attachments);\n return allowAttachments && (!ensureCapability || attachmentsSupported);\n};\n\nconst Composer: FC = () => {\n const allowAttachments = useAllowAttachments(true);\n return (\n <ComposerRoot>\n {allowAttachments && <ComposerAttachments />}\n {allowAttachments && <ComposerAddAttachment />}\n <ComposerInput autoFocus />\n <ComposerAction />\n </ComposerRoot>\n );\n};\n\nComposer.displayName = \"Composer\";\n\nconst ComposerRoot = withDefaults(ComposerPrimitive.Root, {\n className: \"aui-composer-root\",\n});\n\nComposerRoot.displayName = \"ComposerRoot\";\n\nconst ComposerInputStyled = withDefaults(ComposerPrimitive.Input, {\n rows: 1,\n autoFocus: true,\n className: \"aui-composer-input\",\n});\n\nnamespace ComposerInput {\n export type Element = HTMLTextAreaElement;\n export type Props = ComponentPropsWithoutRef<typeof ComposerInputStyled>;\n}\n\nconst ComposerInput = forwardRef<ComposerInput.Element, ComposerInput.Props>(\n (props, ref) => {\n const {\n strings: {\n composer: { input: { placeholder = \"Write a message...\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n return (\n <ComposerInputStyled placeholder={placeholder} {...props} ref={ref} />\n );\n },\n);\n\nComposerInput.displayName = \"ComposerInput\";\n\nconst ComposerAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-composer-attachments\",\n});\n\nnamespace ComposerAttachments {\n export type Props = Partial<ComposerPrimitive.Attachments.Props>;\n}\n\nconst ComposerAttachments: FC<ComposerAttachments.Props> = ({ components }) => {\n return (\n <ComposerAttachmentsContainer>\n <ComposerPrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </ComposerAttachmentsContainer>\n );\n};\n\nconst ComposerAttachButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-attach\",\n});\n\nnamespace ComposerAddAttachment {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerAddAttachment = forwardRef<\n ComposerAddAttachment.Element,\n ComposerAddAttachment.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { addAttachment: { tooltip = \"Attach file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowAttachments = useAllowAttachments();\n return (\n <ComposerPrimitive.AddAttachment disabled={!allowAttachments} asChild>\n <ComposerAttachButton\n tooltip={tooltip}\n variant={\"ghost\"}\n {...props}\n ref={ref}\n >\n {props.children ?? <PaperclipIcon />}\n </ComposerAttachButton>\n </ComposerPrimitive.AddAttachment>\n );\n});\n\nComposerAddAttachment.displayName = \"ComposerAddAttachment\";\n\nconst useAllowCancel = () => {\n const cancelSupported = useThread((t) => t.capabilities.cancel);\n return cancelSupported;\n};\n\nconst ComposerAction: FC = () => {\n const allowCancel = useAllowCancel();\n if (!allowCancel) return <ComposerSend />;\n return (\n <>\n <ThreadPrimitive.If running={false}>\n <ComposerSend />\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerCancel />\n </ThreadPrimitive.If>\n </>\n );\n};\n\nComposerAction.displayName = \"ComposerAction\";\n\nconst ComposerSendButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-send\",\n});\n\nnamespace ComposerSend {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerSend = forwardRef<ComposerSend.Element, ComposerSend.Props>(\n (props, ref) => {\n const {\n strings: { composer: { send: { tooltip = \"Send\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Send asChild>\n <ComposerSendButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <SendHorizontalIcon />}\n </ComposerSendButton>\n </ComposerPrimitive.Send>\n );\n },\n);\n\nComposerSend.displayName = \"ComposerSend\";\n\nconst ComposerCancelButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-cancel\",\n});\n\nnamespace ComposerCancel {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerCancel = forwardRef<ComposerCancel.Element, ComposerCancel.Props>(\n (props, ref) => {\n const {\n strings: { composer: { cancel: { tooltip = \"Cancel\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Cancel asChild>\n <ComposerCancelButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <CircleStopIcon />}\n </ComposerCancelButton>\n </ComposerPrimitive.Cancel>\n );\n },\n);\n\nComposerCancel.displayName = \"ComposerCancel\";\n\nconst exports = {\n Root: ComposerRoot,\n Input: ComposerInput,\n Action: ComposerAction,\n Send: ComposerSend,\n Cancel: ComposerCancel,\n AddAttachment: ComposerAddAttachment,\n Attachments: ComposerAttachments,\n};\n\nexport default Object.assign(Composer, exports) as typeof Composer &\n typeof exports;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA8D;AAE9D,0BAAkD;AAClD,0BAA6B;AAC7B,2BAAgC;AAChC,iCAGO;AACP,4BAA+B;AAC/B,wBAAmD;AACnD,2BAA0B;AAC1B,
|
1
|
+
{"version":3,"sources":["../../src/ui/composer.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport { PaperclipIcon, SendHorizontalIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { CircleStopIcon } from \"./base/CircleStopIcon\";\nimport { ComposerPrimitive, ThreadPrimitive } from \"../primitives\";\nimport { useThread } from \"../context/react/ThreadContext\";\nimport Attachment from \"./attachment-ui\";\n\nconst useAllowAttachments = (ensureCapability = false) => {\n const { composer: { allowAttachments = true } = {} } = useThreadConfig();\n const attachmentsSupported = useThread((t) => t.capabilities.attachments);\n return allowAttachments && (!ensureCapability || attachmentsSupported);\n};\n\nconst Composer: FC = () => {\n const allowAttachments = useAllowAttachments(true);\n return (\n <ComposerRoot>\n {allowAttachments && <ComposerAttachments />}\n {allowAttachments && <ComposerAddAttachment />}\n <ComposerInput autoFocus />\n <ComposerAction />\n </ComposerRoot>\n );\n};\n\nComposer.displayName = \"Composer\";\n\nconst ComposerRoot = withDefaults(ComposerPrimitive.Root, {\n className: \"aui-composer-root\",\n});\n\nComposerRoot.displayName = \"ComposerRoot\";\n\nconst ComposerInputStyled = withDefaults(ComposerPrimitive.Input, {\n rows: 1,\n autoFocus: true,\n className: \"aui-composer-input\",\n});\n\nnamespace ComposerInput {\n export type Element = HTMLTextAreaElement;\n export type Props = ComponentPropsWithoutRef<typeof ComposerInputStyled>;\n}\n\nconst ComposerInput = forwardRef<ComposerInput.Element, ComposerInput.Props>(\n (props, ref) => {\n const {\n strings: {\n composer: { input: { placeholder = \"Write a message...\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n return (\n <ComposerInputStyled placeholder={placeholder} {...props} ref={ref} />\n );\n },\n);\n\nComposerInput.displayName = \"ComposerInput\";\n\nconst ComposerAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-composer-attachments\",\n});\n\nnamespace ComposerAttachments {\n export type Props = Partial<ComposerPrimitive.Attachments.Props>;\n}\n\nconst ComposerAttachments: FC<ComposerAttachments.Props> = ({ components }) => {\n return (\n <ComposerAttachmentsContainer>\n <ComposerPrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </ComposerAttachmentsContainer>\n );\n};\n\nconst ComposerAttachButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-attach\",\n});\n\nnamespace ComposerAddAttachment {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerAddAttachment = forwardRef<\n ComposerAddAttachment.Element,\n ComposerAddAttachment.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { addAttachment: { tooltip = \"Attach file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowAttachments = useAllowAttachments();\n return (\n <ComposerPrimitive.AddAttachment disabled={!allowAttachments} asChild>\n <ComposerAttachButton\n tooltip={tooltip}\n variant={\"ghost\"}\n {...props}\n ref={ref}\n >\n {props.children ?? <PaperclipIcon />}\n </ComposerAttachButton>\n </ComposerPrimitive.AddAttachment>\n );\n});\n\nComposerAddAttachment.displayName = \"ComposerAddAttachment\";\n\nconst useAllowCancel = () => {\n const cancelSupported = useThread((t) => t.capabilities.cancel);\n return cancelSupported;\n};\n\nconst ComposerAction: FC = () => {\n const allowCancel = useAllowCancel();\n if (!allowCancel) return <ComposerSend />;\n return (\n <>\n <ThreadPrimitive.If running={false}>\n <ComposerSend />\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerCancel />\n </ThreadPrimitive.If>\n </>\n );\n};\n\nComposerAction.displayName = \"ComposerAction\";\n\nconst ComposerSendButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-send\",\n});\n\nnamespace ComposerSend {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerSend = forwardRef<ComposerSend.Element, ComposerSend.Props>(\n (props, ref) => {\n const {\n strings: { composer: { send: { tooltip = \"Send\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Send asChild>\n <ComposerSendButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <SendHorizontalIcon />}\n </ComposerSendButton>\n </ComposerPrimitive.Send>\n );\n },\n);\n\nComposerSend.displayName = \"ComposerSend\";\n\nconst ComposerCancelButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-cancel\",\n});\n\nnamespace ComposerCancel {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerCancel = forwardRef<ComposerCancel.Element, ComposerCancel.Props>(\n (props, ref) => {\n const {\n strings: { composer: { cancel: { tooltip = \"Cancel\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Cancel asChild>\n <ComposerCancelButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <CircleStopIcon />}\n </ComposerCancelButton>\n </ComposerPrimitive.Cancel>\n );\n },\n);\n\nComposerCancel.displayName = \"ComposerCancel\";\n\nconst exports = {\n Root: ComposerRoot,\n Input: ComposerInput,\n Action: ComposerAction,\n Send: ComposerSend,\n Cancel: ComposerCancel,\n AddAttachment: ComposerAddAttachment,\n Attachments: ComposerAttachments,\n};\n\nexport default Object.assign(Composer, exports) as typeof Composer &\n typeof exports;\n"],"mappings":"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","names":["Attachment","exports"]}
|
package/dist/ui/composer.mjs
CHANGED
@@ -11,7 +11,7 @@ import {
|
|
11
11
|
import { CircleStopIcon } from "./base/CircleStopIcon.mjs";
|
12
12
|
import { ComposerPrimitive, ThreadPrimitive } from "../primitives/index.mjs";
|
13
13
|
import { useThread } from "../context/react/ThreadContext.mjs";
|
14
|
-
import Attachment from "./attachment.mjs";
|
14
|
+
import Attachment from "./attachment-ui.mjs";
|
15
15
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
16
16
|
var useAllowAttachments = (ensureCapability = false) => {
|
17
17
|
const { composer: { allowAttachments = true } = {} } = useThreadConfig();
|
package/dist/ui/composer.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/ui/composer.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport { PaperclipIcon, SendHorizontalIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { CircleStopIcon } from \"./base/CircleStopIcon\";\nimport { ComposerPrimitive, ThreadPrimitive } from \"../primitives\";\nimport { useThread } from \"../context/react/ThreadContext\";\nimport Attachment from \"./attachment\";\n\nconst useAllowAttachments = (ensureCapability = false) => {\n const { composer: { allowAttachments = true } = {} } = useThreadConfig();\n const attachmentsSupported = useThread((t) => t.capabilities.attachments);\n return allowAttachments && (!ensureCapability || attachmentsSupported);\n};\n\nconst Composer: FC = () => {\n const allowAttachments = useAllowAttachments(true);\n return (\n <ComposerRoot>\n {allowAttachments && <ComposerAttachments />}\n {allowAttachments && <ComposerAddAttachment />}\n <ComposerInput autoFocus />\n <ComposerAction />\n </ComposerRoot>\n );\n};\n\nComposer.displayName = \"Composer\";\n\nconst ComposerRoot = withDefaults(ComposerPrimitive.Root, {\n className: \"aui-composer-root\",\n});\n\nComposerRoot.displayName = \"ComposerRoot\";\n\nconst ComposerInputStyled = withDefaults(ComposerPrimitive.Input, {\n rows: 1,\n autoFocus: true,\n className: \"aui-composer-input\",\n});\n\nnamespace ComposerInput {\n export type Element = HTMLTextAreaElement;\n export type Props = ComponentPropsWithoutRef<typeof ComposerInputStyled>;\n}\n\nconst ComposerInput = forwardRef<ComposerInput.Element, ComposerInput.Props>(\n (props, ref) => {\n const {\n strings: {\n composer: { input: { placeholder = \"Write a message...\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n return (\n <ComposerInputStyled placeholder={placeholder} {...props} ref={ref} />\n );\n },\n);\n\nComposerInput.displayName = \"ComposerInput\";\n\nconst ComposerAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-composer-attachments\",\n});\n\nnamespace ComposerAttachments {\n export type Props = Partial<ComposerPrimitive.Attachments.Props>;\n}\n\nconst ComposerAttachments: FC<ComposerAttachments.Props> = ({ components }) => {\n return (\n <ComposerAttachmentsContainer>\n <ComposerPrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </ComposerAttachmentsContainer>\n );\n};\n\nconst ComposerAttachButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-attach\",\n});\n\nnamespace ComposerAddAttachment {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerAddAttachment = forwardRef<\n ComposerAddAttachment.Element,\n ComposerAddAttachment.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { addAttachment: { tooltip = \"Attach file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowAttachments = useAllowAttachments();\n return (\n <ComposerPrimitive.AddAttachment disabled={!allowAttachments} asChild>\n <ComposerAttachButton\n tooltip={tooltip}\n variant={\"ghost\"}\n {...props}\n ref={ref}\n >\n {props.children ?? <PaperclipIcon />}\n </ComposerAttachButton>\n </ComposerPrimitive.AddAttachment>\n );\n});\n\nComposerAddAttachment.displayName = \"ComposerAddAttachment\";\n\nconst useAllowCancel = () => {\n const cancelSupported = useThread((t) => t.capabilities.cancel);\n return cancelSupported;\n};\n\nconst ComposerAction: FC = () => {\n const allowCancel = useAllowCancel();\n if (!allowCancel) return <ComposerSend />;\n return (\n <>\n <ThreadPrimitive.If running={false}>\n <ComposerSend />\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerCancel />\n </ThreadPrimitive.If>\n </>\n );\n};\n\nComposerAction.displayName = \"ComposerAction\";\n\nconst ComposerSendButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-send\",\n});\n\nnamespace ComposerSend {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerSend = forwardRef<ComposerSend.Element, ComposerSend.Props>(\n (props, ref) => {\n const {\n strings: { composer: { send: { tooltip = \"Send\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Send asChild>\n <ComposerSendButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <SendHorizontalIcon />}\n </ComposerSendButton>\n </ComposerPrimitive.Send>\n );\n },\n);\n\nComposerSend.displayName = \"ComposerSend\";\n\nconst ComposerCancelButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-cancel\",\n});\n\nnamespace ComposerCancel {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerCancel = forwardRef<ComposerCancel.Element, ComposerCancel.Props>(\n (props, ref) => {\n const {\n strings: { composer: { cancel: { tooltip = \"Cancel\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Cancel asChild>\n <ComposerCancelButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <CircleStopIcon />}\n </ComposerCancelButton>\n </ComposerPrimitive.Cancel>\n );\n },\n);\n\nComposerCancel.displayName = \"ComposerCancel\";\n\nconst exports = {\n Root: ComposerRoot,\n Input: ComposerInput,\n Action: ComposerAction,\n Send: ComposerSend,\n Cancel: ComposerCancel,\n AddAttachment: ComposerAddAttachment,\n Attachments: ComposerAttachments,\n};\n\nexport default Object.assign(Composer, exports) as typeof Composer &\n typeof exports;\n"],"mappings":"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","names":[]}
|
1
|
+
{"version":3,"sources":["../../src/ui/composer.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport { PaperclipIcon, SendHorizontalIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { CircleStopIcon } from \"./base/CircleStopIcon\";\nimport { ComposerPrimitive, ThreadPrimitive } from \"../primitives\";\nimport { useThread } from \"../context/react/ThreadContext\";\nimport Attachment from \"./attachment-ui\";\n\nconst useAllowAttachments = (ensureCapability = false) => {\n const { composer: { allowAttachments = true } = {} } = useThreadConfig();\n const attachmentsSupported = useThread((t) => t.capabilities.attachments);\n return allowAttachments && (!ensureCapability || attachmentsSupported);\n};\n\nconst Composer: FC = () => {\n const allowAttachments = useAllowAttachments(true);\n return (\n <ComposerRoot>\n {allowAttachments && <ComposerAttachments />}\n {allowAttachments && <ComposerAddAttachment />}\n <ComposerInput autoFocus />\n <ComposerAction />\n </ComposerRoot>\n );\n};\n\nComposer.displayName = \"Composer\";\n\nconst ComposerRoot = withDefaults(ComposerPrimitive.Root, {\n className: \"aui-composer-root\",\n});\n\nComposerRoot.displayName = \"ComposerRoot\";\n\nconst ComposerInputStyled = withDefaults(ComposerPrimitive.Input, {\n rows: 1,\n autoFocus: true,\n className: \"aui-composer-input\",\n});\n\nnamespace ComposerInput {\n export type Element = HTMLTextAreaElement;\n export type Props = ComponentPropsWithoutRef<typeof ComposerInputStyled>;\n}\n\nconst ComposerInput = forwardRef<ComposerInput.Element, ComposerInput.Props>(\n (props, ref) => {\n const {\n strings: {\n composer: { input: { placeholder = \"Write a message...\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n return (\n <ComposerInputStyled placeholder={placeholder} {...props} ref={ref} />\n );\n },\n);\n\nComposerInput.displayName = \"ComposerInput\";\n\nconst ComposerAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-composer-attachments\",\n});\n\nnamespace ComposerAttachments {\n export type Props = Partial<ComposerPrimitive.Attachments.Props>;\n}\n\nconst ComposerAttachments: FC<ComposerAttachments.Props> = ({ components }) => {\n return (\n <ComposerAttachmentsContainer>\n <ComposerPrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </ComposerAttachmentsContainer>\n );\n};\n\nconst ComposerAttachButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-attach\",\n});\n\nnamespace ComposerAddAttachment {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerAddAttachment = forwardRef<\n ComposerAddAttachment.Element,\n ComposerAddAttachment.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { addAttachment: { tooltip = \"Attach file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowAttachments = useAllowAttachments();\n return (\n <ComposerPrimitive.AddAttachment disabled={!allowAttachments} asChild>\n <ComposerAttachButton\n tooltip={tooltip}\n variant={\"ghost\"}\n {...props}\n ref={ref}\n >\n {props.children ?? <PaperclipIcon />}\n </ComposerAttachButton>\n </ComposerPrimitive.AddAttachment>\n );\n});\n\nComposerAddAttachment.displayName = \"ComposerAddAttachment\";\n\nconst useAllowCancel = () => {\n const cancelSupported = useThread((t) => t.capabilities.cancel);\n return cancelSupported;\n};\n\nconst ComposerAction: FC = () => {\n const allowCancel = useAllowCancel();\n if (!allowCancel) return <ComposerSend />;\n return (\n <>\n <ThreadPrimitive.If running={false}>\n <ComposerSend />\n </ThreadPrimitive.If>\n <ThreadPrimitive.If running>\n <ComposerCancel />\n </ThreadPrimitive.If>\n </>\n );\n};\n\nComposerAction.displayName = \"ComposerAction\";\n\nconst ComposerSendButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-send\",\n});\n\nnamespace ComposerSend {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerSend = forwardRef<ComposerSend.Element, ComposerSend.Props>(\n (props, ref) => {\n const {\n strings: { composer: { send: { tooltip = \"Send\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Send asChild>\n <ComposerSendButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <SendHorizontalIcon />}\n </ComposerSendButton>\n </ComposerPrimitive.Send>\n );\n },\n);\n\nComposerSend.displayName = \"ComposerSend\";\n\nconst ComposerCancelButton = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-composer-cancel\",\n});\n\nnamespace ComposerCancel {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst ComposerCancel = forwardRef<ComposerCancel.Element, ComposerCancel.Props>(\n (props, ref) => {\n const {\n strings: { composer: { cancel: { tooltip = \"Cancel\" } = {} } = {} } = {},\n } = useThreadConfig();\n return (\n <ComposerPrimitive.Cancel asChild>\n <ComposerCancelButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <CircleStopIcon />}\n </ComposerCancelButton>\n </ComposerPrimitive.Cancel>\n );\n },\n);\n\nComposerCancel.displayName = \"ComposerCancel\";\n\nconst exports = {\n Root: ComposerRoot,\n Input: ComposerInput,\n Action: ComposerAction,\n Send: ComposerSend,\n Cancel: ComposerCancel,\n AddAttachment: ComposerAddAttachment,\n Attachments: ComposerAttachments,\n};\n\nexport default Object.assign(Composer, exports) as typeof Composer &\n typeof exports;\n"],"mappings":"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","names":[]}
|
package/dist/ui/index.d.ts
CHANGED
@@ -4,7 +4,7 @@ export { default as AssistantMessage } from "./assistant-message";
|
|
4
4
|
export { default as AssistantModal } from "./assistant-modal";
|
5
5
|
export { default as BranchPicker } from "./branch-picker";
|
6
6
|
export { default as Composer } from "./composer";
|
7
|
-
export { default as AttachmentUI, } from "./attachment";
|
7
|
+
export { default as AttachmentUI, } from "./attachment-ui";
|
8
8
|
export { default as EditComposer } from "./edit-composer";
|
9
9
|
export { default as Thread } from "./thread";
|
10
10
|
export { default as UserMessage } from "./user-message";
|
package/dist/ui/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EACL,OAAO,IAAI,YAAY,GACxB,MAAM,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EACL,OAAO,IAAI,YAAY,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/ui/index.js
CHANGED
@@ -33,7 +33,7 @@ __export(ui_exports, {
|
|
33
33
|
AssistantActionBar: () => import_assistant_action_bar.default,
|
34
34
|
AssistantMessage: () => import_assistant_message.default,
|
35
35
|
AssistantModal: () => import_assistant_modal.default,
|
36
|
-
AttachmentUI: () =>
|
36
|
+
AttachmentUI: () => import_attachment_ui.default,
|
37
37
|
BranchPicker: () => import_branch_picker.default,
|
38
38
|
Composer: () => import_composer.default,
|
39
39
|
ContentPart: () => import_content_part.default,
|
@@ -52,7 +52,7 @@ var import_assistant_message = __toESM(require("./assistant-message.cjs"));
|
|
52
52
|
var import_assistant_modal = __toESM(require("./assistant-modal.cjs"));
|
53
53
|
var import_branch_picker = __toESM(require("./branch-picker.cjs"));
|
54
54
|
var import_composer = __toESM(require("./composer.cjs"));
|
55
|
-
var
|
55
|
+
var import_attachment_ui = __toESM(require("./attachment-ui.cjs"));
|
56
56
|
var import_edit_composer = __toESM(require("./edit-composer.cjs"));
|
57
57
|
var import_thread = __toESM(require("./thread.cjs"));
|
58
58
|
var import_user_message = __toESM(require("./user-message.cjs"));
|
package/dist/ui/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export {\n ThreadConfigProvider,\n useThreadConfig,\n type ThreadConfig,\n type ThreadWelcomeConfig,\n type UserMessageConfig,\n type AssistantMessageConfig,\n type StringsConfig,\n type SuggestionConfig,\n type ThreadConfigProviderProps,\n} from \"./thread-config\";\n\nexport { default as AssistantActionBar } from \"./assistant-action-bar\";\n\nexport { default as AssistantMessage } from \"./assistant-message\";\n\nexport { default as AssistantModal } from \"./assistant-modal\";\n\nexport { default as BranchPicker } from \"./branch-picker\";\n\nexport { default as Composer } from \"./composer\";\n\nexport {\n default as AttachmentUI, // TODO name collision with Attachment\n} from \"./attachment\";\n\nexport { default as EditComposer } from \"./edit-composer\";\n\nexport { default as Thread } from \"./thread\";\n\nexport { default as UserMessage } from \"./user-message\";\n\nexport { default as UserActionBar } from \"./user-action-bar\";\n\nexport { default as ThreadWelcome } from \"./thread-welcome\";\n\nexport { default as ContentPart } from \"./content-part\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAUO;AAEP,kCAA8C;AAE9C,+BAA4C;AAE5C,6BAA0C;AAE1C,2BAAwC;AAExC,sBAAoC;AAEpC,
|
1
|
+
{"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export {\n ThreadConfigProvider,\n useThreadConfig,\n type ThreadConfig,\n type ThreadWelcomeConfig,\n type UserMessageConfig,\n type AssistantMessageConfig,\n type StringsConfig,\n type SuggestionConfig,\n type ThreadConfigProviderProps,\n} from \"./thread-config\";\n\nexport { default as AssistantActionBar } from \"./assistant-action-bar\";\n\nexport { default as AssistantMessage } from \"./assistant-message\";\n\nexport { default as AssistantModal } from \"./assistant-modal\";\n\nexport { default as BranchPicker } from \"./branch-picker\";\n\nexport { default as Composer } from \"./composer\";\n\nexport {\n default as AttachmentUI, // TODO name collision with Attachment\n} from \"./attachment-ui\";\n\nexport { default as EditComposer } from \"./edit-composer\";\n\nexport { default as Thread } from \"./thread\";\n\nexport { default as UserMessage } from \"./user-message\";\n\nexport { default as UserActionBar } from \"./user-action-bar\";\n\nexport { default as ThreadWelcome } from \"./thread-welcome\";\n\nexport { default as ContentPart } from \"./content-part\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAUO;AAEP,kCAA8C;AAE9C,+BAA4C;AAE5C,6BAA0C;AAE1C,2BAAwC;AAExC,sBAAoC;AAEpC,2BAEO;AAEP,2BAAwC;AAExC,oBAAkC;AAElC,0BAAuC;AAEvC,6BAAyC;AAEzC,4BAAyC;AAEzC,0BAAuC;","names":[]}
|
package/dist/ui/index.mjs
CHANGED
@@ -10,7 +10,7 @@ import { default as default5 } from "./branch-picker.mjs";
|
|
10
10
|
import { default as default6 } from "./composer.mjs";
|
11
11
|
import {
|
12
12
|
default as default7
|
13
|
-
} from "./attachment.mjs";
|
13
|
+
} from "./attachment-ui.mjs";
|
14
14
|
import { default as default8 } from "./edit-composer.mjs";
|
15
15
|
import { default as default9 } from "./thread.mjs";
|
16
16
|
import { default as default10 } from "./user-message.mjs";
|
package/dist/ui/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export {\n ThreadConfigProvider,\n useThreadConfig,\n type ThreadConfig,\n type ThreadWelcomeConfig,\n type UserMessageConfig,\n type AssistantMessageConfig,\n type StringsConfig,\n type SuggestionConfig,\n type ThreadConfigProviderProps,\n} from \"./thread-config\";\n\nexport { default as AssistantActionBar } from \"./assistant-action-bar\";\n\nexport { default as AssistantMessage } from \"./assistant-message\";\n\nexport { default as AssistantModal } from \"./assistant-modal\";\n\nexport { default as BranchPicker } from \"./branch-picker\";\n\nexport { default as Composer } from \"./composer\";\n\nexport {\n default as AttachmentUI, // TODO name collision with Attachment\n} from \"./attachment\";\n\nexport { default as EditComposer } from \"./edit-composer\";\n\nexport { default as Thread } from \"./thread\";\n\nexport { default as UserMessage } from \"./user-message\";\n\nexport { default as UserActionBar } from \"./user-action-bar\";\n\nexport { default as ThreadWelcome } from \"./thread-welcome\";\n\nexport { default as ContentPart } from \"./content-part\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,OAQK;AAEP,SAAoB,WAAXA,gBAAqC;AAE9C,SAAoB,WAAXA,gBAAmC;AAE5C,SAAoB,WAAXA,gBAAiC;AAE1C,SAAoB,WAAXA,gBAA+B;AAExC,SAAoB,WAAXA,gBAA2B;AAEpC;AAAA,EACa,WAAXA;AAAA,OACK;AAEP,SAAoB,WAAXA,gBAA+B;AAExC,SAAoB,WAAXA,gBAAyB;AAElC,SAAoB,WAAXA,iBAA8B;AAEvC,SAAoB,WAAXA,iBAAgC;AAEzC,SAAoB,WAAXA,iBAAgC;AAEzC,SAAoB,WAAXA,iBAA8B;","names":["default"]}
|
1
|
+
{"version":3,"sources":["../../src/ui/index.ts"],"sourcesContent":["export {\n ThreadConfigProvider,\n useThreadConfig,\n type ThreadConfig,\n type ThreadWelcomeConfig,\n type UserMessageConfig,\n type AssistantMessageConfig,\n type StringsConfig,\n type SuggestionConfig,\n type ThreadConfigProviderProps,\n} from \"./thread-config\";\n\nexport { default as AssistantActionBar } from \"./assistant-action-bar\";\n\nexport { default as AssistantMessage } from \"./assistant-message\";\n\nexport { default as AssistantModal } from \"./assistant-modal\";\n\nexport { default as BranchPicker } from \"./branch-picker\";\n\nexport { default as Composer } from \"./composer\";\n\nexport {\n default as AttachmentUI, // TODO name collision with Attachment\n} from \"./attachment-ui\";\n\nexport { default as EditComposer } from \"./edit-composer\";\n\nexport { default as Thread } from \"./thread\";\n\nexport { default as UserMessage } from \"./user-message\";\n\nexport { default as UserActionBar } from \"./user-action-bar\";\n\nexport { default as ThreadWelcome } from \"./thread-welcome\";\n\nexport { default as ContentPart } from \"./content-part\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,OAQK;AAEP,SAAoB,WAAXA,gBAAqC;AAE9C,SAAoB,WAAXA,gBAAmC;AAE5C,SAAoB,WAAXA,gBAAiC;AAE1C,SAAoB,WAAXA,gBAA+B;AAExC,SAAoB,WAAXA,gBAA2B;AAEpC;AAAA,EACa,WAAXA;AAAA,OACK;AAEP,SAAoB,WAAXA,gBAA+B;AAExC,SAAoB,WAAXA,gBAAyB;AAElC,SAAoB,WAAXA,iBAA8B;AAEvC,SAAoB,WAAXA,iBAAgC;AAEzC,SAAoB,WAAXA,iBAAgC;AAEzC,SAAoB,WAAXA,iBAA8B;","names":["default"]}
|
package/dist/ui/user-message.js
CHANGED
@@ -40,7 +40,7 @@ var import_withDefaults = require("./utils/withDefaults.cjs");
|
|
40
40
|
var import_user_action_bar = __toESM(require("./user-action-bar.cjs"));
|
41
41
|
var import_content_part = __toESM(require("./content-part.cjs"));
|
42
42
|
var import_primitives = require("../primitives/index.cjs");
|
43
|
-
var
|
43
|
+
var import_attachment_ui = __toESM(require("./attachment-ui.cjs"));
|
44
44
|
var import_jsx_runtime = require("react/jsx-runtime");
|
45
45
|
var UserMessage = () => {
|
46
46
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(UserMessageRoot, { children: [
|
@@ -83,7 +83,7 @@ var UserMessageAttachments = ({
|
|
83
83
|
{
|
84
84
|
components: {
|
85
85
|
...components,
|
86
|
-
Attachment: components?.Attachment ??
|
86
|
+
Attachment: components?.Attachment ?? import_attachment_ui.default
|
87
87
|
}
|
88
88
|
}
|
89
89
|
) }) });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/ui/user-message.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport BranchPicker from \"./branch-picker\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport UserActionBar from \"./user-action-bar\";\nimport ContentPart from \"./content-part\";\nimport { MessagePrimitive } from \"../primitives\";\nimport Attachment from \"./attachment\";\n\nconst UserMessage: FC = () => {\n return (\n <UserMessageRoot>\n <UserMessageAttachments />\n {/* TODO this is temporary until we place the UserActionBar in a better place */}\n <MessagePrimitive.If hasContent>\n <UserActionBar />\n <UserMessageContent />\n </MessagePrimitive.If>\n <BranchPicker />\n </UserMessageRoot>\n );\n};\n\nUserMessage.displayName = \"UserMessage\";\n\nconst UserMessageRoot = withDefaults(MessagePrimitive.Root, {\n className: \"aui-user-message-root\",\n});\n\nUserMessageRoot.displayName = \"UserMessageRoot\";\n\nconst UserMessageContentWrapper = withDefaults(\"div\", {\n className: \"aui-user-message-content\",\n});\n\nnamespace UserMessageContent {\n export type Element = HTMLDivElement;\n export type Props = MessagePrimitive.Content.Props &\n ComponentPropsWithoutRef<\"div\">;\n}\n\nconst UserMessageContent = forwardRef<\n UserMessageContent.Element,\n UserMessageContent.Props\n>(({ components, ...props }, ref) => {\n return (\n <UserMessageContentWrapper {...props} ref={ref}>\n <MessagePrimitive.Content\n components={{\n ...components,\n Text: components?.Text ?? ContentPart.Text,\n }}\n />\n </UserMessageContentWrapper>\n );\n});\n\nUserMessageContent.displayName = \"UserMessageContent\";\n\nconst UserMessageAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-user-message-attachments\",\n});\n\nnamespace UserMessageAttachments {\n export type Props = Partial<MessagePrimitive.Attachments.Props>;\n}\n\nconst UserMessageAttachments: FC<UserMessageAttachments.Props> = ({\n components,\n}) => {\n return (\n <MessagePrimitive.If hasAttachments>\n <UserMessageAttachmentsContainer>\n <MessagePrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </UserMessageAttachmentsContainer>\n </MessagePrimitive.If>\n );\n};\n\nconst exports = {\n Root: UserMessageRoot,\n Content: UserMessageContent,\n Attachments: UserMessageAttachments,\n};\n\nexport default Object.assign(UserMessage, exports) as typeof UserMessage &\n typeof exports;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA8D;AAE9D,2BAAyB;AACzB,0BAA6B;AAC7B,6BAA0B;AAC1B,0BAAwB;AACxB,wBAAiC;AACjC,
|
1
|
+
{"version":3,"sources":["../../src/ui/user-message.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport BranchPicker from \"./branch-picker\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport UserActionBar from \"./user-action-bar\";\nimport ContentPart from \"./content-part\";\nimport { MessagePrimitive } from \"../primitives\";\nimport Attachment from \"./attachment-ui\";\n\nconst UserMessage: FC = () => {\n return (\n <UserMessageRoot>\n <UserMessageAttachments />\n {/* TODO this is temporary until we place the UserActionBar in a better place */}\n <MessagePrimitive.If hasContent>\n <UserActionBar />\n <UserMessageContent />\n </MessagePrimitive.If>\n <BranchPicker />\n </UserMessageRoot>\n );\n};\n\nUserMessage.displayName = \"UserMessage\";\n\nconst UserMessageRoot = withDefaults(MessagePrimitive.Root, {\n className: \"aui-user-message-root\",\n});\n\nUserMessageRoot.displayName = \"UserMessageRoot\";\n\nconst UserMessageContentWrapper = withDefaults(\"div\", {\n className: \"aui-user-message-content\",\n});\n\nnamespace UserMessageContent {\n export type Element = HTMLDivElement;\n export type Props = MessagePrimitive.Content.Props &\n ComponentPropsWithoutRef<\"div\">;\n}\n\nconst UserMessageContent = forwardRef<\n UserMessageContent.Element,\n UserMessageContent.Props\n>(({ components, ...props }, ref) => {\n return (\n <UserMessageContentWrapper {...props} ref={ref}>\n <MessagePrimitive.Content\n components={{\n ...components,\n Text: components?.Text ?? ContentPart.Text,\n }}\n />\n </UserMessageContentWrapper>\n );\n});\n\nUserMessageContent.displayName = \"UserMessageContent\";\n\nconst UserMessageAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-user-message-attachments\",\n});\n\nnamespace UserMessageAttachments {\n export type Props = Partial<MessagePrimitive.Attachments.Props>;\n}\n\nconst UserMessageAttachments: FC<UserMessageAttachments.Props> = ({\n components,\n}) => {\n return (\n <MessagePrimitive.If hasAttachments>\n <UserMessageAttachmentsContainer>\n <MessagePrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </UserMessageAttachmentsContainer>\n </MessagePrimitive.If>\n );\n};\n\nconst exports = {\n Root: UserMessageRoot,\n Content: UserMessageContent,\n Attachments: UserMessageAttachments,\n};\n\nexport default Object.assign(UserMessage, exports) as typeof UserMessage &\n typeof exports;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA8D;AAE9D,2BAAyB;AACzB,0BAA6B;AAC7B,6BAA0B;AAC1B,0BAAwB;AACxB,wBAAiC;AACjC,2BAAuB;AAKjB;AAHN,IAAM,cAAkB,MAAM;AAC5B,SACE,6CAAC,mBACC;AAAA,gDAAC,0BAAuB;AAAA,IAExB,6CAAC,mCAAiB,IAAjB,EAAoB,YAAU,MAC7B;AAAA,kDAAC,uBAAAA,SAAA,EAAc;AAAA,MACf,4CAAC,sBAAmB;AAAA,OACtB;AAAA,IACA,4CAAC,qBAAAC,SAAA,EAAa;AAAA,KAChB;AAEJ;AAEA,YAAY,cAAc;AAE1B,IAAM,sBAAkB,kCAAa,mCAAiB,MAAM;AAAA,EAC1D,WAAW;AACb,CAAC;AAED,gBAAgB,cAAc;AAE9B,IAAM,gCAA4B,kCAAa,OAAO;AAAA,EACpD,WAAW;AACb,CAAC;AAQD,IAAM,yBAAqB,yBAGzB,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ;AACnC,SACE,4CAAC,6BAA2B,GAAG,OAAO,KACpC;AAAA,IAAC,mCAAiB;AAAA,IAAjB;AAAA,MACC,YAAY;AAAA,QACV,GAAG;AAAA,QACH,MAAM,YAAY,QAAQ,oBAAAC,QAAY;AAAA,MACxC;AAAA;AAAA,EACF,GACF;AAEJ,CAAC;AAED,mBAAmB,cAAc;AAEjC,IAAM,sCAAkC,kCAAa,OAAO;AAAA,EAC1D,WAAW;AACb,CAAC;AAMD,IAAM,yBAA2D,CAAC;AAAA,EAChE;AACF,MAAM;AACJ,SACE,4CAAC,mCAAiB,IAAjB,EAAoB,gBAAc,MACjC,sDAAC,mCACC;AAAA,IAAC,mCAAiB;AAAA,IAAjB;AAAA,MACC,YAAY;AAAA,QACV,GAAG;AAAA,QACH,YAAY,YAAY,cAAc,qBAAAC;AAAA,MACxC;AAAA;AAAA,EACF,GACF,GACF;AAEJ;AAEA,IAAMC,WAAU;AAAA,EACd,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AACf;AAEA,IAAO,uBAAQ,OAAO,OAAO,aAAaA,QAAO;","names":["UserActionBar","BranchPicker","ContentPart","Attachment","exports"]}
|
package/dist/ui/user-message.mjs
CHANGED
@@ -7,7 +7,7 @@ import { withDefaults } from "./utils/withDefaults.mjs";
|
|
7
7
|
import UserActionBar from "./user-action-bar.mjs";
|
8
8
|
import ContentPart from "./content-part.mjs";
|
9
9
|
import { MessagePrimitive } from "../primitives/index.mjs";
|
10
|
-
import Attachment from "./attachment.mjs";
|
10
|
+
import Attachment from "./attachment-ui.mjs";
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
12
12
|
var UserMessage = () => {
|
13
13
|
return /* @__PURE__ */ jsxs(UserMessageRoot, { children: [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/ui/user-message.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport BranchPicker from \"./branch-picker\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport UserActionBar from \"./user-action-bar\";\nimport ContentPart from \"./content-part\";\nimport { MessagePrimitive } from \"../primitives\";\nimport Attachment from \"./attachment\";\n\nconst UserMessage: FC = () => {\n return (\n <UserMessageRoot>\n <UserMessageAttachments />\n {/* TODO this is temporary until we place the UserActionBar in a better place */}\n <MessagePrimitive.If hasContent>\n <UserActionBar />\n <UserMessageContent />\n </MessagePrimitive.If>\n <BranchPicker />\n </UserMessageRoot>\n );\n};\n\nUserMessage.displayName = \"UserMessage\";\n\nconst UserMessageRoot = withDefaults(MessagePrimitive.Root, {\n className: \"aui-user-message-root\",\n});\n\nUserMessageRoot.displayName = \"UserMessageRoot\";\n\nconst UserMessageContentWrapper = withDefaults(\"div\", {\n className: \"aui-user-message-content\",\n});\n\nnamespace UserMessageContent {\n export type Element = HTMLDivElement;\n export type Props = MessagePrimitive.Content.Props &\n ComponentPropsWithoutRef<\"div\">;\n}\n\nconst UserMessageContent = forwardRef<\n UserMessageContent.Element,\n UserMessageContent.Props\n>(({ components, ...props }, ref) => {\n return (\n <UserMessageContentWrapper {...props} ref={ref}>\n <MessagePrimitive.Content\n components={{\n ...components,\n Text: components?.Text ?? ContentPart.Text,\n }}\n />\n </UserMessageContentWrapper>\n );\n});\n\nUserMessageContent.displayName = \"UserMessageContent\";\n\nconst UserMessageAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-user-message-attachments\",\n});\n\nnamespace UserMessageAttachments {\n export type Props = Partial<MessagePrimitive.Attachments.Props>;\n}\n\nconst UserMessageAttachments: FC<UserMessageAttachments.Props> = ({\n components,\n}) => {\n return (\n <MessagePrimitive.If hasAttachments>\n <UserMessageAttachmentsContainer>\n <MessagePrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </UserMessageAttachmentsContainer>\n </MessagePrimitive.If>\n );\n};\n\nconst exports = {\n Root: UserMessageRoot,\n Content: UserMessageContent,\n Attachments: UserMessageAttachments,\n};\n\nexport default Object.assign(UserMessage, exports) as typeof UserMessage &\n typeof exports;\n"],"mappings":";;;AAEA,SAAmC,kBAA2B;AAE9D,OAAO,kBAAkB;AACzB,SAAS,oBAAoB;AAC7B,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,SAAS,wBAAwB;AACjC,OAAO,gBAAgB;AAKjB,cAEA,YAFA;AAHN,IAAM,cAAkB,MAAM;AAC5B,SACE,qBAAC,mBACC;AAAA,wBAAC,0BAAuB;AAAA,IAExB,qBAAC,iBAAiB,IAAjB,EAAoB,YAAU,MAC7B;AAAA,0BAAC,iBAAc;AAAA,MACf,oBAAC,sBAAmB;AAAA,OACtB;AAAA,IACA,oBAAC,gBAAa;AAAA,KAChB;AAEJ;AAEA,YAAY,cAAc;AAE1B,IAAM,kBAAkB,aAAa,iBAAiB,MAAM;AAAA,EAC1D,WAAW;AACb,CAAC;AAED,gBAAgB,cAAc;AAE9B,IAAM,4BAA4B,aAAa,OAAO;AAAA,EACpD,WAAW;AACb,CAAC;AAQD,IAAM,qBAAqB,WAGzB,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ;AACnC,SACE,oBAAC,6BAA2B,GAAG,OAAO,KACpC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,YAAY;AAAA,QACV,GAAG;AAAA,QACH,MAAM,YAAY,QAAQ,YAAY;AAAA,MACxC;AAAA;AAAA,EACF,GACF;AAEJ,CAAC;AAED,mBAAmB,cAAc;AAEjC,IAAM,kCAAkC,aAAa,OAAO;AAAA,EAC1D,WAAW;AACb,CAAC;AAMD,IAAM,yBAA2D,CAAC;AAAA,EAChE;AACF,MAAM;AACJ,SACE,oBAAC,iBAAiB,IAAjB,EAAoB,gBAAc,MACjC,8BAAC,mCACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,YAAY;AAAA,QACV,GAAG;AAAA,QACH,YAAY,YAAY,cAAc;AAAA,MACxC;AAAA;AAAA,EACF,GACF,GACF;AAEJ;AAEA,IAAM,UAAU;AAAA,EACd,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AACf;AAEA,IAAO,uBAAQ,OAAO,OAAO,aAAa,OAAO;","names":[]}
|
1
|
+
{"version":3,"sources":["../../src/ui/user-message.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\n\nimport BranchPicker from \"./branch-picker\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport UserActionBar from \"./user-action-bar\";\nimport ContentPart from \"./content-part\";\nimport { MessagePrimitive } from \"../primitives\";\nimport Attachment from \"./attachment-ui\";\n\nconst UserMessage: FC = () => {\n return (\n <UserMessageRoot>\n <UserMessageAttachments />\n {/* TODO this is temporary until we place the UserActionBar in a better place */}\n <MessagePrimitive.If hasContent>\n <UserActionBar />\n <UserMessageContent />\n </MessagePrimitive.If>\n <BranchPicker />\n </UserMessageRoot>\n );\n};\n\nUserMessage.displayName = \"UserMessage\";\n\nconst UserMessageRoot = withDefaults(MessagePrimitive.Root, {\n className: \"aui-user-message-root\",\n});\n\nUserMessageRoot.displayName = \"UserMessageRoot\";\n\nconst UserMessageContentWrapper = withDefaults(\"div\", {\n className: \"aui-user-message-content\",\n});\n\nnamespace UserMessageContent {\n export type Element = HTMLDivElement;\n export type Props = MessagePrimitive.Content.Props &\n ComponentPropsWithoutRef<\"div\">;\n}\n\nconst UserMessageContent = forwardRef<\n UserMessageContent.Element,\n UserMessageContent.Props\n>(({ components, ...props }, ref) => {\n return (\n <UserMessageContentWrapper {...props} ref={ref}>\n <MessagePrimitive.Content\n components={{\n ...components,\n Text: components?.Text ?? ContentPart.Text,\n }}\n />\n </UserMessageContentWrapper>\n );\n});\n\nUserMessageContent.displayName = \"UserMessageContent\";\n\nconst UserMessageAttachmentsContainer = withDefaults(\"div\", {\n className: \"aui-user-message-attachments\",\n});\n\nnamespace UserMessageAttachments {\n export type Props = Partial<MessagePrimitive.Attachments.Props>;\n}\n\nconst UserMessageAttachments: FC<UserMessageAttachments.Props> = ({\n components,\n}) => {\n return (\n <MessagePrimitive.If hasAttachments>\n <UserMessageAttachmentsContainer>\n <MessagePrimitive.Attachments\n components={{\n ...components,\n Attachment: components?.Attachment ?? Attachment,\n }}\n />\n </UserMessageAttachmentsContainer>\n </MessagePrimitive.If>\n );\n};\n\nconst exports = {\n Root: UserMessageRoot,\n Content: UserMessageContent,\n Attachments: UserMessageAttachments,\n};\n\nexport default Object.assign(UserMessage, exports) as typeof UserMessage &\n typeof exports;\n"],"mappings":";;;AAEA,SAAmC,kBAA2B;AAE9D,OAAO,kBAAkB;AACzB,SAAS,oBAAoB;AAC7B,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,SAAS,wBAAwB;AACjC,OAAO,gBAAgB;AAKjB,cAEA,YAFA;AAHN,IAAM,cAAkB,MAAM;AAC5B,SACE,qBAAC,mBACC;AAAA,wBAAC,0BAAuB;AAAA,IAExB,qBAAC,iBAAiB,IAAjB,EAAoB,YAAU,MAC7B;AAAA,0BAAC,iBAAc;AAAA,MACf,oBAAC,sBAAmB;AAAA,OACtB;AAAA,IACA,oBAAC,gBAAa;AAAA,KAChB;AAEJ;AAEA,YAAY,cAAc;AAE1B,IAAM,kBAAkB,aAAa,iBAAiB,MAAM;AAAA,EAC1D,WAAW;AACb,CAAC;AAED,gBAAgB,cAAc;AAE9B,IAAM,4BAA4B,aAAa,OAAO;AAAA,EACpD,WAAW;AACb,CAAC;AAQD,IAAM,qBAAqB,WAGzB,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ;AACnC,SACE,oBAAC,6BAA2B,GAAG,OAAO,KACpC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,YAAY;AAAA,QACV,GAAG;AAAA,QACH,MAAM,YAAY,QAAQ,YAAY;AAAA,MACxC;AAAA;AAAA,EACF,GACF;AAEJ,CAAC;AAED,mBAAmB,cAAc;AAEjC,IAAM,kCAAkC,aAAa,OAAO;AAAA,EAC1D,WAAW;AACb,CAAC;AAMD,IAAM,yBAA2D,CAAC;AAAA,EAChE;AACF,MAAM;AACJ,SACE,oBAAC,iBAAiB,IAAjB,EAAoB,gBAAc,MACjC,8BAAC,mCACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,YAAY;AAAA,QACV,GAAG;AAAA,QACH,YAAY,YAAY,cAAc;AAAA,MACxC;AAAA;AAAA,EACF,GACF,GACF;AAEJ;AAEA,IAAM,UAAU;AAAA,EACd,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AACf;AAEA,IAAO,uBAAQ,OAAO,OAAO,aAAa,OAAO;","names":[]}
|
@@ -4,84 +4,84 @@ export declare const SmoothContextProvider: FC<PropsWithChildren>;
|
|
4
4
|
export declare const withSmoothContextProvider: <C extends ComponentType<any>>(Component: C) => C;
|
5
5
|
export declare const useSmoothStatus: {
|
6
6
|
(): {
|
7
|
-
type: "running";
|
7
|
+
readonly type: "running";
|
8
8
|
} | {
|
9
|
-
type: "complete";
|
9
|
+
readonly type: "complete";
|
10
10
|
} | {
|
11
|
-
type: "incomplete";
|
12
|
-
reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
13
|
-
error?: unknown;
|
11
|
+
readonly type: "incomplete";
|
12
|
+
readonly reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
13
|
+
readonly error?: unknown;
|
14
14
|
} | {
|
15
|
-
type: "requires-action";
|
16
|
-
reason: "tool-calls";
|
15
|
+
readonly type: "requires-action";
|
16
|
+
readonly reason: "tool-calls";
|
17
17
|
};
|
18
18
|
<TSelected>(selector: (state: {
|
19
|
-
type: "running";
|
19
|
+
readonly type: "running";
|
20
20
|
} | {
|
21
|
-
type: "complete";
|
21
|
+
readonly type: "complete";
|
22
22
|
} | {
|
23
|
-
type: "incomplete";
|
24
|
-
reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
25
|
-
error?: unknown;
|
23
|
+
readonly type: "incomplete";
|
24
|
+
readonly reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
25
|
+
readonly error?: unknown;
|
26
26
|
} | {
|
27
|
-
type: "requires-action";
|
28
|
-
reason: "tool-calls";
|
27
|
+
readonly type: "requires-action";
|
28
|
+
readonly reason: "tool-calls";
|
29
29
|
}) => TSelected): TSelected;
|
30
30
|
(options: {
|
31
31
|
optional: true;
|
32
32
|
}): {
|
33
|
-
type: "running";
|
33
|
+
readonly type: "running";
|
34
34
|
} | {
|
35
|
-
type: "complete";
|
35
|
+
readonly type: "complete";
|
36
36
|
} | {
|
37
|
-
type: "incomplete";
|
38
|
-
reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
39
|
-
error?: unknown;
|
37
|
+
readonly type: "incomplete";
|
38
|
+
readonly reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
39
|
+
readonly error?: unknown;
|
40
40
|
} | {
|
41
|
-
type: "requires-action";
|
42
|
-
reason: "tool-calls";
|
41
|
+
readonly type: "requires-action";
|
42
|
+
readonly reason: "tool-calls";
|
43
43
|
} | null;
|
44
44
|
<TSelected>(options: {
|
45
45
|
optional: true;
|
46
46
|
selector?: (state: {
|
47
|
-
type: "running";
|
47
|
+
readonly type: "running";
|
48
48
|
} | {
|
49
|
-
type: "complete";
|
49
|
+
readonly type: "complete";
|
50
50
|
} | {
|
51
|
-
type: "incomplete";
|
52
|
-
reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
53
|
-
error?: unknown;
|
51
|
+
readonly type: "incomplete";
|
52
|
+
readonly reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
53
|
+
readonly error?: unknown;
|
54
54
|
} | {
|
55
|
-
type: "requires-action";
|
56
|
-
reason: "tool-calls";
|
55
|
+
readonly type: "requires-action";
|
56
|
+
readonly reason: "tool-calls";
|
57
57
|
}) => TSelected;
|
58
58
|
}): TSelected | null;
|
59
59
|
}, useSmoothStatusStore: {
|
60
60
|
(): ReadonlyStore<{
|
61
|
-
type: "running";
|
61
|
+
readonly type: "running";
|
62
62
|
} | {
|
63
|
-
type: "complete";
|
63
|
+
readonly type: "complete";
|
64
64
|
} | {
|
65
|
-
type: "incomplete";
|
66
|
-
reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
67
|
-
error?: unknown;
|
65
|
+
readonly type: "incomplete";
|
66
|
+
readonly reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
67
|
+
readonly error?: unknown;
|
68
68
|
} | {
|
69
|
-
type: "requires-action";
|
70
|
-
reason: "tool-calls";
|
69
|
+
readonly type: "requires-action";
|
70
|
+
readonly reason: "tool-calls";
|
71
71
|
}>;
|
72
72
|
(options: {
|
73
73
|
optional: true;
|
74
74
|
}): ReadonlyStore<{
|
75
|
-
type: "running";
|
75
|
+
readonly type: "running";
|
76
76
|
} | {
|
77
|
-
type: "complete";
|
77
|
+
readonly type: "complete";
|
78
78
|
} | {
|
79
|
-
type: "incomplete";
|
80
|
-
reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
81
|
-
error?: unknown;
|
79
|
+
readonly type: "incomplete";
|
80
|
+
readonly reason: "cancelled" | "length" | "content-filter" | "other" | "error";
|
81
|
+
readonly error?: unknown;
|
82
82
|
} | {
|
83
|
-
type: "requires-action";
|
84
|
-
reason: "tool-calls";
|
83
|
+
readonly type: "requires-action";
|
84
|
+
readonly reason: "tool-calls";
|
85
85
|
}> | null;
|
86
86
|
};
|
87
87
|
//# sourceMappingURL=SmoothContext.d.ts.map
|
package/package.json
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
"conversational-ui",
|
30
30
|
"conversational-ai"
|
31
31
|
],
|
32
|
-
"version": "0.7.
|
32
|
+
"version": "0.7.3",
|
33
33
|
"license": "MIT",
|
34
34
|
"exports": {
|
35
35
|
".": {
|
@@ -121,8 +121,8 @@
|
|
121
121
|
"tsup": "8.3.5",
|
122
122
|
"tsx": "^4.19.2",
|
123
123
|
"@assistant-ui/tailwindcss-transformer": "0.1.0",
|
124
|
-
"@assistant-ui/
|
125
|
-
"@assistant-ui/
|
124
|
+
"@assistant-ui/tsbuildutils": "^0.0.0",
|
125
|
+
"@assistant-ui/tsconfig": "0.0.0"
|
126
126
|
},
|
127
127
|
"publishConfig": {
|
128
128
|
"access": "public",
|
@@ -23,10 +23,14 @@ type ContentPartSnapshotBinding = SubscribableWithState<
|
|
23
23
|
>;
|
24
24
|
|
25
25
|
export type ContentPartRuntime = {
|
26
|
-
|
26
|
+
/**
|
27
|
+
* Add tool result to a tool call content part that has no tool result yet.
|
28
|
+
* This is useful when you are collecting a tool result via user input ("human tool calls").
|
29
|
+
*/
|
30
|
+
addToolResult(result: any): void;
|
27
31
|
|
32
|
+
readonly path: ContentPartRuntimePath;
|
28
33
|
getState(): ContentPartState;
|
29
|
-
addToolResult(result: any): void;
|
30
34
|
subscribe(callback: () => void): Unsubscribe;
|
31
35
|
};
|
32
36
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { LazyMemoizeSubject } from "./subscribable/LazyMemoizeSubject";
|
2
2
|
import { ThreadListRuntimeCore } from "../runtimes/core/ThreadListRuntimeCore";
|
3
3
|
import { Unsubscribe } from "../types";
|
4
|
-
import { ThreadListRuntimePath } from "./RuntimePathTypes";
|
5
4
|
import {
|
6
5
|
ThreadListItemRuntime,
|
7
6
|
ThreadListItemRuntimeImpl,
|
@@ -18,7 +17,6 @@ export type ThreadListState = {
|
|
18
17
|
};
|
19
18
|
|
20
19
|
export type ThreadListRuntime = {
|
21
|
-
readonly path: ThreadListRuntimePath;
|
22
20
|
getState(): ThreadListState;
|
23
21
|
|
24
22
|
subscribe(callback: () => void): Unsubscribe;
|
@@ -55,21 +53,13 @@ const getThreadListItemState = (
|
|
55
53
|
};
|
56
54
|
};
|
57
55
|
|
58
|
-
const THREAD_MANAGER_PATH = {
|
59
|
-
ref: "ThreadList",
|
60
|
-
};
|
61
|
-
|
62
56
|
export type ThreadListRuntimeCoreBinding = ThreadListRuntimeCore;
|
63
57
|
|
64
58
|
export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
65
|
-
public get path() {
|
66
|
-
return THREAD_MANAGER_PATH;
|
67
|
-
}
|
68
|
-
|
69
59
|
private _getState;
|
70
60
|
constructor(private _core: ThreadListRuntimeCoreBinding) {
|
71
61
|
const stateBinding = new LazyMemoizeSubject({
|
72
|
-
path:
|
62
|
+
path: {},
|
73
63
|
getState: () => getThreadListState(_core),
|
74
64
|
subscribe: (callback) => _core.subscribe(callback),
|
75
65
|
});
|
@@ -89,7 +79,7 @@ export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
|
89
79
|
return new ThreadListItemRuntimeImpl(
|
90
80
|
new ShallowMemoizeSubject({
|
91
81
|
path: {
|
92
|
-
ref:
|
82
|
+
ref: `threadItems[${idx}]`,
|
93
83
|
threadSelector: { type: "index", index: idx },
|
94
84
|
},
|
95
85
|
getState: () => {
|
@@ -105,7 +95,7 @@ export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
|
105
95
|
return new ThreadListItemRuntimeImpl(
|
106
96
|
new ShallowMemoizeSubject({
|
107
97
|
path: {
|
108
|
-
ref:
|
98
|
+
ref: `archivedThreadItems[${idx}]`,
|
109
99
|
threadSelector: { type: "archiveIndex", index: idx },
|
110
100
|
},
|
111
101
|
getState: () => {
|
@@ -124,9 +114,7 @@ export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
|
124
114
|
return new ThreadListItemRuntimeImpl(
|
125
115
|
new ShallowMemoizeSubject({
|
126
116
|
path: {
|
127
|
-
ref:
|
128
|
-
this.path.ref +
|
129
|
-
`${this.path.ref}.threadItems[threadId=${threadId}]`,
|
117
|
+
ref: `threadItems[threadId=${threadId}]`,
|
130
118
|
threadSelector: { type: "threadId", threadId },
|
131
119
|
},
|
132
120
|
getState: () => {
|
@@ -42,6 +42,8 @@ export const fromCoreMessage = (
|
|
42
42
|
return part;
|
43
43
|
}),
|
44
44
|
status,
|
45
|
+
|
46
|
+
metadata: { steps: [], custom: {} },
|
45
47
|
} satisfies ThreadMessage;
|
46
48
|
|
47
49
|
case "user":
|
@@ -50,6 +52,7 @@ export const fromCoreMessage = (
|
|
50
52
|
role,
|
51
53
|
content: message.content,
|
52
54
|
attachments,
|
55
|
+
metadata: { custom: {} },
|
53
56
|
} satisfies ThreadMessage;
|
54
57
|
|
55
58
|
case "system":
|
@@ -57,6 +60,7 @@ export const fromCoreMessage = (
|
|
57
60
|
...commonProps,
|
58
61
|
role,
|
59
62
|
content: message.content,
|
63
|
+
metadata: { custom: {} },
|
60
64
|
} satisfies ThreadMessage;
|
61
65
|
|
62
66
|
default: {
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { LanguageModelV1Message } from "@ai-sdk/provider";
|
2
2
|
import { CoreMessage, ToolCallContentPart } from "../../../types";
|
3
|
+
import { Writable } from "stream";
|
3
4
|
|
4
5
|
type fromLanguageModelMessagesOptions = {
|
5
6
|
mergeSteps: boolean;
|
@@ -105,9 +106,11 @@ export const fromLanguageModelMessages = (
|
|
105
106
|
if (toolCall.toolName !== tool.toolName)
|
106
107
|
throw new Error("Tool call name mismatch.");
|
107
108
|
|
108
|
-
|
109
|
+
type Writable<T> = { -readonly [P in keyof T]: T[P] };
|
110
|
+
const writable = toolCall as Writable<ToolCallContentPart>;
|
111
|
+
writable.result = tool.result;
|
109
112
|
if (tool.isError) {
|
110
|
-
|
113
|
+
writable.isError = true;
|
111
114
|
}
|
112
115
|
}
|
113
116
|
|