client: start work on UI plumbing, but it's far from finished....

UI code is always impossible to keep nice and neat....  * sighs *
This commit is contained in:
Starbeamrainbowlabs 2022-02-27 02:06:33 +00:00
parent 6a834eea22
commit ae1b46097e
Signed by: sbrl
GPG key ID: 1BE5172E637709C2
5 changed files with 64 additions and 1 deletions

43
package-lock.json generated
View file

@ -13,6 +13,7 @@
"@svgdotjs/svg.js": "^3.1.2", "@svgdotjs/svg.js": "^3.1.2",
"apexcharts": "^3.33.1", "apexcharts": "^3.33.1",
"applause-cli": "^1.8.0", "applause-cli": "^1.8.0",
"emel": "^2.5.1",
"jpake": "^1.0.1", "jpake": "^1.0.1",
"mime": "^3.0.0", "mime": "^3.0.0",
"nightink": "^0.1.3", "nightink": "^0.1.3",
@ -30,6 +31,19 @@
"fork-awesome": "^1.2.0" "fork-awesome": "^1.2.0"
} }
}, },
"node_modules/@emmetio/abbreviation": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz",
"integrity": "sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==",
"dependencies": {
"@emmetio/scanner": "^1.0.0"
}
},
"node_modules/@emmetio/scanner": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.0.tgz",
"integrity": "sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA=="
},
"node_modules/@ltd/j-toml": { "node_modules/@ltd/j-toml": {
"version": "1.29.0", "version": "1.29.0",
"resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.29.0.tgz", "resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.29.0.tgz",
@ -99,6 +113,14 @@
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
}, },
"node_modules/emel": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/emel/-/emel-2.5.1.tgz",
"integrity": "sha512-XOdOnidb6EyCmCQBcAyARUwn0Sv0rqMvz+VDIY2LoHLu3NhXoQisBmqSVcKgAP5M3v77UYAolJ98fY+lAjv/QA==",
"dependencies": {
"@emmetio/abbreviation": "^2.2.3"
}
},
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.14.23", "version": "0.14.23",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz",
@ -707,6 +729,19 @@
} }
}, },
"dependencies": { "dependencies": {
"@emmetio/abbreviation": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz",
"integrity": "sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==",
"requires": {
"@emmetio/scanner": "^1.0.0"
}
},
"@emmetio/scanner": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.0.tgz",
"integrity": "sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA=="
},
"@ltd/j-toml": { "@ltd/j-toml": {
"version": "1.29.0", "version": "1.29.0",
"resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.29.0.tgz", "resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.29.0.tgz",
@ -766,6 +801,14 @@
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
}, },
"emel": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/emel/-/emel-2.5.1.tgz",
"integrity": "sha512-XOdOnidb6EyCmCQBcAyARUwn0Sv0rqMvz+VDIY2LoHLu3NhXoQisBmqSVcKgAP5M3v77UYAolJ98fY+lAjv/QA==",
"requires": {
"@emmetio/abbreviation": "^2.2.3"
}
},
"esbuild": { "esbuild": {
"version": "0.14.23", "version": "0.14.23",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.23.tgz",

View file

@ -22,6 +22,7 @@
"@svgdotjs/svg.js": "^3.1.2", "@svgdotjs/svg.js": "^3.1.2",
"apexcharts": "^3.33.1", "apexcharts": "^3.33.1",
"applause-cli": "^1.8.0", "applause-cli": "^1.8.0",
"emel": "^2.5.1",
"jpake": "^1.0.1", "jpake": "^1.0.1",
"mime": "^3.0.0", "mime": "^3.0.0",
"nightink": "^0.1.3", "nightink": "^0.1.3",

View file

@ -14,7 +14,7 @@
<ul class="nav-items"> <ul class="nav-items">
<li><a href="#settings"> <li><a href="#settings">
<span class="fa fa-cog" aria-hidden="true"></span> <span class="fa fa-cog fa-fw" aria-hidden="true"></span>
Settings Settings
</a></li> </a></li>
</ul> </ul>

View file

@ -0,0 +1,9 @@
"use strict";
class UITable {
constructor() {
}
}
export default UITable;

View file

@ -0,0 +1,10 @@
"use strict";
export default function(def) {
if(typeof def === "string")
return `span.fa.fa-${def}`;
if(def instanceof Array)
return def.map(el, i => `span.fa.fa-${el}.fa-stack-${def.length-i}x`).join(`+`);
throw new Error(`Error: Expected def of type string or Array, but got variable of type ${typeof def}`);
}