All Projects β†’ argyleink β†’ chat-ui

argyleink / chat-ui

Licence: MIT license
πŸ’¬ rich message handling chat interface for bot projects

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to chat-ui

snk.dev-assistant
Assistant for code development with advanced machine learning features
Stars: ✭ 14 (-26.32%)
Mutual labels:  wip
remark-jsx
A simple way to use React inside Markdown.
Stars: ✭ 29 (+52.63%)
Mutual labels:  custom-elements
visual-graph-explorer
A simple graph explorer leveraging yFiles for HTML, neo4j bolt, implemented using VueJS and Vuetify
Stars: ✭ 13 (-31.58%)
Mutual labels:  wip
prometheus to clickhouse
Prometheus to Clickhouse Adapter
Stars: ✭ 14 (-26.32%)
Mutual labels:  wip
Web-Map-Custom-Element
A custom <mapml-viewer> and <layer-> element suite
Stars: ✭ 49 (+157.89%)
Mutual labels:  custom-elements
api-viewer-element
API documentation and live playground for Web Components. Based on Custom Elements Manifest format
Stars: ✭ 222 (+1068.42%)
Mutual labels:  custom-elements
wip
WIP & naenae: CLI utilities to easily manage Work In Progress with Git
Stars: ✭ 46 (+142.11%)
Mutual labels:  wip
CalDOM
An agnostic, reactive & minimalist (3kb) JavaScript UI library with direct access to native DOM.
Stars: ✭ 176 (+826.32%)
Mutual labels:  custom-elements
KanColle-English-Patch-KCCP
English Patch for the original KanColle browser game, to be used with KCCacheProxy. Translates most of the game into english.
Stars: ✭ 28 (+47.37%)
Mutual labels:  wip
ui5-cap-event-app
Showcase of SAP Cloud Application Programming Model and OData V4 with draft mode in a freestyle SAPUI5 app and an SAP Fiori elements app.
Stars: ✭ 70 (+268.42%)
Mutual labels:  wip
f-omega-mu
Fωμ type checker and compiler
Stars: ✭ 46 (+142.11%)
Mutual labels:  wip
OctoPrint-Octoremote
A hardware remote for Octoprint controlled 3D Printers
Stars: ✭ 23 (+21.05%)
Mutual labels:  wip
pepatch
A hacky tool to patch PE binaries.
Stars: ✭ 21 (+10.53%)
Mutual labels:  wip
web-components
A set of high-quality standards based web components for enterprise web applications. Part of Vaadin 20+
Stars: ✭ 322 (+1594.74%)
Mutual labels:  custom-elements
WebinoImageThumb
βœ‚οΈ Webinoβ„’ Image thumbnailer for Zend Framework [LTS] http://webino.github.io/WebinoImageThumb
Stars: ✭ 40 (+110.53%)
Mutual labels:  wip
tix
[WIP] A type system for nix
Stars: ✭ 59 (+210.53%)
Mutual labels:  wip
MoleculeJS
A library for creating fast and reactive Custom Elements
Stars: ✭ 39 (+105.26%)
Mutual labels:  custom-elements
web-controls-library
A library of reusable custom elements for GeneXus web applications
Stars: ✭ 14 (-26.32%)
Mutual labels:  custom-elements
svelte-webcomponent-boilerplate
πŸ— Create your HTML5 Web Component with Svelte. Made your web components with this user-friendly boilerplate
Stars: ✭ 58 (+205.26%)
Mutual labels:  custom-elements
go-external-ip
a Golang library to get your external ip from multiple services
Stars: ✭ 55 (+189.47%)
Mutual labels:  wip

Chat Component (WIP)

Get Started

  • npm i
  • npm start or npm run build:dev

Features

  • Web Components
  • Themeability
  • Animations
  • API
  • Link wrapping
  • Loading states
  • Minimal footprint
  • HTML, Cards, Images, Galleries: ready for more custom message renderers

Themeability

Just change the custom property values on the <chat-ui> node. For a list of what you can change, find it here. Or, don't use custom properties, and update the NextCSS config to compile the variables, then you can do it a more SCSSy way, and support more browsers.

Below is an example of how much work it takes to make a dark theme with custom properties:

--chat-ui_theme: hsl(0,0%,15%);
--chat-ui_bg: hsl(0,0%,10%);
--chat-ui_message_bg: hsl(0,0%,20%);
--chat-ui_message_text-color: hsl(0,0%,60%);
--chat-ui_message_bg2: hsl(0,0%,13%);

Component API

This is the primary component that you should be dealing with. It has the easy API, for quick access to the most common tasks in a chat widget. You shouldn't need the API's for the other components, but you can leverage them if you want to.

WARNING: I'm moving fast and not updating these docs much..

Add Message

document.querySelector('chat-ui')
  .newMessage({
    mine:     false,  // is this new message the user or user's friend
    type:     'HTML', // currently supports ['HTML', 'Text', 'Card', 'Image', 'Gallery']
    contents: '<b>Hello</b>!<br>Look HTML works πŸ‘',
    author:   { 
      name:   'Turbo',
      avatar: 'https://cdn.dribbble.com/users/37530/screenshots/2937858/drib_blink_bot.gif' 
    },
})

Listen to what the user wrote

document.querySelector('chat-ui')
  .addEventListener('outbound-message', payload =>
    console.info('custom event from component', payload))

Friend is writing

document.querySelector('chat-ui')
  .writing()

Friend has stopped writing

document.querySelector('chat-ui')
  .writing(false)

SET message

Object will pass through the messaging renderer and properly be displayed in the thread

document.querySelector('chat-message')
  .message = {...}

add()

Appends a message to the cluster

document.querySelector('chat-cluster')
  .add({...})

scrollToLatest()

Scrolls to the beginning of the chat

document.querySelector('chat-scrollview')
  .scrollToLatest()

send()

Will send current edited contents

document.querySelector('chat-authoring')
  .send()

Development

  • Webpack
  • CSS4 (postcss + cssnext)
  • ES6
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].