Package-level declarations
Types
Is used with GeminiChat and ChatMessage. Messages with isPending, should show a circular loading animation
Functions
A Gemini chat box, where newMsgs are added to the list of messages. If a new message is not from the user and is not a loading message and not a pending, it will replace the previously loading message.
Joins the GeminiChat and ChatInput for ease of use. isBlanks are ignored
Use a real device for this preview, so you can type. Or see GeminiChatPreview
Run in interactive mode. This has some logic to constrain new newMessages but it's all so simulate a real use. New messages are blocked by ChatInput by disabling the click of the trailing icon. Note: Compose preview with interaction mode doesn't allow typing in the ChatInput To do so, use GeminiChatContainerPreview
To generate messages with new UUIDs
Creates an AnnotatedString which is like a string with effects and decorations. This type is directly supported by Text. This only adds bold to characters surrounded by asterisk.
AnnotatedString could be used, but I want to keep it simple. And this will also have much greater performance since it's run once in Message In rare occasions Gemini seems like it can also through sub bullet points, that may be use tabs or something. So this solution isn't a catch all