JSFiddle - React, Tailwind, and code Playground

by enyojs

HTML

<link rel="stylesheet" href="https://raw.github.com/enyojs/enyo/data-list/build/enyo.css">
<script src="https://raw.github.com/enyojs/enyo/data-list/build/enyo.js"></script>
<script src="http://nightly.enyojs.com/latest/lib/onyx/package.js"></script>
<script src="http://nightly.enyojs.com/latest/lib/layout/package.js"></script>

CSS

.selected {
    background:lightblue;
}

JavaScript

// Dummy device list - should be enyo.Ajax'ed in from novocom-devices.json
var novacom_devices = [
	{
		"name": "webos3-qemux86",
		"type": "webos3",
		"description": "webOS 3 emulator",
		"host": "127.0.0.1",
		"port": 5522,
		"username": "root",
		"privateKey": {
			"openSsh": "webos"
		}
	},
	{
		"name": "webospro-qemux86",
		"type": "webospro",
		"description": "webOS Pro emulator",
		"host": "127.0.0.1",
		"port": 6622,
		"username": "root",
		"privateKey": {
			"openSsh": "webos"
		}
	},
	{
		"name": "tv",
		"type": "starfish",
		"description": "LG Smart TV",
		"host": "127.0.0.1",
		"port": 22,
		"username": "root",
		"privateKey": {
			"openSsh": "webos"
		}
	}
];

enyo.kind({
    name: "DeviceSetup",
    kind: "FittableColumns",
    bindings: [
        {from: ".model.name", to: ".$.selectedHeader.content"},
        {from: ".model.name", to: ".$.nameInput.value", twoWay:true},
        {from: ".model.description", to: ".$.descInput.value", twoWay:true},
        {from: ".model.host", to: ".$.ipInput.value", twoWay:true},
        {from: ".model.port", to: ".$.portInput.value", twoWay:true},
        {from: ".model.uid", to: ".$.uidInput.value", twoWay:true},
        {from: ".model.privateKey", to: ".$.keyCheckbox.checked"},
        {from: ".model.privateKey", to: ".$.registerButton.content", transform: function(val) {return val ? "Re-register" : "Register";}},
        {from: ".model", to: ".$.removeButton.showing"},
        {from: ".model", to: ".$.selectedTable.showing"},
        {from: ".model.modified", to: ".$.registerButton.disabled", transform: function(val) {return !val}}
    ],
    components: [
        {kind: "FittableRows", components: [
            {kind: "onyx.Toolbar", content: "webOS Devices"},
            {kind: "enyo.DataList", fit:true, ontap:"select", name:"list", style:"width:200px;", components: [
                {kind:"onyx.Item", bindFrom:"selected", bindTo:"classes", bindTransform: function(value) {return value ? "selected" : "";},...