reachat 2.1.0-alpha.20 → 2.1.0-alpha.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/{CSVFileRenderer-B7eSDub6.js → CSVFileRenderer-DC2ZhtNx.js} +2 -2
  2. package/dist/{CSVFileRenderer-B7eSDub6.js.map → CSVFileRenderer-DC2ZhtNx.js.map} +1 -1
  3. package/dist/ChatInput/ChatInput.d.ts +9 -1
  4. package/dist/ChatInput/FileDropzone.d.ts +33 -0
  5. package/dist/ChatInput/FileInput.d.ts +0 -4
  6. package/dist/ChatInput/index.d.ts +1 -0
  7. package/dist/ChatSuggestions/ChatSuggestion.d.ts +9 -0
  8. package/dist/ChatSuggestions/ChatSuggestions.d.ts +22 -0
  9. package/dist/ChatSuggestions/index.d.ts +2 -0
  10. package/dist/{DefaultFileRenderer-CszY8p_0.js → DefaultFileRenderer-3oHDLIk4.js} +2 -2
  11. package/dist/{DefaultFileRenderer-CszY8p_0.js.map → DefaultFileRenderer-3oHDLIk4.js.map} +1 -1
  12. package/dist/MessageStatus/MessageStatus.d.ts +44 -0
  13. package/dist/MessageStatus/MessageStatusItem.d.ts +9 -0
  14. package/dist/MessageStatus/StatusIcon.d.ts +17 -0
  15. package/dist/MessageStatus/index.d.ts +3 -0
  16. package/dist/SessionMessages/SessionMessages.d.ts +4 -0
  17. package/dist/docs.json +555 -16
  18. package/dist/{index-DNefh8rs.js → index-CWCW-OiG.js} +477 -124
  19. package/dist/index-CWCW-OiG.js.map +1 -0
  20. package/dist/index.css +186 -55
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.js +30 -24
  23. package/dist/index.umd.cjs +450 -99
  24. package/dist/index.umd.cjs.map +1 -1
  25. package/dist/stories/ChatSuggestions.stories.tsx +542 -0
  26. package/dist/stories/Console.stories.tsx +101 -623
  27. package/dist/stories/Files.stories.tsx +348 -0
  28. package/dist/stories/Markdown.stories.tsx +108 -1
  29. package/dist/stories/MessageStatus.stories.tsx +326 -0
  30. package/dist/stories/SessionsList.stories.tsx +276 -0
  31. package/dist/stories/assets/sparkles.svg +7 -0
  32. package/dist/stories/examples.ts +34 -0
  33. package/dist/theme.d.ts +46 -0
  34. package/dist/types.d.ts +10 -0
  35. package/package.json +7 -4
  36. package/dist/index-DNefh8rs.js.map +0 -1
package/dist/docs.json CHANGED
@@ -105,7 +105,7 @@
105
105
  },
106
106
  "theme": {
107
107
  "defaultValue": {
108
- "value": "{\n base: 'text-content-text-neutral-base',\n console: 'flex w-full gap-4 h-full',\n companion: 'w-full h-full overflow-hidden',\n empty: 'text-center flex-1',\n appbar: 'flex p-5',\n sessions: {\n base: 'overflow-auto',\n console:\n 'min-w-[150px] w-[30%] max-w-[300px] bg-gradient-neutral-200 p-5 rounded-3xl',\n companion: 'w-full h-full',\n group: 'text-xs text-content-text-neutral-3 mt-4 hover:bg-transparent mb-1',\n create: 'relative mb-4 rounded-[10px] text-white',\n session: {\n base: 'group my-1 rounded-[10px] p-2 text-content-text-neutral-1 border border-transparent',\n active:\n 'border-select-menu-items-color-item-stroke-row-hover [&_button]:opacity-100!',\n delete: '[&>svg]:w-4 [&>svg]:h-4 opacity-0 group-hover:opacity-50!'\n }\n },\n messages: {\n base: '',\n console: 'flex flex-col mx-5 flex-1 overflow-hidden',\n companion: 'flex w-full h-full',\n back: 'self-start pl-0 my-2 ',\n inner: 'flex-1 h-full flex flex-col',\n title: 'text-base font-bold',\n date: 'text-xs whitespace-nowrap text-content-text-neutral-2',\n content: 'mt-2 flex-1 overflow-auto',\n header: 'flex justify-between items-center gap-2',\n showMore: 'mb-4',\n message: {\n base: 'mt-4 mb-4 flex flex-col p-0 rounded-sm border-none bg-transparent',\n question:\n 'relative font-semibold mb-4 px-4 py-4 pb-2 rounded-3xl rounded-br-none text-typography border bg-(--background-neutral-raised-5) border-(--stroke-neutral-5)',\n response:\n 'relative data-[compact=false]:px-4 text-content-text-neutral-base',\n overlay:\n \"overflow-y-hidden max-h-[350px] after:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-16 after:bg-linear-to-b after:from-transparent after:to-effects-shadows-base-2-xl\",\n cursor: 'inline-block w-1 h-4 bg-current',\n expand: 'absolute bottom-0 right-1 z-10',\n files: {\n base: 'mb-2 flex flex-wrap gap-3 ',\n file: {\n base: 'flex items-center gap-2 border border-stroke-neutral-4 px-3 py-2 rounded-lg cursor-pointer',\n name: 'text-sm text-content-text-neutral-4'\n }\n },\n sources: {\n base: 'my-4 flex flex-wrap gap-3',\n source: {\n base: 'flex gap-2 border border-stroke-neutral-4 px-4 py-2 rounded-lg cursor-pointer',\n companion: 'flex-1 px-3 py-1.5',\n image: 'max-w-10 max-h-10 rounded-md w-full h-fit self-center',\n title: 'text-md block',\n url: 'text-sm text-buttons-colors-link-primary-text-resting underline'\n }\n },\n markdown: {\n hr: 'my-4 border-t border-stroke-neutral-4',\n copy: 'sticky py-1 [&>svg]:w-4 [&>svg]:h-4 opacity-50',\n p: 'mb-2',\n a: 'text-buttons-colors-link-primary-text-resting underline',\n table: 'table-auto w-full m-2',\n th: 'px-4 py-2 text-left font-bold border-b border-stroke-neutral-4',\n td: 'px-4 py-2',\n code: 'm-2 rounded-b relative',\n inlineCode: 'bg-gradient-neutral-200 p-1 rounded',\n toolbar:\n 'text-xs flex items-center justify-between px-2 py-1 rounded-t sticky top-0 backdrop-blur-md bg-gradient-neutral-500/50',\n li: 'mb-2 ml-6',\n ul: 'mb-4 list-disc',\n ol: 'mb-4 list-decimal',\n h1: 'text-4xl font-bold mb-4 mt-6',\n h2: 'text-3xl font-bold mb-3 mt-5',\n h3: 'text-2xl font-bold mb-3 mt-4',\n h4: 'text-xl font-bold mb-2 mt-3',\n h5: 'text-lg font-bold mb-2 mt-2',\n h6: 'text-base font-bold mb-2 mt-2'\n },\n csvPreview: {\n base: 'flex flex-col gap-2',\n header: {\n base: 'flex justify-between items-center gap-4',\n icon: 'csv-icon flex items-center',\n actions: 'csv-actions flex items-center gap-6'\n },\n tableContainer: 'flex justify-between',\n dialog: {\n base: 'fixed inset-0 bg-background-neutral-canvas-base/70 flex justify-center items-center z-50',\n container:\n 'bg-background-neutral-canvas-base rounded-md w-11/12 h-5/6 overflow-auto'\n }\n },\n footer: {\n base: 'mt-3 flex gap-1.5',\n copy: 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n upvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n downvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n refresh:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!'\n }\n }\n },\n input: {\n base: 'flex mt-4 relative',\n upload:\n 'px-5 py-2 size-10 text-content-text-neutral-2 hover:text-content-text-neutral-base',\n input:\n 'w-full border rounded-3xl px-3 py-2 pr-16 after:hidden after:mx-10! [&>textarea]:w-full [&>textarea]:flex-none [&>textarea]:outline-none [&>textarea]:resize-none',\n actions: {\n base: 'absolute flex gap-2 items-center right-2 inset-y-1/2 -translate-y-1/2 z-10',\n send: 'px-3 py-3 hover:bg-primary-hover rounded-full size-8',\n stop: 'px-2 py-2 bg-content-assets-semantic-error-base text-white rounded-full hover:bg-content-assets-semantic-error-1 size-8'\n }\n }\n}"
108
+ "value": "{\n base: 'text-content-text-neutral-base',\n console: 'flex w-full gap-4 h-full',\n companion: 'w-full h-full overflow-hidden',\n empty: 'text-center flex-1',\n appbar: 'flex p-5',\n status: {\n base: 'py-2 px-3 rounded-lg bg-gray-100/50 dark:bg-gray-800/30',\n header: 'flex items-center gap-2',\n icon: {\n base: 'flex-shrink-0 w-4 h-4',\n loading: 'text-blue-500 dark:text-blue-400',\n complete: 'text-green-500 dark:text-green-400',\n error: 'text-red-500 dark:text-red-400'\n },\n text: {\n base: 'text-sm',\n loading: 'text-gray-600 dark:text-gray-400',\n complete: 'text-gray-600 dark:text-gray-400',\n error: 'text-red-600 dark:text-red-400'\n },\n steps: {\n base: 'mt-1 ml-6 space-y-0.5',\n step: {\n base: 'flex items-center gap-2',\n icon: 'flex-shrink-0 w-3.5 h-3.5',\n text: 'text-sm',\n loading: 'text-gray-500 dark:text-gray-500',\n complete: 'text-gray-500 dark:text-gray-500',\n error: 'text-red-500 dark:text-red-400'\n }\n }\n },\n sessions: {\n base: 'overflow-auto',\n console:\n 'min-w-[150px] w-[30%] max-w-[300px] bg-gradient-neutral-200 p-5 rounded-3xl',\n companion: 'w-full h-full',\n group: 'text-xs text-content-text-neutral-3 mt-4 hover:bg-transparent mb-1',\n create: 'relative mb-4 rounded-[10px] text-white',\n session: {\n base: 'group my-1 rounded-[10px] p-2 text-content-text-neutral-1 border border-transparent',\n active:\n 'border-select-menu-items-color-item-stroke-row-hover [&_button]:opacity-100!',\n delete: '[&>svg]:w-4 [&>svg]:h-4 opacity-0 group-hover:opacity-50!'\n }\n },\n messages: {\n base: '',\n console: 'flex flex-col mx-5 flex-1 min-h-0',\n companion: 'flex w-full h-full',\n back: 'self-start pl-0 my-2 ',\n inner: 'flex-1 h-full flex flex-col',\n title: 'text-base font-bold',\n date: 'text-xs whitespace-nowrap text-content-text-neutral-2',\n content: 'mt-2 flex-1 overflow-auto',\n header: 'flex justify-between items-center gap-2',\n showMore: 'mb-4',\n message: {\n base: 'mt-4 mb-4 flex flex-col p-0 rounded-sm border-none bg-transparent',\n question:\n 'relative font-semibold mb-4 px-4 py-4 pb-2 rounded-3xl rounded-br-none text-typography border bg-(--background-neutral-raised-5) border-(--stroke-neutral-5)',\n response:\n 'relative data-[compact=false]:px-4 text-content-text-neutral-base',\n overlay:\n \"overflow-y-hidden max-h-[350px] after:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-16 after:bg-linear-to-b after:from-transparent after:to-effects-shadows-base-2-xl\",\n cursor: 'inline-block w-1 h-4 bg-current',\n expand: 'absolute bottom-1 right-1 z-10',\n scrollToBottom: {\n container: 'absolute bottom-2 left-1/2 transform -translate-x-1/2 z-10',\n button: 'rounded-full p-2 shadow-lg'\n },\n files: {\n base: 'mb-2 flex flex-wrap gap-3 ',\n file: {\n base: 'flex items-center gap-2 border border-stroke-neutral-4 px-3 py-2 rounded-lg cursor-pointer',\n name: 'text-sm text-content-text-neutral-4'\n }\n },\n sources: {\n base: 'my-4 flex flex-wrap gap-3',\n source: {\n base: 'flex gap-2 border border-stroke-neutral-4 px-4 py-2 rounded-lg cursor-pointer',\n companion: 'flex-1 px-3 py-1.5',\n image: 'max-w-10 max-h-10 rounded-md w-full h-fit self-center',\n title: 'text-md block',\n url: 'text-sm text-buttons-colors-link-primary-text-resting underline'\n }\n },\n markdown: {\n hr: 'my-4 border-t border-stroke-neutral-4',\n copy: 'sticky py-1 [&>svg]:w-4 [&>svg]:h-4 opacity-50',\n p: 'mb-2',\n a: 'text-buttons-colors-link-primary-text-resting underline',\n table: 'table-auto w-full m-2',\n th: 'px-4 py-2 text-left font-bold border-b border-stroke-neutral-4',\n td: 'px-4 py-2',\n code: 'm-2 rounded-b relative',\n inlineCode: 'bg-gradient-neutral-200 p-1 rounded',\n toolbar:\n 'text-xs flex items-center justify-between px-2 py-1 rounded-t sticky top-0 backdrop-blur-md bg-gradient-neutral-500/50',\n li: 'mb-2 ml-6',\n ul: 'mb-4 list-disc',\n ol: 'mb-4 list-decimal',\n h1: 'text-4xl font-bold mb-4 mt-6',\n h2: 'text-3xl font-bold mb-3 mt-5',\n h3: 'text-2xl font-bold mb-3 mt-4',\n h4: 'text-xl font-bold mb-2 mt-3',\n h5: 'text-lg font-bold mb-2 mt-2',\n h6: 'text-base font-bold mb-2 mt-2'\n },\n csvPreview: {\n base: 'flex flex-col gap-2',\n header: {\n base: 'flex justify-between items-center gap-4',\n icon: 'csv-icon flex items-center',\n actions: 'csv-actions flex items-center gap-6'\n },\n tableContainer: 'flex justify-between',\n dialog: {\n base: 'fixed inset-0 bg-background-neutral-canvas-base/70 flex justify-center items-center z-50',\n container:\n 'bg-background-neutral-canvas-base rounded-md w-11/12 h-5/6 overflow-auto'\n }\n },\n footer: {\n base: 'mt-3 flex gap-1.5',\n copy: 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n upvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n downvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n refresh:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!'\n }\n }\n },\n input: {\n base: 'flex mt-4 relative',\n upload:\n 'px-5 py-2 size-10 text-content-text-neutral-2 hover:text-content-text-neutral-base',\n input:\n 'w-full border rounded-3xl px-3 py-2 pr-16 after:hidden after:mx-10! [&>textarea]:w-full [&>textarea]:flex-none [&>textarea]:outline-none [&>textarea]:resize-none',\n actions: {\n base: 'absolute flex gap-2 items-center right-2 inset-y-1/2 -translate-y-1/2 z-10',\n send: 'px-3 py-3 hover:bg-primary-hover rounded-full size-8',\n stop: 'px-2 py-2 bg-content-assets-semantic-error-base text-white rounded-full hover:bg-content-assets-semantic-error-1 size-8'\n },\n dropzone: {\n base: 'relative w-full',\n active: 'ring-1 ring-primary ring-offset-2 rounded-3xl',\n overlay:\n 'absolute inset-0 bg-primary/10 border-2 border-dashed border-primary rounded-3xl flex items-center justify-center gap-1.5 z-20 backdrop-blur-sm',\n text: 'text-primary font-medium text-sm',\n icon: '[&>svg]:w-4 [&>svg]:h-4 text-primary'\n }\n },\n suggestions: {\n base: 'flex flex-wrap gap-2 mt-4',\n item: {\n base: [\n 'rounded-full! max-w-full py-2 px-4',\n 'bg-gray-100 border-gray-200 hover:bg-gray-200 hover:border-gray-300 text-gray-700',\n 'dark:bg-gray-800/50 dark:border-gray-700 dark:hover:bg-gray-700/70 dark:hover:border-gray-600 dark:text-gray-200',\n '[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-blue-500 [&>svg]:dark:text-blue-400 [&>svg]:flex-shrink-0'\n ].join(' '),\n icon: 'w-4 h-4 text-blue-500 dark:text-blue-400 flex-shrink-0',\n text: 'text-sm truncate'\n }\n }\n}"
109
109
  },
110
110
  "description": "Custom theme for the chat.",
111
111
  "name": "theme",
@@ -327,7 +327,7 @@
327
327
  },
328
328
  "theme": {
329
329
  "defaultValue": {
330
- "value": "{\n base: 'text-content-text-neutral-base',\n console: 'flex w-full gap-4 h-full',\n companion: 'w-full h-full overflow-hidden',\n empty: 'text-center flex-1',\n appbar: 'flex p-5',\n sessions: {\n base: 'overflow-auto',\n console:\n 'min-w-[150px] w-[30%] max-w-[300px] bg-gradient-neutral-200 p-5 rounded-3xl',\n companion: 'w-full h-full',\n group: 'text-xs text-content-text-neutral-3 mt-4 hover:bg-transparent mb-1',\n create: 'relative mb-4 rounded-[10px] text-white',\n session: {\n base: 'group my-1 rounded-[10px] p-2 text-content-text-neutral-1 border border-transparent',\n active:\n 'border-select-menu-items-color-item-stroke-row-hover [&_button]:opacity-100!',\n delete: '[&>svg]:w-4 [&>svg]:h-4 opacity-0 group-hover:opacity-50!'\n }\n },\n messages: {\n base: '',\n console: 'flex flex-col mx-5 flex-1 overflow-hidden',\n companion: 'flex w-full h-full',\n back: 'self-start pl-0 my-2 ',\n inner: 'flex-1 h-full flex flex-col',\n title: 'text-base font-bold',\n date: 'text-xs whitespace-nowrap text-content-text-neutral-2',\n content: 'mt-2 flex-1 overflow-auto',\n header: 'flex justify-between items-center gap-2',\n showMore: 'mb-4',\n message: {\n base: 'mt-4 mb-4 flex flex-col p-0 rounded-sm border-none bg-transparent',\n question:\n 'relative font-semibold mb-4 px-4 py-4 pb-2 rounded-3xl rounded-br-none text-typography border bg-(--background-neutral-raised-5) border-(--stroke-neutral-5)',\n response:\n 'relative data-[compact=false]:px-4 text-content-text-neutral-base',\n overlay:\n \"overflow-y-hidden max-h-[350px] after:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-16 after:bg-linear-to-b after:from-transparent after:to-effects-shadows-base-2-xl\",\n cursor: 'inline-block w-1 h-4 bg-current',\n expand: 'absolute bottom-0 right-1 z-10',\n files: {\n base: 'mb-2 flex flex-wrap gap-3 ',\n file: {\n base: 'flex items-center gap-2 border border-stroke-neutral-4 px-3 py-2 rounded-lg cursor-pointer',\n name: 'text-sm text-content-text-neutral-4'\n }\n },\n sources: {\n base: 'my-4 flex flex-wrap gap-3',\n source: {\n base: 'flex gap-2 border border-stroke-neutral-4 px-4 py-2 rounded-lg cursor-pointer',\n companion: 'flex-1 px-3 py-1.5',\n image: 'max-w-10 max-h-10 rounded-md w-full h-fit self-center',\n title: 'text-md block',\n url: 'text-sm text-buttons-colors-link-primary-text-resting underline'\n }\n },\n markdown: {\n hr: 'my-4 border-t border-stroke-neutral-4',\n copy: 'sticky py-1 [&>svg]:w-4 [&>svg]:h-4 opacity-50',\n p: 'mb-2',\n a: 'text-buttons-colors-link-primary-text-resting underline',\n table: 'table-auto w-full m-2',\n th: 'px-4 py-2 text-left font-bold border-b border-stroke-neutral-4',\n td: 'px-4 py-2',\n code: 'm-2 rounded-b relative',\n inlineCode: 'bg-gradient-neutral-200 p-1 rounded',\n toolbar:\n 'text-xs flex items-center justify-between px-2 py-1 rounded-t sticky top-0 backdrop-blur-md bg-gradient-neutral-500/50',\n li: 'mb-2 ml-6',\n ul: 'mb-4 list-disc',\n ol: 'mb-4 list-decimal',\n h1: 'text-4xl font-bold mb-4 mt-6',\n h2: 'text-3xl font-bold mb-3 mt-5',\n h3: 'text-2xl font-bold mb-3 mt-4',\n h4: 'text-xl font-bold mb-2 mt-3',\n h5: 'text-lg font-bold mb-2 mt-2',\n h6: 'text-base font-bold mb-2 mt-2'\n },\n csvPreview: {\n base: 'flex flex-col gap-2',\n header: {\n base: 'flex justify-between items-center gap-4',\n icon: 'csv-icon flex items-center',\n actions: 'csv-actions flex items-center gap-6'\n },\n tableContainer: 'flex justify-between',\n dialog: {\n base: 'fixed inset-0 bg-background-neutral-canvas-base/70 flex justify-center items-center z-50',\n container:\n 'bg-background-neutral-canvas-base rounded-md w-11/12 h-5/6 overflow-auto'\n }\n },\n footer: {\n base: 'mt-3 flex gap-1.5',\n copy: 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n upvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n downvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n refresh:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!'\n }\n }\n },\n input: {\n base: 'flex mt-4 relative',\n upload:\n 'px-5 py-2 size-10 text-content-text-neutral-2 hover:text-content-text-neutral-base',\n input:\n 'w-full border rounded-3xl px-3 py-2 pr-16 after:hidden after:mx-10! [&>textarea]:w-full [&>textarea]:flex-none [&>textarea]:outline-none [&>textarea]:resize-none',\n actions: {\n base: 'absolute flex gap-2 items-center right-2 inset-y-1/2 -translate-y-1/2 z-10',\n send: 'px-3 py-3 hover:bg-primary-hover rounded-full size-8',\n stop: 'px-2 py-2 bg-content-assets-semantic-error-base text-white rounded-full hover:bg-content-assets-semantic-error-1 size-8'\n }\n }\n}"
330
+ "value": "{\n base: 'text-content-text-neutral-base',\n console: 'flex w-full gap-4 h-full',\n companion: 'w-full h-full overflow-hidden',\n empty: 'text-center flex-1',\n appbar: 'flex p-5',\n status: {\n base: 'py-2 px-3 rounded-lg bg-gray-100/50 dark:bg-gray-800/30',\n header: 'flex items-center gap-2',\n icon: {\n base: 'flex-shrink-0 w-4 h-4',\n loading: 'text-blue-500 dark:text-blue-400',\n complete: 'text-green-500 dark:text-green-400',\n error: 'text-red-500 dark:text-red-400'\n },\n text: {\n base: 'text-sm',\n loading: 'text-gray-600 dark:text-gray-400',\n complete: 'text-gray-600 dark:text-gray-400',\n error: 'text-red-600 dark:text-red-400'\n },\n steps: {\n base: 'mt-1 ml-6 space-y-0.5',\n step: {\n base: 'flex items-center gap-2',\n icon: 'flex-shrink-0 w-3.5 h-3.5',\n text: 'text-sm',\n loading: 'text-gray-500 dark:text-gray-500',\n complete: 'text-gray-500 dark:text-gray-500',\n error: 'text-red-500 dark:text-red-400'\n }\n }\n },\n sessions: {\n base: 'overflow-auto',\n console:\n 'min-w-[150px] w-[30%] max-w-[300px] bg-gradient-neutral-200 p-5 rounded-3xl',\n companion: 'w-full h-full',\n group: 'text-xs text-content-text-neutral-3 mt-4 hover:bg-transparent mb-1',\n create: 'relative mb-4 rounded-[10px] text-white',\n session: {\n base: 'group my-1 rounded-[10px] p-2 text-content-text-neutral-1 border border-transparent',\n active:\n 'border-select-menu-items-color-item-stroke-row-hover [&_button]:opacity-100!',\n delete: '[&>svg]:w-4 [&>svg]:h-4 opacity-0 group-hover:opacity-50!'\n }\n },\n messages: {\n base: '',\n console: 'flex flex-col mx-5 flex-1 min-h-0',\n companion: 'flex w-full h-full',\n back: 'self-start pl-0 my-2 ',\n inner: 'flex-1 h-full flex flex-col',\n title: 'text-base font-bold',\n date: 'text-xs whitespace-nowrap text-content-text-neutral-2',\n content: 'mt-2 flex-1 overflow-auto',\n header: 'flex justify-between items-center gap-2',\n showMore: 'mb-4',\n message: {\n base: 'mt-4 mb-4 flex flex-col p-0 rounded-sm border-none bg-transparent',\n question:\n 'relative font-semibold mb-4 px-4 py-4 pb-2 rounded-3xl rounded-br-none text-typography border bg-(--background-neutral-raised-5) border-(--stroke-neutral-5)',\n response:\n 'relative data-[compact=false]:px-4 text-content-text-neutral-base',\n overlay:\n \"overflow-y-hidden max-h-[350px] after:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:h-16 after:bg-linear-to-b after:from-transparent after:to-effects-shadows-base-2-xl\",\n cursor: 'inline-block w-1 h-4 bg-current',\n expand: 'absolute bottom-1 right-1 z-10',\n scrollToBottom: {\n container: 'absolute bottom-2 left-1/2 transform -translate-x-1/2 z-10',\n button: 'rounded-full p-2 shadow-lg'\n },\n files: {\n base: 'mb-2 flex flex-wrap gap-3 ',\n file: {\n base: 'flex items-center gap-2 border border-stroke-neutral-4 px-3 py-2 rounded-lg cursor-pointer',\n name: 'text-sm text-content-text-neutral-4'\n }\n },\n sources: {\n base: 'my-4 flex flex-wrap gap-3',\n source: {\n base: 'flex gap-2 border border-stroke-neutral-4 px-4 py-2 rounded-lg cursor-pointer',\n companion: 'flex-1 px-3 py-1.5',\n image: 'max-w-10 max-h-10 rounded-md w-full h-fit self-center',\n title: 'text-md block',\n url: 'text-sm text-buttons-colors-link-primary-text-resting underline'\n }\n },\n markdown: {\n hr: 'my-4 border-t border-stroke-neutral-4',\n copy: 'sticky py-1 [&>svg]:w-4 [&>svg]:h-4 opacity-50',\n p: 'mb-2',\n a: 'text-buttons-colors-link-primary-text-resting underline',\n table: 'table-auto w-full m-2',\n th: 'px-4 py-2 text-left font-bold border-b border-stroke-neutral-4',\n td: 'px-4 py-2',\n code: 'm-2 rounded-b relative',\n inlineCode: 'bg-gradient-neutral-200 p-1 rounded',\n toolbar:\n 'text-xs flex items-center justify-between px-2 py-1 rounded-t sticky top-0 backdrop-blur-md bg-gradient-neutral-500/50',\n li: 'mb-2 ml-6',\n ul: 'mb-4 list-disc',\n ol: 'mb-4 list-decimal',\n h1: 'text-4xl font-bold mb-4 mt-6',\n h2: 'text-3xl font-bold mb-3 mt-5',\n h3: 'text-2xl font-bold mb-3 mt-4',\n h4: 'text-xl font-bold mb-2 mt-3',\n h5: 'text-lg font-bold mb-2 mt-2',\n h6: 'text-base font-bold mb-2 mt-2'\n },\n csvPreview: {\n base: 'flex flex-col gap-2',\n header: {\n base: 'flex justify-between items-center gap-4',\n icon: 'csv-icon flex items-center',\n actions: 'csv-actions flex items-center gap-6'\n },\n tableContainer: 'flex justify-between',\n dialog: {\n base: 'fixed inset-0 bg-background-neutral-canvas-base/70 flex justify-center items-center z-50',\n container:\n 'bg-background-neutral-canvas-base rounded-md w-11/12 h-5/6 overflow-auto'\n }\n },\n footer: {\n base: 'mt-3 flex gap-1.5',\n copy: 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n upvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n downvote:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!',\n refresh:\n 'p-3 rounded-[10px] [&>svg]:size-4 opacity-50 hover:opacity-100!'\n }\n }\n },\n input: {\n base: 'flex mt-4 relative',\n upload:\n 'px-5 py-2 size-10 text-content-text-neutral-2 hover:text-content-text-neutral-base',\n input:\n 'w-full border rounded-3xl px-3 py-2 pr-16 after:hidden after:mx-10! [&>textarea]:w-full [&>textarea]:flex-none [&>textarea]:outline-none [&>textarea]:resize-none',\n actions: {\n base: 'absolute flex gap-2 items-center right-2 inset-y-1/2 -translate-y-1/2 z-10',\n send: 'px-3 py-3 hover:bg-primary-hover rounded-full size-8',\n stop: 'px-2 py-2 bg-content-assets-semantic-error-base text-white rounded-full hover:bg-content-assets-semantic-error-1 size-8'\n },\n dropzone: {\n base: 'relative w-full',\n active: 'ring-1 ring-primary ring-offset-2 rounded-3xl',\n overlay:\n 'absolute inset-0 bg-primary/10 border-2 border-dashed border-primary rounded-3xl flex items-center justify-center gap-1.5 z-20 backdrop-blur-sm',\n text: 'text-primary font-medium text-sm',\n icon: '[&>svg]:w-4 [&>svg]:h-4 text-primary'\n }\n },\n suggestions: {\n base: 'flex flex-wrap gap-2 mt-4',\n item: {\n base: [\n 'rounded-full! max-w-full py-2 px-4',\n 'bg-gray-100 border-gray-200 hover:bg-gray-200 hover:border-gray-300 text-gray-700',\n 'dark:bg-gray-800/50 dark:border-gray-700 dark:hover:bg-gray-700/70 dark:hover:border-gray-600 dark:text-gray-200',\n '[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-blue-500 [&>svg]:dark:text-blue-400 [&>svg]:flex-shrink-0'\n ].join(' '),\n icon: 'w-4 h-4 text-blue-500 dark:text-blue-400 flex-shrink-0',\n text: 'text-sm truncate'\n }\n }\n}"
331
331
  },
332
332
  "description": "Custom theme for the appbar",
333
333
  "name": "theme",
@@ -484,7 +484,7 @@
484
484
  },
485
485
  "allowedFiles": {
486
486
  "defaultValue": null,
487
- "description": "Allowed file types for upload.",
487
+ "description": "Allowed file extensions for upload (e.g., ['.pdf', '.docx']).",
488
488
  "name": "allowedFiles",
489
489
  "parent": {
490
490
  "fileName": "src/ChatInput/ChatInput.tsx",
@@ -602,6 +602,44 @@
602
602
  "name": "ReactElement<any, string | JSXElementConstructor<any>>"
603
603
  }
604
604
  },
605
+ "dropIcon": {
606
+ "defaultValue": null,
607
+ "description": "Icon to show for the dropzone overlay.",
608
+ "name": "dropIcon",
609
+ "parent": {
610
+ "fileName": "src/ChatInput/ChatInput.tsx",
611
+ "name": "ChatInputProps"
612
+ },
613
+ "declarations": [
614
+ {
615
+ "fileName": "src/ChatInput/ChatInput.tsx",
616
+ "name": "ChatInputProps"
617
+ }
618
+ ],
619
+ "required": false,
620
+ "type": {
621
+ "name": "ReactElement<any, string | JSXElementConstructor<any>>"
622
+ }
623
+ },
624
+ "dropText": {
625
+ "defaultValue": null,
626
+ "description": "Text to show on the dropzone overlay.",
627
+ "name": "dropText",
628
+ "parent": {
629
+ "fileName": "src/ChatInput/ChatInput.tsx",
630
+ "name": "ChatInputProps"
631
+ },
632
+ "declarations": [
633
+ {
634
+ "fileName": "src/ChatInput/ChatInput.tsx",
635
+ "name": "ChatInputProps"
636
+ }
637
+ ],
638
+ "required": false,
639
+ "type": {
640
+ "name": "string"
641
+ }
642
+ },
605
643
  "message": {
606
644
  "defaultValue": null,
607
645
  "description": "Message to be displayed in the input field.",
@@ -663,34 +701,163 @@
663
701
  },
664
702
  {
665
703
  "tags": {},
666
- "filePath": "src/ChatInput/FileInput.tsx",
704
+ "filePath": "src/ChatInput/FileDropzone.tsx",
667
705
  "description": "",
668
- "displayName": "FileInput",
706
+ "displayName": "FileDropzone",
669
707
  "methods": [],
670
708
  "props": {
671
709
  "allowedFiles": {
672
710
  "defaultValue": null,
673
- "description": "Array of allowed file extensions.",
711
+ "description": "Array of allowed file extensions (e.g., ['.pdf', '.docx', '.png']).",
674
712
  "name": "allowedFiles",
675
713
  "parent": {
676
- "fileName": "src/ChatInput/FileInput.tsx",
677
- "name": "FileInputProps"
714
+ "fileName": "src/ChatInput/FileDropzone.tsx",
715
+ "name": "FileDropzoneProps"
678
716
  },
679
717
  "declarations": [
680
718
  {
681
- "fileName": "src/ChatInput/FileInput.tsx",
682
- "name": "FileInputProps"
719
+ "fileName": "src/ChatInput/FileDropzone.tsx",
720
+ "name": "FileDropzoneProps"
683
721
  }
684
722
  ],
685
- "required": true,
723
+ "required": false,
686
724
  "type": {
687
725
  "name": "string[]"
688
726
  }
689
727
  },
690
728
  "multiple": {
691
- "defaultValue": null,
729
+ "defaultValue": {
730
+ "value": "false"
731
+ },
692
732
  "description": "Allow multiple file uploads.",
693
733
  "name": "multiple",
734
+ "parent": {
735
+ "fileName": "src/ChatInput/FileDropzone.tsx",
736
+ "name": "FileDropzoneProps"
737
+ },
738
+ "declarations": [
739
+ {
740
+ "fileName": "src/ChatInput/FileDropzone.tsx",
741
+ "name": "FileDropzoneProps"
742
+ }
743
+ ],
744
+ "required": false,
745
+ "type": {
746
+ "name": "boolean"
747
+ }
748
+ },
749
+ "disabled": {
750
+ "defaultValue": null,
751
+ "description": "Disables the dropzone when true.",
752
+ "name": "disabled",
753
+ "parent": {
754
+ "fileName": "src/ChatInput/FileDropzone.tsx",
755
+ "name": "FileDropzoneProps"
756
+ },
757
+ "declarations": [
758
+ {
759
+ "fileName": "src/ChatInput/FileDropzone.tsx",
760
+ "name": "FileDropzoneProps"
761
+ }
762
+ ],
763
+ "required": false,
764
+ "type": {
765
+ "name": "boolean"
766
+ }
767
+ },
768
+ "dropIcon": {
769
+ "defaultValue": {
770
+ "value": "<UploadIcon />"
771
+ },
772
+ "description": "Icon to show for the dropzone overlay.",
773
+ "name": "dropIcon",
774
+ "parent": {
775
+ "fileName": "src/ChatInput/FileDropzone.tsx",
776
+ "name": "FileDropzoneProps"
777
+ },
778
+ "declarations": [
779
+ {
780
+ "fileName": "src/ChatInput/FileDropzone.tsx",
781
+ "name": "FileDropzoneProps"
782
+ }
783
+ ],
784
+ "required": false,
785
+ "type": {
786
+ "name": "ReactNode"
787
+ }
788
+ },
789
+ "dropText": {
790
+ "defaultValue": {
791
+ "value": "Drop files here to upload"
792
+ },
793
+ "description": "Text to show on the dropzone overlay.",
794
+ "name": "dropText",
795
+ "parent": {
796
+ "fileName": "src/ChatInput/FileDropzone.tsx",
797
+ "name": "FileDropzoneProps"
798
+ },
799
+ "declarations": [
800
+ {
801
+ "fileName": "src/ChatInput/FileDropzone.tsx",
802
+ "name": "FileDropzoneProps"
803
+ }
804
+ ],
805
+ "required": false,
806
+ "type": {
807
+ "name": "string"
808
+ }
809
+ },
810
+ "children": {
811
+ "defaultValue": null,
812
+ "description": "Children to render inside the dropzone.",
813
+ "name": "children",
814
+ "parent": {
815
+ "fileName": "src/ChatInput/FileDropzone.tsx",
816
+ "name": "FileDropzoneProps"
817
+ },
818
+ "declarations": [
819
+ {
820
+ "fileName": "src/ChatInput/FileDropzone.tsx",
821
+ "name": "FileDropzoneProps"
822
+ }
823
+ ],
824
+ "required": true,
825
+ "type": {
826
+ "name": "ReactNode"
827
+ }
828
+ },
829
+ "onFileDrop": {
830
+ "defaultValue": null,
831
+ "description": "Callback function triggered when files are dropped.",
832
+ "name": "onFileDrop",
833
+ "parent": {
834
+ "fileName": "src/ChatInput/FileDropzone.tsx",
835
+ "name": "FileDropzoneProps"
836
+ },
837
+ "declarations": [
838
+ {
839
+ "fileName": "src/ChatInput/FileDropzone.tsx",
840
+ "name": "FileDropzoneProps"
841
+ }
842
+ ],
843
+ "required": false,
844
+ "type": {
845
+ "name": "(file: File) => void"
846
+ }
847
+ }
848
+ }
849
+ },
850
+ {
851
+ "tags": {},
852
+ "filePath": "src/ChatInput/FileInput.tsx",
853
+ "description": "",
854
+ "displayName": "FileInput",
855
+ "methods": [],
856
+ "props": {
857
+ "allowedFiles": {
858
+ "defaultValue": null,
859
+ "description": "Array of allowed file extensions.",
860
+ "name": "allowedFiles",
694
861
  "parent": {
695
862
  "fileName": "src/ChatInput/FileInput.tsx",
696
863
  "name": "FileInputProps"
@@ -703,13 +870,13 @@
703
870
  ],
704
871
  "required": true,
705
872
  "type": {
706
- "name": "boolean"
873
+ "name": "string[]"
707
874
  }
708
875
  },
709
- "isLoading": {
876
+ "multiple": {
710
877
  "defaultValue": null,
711
- "description": "Indicates whether a file upload is in progress.",
712
- "name": "isLoading",
878
+ "description": "Allow multiple file uploads.",
879
+ "name": "multiple",
713
880
  "parent": {
714
881
  "fileName": "src/ChatInput/FileInput.tsx",
715
882
  "name": "FileInputProps"
@@ -786,6 +953,157 @@
786
953
  }
787
954
  }
788
955
  },
956
+ {
957
+ "tags": {},
958
+ "filePath": "src/ChatSuggestions/ChatSuggestion.tsx",
959
+ "description": "",
960
+ "displayName": "ChatSuggestion",
961
+ "methods": [],
962
+ "props": {
963
+ "onClick": {
964
+ "defaultValue": null,
965
+ "description": "Callback when the suggestion is clicked.",
966
+ "name": "onClick",
967
+ "parent": {
968
+ "fileName": "src/ChatSuggestions/ChatSuggestion.tsx",
969
+ "name": "ChatSuggestionProps"
970
+ },
971
+ "declarations": [
972
+ {
973
+ "fileName": "src/ChatSuggestions/ChatSuggestion.tsx",
974
+ "name": "ChatSuggestionProps"
975
+ }
976
+ ],
977
+ "required": false,
978
+ "type": {
979
+ "name": "(suggestion: string) => void"
980
+ }
981
+ },
982
+ "id": {
983
+ "defaultValue": null,
984
+ "description": "Unique identifier for the suggestion",
985
+ "name": "id",
986
+ "parent": {
987
+ "fileName": "reachat/src/types.ts",
988
+ "name": "Suggestion"
989
+ },
990
+ "declarations": [
991
+ {
992
+ "fileName": "reachat/src/types.ts",
993
+ "name": "Suggestion"
994
+ }
995
+ ],
996
+ "required": true,
997
+ "type": {
998
+ "name": "string"
999
+ }
1000
+ },
1001
+ "content": {
1002
+ "defaultValue": null,
1003
+ "description": "The display text for the suggestion",
1004
+ "name": "content",
1005
+ "parent": {
1006
+ "fileName": "reachat/src/types.ts",
1007
+ "name": "Suggestion"
1008
+ },
1009
+ "declarations": [
1010
+ {
1011
+ "fileName": "reachat/src/types.ts",
1012
+ "name": "Suggestion"
1013
+ }
1014
+ ],
1015
+ "required": true,
1016
+ "type": {
1017
+ "name": "string"
1018
+ }
1019
+ }
1020
+ }
1021
+ },
1022
+ {
1023
+ "tags": {},
1024
+ "filePath": "src/ChatSuggestions/ChatSuggestions.tsx",
1025
+ "description": "",
1026
+ "displayName": "ChatSuggestions",
1027
+ "methods": [],
1028
+ "props": {
1029
+ "suggestions": {
1030
+ "defaultValue": null,
1031
+ "description": "Array of suggestions to display.",
1032
+ "name": "suggestions",
1033
+ "parent": {
1034
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1035
+ "name": "ChatSuggestionsProps"
1036
+ },
1037
+ "declarations": [
1038
+ {
1039
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1040
+ "name": "ChatSuggestionsProps"
1041
+ }
1042
+ ],
1043
+ "required": true,
1044
+ "type": {
1045
+ "name": "Suggestion[]"
1046
+ }
1047
+ },
1048
+ "className": {
1049
+ "defaultValue": null,
1050
+ "description": "Custom class name to apply to the container.",
1051
+ "name": "className",
1052
+ "parent": {
1053
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1054
+ "name": "ChatSuggestionsProps"
1055
+ },
1056
+ "declarations": [
1057
+ {
1058
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1059
+ "name": "ChatSuggestionsProps"
1060
+ }
1061
+ ],
1062
+ "required": false,
1063
+ "type": {
1064
+ "name": "string"
1065
+ }
1066
+ },
1067
+ "onSuggestionClick": {
1068
+ "defaultValue": null,
1069
+ "description": "Callback when a suggestion is clicked.",
1070
+ "name": "onSuggestionClick",
1071
+ "parent": {
1072
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1073
+ "name": "ChatSuggestionsProps"
1074
+ },
1075
+ "declarations": [
1076
+ {
1077
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1078
+ "name": "ChatSuggestionsProps"
1079
+ }
1080
+ ],
1081
+ "required": false,
1082
+ "type": {
1083
+ "name": "(suggestion: string) => void"
1084
+ }
1085
+ },
1086
+ "children": {
1087
+ "defaultValue": null,
1088
+ "description": "Custom render function for each suggestion item.\nReceives the suggestion data and onClick handler.",
1089
+ "name": "children",
1090
+ "parent": {
1091
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1092
+ "name": "ChatSuggestionsProps"
1093
+ },
1094
+ "declarations": [
1095
+ {
1096
+ "fileName": "src/ChatSuggestions/ChatSuggestions.tsx",
1097
+ "name": "ChatSuggestionsProps"
1098
+ }
1099
+ ],
1100
+ "required": false,
1101
+ "type": {
1102
+ "name": "ReactElement<any, string | JSXElementConstructor<any>>"
1103
+ }
1104
+ }
1105
+ }
1106
+ },
789
1107
  {
790
1108
  "tags": {},
791
1109
  "filePath": "src/Markdown/CodeHighlighter.tsx",
@@ -1024,6 +1342,206 @@
1024
1342
  "methods": [],
1025
1343
  "props": {}
1026
1344
  },
1345
+ {
1346
+ "tags": {},
1347
+ "filePath": "src/MessageStatus/MessageStatus.tsx",
1348
+ "description": "Displays status information with optional sub-steps, similar to Claude's tool status UI.",
1349
+ "displayName": "MessageStatus",
1350
+ "methods": [],
1351
+ "props": {
1352
+ "status": {
1353
+ "defaultValue": {
1354
+ "value": "loading"
1355
+ },
1356
+ "description": "Current status state.",
1357
+ "name": "status",
1358
+ "parent": {
1359
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1360
+ "name": "MessageStatusProps"
1361
+ },
1362
+ "declarations": [
1363
+ {
1364
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1365
+ "name": "MessageStatusProps"
1366
+ }
1367
+ ],
1368
+ "required": false,
1369
+ "type": {
1370
+ "name": "MessageStatusState"
1371
+ }
1372
+ },
1373
+ "text": {
1374
+ "defaultValue": null,
1375
+ "description": "Main status text to display.",
1376
+ "name": "text",
1377
+ "parent": {
1378
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1379
+ "name": "MessageStatusProps"
1380
+ },
1381
+ "declarations": [
1382
+ {
1383
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1384
+ "name": "MessageStatusProps"
1385
+ }
1386
+ ],
1387
+ "required": true,
1388
+ "type": {
1389
+ "name": "string"
1390
+ }
1391
+ },
1392
+ "steps": {
1393
+ "defaultValue": null,
1394
+ "description": "Optional sub-steps to display.",
1395
+ "name": "steps",
1396
+ "parent": {
1397
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1398
+ "name": "MessageStatusProps"
1399
+ },
1400
+ "declarations": [
1401
+ {
1402
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1403
+ "name": "MessageStatusProps"
1404
+ }
1405
+ ],
1406
+ "required": false,
1407
+ "type": {
1408
+ "name": "MessageStatusStep[]"
1409
+ }
1410
+ },
1411
+ "icon": {
1412
+ "defaultValue": null,
1413
+ "description": "Custom icon to display. If not provided, uses default icons based on status.",
1414
+ "name": "icon",
1415
+ "parent": {
1416
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1417
+ "name": "MessageStatusProps"
1418
+ },
1419
+ "declarations": [
1420
+ {
1421
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1422
+ "name": "MessageStatusProps"
1423
+ }
1424
+ ],
1425
+ "required": false,
1426
+ "type": {
1427
+ "name": "ReactNode"
1428
+ }
1429
+ },
1430
+ "className": {
1431
+ "defaultValue": null,
1432
+ "description": "Additional CSS class name.",
1433
+ "name": "className",
1434
+ "parent": {
1435
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1436
+ "name": "MessageStatusProps"
1437
+ },
1438
+ "declarations": [
1439
+ {
1440
+ "fileName": "src/MessageStatus/MessageStatus.tsx",
1441
+ "name": "MessageStatusProps"
1442
+ }
1443
+ ],
1444
+ "required": false,
1445
+ "type": {
1446
+ "name": "string"
1447
+ }
1448
+ }
1449
+ }
1450
+ },
1451
+ {
1452
+ "tags": {},
1453
+ "filePath": "src/MessageStatus/MessageStatusItem.tsx",
1454
+ "description": "",
1455
+ "displayName": "MessageStatusItem",
1456
+ "methods": [],
1457
+ "props": {
1458
+ "step": {
1459
+ "defaultValue": null,
1460
+ "description": "The step to display.",
1461
+ "name": "step",
1462
+ "parent": {
1463
+ "fileName": "src/MessageStatus/MessageStatusItem.tsx",
1464
+ "name": "MessageStatusItemProps"
1465
+ },
1466
+ "declarations": [
1467
+ {
1468
+ "fileName": "src/MessageStatus/MessageStatusItem.tsx",
1469
+ "name": "MessageStatusItemProps"
1470
+ }
1471
+ ],
1472
+ "required": true,
1473
+ "type": {
1474
+ "name": "MessageStatusStep"
1475
+ }
1476
+ }
1477
+ }
1478
+ },
1479
+ {
1480
+ "tags": {},
1481
+ "filePath": "src/MessageStatus/StatusIcon.tsx",
1482
+ "description": "",
1483
+ "displayName": "StatusIcon",
1484
+ "methods": [],
1485
+ "props": {
1486
+ "state": {
1487
+ "defaultValue": null,
1488
+ "description": "Current state of the status icon.",
1489
+ "name": "state",
1490
+ "parent": {
1491
+ "fileName": "src/MessageStatus/StatusIcon.tsx",
1492
+ "name": "StatusIconProps"
1493
+ },
1494
+ "declarations": [
1495
+ {
1496
+ "fileName": "src/MessageStatus/StatusIcon.tsx",
1497
+ "name": "StatusIconProps"
1498
+ }
1499
+ ],
1500
+ "required": true,
1501
+ "type": {
1502
+ "name": "MessageStatusState"
1503
+ }
1504
+ },
1505
+ "className": {
1506
+ "defaultValue": null,
1507
+ "description": "Additional CSS class name for the icon container.",
1508
+ "name": "className",
1509
+ "parent": {
1510
+ "fileName": "src/MessageStatus/StatusIcon.tsx",
1511
+ "name": "StatusIconProps"
1512
+ },
1513
+ "declarations": [
1514
+ {
1515
+ "fileName": "src/MessageStatus/StatusIcon.tsx",
1516
+ "name": "StatusIconProps"
1517
+ }
1518
+ ],
1519
+ "required": false,
1520
+ "type": {
1521
+ "name": "string"
1522
+ }
1523
+ },
1524
+ "colorClassName": {
1525
+ "defaultValue": null,
1526
+ "description": "CSS class name for the icon color based on state.",
1527
+ "name": "colorClassName",
1528
+ "parent": {
1529
+ "fileName": "src/MessageStatus/StatusIcon.tsx",
1530
+ "name": "StatusIconProps"
1531
+ },
1532
+ "declarations": [
1533
+ {
1534
+ "fileName": "src/MessageStatus/StatusIcon.tsx",
1535
+ "name": "StatusIconProps"
1536
+ }
1537
+ ],
1538
+ "required": false,
1539
+ "type": {
1540
+ "name": "string"
1541
+ }
1542
+ }
1543
+ }
1544
+ },
1027
1545
  {
1028
1546
  "tags": {},
1029
1547
  "filePath": "src/SessionMessages/SessionEmpty.tsx",
@@ -1170,6 +1688,27 @@
1170
1688
  "name": "boolean"
1171
1689
  }
1172
1690
  },
1691
+ "showScrollBottomButton": {
1692
+ "defaultValue": {
1693
+ "value": "false"
1694
+ },
1695
+ "description": "Whether to display the scroll to bottom button.",
1696
+ "name": "showScrollBottomButton",
1697
+ "parent": {
1698
+ "fileName": "src/SessionMessages/SessionMessages.tsx",
1699
+ "name": "SessionMessagesProps"
1700
+ },
1701
+ "declarations": [
1702
+ {
1703
+ "fileName": "src/SessionMessages/SessionMessages.tsx",
1704
+ "name": "SessionMessagesProps"
1705
+ }
1706
+ ],
1707
+ "required": false,
1708
+ "type": {
1709
+ "name": "boolean"
1710
+ }
1711
+ },
1173
1712
  "children": {
1174
1713
  "defaultValue": null,
1175
1714
  "description": "Render function for the session messages.",