$xmpp $mol_book2 plugins / <= Theme $mol_theme_auto - Login_page $mol_page title @ \XMPP Client tools / <= Lights $mol_lights_toggle body / <= Login_form $mol_form form_fields / <= Server_field $mol_form_field name @ \WebSocket URL control <= Server_input $mol_string hint \wss://jabber.example.com/ws value? <=> server? \ <= Jid_field $mol_form_field name @ \JID control <= Jid_input $mol_string hint \user@jabber.example.com value? <=> jid? \ <= Pass_field $mol_form_field name @ \Password control <= Pass_input $mol_string type \password value? <=> password? \ <= Error_field $mol_form_field name @ \Error control <= Error_view $mol_view sub / <= error_text \ buttons / <= Connect_button $mol_button_major title <= connect_title @ \Connect click? <=> do_connect? null disabled <= connecting false - Roster_page $mol_page title <= roster_title @ \Contacts tools / <= Lights $mol_lights_toggle <= My_avatar $mol_view dom_name \img attr * ^ src <= my_avatar_uri \ alt \ <= Set_avatar_button $mol_button_minor title @ \Set avatar click? <=> do_set_avatar? null <= Disconnect_button $mol_button_minor title <= disconnect_label @ \Disconnect click? <=> do_disconnect? null body / <= Roster_list $mol_list rows <= roster_rows / <= New_chat_form $mol_form form_fields / <= New_chat_field $mol_form_field name @ \New chat with control <= New_chat_input $mol_string hint \user@example.com value? <=> new_chat_jid? \ buttons / <= New_chat_button $mol_button_major title @ \Start chat click? <=> do_new_chat? null <= Room_join_form $mol_form form_fields / <= Room_jid_field $mol_form_field name @ \Room JID control <= Room_jid_input $mol_string hint \room@conference.example.com value? <=> room_jid? \ <= Room_nick_field $mol_form_field name @ \Nickname control <= Room_nick_input $mol_string hint @ \nickname value? <=> room_nick? \ buttons / <= Room_join_button $mol_button_major title @ \Join Room click? <=> do_join_room? null - Chat_page* $mol_page title <= chat_with* \ Logo <= Chat_avatar* $mol_view dom_name \img attr * ^ src <= chat_avatar_uri* \ alt \ tools / <= Chat_leave* $mol_button_minor title @ \Leave click? <=> do_leave_room*? null attr * ^ hidden <= chat_leave_hidden* \ <= Chat_close* $mol_link arg * chat null sub / <= Chat_close_icon* $mol_icon_close body / <= Messages_list* $mol_list rows <= message_rows* / foot / <= Compose_input* $mol_string dom_name \textarea hint @ \Type a message… value? <=> compose*? \ event * ^ keydown? <=> compose_keydown*? null paste? <=> compose_paste*? null <= Attach_button* $mol_button_minor title @ \Attach click? <=> do_attach*? null <= Record_button* $mol_button_minor title <= record_title* @ \Record click? <=> do_record*? null <= Send_button* $mol_button_major title <= send_label @ \Send click? <=> do_send*? null - Roster_contact* $mol_button_minor click? <=> open_chat*? null sub / <= Contact_avatar* $mol_view dom_name \img attr * ^ src <= contact_avatar_uri* \ alt \ <= Contact_label* $mol_view sub / <= contact_display* \ - Msg* $mol_view sub / <= Msg_avatar* $mol_view dom_name \img attr * ^ src <= msg_avatar_uri* \ alt \ <= Msg_content* $mol_view sub / <= Msg_head* $mol_view sub / <= Msg_from* $mol_view sub / <= msg_from* \ <= Msg_time* $mol_view sub / <= msg_time* \ <= Msg_body* $mol_view sub / <= msg_body* \ <= Msg_media* $mol_view sub <= msg_media* / <= Msg_status* $mol_view sub / <= msg_status* \ - Msg_image* $mol_view dom_name \img attr * ^ src <= msg_image_uri* \ - Msg_audio* $mol_view dom_name \audio attr * ^ controls \ src <= msg_audio_src* \ - Msg_link* $mol_link uri <= msg_link_uri* \ sub / <= msg_link_label* @ \Open file