commit 1e3c815ac6eb596e2b8e507f1a810cac3ab94168 Author: David Kebler Date: Tue Dec 8 17:46:34 2020 -0800 initial commit of all scripts and complete data folder diff --git a/data/frodo/.config.nodes.json b/data/frodo/.config.nodes.json new file mode 100644 index 0000000..2b788b9 --- /dev/null +++ b/data/frodo/.config.nodes.json @@ -0,0 +1,395 @@ +{ + "node-red": { + "name": "node-red", + "version": "1.2.5", + "local": false, + "nodes": { + "inject": { + "name": "inject", + "types": [ + "inject" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/20-inject.js" + }, + "debug": { + "name": "debug", + "types": [ + "debug" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/21-debug.js" + }, + "complete": { + "name": "complete", + "types": [ + "complete" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/24-complete.js" + }, + "catch": { + "name": "catch", + "types": [ + "catch" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-catch.js" + }, + "status": { + "name": "status", + "types": [ + "status" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/25-status.js" + }, + "link": { + "name": "link", + "types": [ + "link in", + "link out" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/60-link.js" + }, + "comment": { + "name": "comment", + "types": [ + "comment" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/90-comment.js" + }, + "unknown": { + "name": "unknown", + "types": [ + "unknown" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/common/98-unknown.js" + }, + "function": { + "name": "function", + "types": [ + "function" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-function.js" + }, + "switch": { + "name": "switch", + "types": [ + "switch" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/10-switch.js" + }, + "change": { + "name": "change", + "types": [ + "change" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/15-change.js" + }, + "range": { + "name": "range", + "types": [ + "range" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/16-range.js" + }, + "template": { + "name": "template", + "types": [ + "template" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/80-template.js" + }, + "delay": { + "name": "delay", + "types": [ + "delay" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-delay.js" + }, + "trigger": { + "name": "trigger", + "types": [ + "trigger" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/89-trigger.js" + }, + "exec": { + "name": "exec", + "types": [ + "exec" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/function/90-exec.js" + }, + "tls": { + "name": "tls", + "types": [ + "tls-config" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/05-tls.js" + }, + "httpproxy": { + "name": "httpproxy", + "types": [ + "http proxy" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/06-httpproxy.js" + }, + "mqtt": { + "name": "mqtt", + "types": [ + "mqtt in", + "mqtt out", + "mqtt-broker" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/10-mqtt.js" + }, + "httpin": { + "name": "httpin", + "types": [ + "http in", + "http response" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httpin.js" + }, + "httprequest": { + "name": "httprequest", + "types": [ + "http request" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/21-httprequest.js" + }, + "websocket": { + "name": "websocket", + "types": [ + "websocket in", + "websocket out", + "websocket-listener", + "websocket-client" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/22-websocket.js" + }, + "tcpin": { + "name": "tcpin", + "types": [ + "tcp in", + "tcp out", + "tcp request" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/31-tcpin.js" + }, + "udp": { + "name": "udp", + "types": [ + "udp in", + "udp out" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/network/32-udp.js" + }, + "CSV": { + "name": "CSV", + "types": [ + "csv" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-CSV.js" + }, + "HTML": { + "name": "HTML", + "types": [ + "html" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-HTML.js" + }, + "JSON": { + "name": "JSON", + "types": [ + "json" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-JSON.js" + }, + "XML": { + "name": "XML", + "types": [ + "xml" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-XML.js" + }, + "YAML": { + "name": "YAML", + "types": [ + "yaml" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/parsers/70-YAML.js" + }, + "split": { + "name": "split", + "types": [ + "split", + "join" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/17-split.js" + }, + "sort": { + "name": "sort", + "types": [ + "sort" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/18-sort.js" + }, + "batch": { + "name": "batch", + "types": [ + "batch" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/sequence/19-batch.js" + }, + "file": { + "name": "file", + "types": [ + "file", + "file in" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/10-file.js" + }, + "watch": { + "name": "watch", + "types": [ + "watch" + ], + "enabled": true, + "local": false, + "module": "node-red", + "file": "/usr/src/node-red/node_modules/@node-red/nodes/core/storage/23-watch.js" + } + } + }, + "node-red-node-rbe": { + "name": "node-red-node-rbe", + "version": "0.2.9", + "local": false, + "nodes": { + "rbe": { + "name": "rbe", + "types": [ + "rbe" + ], + "enabled": true, + "local": false, + "module": "node-red-node-rbe", + "file": "/usr/src/node-red/node_modules/node-red-node-rbe/rbe.js" + } + } + }, + "node-red-node-tail": { + "name": "node-red-node-tail", + "version": "0.1.1", + "local": false, + "nodes": { + "tail": { + "name": "tail", + "types": [ + "tail" + ], + "enabled": true, + "local": false, + "module": "node-red-node-tail", + "file": "/usr/src/node-red/node_modules/node-red-node-tail/28-tail.js" + } + } + } +} \ No newline at end of file diff --git a/data/frodo/.config.runtime.json b/data/frodo/.config.runtime.json new file mode 100644 index 0000000..844ba47 --- /dev/null +++ b/data/frodo/.config.runtime.json @@ -0,0 +1,3 @@ +{ + "_credentialSecret": "548d70204539bccf3c587c9205cb46c521a0fc77f6f7efadadfdca0261eabcc0" +} \ No newline at end of file diff --git a/data/frodo/.config.users.json b/data/frodo/.config.users.json new file mode 100644 index 0000000..0f5009b --- /dev/null +++ b/data/frodo/.config.users.json @@ -0,0 +1,14 @@ +{ + "_": { + "editor": { + "view": { + "view-show-grid": true, + "view-snap-grid": true, + "view-grid-size": 20, + "view-node-status": true, + "view-node-show-label": true, + "view-show-tips": true + } + } + } +} \ No newline at end of file diff --git a/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/LICENSE b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/LICENSE new file mode 100644 index 0000000..72b8a79 --- /dev/null +++ b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019-2020 Mauricio Bonani + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/README.md b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/README.md new file mode 100644 index 0000000..41180cb --- /dev/null +++ b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/README.md @@ -0,0 +1,125 @@ +# Midnight Node-RED theme + +![Project Maintenance][maintenance-shield] +[![License][license-shield]](LICENSE) +[![GitHub Activity][commits-shield]][commits] +[![GitHub Last Commit][last-commit-shield]][commits] + +[![NPM Shield][npm-shield]][npm-package] + +## About + +A dark theme for [Node-RED][node-red] based on the +[midnight theme][ha-midnight-theme] for [Home Assistant][home-assistant]. + +![screenshot](https://raw.githubusercontent.com/node-red-contrib-themes/midnight-red/master/images/screenshot.png) + +## Install + +Change to the Node-RED `userDir` directory, usually `~/.node-red`. + +```shell +cd ~/.node-red +``` + +Install this package. + +```shell +npm install @node-red-contrib-themes/midnight-red +``` + +Add the following to the `editorTheme` section of your `settings.js`. + +```js +editorTheme: { + page: { + css: "/.node-red/node_modules/@node-red-contrib-themes/midnight-red/theme.css" + } +} +``` + +Replace `` with the home directory of the user running Node-RED. For +example, `/home/username`. + +For more details on the configuration please refer to the +[Node-RED official documentation][node-red-doc]. + +Restart Node-RED. + +Enjoy! + +## Update + +Change to the Node-RED `userDir` directory, usually `~/.node-red`. + +```shell +cd ~/.node-red +``` + +Update this package. + +```shell +npm update @node-red-contrib-themes/midnight-red +``` + +Reload the Node-RED page on the web browser. + +## Scrollbars (EXPERIMENTAL) + +This version includes a [change][scrollbar-pr] to the scrollbars by [Villhellm][villhellm] +to make them better fit the dark theme. + +**NOTE**: This is ***EXPERIMENTAL***! Please let us know if you find any issues when using it. + +If you want to try it, change the `editorTheme` section of your `settings.js` to +look like the following. + +```js +editorTheme: { + page: { + css: [ + "/.node-red/node_modules/@node-red-contrib-themes/midnight-red/theme.css", + "/.node-red/node_modules/@node-red-contrib-themes/midnight-red/scrollbars.css" + ] + } +} +``` + +Replace `` with the home directory of the user running Node-RED. For +example, `/home/username`. + +For more details on the configuration please refer to the +[Node-RED official documentation][node-red-doc]. + +Restart Node-RED. + +Enjoy! + +## Acknowledgments + +- [Sebastian Raff][hobbyquaker] - for the inspiration and help in creating the +NPM package for this theme. +- [Ristomatti Airo][ristomatti] - for his amazing [theme][solarized-dark-gray-theme] on which major +readability improvements were based. + +## License + +[MIT][license] + +[commits-shield]: https://img.shields.io/github/commit-activity/y/node-red-contrib-themes/midnight-red.svg +[commits]: https://github.com/node-red-contrib-themes/midnight-red/commits/master +[ha-midnight-theme]: https://community.home-assistant.io/t/midnight-theme/28598 +[hobbyquaker]: https://github.com/hobbyquaker +[home-assistant]: https://home-assistant.io +[last-commit-shield]: https://img.shields.io/github/last-commit/node-red-contrib-themes/midnight-red.svg +[license]: https://github.com/node-red-contrib-themes/midnight-red/blob/master/LICENSE +[license-shield]: https://img.shields.io/github/license/node-red-contrib-themes/midnight-red.svg +[maintenance-shield]: https://img.shields.io/maintenance/yes/2020.svg +[node-red-doc]: https://nodered.org/docs/user-guide/runtime/configuration +[node-red]: https://nodered.org/ +[npm-package]: https://nodei.co/npm/@node-red-contrib-themes/midnight-red +[npm-shield]: https://nodei.co/npm/@node-red-contrib-themes/midnight-red.png +[ristomatti]: https://github.com/ristomatti +[scrollbar-pr]: https://github.com/node-red-contrib-themes/midnight-red/pull/18 +[solarized-dark-gray-theme]: https://github.com/ristomatti/node-red-contrib-theme-solarized-dark-grey +[villhellm]: https://github.com/Villhellm diff --git a/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/package.json b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/package.json new file mode 100644 index 0000000..f327338 --- /dev/null +++ b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/package.json @@ -0,0 +1,58 @@ +{ + "_from": "@node-red-contrib-themes/midnight-red", + "_id": "@node-red-contrib-themes/midnight-red@1.4.6", + "_inBundle": false, + "_integrity": "sha512-SACa8ctZNpYoj+Qut9otkNsRHmgMLN5dSKeYttWeH+zLwUX2dMsDPtJ+NgtUcDaQX8LwBKd+cGFOuX5qO/z8Fg==", + "_location": "/@node-red-contrib-themes/midnight-red", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "@node-red-contrib-themes/midnight-red", + "name": "@node-red-contrib-themes/midnight-red", + "escapedName": "@node-red-contrib-themes%2fmidnight-red", + "scope": "@node-red-contrib-themes", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://npm.kebler.net/@node-red-contrib-themes%2fmidnight-red/-/midnight-red-1.4.6.tgz", + "_shasum": "6f3878a8854c292040b28a42fa090ef4537268a5", + "_spec": "@node-red-contrib-themes/midnight-red", + "_where": "/opt/node-red/data/frodo", + "author": { + "name": "Mauricio Bonani @mbonani" + }, + "bugs": { + "url": "https://github.com/node-red-contrib-themes/midnight-red/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A gorgeous dark theme for Node-RED", + "funding": { + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/mbonani" + }, + "homepage": "https://github.com/node-red-contrib-themes/midnight-red#readme", + "keywords": [ + "node-red", + "nodered", + "midnight", + "dark", + "theme" + ], + "license": "MIT", + "name": "@node-red-contrib-themes/midnight-red", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/node-red-contrib-themes/midnight-red.git" + }, + "version": "1.4.6" +} diff --git a/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/scrollbars.css b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/scrollbars.css new file mode 100644 index 0000000..3fa0dfb --- /dev/null +++ b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/scrollbars.css @@ -0,0 +1,26 @@ +/* + midnight-red - https://github.com/node-red-contrib-themes/midnight-red +*/ + +.red-ui-editor { + scrollbar-color: #999 #2E333A; + scrollbar-width: initial; +} + +::-webkit-scrollbar { + width: initial; +} + +::-webkit-scrollbar-corner { + background-color: #2E333A; +} + +::-webkit-scrollbar-thumb { + background-color: #999; + border-radius: 20px; + border: 3px solid #2E333A; +} + +::-webkit-scrollbar-track { + background-color: #2E333A; +} diff --git a/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/theme.css b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/theme.css new file mode 100644 index 0000000..91e7a7c --- /dev/null +++ b/data/frodo/node_modules/@node-red-contrib-themes/midnight-red/theme.css @@ -0,0 +1,3068 @@ +/* + midnight-red - https://github.com/node-red-contrib-themes/midnight-red +*/ + +.ace-tomorrow .ace_indent-guide { + filter: brightness(0.25); +} + +.ace-tomorrow .ace_marker-layer .ace_bracket { + border-color: #DDD; +} + +.ace-tomorrow .ace_print-margin { + background-color: #434954; +} + +.ace-tomorrow { + background-color: #434954; +} + +.help-key { + border-color: #2D3239; + background-color: #3E424B; +} + +.node-info-property-config-node { + border-color: #2C3138; +} + +.node-input-env-container-row .red-ui-editableList-border .red-ui-editableList-header { + background-color: #3E424B; +} + +.nr-db-sb-group-list li { + border-bottom-color: #434954 !important; +} + +.nr-db-sb-list-handle { + color: #DDD !important; +} + +.nr-db-sb-list-header, +.nr-db-sb-tab-list-item { + color: #DDD !important; +} + +.nr-db-sb-list-header:hover, +.nr-db-sb-group-list-header:hover, +.nr-db-sb-widget-list-header:hover { + background-color: #383C45 !important; + color: #DDD !important; +} + +.nr-db-sb-tab-list-header { + background-color: #434954 !important; +} + +.red-ui-checkboxSet { + color: #AAA; +} + +.red-ui-checkboxSet.disabled { + color: #777; +} + +.red-ui-clipboard-dialog-box { + border-color: #2E333A; +} + +.red-ui-clipboard-dialog-tab-clipboard textarea { + background-color: #383C45; +} + +.red-ui-clipboard-dialog-tabs-content { + background-color: #434954; +} + +.red-ui-clipboard-import-error pre { + color: #DDD; +} + +.red-ui-color-picker { + background-color: #383C45; +} + +.red-ui-color-picker input[type="text"] { + border-bottom-color: #2D3239; +} + +.red-ui-color-picker small { + color: #AAA; +} + +.red-ui-color-picker-cell { + border-color: #2C3138; +} + +.red-ui-color-picker-cell-none { + background-color: #434954; + background-image: linear-gradient(45deg, transparent 45%, #2C3138 45%, #2C3138 55%, transparent 55%, transparent), linear-gradient(-45deg, transparent 45%, #2C3138 45%, #2C3138 55%, transparent 55%, transparent); +} + +.red-ui-color-picker-opacity-slider { + background-color: #434954; + background-image: linear-gradient(45deg, #383C45 25%, transparent 25%, transparent 75%, #383C45 25%), linear-gradient(-45deg, #383C45 25%, transparent 25%, transparent 75%, #383C45 25%); +} + +.red-ui-color-picker-opacity-slider-overlay { + background-image: linear-gradient(90deg, transparent 0%, red 100%); + border-color: #2E333A; +} + +.red-ui-component-footer { + border-top-color: #2E333A; + background-color: #383C45; +} + +.red-ui-component-spinner { + background-color: #434954; +} + +.red-ui-component-spinner.projects-version-control-spinner-sidebar { + background-color: #434954; +} + +.red-ui-component-spinner.red-ui-component-spinner-sidebar { + background-color: #434954; +} + +.red-ui-debug-filter-box { + background-color: #3E424B; + border-bottom-color: #2C3138; +} + +.red-ui-debug-msg { + border-bottom-color: #383C45; + border-left-color: #383C45; + border-right-color: #383C45; +} + +.red-ui-debug-msg-element { + color: #DDD; +} + +.red-ui-debug-msg-expandable:hover .red-ui-debug-msg-object-handle { + color: #CCC; +} + +.red-ui-debug-msg-level-20 { + border-left-color: #f99; + border-right-color: #f99; +} + +.red-ui-debug-msg-level-30 { + border-left-color: #ffdf9d; + border-right-color: #ffdf9d; +} + +.red-ui-debug-msg-level-log { + border-left-color: #383C45; + border-right-color: #383C45; +} + +.red-ui-debug-msg-meta { + background-color: #434954; + color: #CCC; +} + +.red-ui-debug-msg-name { + color: #CCC; +} + +.red-ui-debug-msg-object-handle { + color: #AAA; +} + +.red-ui-debug-msg-object-key { + color: #E45E65; +} + +.red-ui-debug-msg-payload { + background-color: #434954; +} + +.red-ui-debug-msg-row:hover { + background-color: #353840; +} + +.red-ui-debug-msg-row.red-ui-debug-msg-row-pinned { + background-color: #353840; +} + +.red-ui-debug-msg-topic { + color: #F4B400; +} + +.red-ui-debug-msg-type-meta { + color: #CCC; +} + +.red-ui-debug-msg-type-null { + color: #CCC; +} + +.red-ui-debug-msg-type-number { + color: #4285F4; +} + +.red-ui-debug-msg-type-other { + color: #4285F4; +} + +.red-ui-debug-msg-type-string { + color: #DDD; +} + +.red-ui-debug-msg.red-ui-debug-msg-hover { + border-right-color: #2E333A; +} + +.red-ui-debug-window { + background-color: #434954; +} + +.red-ui-deploy-dialog-confirm-conflict-row i.fa-exclamation { + color: #AAA; +} + +.red-ui-diff-dialog-toolbar { + color: #AAA; + background-color: #383C45; + border-bottom-color: #2C3138; +} + +.red-ui-diff-empty { + background-color: #414A59; + background: repeating-linear-gradient(20deg, #434954, #434954 5px, #414A59 5px, #414A59 10px); +} + +.red-ui-diff-list-cell.red-ui-diff-status-changed { + background-color: #3E424B; +} + +.red-ui-diff-list-flow { + background-color: #434954; + border-color: #2C3138; +} + +.red-ui-diff-list-flow-title:hover { + background-color: #353840; +} + +.red-ui-diff-list-node td, +.red-ui-diff-list-node th { + border-top-color: #2C3138; + border-left-color: #2C3138; +} + +.red-ui-diff-list-node tr:hover { + background-color: #353840; +} + +.red-ui-diff-list-node-cell { + border-left-color: #2C3138; +} + +.red-ui-diff-list-node-description { + color: #DDD; +} + +.red-ui-diff-list-node-header:hover { + background-color: #353840; +} + +.red-ui-diff-list-node-icon { + background-color: #434954; +} + +.red-ui-diff-list-node-properties { + color: #DDD; +} + +.red-ui-diff-list-node:first-child { + border-top-color: #2D3239; +} + +.red-ui-diff-list-node:not(:last-child) { + border-bottom-color: #2D3239; +} + +.red-ui-diff-panel .red-ui-diff-list li { + background-color: #3E424B; +} + +.red-ui-diff-panel .red-ui-editableList-container { + background-color: #3E424B; +} + +.red-ui-diff-panel-headers div { + background-color: #3E424B; + border-color: #2C3138; +} + +.red-ui-diff-panel-headers div:last-child { + border-right-color: #2C3138; +} + +.red-ui-diff-text table.red-ui-diff-text-content { + border-color: #2C3138; +} + +.red-ui-diff-text table.red-ui-diff-text-content td.blank { + background-color: #3E424B; +} + +.red-ui-diff-text table.red-ui-diff-text-content td.lineno { + color: #888; + background-color: #3E424B; +} + +.red-ui-diff-text table.red-ui-diff-text-content td.lineno:nth-child(3) { + border-left-color: #2C3138; +} + +.red-ui-diff-text table.red-ui-diff-text-content td.linetext { + border-left-color: #2D3239; +} + +.red-ui-diff-text table.red-ui-diff-text-content td.linetext.added, +.red-ui-diff-text table.red-ui-diff-text-content td.linetext.removed { + color: #666; +} + +.red-ui-diff-text table.red-ui-diff-text-content td.unchanged { + background: #434954; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.end-block { + border-bottom-color: #2C3138; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.red-ui-diff-text-commit-header td .commit-summary { + border-top-color: #2C3138; + color: #AAA; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.red-ui-diff-text-commit-header td { + background-color: #383C45; + color: #DDD; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.red-ui-diff-text-file-header td { + background-color: #383C45; + color: #DDD; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.red-ui-diff-text-header>td:not(.red-ui-diff-flow-diff) { + border-top-color: #2C3138; + border-bottom-color: #2C3138; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.start-block { + border-top-color: #2C3138; +} + +.red-ui-diff-text table.red-ui-diff-text-content tr.unchanged { + background-color: #434954; +} + +.red-ui-editableList-border .red-ui-editableList-header { + border-bottom-color: #2D3239; +} + +.red-ui-editableList-border { + border-color: #2D3239; +} + +.red-ui-editableList-container .red-ui-editabelList-item-placeholder { + border-color: #2C3138 !important; +} + +.red-ui-editableList-container li .red-ui-editableList-item-handle { + color: #888; +} + +.red-ui-editableList-container li { + background-color: #434954; + border-bottom-color: #2C3138; +} + +.red-ui-editableList-container li.red-ui-editableList-item-deleting { + background-color: #373B44; +} + +.red-ui-editableList-container li.ui-sortable-helper { + border-top-color: #2C3138; +} + +.red-ui-editor .ace_gutter-active-line, +.red-ui-editor-dialog .ace_gutter-active-line { + background-color: rgba(221, 221, 221, 0.1); +} + +.red-ui-editor .ace_gutter-cell, +.red-ui-editor-dialog .ace_gutter-cell { + color: #DDD; +} + +.red-ui-editor .ace_gutter, +.red-ui-editor-dialog .ace_gutter { + background-color: #383C45; +} + +.red-ui-editor .ace_marker-layer .ace_active-line, +.red-ui-editor-dialog .ace_marker-layer .ace_active-line { + background-color: rgba(221, 221, 221, 0.1); +} + +.red-ui-editor .ace_marker-layer .ace_selection, +.red-ui-editor-dialog .ace_marker-layer .ace_selection { + background-color: #383C45; +} + +.red-ui-editor .ace_read-only .ace_scroller, +.red-ui-editor-dialog .ace_read-only .ace_scroller { + background-color: #414A59; + color: #CCC; +} + +.red-ui-editor .ace_scroller, +.red-ui-editor-dialog .ace_scroller { + background-color: #121212; + color: #DDD; +} + +.red-ui-editor .ace_tooltip, +.red-ui-editor-dialog .ace_tooltip { + background-color: #383C45; + border-color: #383C45; +} + +.red-ui-editor .form-row, +.red-ui-editor-dialog .form-row { + color: #DDD; +} + +.red-ui-editor .form-tips, +.red-ui-editor-dialog .form-tips { + background-color: #383C45; + border-color: #2C3138; +} + +.red-ui-editor .form-warning, +.red-ui-editor-dialog .form-warning { + border-color: orange; +} + +.red-ui-editor .input-append .add-on, +.red-ui-editor .input-prepend .add-on, +.red-ui-editor-dialog .input-append .add-on, +.red-ui-editor-dialog .input-prepend .add-on { + background-color: #353840; + border-color: #2D3239; +} + +.red-ui-editor .red-ui-tray .red-ui-editor-type-markdown-editor #dialog-form .red-ui-panel:last-child { + background-color: #383C45; +} + +.red-ui-editor .uneditable-input, +.red-ui-editor .uneditable-textarea, +.red-ui-editor-dialog .uneditable-input, +.red-ui-editor-dialog .uneditable-textarea { + color: #777; + background-color: #414A59; + border-color: #2D3239; +} + +.red-ui-editor { + background-color: #383C45; + color: #DDD; +} + +.red-ui-editor #red-ui-event-log-editor .ace_marker-layer .ace_active-line, +.red-ui-editor-dialog #red-ui-event-log-editor .ace_marker-layer .ace_active-line { + background-color: #383C45; +} + +.red-ui-editor #red-ui-event-log-editor .ace_marker-layer .ace_selection, +.red-ui-editor-dialog #red-ui-event-log-editor .ace_marker-layer .ace_selection { + background-color: #999; +} + +.red-ui-editor #red-ui-event-log-editor .ace_scroller, +.red-ui-editor-dialog #red-ui-event-log-editor .ace_scroller { + background-color: #434954; + color: #DDD; +} + +.red-ui-editor a, +.red-ui-editor-dialog a, +.red-ui-menu a, +.red-ui-popover a, +.red-ui-typedInput-options a, +.red-ui-icon-picker a { + color: #DDD; +} + +.red-ui-editor a:hover, +.red-ui-editor a:focus, +.red-ui-editor-dialog a:hover, +.red-ui-editor-dialog a:focus, +.red-ui-menu a:hover, +.red-ui-menu a:focus, +.red-ui-popover a:hover, +.red-ui-popover a:focus, +.red-ui-typedInput-options a:hover, +.red-ui-typedInput-options a:focus, +.red-ui-icon-picker a:hover, +.red-ui-icon-picker a:focus { + color: #DDD; +} + +.red-ui-editor blockquote, +.red-ui-editor-dialog blockquote, +.red-ui-menu blockquote, +.red-ui-popover blockquote, +.red-ui-typedInput-options blockquote, +.red-ui-icon-picker blockquote { + border-left-color: #2C3138; +} + +.red-ui-editor code, +.red-ui-editor-dialog code, +.red-ui-menu code, +.red-ui-popover code, +.red-ui-typedInput-options code, +.red-ui-icon-picker code { + color: orange; +} + +.red-ui-editor hr, +.red-ui-editor-dialog hr, +.red-ui-menu hr, +.red-ui-popover hr, +.red-ui-typedInput-options hr, +.red-ui-icon-picker hr { + border-top-color: #2D3239; +} + +.red-ui-editor input:-moz-placeholder, +.red-ui-editor textarea:-moz-placeholder, +.red-ui-editor-dialog input:-moz-placeholder, +.red-ui-editor-dialog textarea:-moz-placeholder { + color: #888; +} + +.red-ui-editor input:-ms-input-placeholder, +.red-ui-editor div[contenteditable="true"]:-ms-input-placeholder, +.red-ui-editor textarea:-ms-input-placeholder, +.red-ui-editor-dialog input:-ms-input-placeholder, +.red-ui-editor-dialog div[contenteditable="true"]:-ms-input-placeholder, +.red-ui-editor-dialog textarea:-ms-input-placeholder { + color: #888; +} + +.red-ui-editor input::-webkit-input-placeholder, +.red-ui-editor div[contenteditable="true"]::-webkit-input-placeholder, +.red-ui-editor textarea::-webkit-input-placeholder, +.red-ui-editor-dialog input::-webkit-input-placeholder, +.red-ui-editor-dialog div[contenteditable="true"]::-webkit-input-placeholder, +.red-ui-editor-dialog textarea::-webkit-input-placeholder { + color: #888; +} + +.red-ui-editor input[disabled], +.red-ui-editor select[disabled], +.red-ui-editor textarea[disabled], +.red-ui-editor input[readonly], +.red-ui-editor select[readonly], +.red-ui-editor textarea[readonly], +.red-ui-editor-dialog input[disabled], +.red-ui-editor-dialog select[disabled], +.red-ui-editor-dialog textarea[disabled], +.red-ui-editor-dialog input[readonly], +.red-ui-editor-dialog select[readonly], +.red-ui-editor-dialog textarea[readonly] { + background-color: #414A59; +} + +.red-ui-editor legend, +.red-ui-editor-dialog legend { + color: #888; + border-bottom-color: #2C3138; +} + +.red-ui-editor pre, +.red-ui-editor-dialog pre, +.red-ui-menu pre, +.red-ui-popover pre, +.red-ui-typedInput-options pre, +.red-ui-icon-picker pre { + background-color: #3E424B; + border-color: #2D3239; +} + +.red-ui-editor select, +.red-ui-editor textarea, +.red-ui-editor input[type="text"], +.red-ui-editor input[type="password"], +.red-ui-editor input[type="datetime"], +.red-ui-editor input[type="datetime-local"], +.red-ui-editor input[type="date"], +.red-ui-editor input[type="month"], +.red-ui-editor input[type="time"], +.red-ui-editor input[type="week"], +.red-ui-editor input[type="number"], +.red-ui-editor input[type="email"], +.red-ui-editor input[type="url"], +.red-ui-editor input[type="search"], +.red-ui-editor input[type="tel"], +.red-ui-editor input[type="color"], +.red-ui-editor div[contenteditable="true"], +.red-ui-editor .uneditable-input, +.red-ui-editor .placeholder-input, +.red-ui-editor-dialog select, +.red-ui-editor-dialog textarea, +.red-ui-editor-dialog input[type="text"], +.red-ui-editor-dialog input[type="password"], +.red-ui-editor-dialog input[type="datetime"], +.red-ui-editor-dialog input[type="datetime-local"], +.red-ui-editor-dialog input[type="date"], +.red-ui-editor-dialog input[type="month"], +.red-ui-editor-dialog input[type="time"], +.red-ui-editor-dialog input[type="week"], +.red-ui-editor-dialog input[type="number"], +.red-ui-editor-dialog input[type="email"], +.red-ui-editor-dialog input[type="url"], +.red-ui-editor-dialog input[type="search"], +.red-ui-editor-dialog input[type="tel"], +.red-ui-editor-dialog input[type="color"], +.red-ui-editor-dialog div[contenteditable="true"], +.red-ui-editor-dialog .uneditable-input, +.red-ui-editor-dialog .placeholder-input { + color: #DDD; +} + +.red-ui-editor select, +.red-ui-editor-dialog select { + background-color: #434954; + border-color: #2D3239; +} + +.red-ui-editor textarea, +.red-ui-editor input[type="text"], +.red-ui-editor input[type="password"], +.red-ui-editor input[type="datetime"], +.red-ui-editor input[type="datetime-local"], +.red-ui-editor input[type="date"], +.red-ui-editor input[type="month"], +.red-ui-editor input[type="time"], +.red-ui-editor input[type="week"], +.red-ui-editor input[type="number"], +.red-ui-editor input[type="email"], +.red-ui-editor input[type="url"], +.red-ui-editor input[type="search"], +.red-ui-editor input[type="tel"], +.red-ui-editor input[type="color"], +.red-ui-editor div[contenteditable="true"], +.red-ui-editor .uneditable-input, +.red-ui-editor .placeholder-input, +.red-ui-editor-dialog textarea, +.red-ui-editor-dialog input[type="text"], +.red-ui-editor-dialog input[type="password"], +.red-ui-editor-dialog input[type="datetime"], +.red-ui-editor-dialog input[type="datetime-local"], +.red-ui-editor-dialog input[type="date"], +.red-ui-editor-dialog input[type="month"], +.red-ui-editor-dialog input[type="time"], +.red-ui-editor-dialog input[type="week"], +.red-ui-editor-dialog input[type="number"], +.red-ui-editor-dialog input[type="email"], +.red-ui-editor-dialog input[type="url"], +.red-ui-editor-dialog input[type="search"], +.red-ui-editor-dialog input[type="tel"], +.red-ui-editor-dialog input[type="color"], +.red-ui-editor-dialog div[contenteditable="true"], +.red-ui-editor-dialog .uneditable-input, +.red-ui-editor-dialog .placeholder-input { + background-color: #434954; + border-color: #2D3239; +} + +.red-ui-editor ul.red-ui-tray-breadcrumbs li:not(:last-child) { + color: #AAA; +} + +.red-ui-editor-node-label-form-none span { + color: #AAA; +} + +.red-ui-editor-radial-menu-opt { + background-color: #434954; + border-color: #2E333A; +} + +.red-ui-editor-radial-menu-opt-active { + background-color: #2E333A; +} + +.red-ui-editor-radial-menu-opt-disabled { + border-color: #2D3239; + color: #2D3239; +} + +.red-ui-editor-radial-menu>div { + background-color: rgba(0, 0, 0, 0.2); + border-color: #2E333A; +} + +.red-ui-editor-subflow-env-input-type { + background: #434954; +} + +.red-ui-editor-subflow-env-input-type-placeholder { + color: #888; +} + +.red-ui-editor-subflow-env-ui-row>div:first-child { + color: #888; +} + +.red-ui-editor-subflow-env-ui-row>div:last-child>div .red-ui-typedInput-value-label .placeholder-input span:first-child, +.red-ui-editor-subflow-env-ui-row>div:last-child>div .red-ui-typedInput-option-label .placeholder-input span:first-child { + border-right-color: #2C3138; + background-color: #3E424B; +} + +.red-ui-editor-subflow-env-ui-row>div:last-child>div:nth-child(1) .red-ui-editableList-item-handle { + color: #888; +} + +.red-ui-editor-subflow-env-ui-row>div:last-child>div:nth-child(2) { + border-color: #2C3138; +} + +.red-ui-editor-subflow-env-ui-row>div:last-child>div:nth-child(2) a:hover { + background-color: #2E333A; +} + +.red-ui-editor-subflow-ui-edit-panel .red-ui-editableList-border { + border-bottom-color: #2C3138; +} + +.red-ui-editor-subflow-ui-edit-panel .red-ui-editableList-container li { + background-color: #434954; +} + +.red-ui-editor-subflow-ui-edit-panel .red-ui-editableList-container li input { + border-right-color: #2C3138; +} + +.red-ui-editor-subflow-ui-edit-panel .red-ui-editableList-container li input:first-child { + border-left-color: #2C3138; +} + +.red-ui-editor-subflow-ui-edit-panel .red-ui-editableList-header { + background-color: #383C45; + color: #AAA; +} + +.red-ui-editor-subflow-ui-edit-panel { + background-color: #383C45; +} + +.red-ui-editor-text-container { + border-color: #2D3239; +} + +.red-ui-editor-type-json-editor .red-ui-treeList-container { + background-color: #434954; +} + +.red-ui-editor-type-json-editor .red-ui-treeList-label:hover, +.red-ui-editor-type-json-editor .red-ui-treeList-label:hover .red-ui-treeList-sublabel-text { + background-color: #414A59; +} + +.red-ui-editor-type-json-editor .red-ui-treeList-label.selected .red-ui-editor-type-json-editor-item-gutter { + background-color: #2E333A; +} + +.red-ui-editor-type-json-editor .red-ui-treeList-label.selected:hover .red-ui-editor-type-json-editor-item-gutter { + background-color: #353840; +} + +.red-ui-editor-type-json-editor-item-gutter { + color: #888; + background-color: #414A59; +} + +.red-ui-editor-type-json-editor-label-value:not(.red-ui-editor-type-json-editor-label-array-key):hover, +.red-ui-editor-type-json-editor-label-key:not(.red-ui-editor-type-json-editor-label-array-key):hover { + border-color: #2E333A; +} + +.red-ui-editor-type-markdown-panel-preview { + border-color: #2C3138; + background-color: #434954; +} + +.red-ui-flow-group-body { + fill: #2E333A; + fill-opacity: 0.75; + stroke: #2E333A; +} + +.red-ui-flow-group-outline-select.red-ui-flow-group-outline-select-background { + stroke: #434954; +} + +.red-ui-flow-link-background { + stroke: #434954; +} + +.red-ui-flow-link-outline { + stroke: #434954; +} + +.red-ui-flow-node-label-white { + fill: #434954 !important; +} + +.red-ui-flow-node-status-ring-blue { + fill: #434954; +} + +.red-ui-flow-node-status-ring-green { + fill: #434954; +} + +.red-ui-flow-node-status-ring-grey { + fill: #434954; +} + +.red-ui-flow-node-status-ring-red { + fill: #434954; +} + +.red-ui-flow-node-status-ring-yellow { + fill: #434954; +} + +.red-ui-flow-port-label { + fill: #AAA; +} + +.red-ui-flow-port-tooltip path:first-child { + fill: #383C45; + stroke: #383C45; +} + +.red-ui-group-layout-picker { + background-color: #383C45; +} + +.red-ui-group-layout-picker-cell-text { + border-top-color: #AAA; + border-bottom-color: #AAA; +} + +.red-ui-group-layout-picker-cell-text.red-ui-group-layout-text-pos- { + background-color: #434954; + background-image: linear-gradient(45deg, transparent 45%, #2C3138 45%, #2C3138 55%, transparent 55%, transparent), linear-gradient(-45deg, transparent 45%, #2C3138 45%, #2C3138 55%, transparent 55%, transparent); +} + +.red-ui-help .red-ui-help-info-header { + color: #BBB; +} + +.red-ui-help dl.message-properties { + border-color: #2C3138; +} + +.red-ui-help dl.message-properties>dt .property-type { + color: #DDD; +} + +.red-ui-help dl.message-properties>dt { + color: orange; +} + +.red-ui-help h1.red-ui-help-title { + border-bottom-color: #2D3239; +} + +.red-ui-help ol.node-ports li { + border-color: #2C3138; +} + +.red-ui-help-info-none { + color: #888; +} + +.red-ui-help-search { + border-bottom-color:#2C3138; +} + +.red-ui-help-tip { + color: #888; +} + +.red-ui-help-tips { + border-top-color: #2C3138; + background-color: #434954; +} + +.red-ui-help-tips-buttons a { + color: #AAA; + border-color: #2C3138 !important; +} + +.red-ui-icon-list-icon:hover { + background-color: #2E333A; +} + +.red-ui-icon-list-icon.selected { + background-color: #353840; +} + +.red-ui-icon-list-module { + background-color: #383C45; + color: #AAA; +} + +.red-ui-icon-list.red-ui-icon-list-dark .red-ui-palette-icon-container { + background-color: #434954; +} + +.red-ui-icon-list.red-ui-icon-list-dark .red-ui-palette-icon-fa { + color: #AAA; +} + +.red-ui-icon-meta { + border-top-color: #2C3138; + background-color: #3E424B; +} + +.red-ui-icon-meta span { + color: #AAA; +} + +.red-ui-info-header { + border-bottom-color: #2C3138; +} + +.red-ui-info-outline .red-ui-info-outline-item.red-ui-info-outline-item-empty, +.red-ui-sidebar-help-toc .red-ui-info-outline-item.red-ui-info-outline-item-empty { + color: #888; +} + +.red-ui-info-outline .red-ui-info-outline-item.red-ui-info-outline-item-group .red-ui-search-result-node .red-ui-palette-icon-fa, +.red-ui-sidebar-help-toc .red-ui-info-outline-item.red-ui-info-outline-item-group .red-ui-search-result-node .red-ui-palette-icon-fa { + color: #AAA; +} + +.red-ui-info-outline .red-ui-info-outline-project, +.red-ui-sidebar-help-toc .red-ui-info-outline-project { + border-bottom-color: #2C3138; +} + +.red-ui-info-outline .red-ui-search-result-node-label, +.red-ui-sidebar-help-toc .red-ui-search-result-node-label { + color: #AAA; +} + +.red-ui-info-outline-item-controls { + background-color: #434954; +} + +.red-ui-info-outline-item-disabled .red-ui-info-outline-item-label { + opacity: 0.4; +} + +.red-ui-info-toolbar .red-ui-searchBox-container { + background: #383C45; +} + +.red-ui-searchBox-container a.red-ui-searchBox-opts:hover { + color: #CCC; + background: #2E333A; +} + +.red-ui-library-browser .red-ui-treeList-container { + background-color: #434954; +} + +.red-ui-loading-bar { + border-color: #2E333A; +} + +.red-ui-loading-bar>span { + background-color: #2C3138; +} + +.red-ui-menu-dropdown .red-ui-menu-divider { + background-color: #2C3138; +} + +.red-ui-menu-dropdown { + background-color: #383C45; + border-color: #2C3138; +} + +.red-ui-menu-dropdown-submenu.disabled>a:before { + border-right-color: #888; +} + +.red-ui-menu-dropdown-submenu>a:after { + border-left-color: #888; +} + +.red-ui-menu-dropdown-submenu>a:before { + border-right-color: #888; +} + +.red-ui-menu-dropdown>.active>a, +.red-ui-menu-dropdown>.active>a:hover, +.red-ui-menu-dropdown>.active>a:focus { + color: #CCC; + background-color: #2E333A; +} + +.red-ui-menu-dropdown>.disabled>a, +.red-ui-menu-dropdown>.disabled>a:hover, +.red-ui-menu-dropdown>.disabled>a:focus { + color: #777; +} + +.red-ui-menu-dropdown>li>a, +.red-ui-menu-dropdown>li>a:focus { + color: #DDD; +} + +.red-ui-menu-dropdown>li>a:hover, +.red-ui-menu-dropdown>li>a:focus, +.red-ui-menu-dropdown-submenu:hover>a, +.red-ui-menu-dropdown-submenu:focus>a { + color: #CCC; + background-color: #2E333A; +} + +.red-ui-navigator-border { + stroke: #2C3138; + fill: #434954; +} + +.red-ui-nodeList .red-ui-editableList-container li .red-ui-editableList-item-content.disabled { + color: #777; +} + +.red-ui-nodeList .red-ui-editableList-container li { + background-color: #434954; +} + +.red-ui-nodeList .red-ui-editableList-container li:hover { + background-color: #2E333A; +} + +.red-ui-nodeList .red-ui-editableList-container li.red-ui-editableList-section-header .red-ui-editableList-item-content.disabled { + color: #777; +} + +.red-ui-nodeList .red-ui-editableList-container li.red-ui-editableList-section-header { + background-color: #383C45; +} + +.red-ui-notification { + background-color: #434954; + color: #DDD; +} + +.red-ui-notification-error { + border-color: orange; +} + +.red-ui-palette-category { + border-bottom-color: #2C3138; +} + +.red-ui-palette-content { + background-color: #434954; +} + +.red-ui-palette-header { + background-color: #383C45; + color: #BBB; +} + +.red-ui-palette-header:hover { + background-color: #383C45 !important; +} + +.red-ui-palette-module-meta .fa-warning { + color: orange; +} + +.red-ui-palette-module-meta { + color: #AAA; +} + +.red-ui-palette-module-meta.disabled { + color: #777; +} + +.red-ui-palette-module-name { + color: #DDD; +} + +.red-ui-palette-node { + background-color: #434954; +} + +.red-ui-palette-node-config { + background-color: #383C45; + color: #DDD; +} + +.red-ui-palette-node-config-disabled i { + color: #AAA; +} + +.red-ui-palette-node-config-none { + color: #888; +} + +.red-ui-palette-node-config-unused, +.red-ui-palette-node-config-disabled { + border-color: #2E333A; + background-color: #373B44; + color: #888; +} + +.red-ui-palette-search { + background-color: #434954; + border-bottom-color: #2E333A; +} + +.red-ui-panels-separator { + border-top-color: #2C3138; + border-bottom-color: #2C3138; + background: #383C45 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAyAQMAAACu3oOzAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAAqqqqE2N/7AAAAAJ0Uk5TAP9bkSK1AAAADUlEQVR4nGMoYKA5BABGYBXhGD2hFwAAAABJRU5ErkJggg==") no-repeat 50% 50%; +} + +.red-ui-panels.red-ui-panels-horizontal>.red-ui-panels-separator { + border-left-color: #2C3138; + border-right-color: #2C3138; +} + +.red-ui-popover { + background-color: #383C45; + color: #EEE; + border-color: #383C45; +} + +.red-ui-popover a.red-ui-button:not(.primary), +.red-ui-popover button.red-ui-button:not(.primary) { + border-color: #2E333A; + background-color: #383C45; +} + +.red-ui-popover a.red-ui-button.primary, +.red-ui-popover button.red-ui-button.primary { + border-color: #2E333A; +} + +.red-ui-popover a.red-ui-button.primary:not(.disabled):not(.ui-button-disabled):hover, +.red-ui-popover button.red-ui-button.primary:not(.disabled):not(.ui-button-disabled):hover { + border-color: #CCC; +} + +.red-ui-popover code { + color: #888; +} + +.red-ui-popover-panel { + border-color: #2E333A; + background-color: #434954; +} + +.red-ui-popover.red-ui-popover-bottom:after { + border-bottom-color: #383C45; +} + +.red-ui-popover.red-ui-popover-bottom:before { + border-bottom-color: #383C45; +} + +.red-ui-popover.red-ui-popover-left:after { + border-left-color: #383C45; +} + +.red-ui-popover.red-ui-popover-left:before { + border-left-color: #383C45; +} + +.red-ui-popover.red-ui-popover-right:after { + border-right-color: #383C45; +} + +.red-ui-popover.red-ui-popover-right:before { + border-right-color: #383C45; +} + +.red-ui-popover.red-ui-popover-top:after { + border-top-color: #383C45; +} + +.red-ui-popover.red-ui-popover-top:before { + border-top-color: #383C45; +} + +.red-ui-projects-branch-list .red-ui-editableList .red-ui-editableList-container li { + background-color: #434954; +} + +.red-ui-projects-branch-list .red-ui-editableList { + border-color: #2C3138; +} + +.red-ui-projects-branch-list .red-ui-searchBox-container { + border-top-color: #2C3138; + border-left-color: #2C3138; + border-right-color: #2C3138; +} + +.red-ui-projects-dialog-credentials-box-left>div { + border-color: #2C3138; + border-right-color: #434954; +} + +.red-ui-projects-dialog-credentials-box-left>div.disabled { + border-color: #434954; + border-right-color: #2C3138; +} + +.red-ui-projects-dialog-credentials-box-right { + border-color: #2C3138; +} + +.red-ui-projects-dialog-file-list-entry .red-ui-projects-dialog-file-list-entry-folder .fa-angle-right { + color: #DDD; +} + +.red-ui-projects-dialog-file-list-entry { + border-left-color: #434954; + border-right-color: #434954; + background-color: #434954; +} + +.red-ui-projects-dialog-file-list-entry i { + color: #AAA; +} + +.red-ui-projects-dialog-file-list-entry-file-type-git { + color: #888; +} + +.red-ui-projects-dialog-file-list-entry.projects-list-entry-current i { + color: #CCC; +} + +.red-ui-projects-dialog-file-list-entry.projects-list-entry-current:not(.selectable) { + background-color: #353840; +} + +.red-ui-projects-dialog-file-list-entry.selectable:hover { + background-color: #2E333A; + border-left-color: #CCC; + border-right-color: #CCC; +} + +.red-ui-projects-dialog-file-list-entry.selected { + background-color: #353840; +} + +.red-ui-projects-dialog-file-list-entry.unselectable { + color: #777; +} + +.red-ui-projects-dialog-list .red-ui-editableList-container { + background-color: #3E424B; +} + +.red-ui-projects-dialog-list-dialog .red-ui-projects-dialog-list-dialog-header { + background-color: #383C45; +} + +.red-ui-projects-dialog-list-dialog { + background-color: #434954; + border-color: #2C3138; +} + +.red-ui-projects-dialog-list-entry .entry-detail { + color: #888; +} + +.red-ui-projects-dialog-list-entry .entry-icon { + color: #AAA; +} + +.red-ui-projects-dialog-project-list-container { + border-color: #2C3138; +} + +.red-ui-projects-dialog-project-list-entry .red-ui-projects-dialog-project-list-entry-current { + color: #AAA; +} + +.red-ui-projects-dialog-project-list-entry .red-ui-projects-dialog-project-list-entry-icon i { + color: #888; +} + +.red-ui-projects-dialog-project-list-entry .red-ui-projects-dialog-project-list-entry-tools { + color: #AAA; +} + +.red-ui-projects-dialog-project-list-entry { + color: #DDD; + background-color: #434954; + border-left-color: #434954; + border-right-color: #434954; +} + +.red-ui-projects-dialog-project-list-entry-delete-confirm { + background-color: #434954; +} + +.red-ui-projects-dialog-project-list-entry.projects-list-entry-current i { + color: #AAA; +} + +.red-ui-projects-dialog-project-list-entry.projects-list-entry-current:not(.selectable) { + color: #DDD; + background-color: #353840; + border-left-color: #CCC; + border-right-color: #CCC; +} + +.red-ui-projects-dialog-project-list-entry.selectable:hover:not(.selected) { + color: #DDD; + background-color: #2E333A; + border-left-color: #2E333A; + border-right-color: #2E333A; +} + +.red-ui-projects-dialog-project-list-entry.selected { + color: #DDD; + background-color: #353840; + border-left-color: #CCC; + border-right-color: #CCC; +} + +.red-ui-projects-dialog-screen-create-type.red-ui-button.toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; +} + +.red-ui-projects-dialog-screen-input-status { + color: #AAA; +} + +.red-ui-projects-dialog-screen-start .red-ui-projects-dialog-screen-start-hero { + color: #DDD; +} + +.red-ui-projects-dialog-ssh-key-list .red-ui-projects-dialog-ssh-key-header:hover { + color: #2E333A; +} + +.red-ui-projects-edit-form form .form-row label { + color: #DDD; +} + +.red-ui-projects-edit-form-sublabel { + color: #888; +} + +.red-ui-projects-file-listing-container>.red-ui-editableList>.red-ui-editableList-border { + border-top-color: #2C3138; +} + +.red-ui-search { + border-color: #2E333A; + background-color: #434954; +} + +.red-ui-search-container { + background-color: #434954; + border-bottom-color: #2C3138; +} + +.red-ui-search-empty { + color: #888; +} + +.red-ui-search-result { + color: #DDD; + background-color: #434954; + border-left-color: #434954; + border-right-color: #434954; +} + +.red-ui-search-result-action { +color: #DDD; +} + +.red-ui-search-result-action-key { + color: #888; +} + +.red-ui-search-result-node .red-ui-color-picker-cell-none { + background-image: linear-gradient(45deg, #383C45 25%, transparent 25%, transparent 75%, #383C45 75%, #383C45), linear-gradient(45deg, #383C45 25%, transparent 25%, transparent 75%, #383C45 75%, #383C45); +} + +.red-ui-search-result-node-flow { + color: #888; +} + +.red-ui-search-result-node-id { + color: #888; +} + +.red-ui-search-result-node-label { + color: #DDD; +} + +.red-ui-search-result-node-type { + color: #888; +} + +.red-ui-search-result-node.red-ui-palette-icon-flow .red-ui-palette-icon-fa, +.red-ui-search-result-node.red-ui-palette-icon-group .red-ui-palette-icon-fa, +.red-ui-search-result-node.red-ui-palette-icon-selection .red-ui-palette-icon-fa { + color: #AAA; +} + +.red-ui-search-result:hover { + color: #DDD; + background-color: #2E333A; + border-left-color: #2E333A; + border-right-color: #2E333A; +} + +.red-ui-search-results-container .red-ui-editableList-container { + background-color: #383C45; +} + +.red-ui-search-results-container { + background-color: #383C45; +} + +.red-ui-searchBox-compact input.red-ui-searchBox-input, +.red-ui-searchBox-compact input:focus.red-ui-searchBox-input { + border-color: #2C3138; +} + +.red-ui-searchBox-container .red-ui-searchBox-resultCount { + background-color: #383C45; + color: #AAA; +} + +.red-ui-searchBox-container i { + color: #AAA; +} + +.red-ui-settings-section-description { + color: #AAA; +} + +.red-ui-settings-tabs-container { + background-color: #3E424B; +} + +.red-ui-settings-tabs-content h3:not(:first-child) { + border-top-color: #2C3138; +} + +.red-ui-sidebar-context-property-storename { + color: #888; +} + +.red-ui-sidebar-context-updated { + color: #888; +} + +.red-ui-sidebar-control-left { + border-color: #2E333A; + background-color: #383C45; + color: #AAA; +} + +.red-ui-sidebar-control-right { + border-color: #2E333A; + background-color: #383C45; + color: #AAA; +} + +.red-ui-sidebar-node-config { + background-color: #434954; +} + +.red-ui-sidebar-node-config-filter-info { + background-color: #383C45; + color: #AAA; +} + +.red-ui-sidebar-vc .red-ui-editableList-container { + background-color: #3E424B; +} + +.red-ui-sidebar-vc .red-ui-editableList-container li { + background-color: #434954; +} + +.red-ui-sidebar-vc-branch-list-entry { + color: #DDD; + background-color: #434954; + border-left-color: #434954; + border-right-color: #434954; +} + +.red-ui-sidebar-vc-branch-list-entry span.current { + color: #888; +} + +.red-ui-sidebar-vc-branch-list-entry:not(.input-error):hover { + background-color: #2E333A; + border-left-color: #CCC; + border-right-color: #CCC; +} + +.red-ui-sidebar-vc-branch-list-entry.selected { + border-left-color: #CCC; + border-right-color: #CCC; +} + +.red-ui-sidebar-vc-change-entry.red-ui-help-info-node { + background-color: #434954; +} + +.red-ui-sidebar-vc-change-header { + color: #DDD; + background-color: #3E424B; + border-top-color: #2C3138; + border-bottom-color: #2C3138; +} + +.red-ui-sidebar-vc-commit-date { + color: #AAA; +} + +.red-ui-sidebar-vc-commit-entry:hover { + background-color: #2E333A; +} + +.red-ui-sidebar-vc-commit-more { + color: #AAA; +} + +.red-ui-sidebar-vc-commit-ref { + color: #888; + border-color: #2D3239; +} + +.red-ui-sidebar-vc-commit-sha { + color: #F4B400; +} + +.red-ui-sidebar-vc-commit-subject { + color: #DDD; +} + +.red-ui-sidebar-vc-commit-user { + color: #AAA; +} + +.red-ui-sidebar-vc-repo-toolbar { + color: #DDD; + background-color: #3E424B; +} + +.red-ui-sidebar-vc-shade { + background-color: #383C45; +} + +.red-ui-sidebar-vc-slide-box { + background-color: #3E424B; +} + +.red-ui-sidebar-vc-slide-box.red-ui-sidebar-vc-slide-box-bottom { + border-top-color: #2C3138; +} + +.red-ui-sidebar-vc-slide-box.red-ui-sidebar-vc-slide-box-top { + border-left-color: #2E333A; + border-right-color: #2E333A; + border-bottom-color: #2E333A; + color: #DDD; + background-color: #3E424B; +} + +.red-ui-stack .red-ui-palette-category { + background-color: #434954; +} + +.red-ui-stack { + background-color: #434954; +} + +.red-ui-tab-button { + background-color: #434954; + border-bottom-color: #2E333A; +} + +.red-ui-tab-button a { + color: #AAA !important; + background-color: #434954; + border-color: #2E333A; +} + +.red-ui-tab-button a:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tab-button a:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.red-ui-tab-button a:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.red-ui-tab-button a.disabled, +.red-ui-tab-button a:disabled { + color: #777 !important; +} + +.red-ui-tab-button a.primary.disabled, +.red-ui-tab-button a.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +.red-ui-tab-button a.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tab-close { + background-color: #373B44; + color: #AAA; +} + +.red-ui-tab-close:hover { + background-color: #2E333A !important; + color: #CCC; +} + +.red-ui-tab-link-buttons { + background-color: #434954; + border-bottom-color: #2E333A; +} + +.red-ui-tab-link-buttons a { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +.red-ui-tab-link-buttons a:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tab-link-buttons a:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.red-ui-tab-link-buttons a:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.red-ui-tab-link-buttons a:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +.red-ui-tab-link-buttons a.disabled, +.red-ui-tab-link-buttons a:disabled { + color: #777 !important; +} + +.red-ui-tab-link-buttons a.primary.disabled, +.red-ui-tab-link-buttons a.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +.red-ui-tab-link-buttons a.red-ui-tab-link-button-menu { + border-color: #434954; +} + +.red-ui-tab-link-buttons a.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tab-scroll a { + color: #AAA; +} + +.red-ui-tab-scroll-left a { + border-right-color: #2E333A; +} + +.red-ui-tab-scroll-right a { + border-left-color: #2E333A; +} + +.red-ui-tabs { + background-color: #434954; +} + +.red-ui-tabs ul { + border-bottom-color: #2E333A; +} + +.red-ui-tabs ul li { + border-color: #2E333A; + background-color: #373B44; +} + +.red-ui-tabs ul li a.red-ui-tab-label { + color: #CCC; +} + +.red-ui-tabs ul li:not(.active) a:hover { + color: #CCC; + background-color: #2E333A; +} + +.red-ui-tabs ul li:not(.active) a:hover+a.red-ui-tab-close { + background-color: #2E333A; +} + +.red-ui-tabs ul li.active { + background-color: #434954; + border-bottom-color: #434954; +} + +.red-ui-tabs ul li.active a { + color: #BBB; +} + +.red-ui-tabs ul li.active a.red-ui-tab-close { + color: #AAA; + background-color: #434954; +} + +.red-ui-tabs ul li.active a.red-ui-tab-close:hover { + background-color: #2E333A !important; + color: #CCC; +} + +.red-ui-tabs ul li.selected .red-ui-tabs-badge-selected { + background-color: #434954; +} + +.red-ui-tabs ul li.selected:not(.active) { + background-color: #353840; +} + +.red-ui-tabs-badges { + color: #888; +} + +.red-ui-tabs.red-ui-tabs-vertical { + border-right-color: #2E333A; + background-color: #3E424B; +} + +.red-ui-tabs.red-ui-tabs-vertical ul li { + border-right-color: #2E333A; +} + +.red-ui-tabs.red-ui-tabs-vertical ul li:last-child { + border-bottom-color: #2C3138; +} + +.red-ui-tabs.red-ui-tabs-vertical ul li:not(:first-child) { + border-top-color: #2C3138; +} + +.red-ui-tabs.red-ui-tabs-vertical ul li.active { + border-right-color: #434954; +} + +.red-ui-tray { + background-color: #434954; + border-left-color: #2C3138; + border-bottom-color: #2E333A; +} + +.red-ui-tray-footer { + border-top-color: #2E333A; + background-color: #383C45; +} + +.red-ui-tray-footer button.red-ui-button.toggle:not(.selected) { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tray-header { + border-bottom-color: #2C3138; + background-color: #383C45; +} + +.red-ui-tray-resize-handle { + background: #383C45 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAyAQMAAACu3oOzAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAAqqqqE2N/7AAAAAJ0Uk5TAP9bkSK1AAAADUlEQVR4nGMoYKA5BABGYBXhGD2hFwAAAABJRU5ErkJggg==") no-repeat 50% 50%; + border-left-color: #2E333A; +} + +.red-ui-tray-resize-handle.red-ui-tray-resize-maximised { + background-color: #383C45; +} + +.red-ui-tray-titlebar { + color: #BBB; + border-bottom-color: #2C3138; +} + +.red-ui-tray-toolbar button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +.red-ui-tray-toolbar button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tray-toolbar button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.red-ui-tray-toolbar button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.red-ui-tray-toolbar button.disabled, +.red-ui-tray-toolbar button:disabled { + color: #777 !important; +} + +.red-ui-tray-toolbar button.primary.disabled, +.red-ui-tray-toolbar button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +.red-ui-tray-toolbar button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tray-toolbar button.toggle { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +.red-ui-tray-toolbar button.toggle:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-tray-toolbar button.toggle:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.red-ui-tray-toolbar button.toggle:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.red-ui-tray-toolbar button.toggle:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +.red-ui-tray-toolbar button.toggle.disabled, +.red-ui-tray-toolbar button.toggle:disabled { + color: #777 !important; +} + +.red-ui-tray-toolbar button.toggle.primary.disabled, +.red-ui-tray-toolbar button.toggle.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +.red-ui-tray-toolbar button.toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.red-ui-treeList-container { + background-color: #3E424B; + border-color: #2D3239; +} + +.red-ui-treeList-label { + color: #DDD; +} + +.red-ui-treeList-label:focus, +.red-ui-treeList-label:focus .red-ui-treeList-sublabel-text { + background-color: #2E333A; + color: #DDD; +} + +.red-ui-treeList-label:hover .red-ui-info-outline-item-controls { + background-color: #2E333A; +} + +.red-ui-treeList-label:hover, +.red-ui-treeList-label:hover .red-ui-treeList-sublabel-text { + background-color: #2E333A; + color: #DDD; +} + +.red-ui-treeList-label.selected .red-ui-info-outline-item-controls { + background-color: #353840; +} + +.red-ui-treeList-label.selected, +.red-ui-treeList-label.selected .red-ui-treeList-sublabel-text { + background-color: #353840; + color: #DDD; +} + +.red-ui-treeList-sublabel-text { + color: #AAA; + background-color: #434954; +} + +.red-ui-type-search .red-ui-search-container { + border-color: #2E333A; +} + +.red-ui-type-search .red-ui-search-result-node-label { + color: #AAA; +} + +.red-ui-type-search .red-ui-search-result-separator { + border-bottom-color: #2C3138; +} + +.red-ui-type-search .red-ui-search-results-container .red-ui-editableList-container { + border-color: #2E333A; + border-top-color: #2C3138; +} + +.red-ui-typedInput-container .red-ui-typedInput-value-label .red-ui-typedInput-value-label-inactive { + background-color: #414A59; + color: #2E333A; +} + +.red-ui-typedInput-container { + border-color: #2D3239; +} + +.red-ui-typedInput-options { + border-color: #2E333A; + background-color: #434954; +} + +.red-ui-typedInput-options a { + border-bottom-color: #2C3138; + color: #DDD; +} + +.red-ui-typedInput-options a:active { + background-color: #353840; +} + +.red-ui-typedInput-options a:focus { + background-color: #353840; +} + +.red-ui-typedInput-options a:hover { + background-color: #2E333A; +} + +.red-ui-typedInput-options img { + filter: brightness(0) saturate(100%) invert(91%) sepia(0%) saturate(309%) hue-rotate(170deg) brightness(103%) contrast(85%); +} + +.red-ui-workspace-chart-background { + fill: #434954; +} + +.red-ui-workspace-chart-grid line { + shape-rendering: auto; + stroke: #383C45; + stroke-width: 0.5px; +} + +.red-ui-workspace-disabled.red-ui-tab a { + color: #888 !important; +} + +.rpi-gpio-pinTable { + color: #555; +} + +.sidebar-footer-button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +.sidebar-footer-button-toggle { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +.sidebar-footer-button-toggle:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.sidebar-footer-button-toggle:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.sidebar-footer-button-toggle:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.sidebar-footer-button-toggle:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +.sidebar-footer-button-toggle.disabled, +.sidebar-footer-button-toggle:disabled { + color: #777 !important; +} + +.sidebar-footer-button-toggle.primary.disabled, +.sidebar-footer-button-toggle.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +.sidebar-footer-button-toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.sidebar-footer-button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.sidebar-footer-button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.sidebar-footer-button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.sidebar-footer-button.disabled, +.sidebar-footer-button:disabled { + color: #777 !important; +} + +.sidebar-footer-button.primary.disabled, +.sidebar-footer-button.primary.ui-state-disabled { + border-color: #2D3239; +} + +.sidebar-footer-button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.sidebar-header, +.red-ui-sidebar-header { + color: #DDD; + background-color: #383C45; + border-bottom-color: #2C3138; +} + +.ui-dialog .ui-dialog-buttonpane.ui-widget-content { + background-color: #3E424B; +} + +.ui-dialog .ui-dialog-titlebar { + background-color: #383C45; + border-bottom-color: #2E333A; +} + +.ui-dialog { + background-color: #434954; +} + +.ui-dialog-buttonset button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +.ui-dialog-buttonset button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +.ui-dialog-buttonset button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +.ui-dialog-buttonset button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +.ui-dialog-buttonset button.disabled, +.ui-dialog-buttonset button:disabled { + color: #777 !important; +} + +.ui-dialog-buttonset button.primary.disabled { + border-color: #2D3239; + color: #777 !important; + background-color: #434954; +} + +.ui-dialog-buttonset button.primary.disabled, +.ui-dialog-buttonset button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +.ui-dialog-buttonset button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +.ui-spinner { + border-color: #2D3239; +} + +.ui-spinner input { + background-color: #434954; +} + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + border-color: #2C3138; + background-color: #353840; + color: #CCC; +} + +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + background-color: #383C45; +} + +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default, +.ui-button, +html .ui-button.ui-state-disabled:hover, +html .ui-button.ui-state-disabled:active { + border-color: #2C3138; + background-color: #353840; + color: #CCC; +} + +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus, +.ui-button:hover, +.ui-button:focus { + border-color: #2C3138; + background-color: #2E333A; + color: #CCC; +} + +.ui-widget.ui-widget-content { + border-color: #2D3239; +} + +.ui-widget-content { + border-color: #2D3239; + background: #434954; + color: #DDD; +} + +.ui-widget-header { + color: #BBB; +} + +#red-ui-clipboard-dialog-export-tab-library-browser { + border-bottom-color: #2E333A; +} + +#red-ui-editor-config-scope-warning { + color: orange; +} + +#red-ui-library-dialog-load-panes { + border-color: #2E333A; +} + +#red-ui-library-dialog-save-browser { + border-color: #2E333A; +} + +#red-ui-loading-progress { + background-color: #383C45; +} + +#red-ui-loading-progress>div { + color: #AAA; +} + +#red-ui-navigator-canvas { + border-left-color: #2E333A; + border-top-color: #2E333A; + background-color: rgba(67, 73, 84, 0.8); +} + +#red-ui-palette { + background-color: #383C45; + border-color: #2E333A; +} + +#red-ui-palette-editor .red-ui-editableList-container li .disabled .red-ui-palette-module-name { + color: #888; +} + +#red-ui-palette-editor .red-ui-editableList-container li .disabled .red-ui-palette-module-version { + color: #888; +} + +#red-ui-palette-editor .red-ui-editableList-container li .disabled ul.red-ui-palette-module-error-list li { + color: #888; +} + +#red-ui-palette-editor .red-ui-palette-editor-toolbar { + background-color: #383C45; + border-bottom-color: #2E333A; +} + +#red-ui-palette-editor .red-ui-palette-module-description { + color: #AAA; +} + +#red-ui-palette-editor .red-ui-palette-module-more { + background-color: #373B44; +} + +#red-ui-palette-editor .red-ui-palette-module-more a { + color: orange; +} + +#red-ui-palette-editor .red-ui-palette-module-more a:hover { + background-color: #2E333A; +} + +#red-ui-palette-editor .red-ui-palette-module-set { + border-color: #2C3138; +} + +#red-ui-palette-editor .red-ui-palette-module-set-disabled { + background-color: #373B44; +} + +#red-ui-palette-editor .red-ui-palette-module-shade-status { + color: #AAA; +} + +#red-ui-palette-editor .red-ui-palette-module-type { + color: #AAA; +} + +#red-ui-palette-editor .red-ui-palette-module-type-swatch { + background-color: #383C45; + border-color: #2C3138; +} + +#red-ui-palette-editor { + background-color: #434954; +} + +#red-ui-project-settings-tab-deps .red-ui-palette-module-not-installed { + border-color: orange; +} + +#red-ui-project-settings-tab-deps .red-ui-palette-module-not-installed i.fa-warning { + color: orange; +} + +#red-ui-project-settings-tab-deps .red-ui-palette-module-unknown { + border-color: #2C3138; + background-color: #373B44; +} + +#red-ui-project-settings-tab-deps .red-ui-palette-module-unused>* { + color: #AAA; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-entry-expanded { + background-color: #353840; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-entry-scope { + color: #888; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-entry-text i { + color: #888; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-entry-unassigned { + color: #888; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-list li:hover { + background-color: #2E333A; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-list-header { + border-bottom-color: #2E333A; +} + +#red-ui-settings-tab-keyboard .keyboard-shortcut-list-header div { + color: #BBB !important; +} + +#red-ui-sidebar .button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +#red-ui-sidebar .button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +#red-ui-sidebar .button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +#red-ui-sidebar .button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +#red-ui-sidebar .button.disabled, +#red-ui-sidebar .button:disabled { + color: #777 !important; +} + +#red-ui-sidebar .button.primary.disabled, +#red-ui-sidebar .button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +#red-ui-sidebar .button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +#red-ui-sidebar { + background-color: #383C45; + border-color: #2E333A; +} + +#red-ui-sidebar-content { + background-color: #434954; +} + +#red-ui-sidebar-separator { + background: #383C45 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAyAQMAAACu3oOzAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAAqqqqE2N/7AAAAAJ0Uk5TAP9bkSK1AAAADUlEQVR4nGMoYKA5BABGYBXhGD2hFwAAAABJRU5ErkJggg==") no-repeat 50% 50%; +} + +#red-ui-workspace { + border-color: #2E333A; +} + +#red-ui-workspace-toolbar .button { + background-color: #434954; + border-color: #2D3239; +} + +#red-ui-workspace-toolbar .button-group .button.active { + background-color: #353840; +} + +#red-ui-workspace-toolbar .button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +#red-ui-workspace-toolbar .button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +#red-ui-workspace-toolbar .button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +#red-ui-workspace-toolbar .button.disabled, +#red-ui-workspace-toolbar .button:disabled { + color: #777 !important; +} + +#red-ui-workspace-toolbar .button.primary.disabled, +#red-ui-workspace-toolbar .button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +#red-ui-workspace-toolbar .button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +#red-ui-workspace-toolbar .spinner-value { + color: #AAA; + border-top-color: #2C3138; + border-bottom-color: #2C3138; + background-color: #434954; +} + +#red-ui-workspace-toolbar { + color: #AAA; + background-color: #434954; + border-bottom-color: #2C3138; +} + +a.editor-button, +button.editor-button, +a.red-ui-button, +button.red-ui-button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.editor-button:not(.disabled):not(:disabled):active, +button.editor-button:not(.disabled):not(:disabled):active, +a.red-ui-button:not(.disabled):not(:disabled):active, +button.red-ui-button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} +a.editor-button:not(.disabled):not(:disabled):focus, +button.editor-button:not(.disabled):not(:disabled):focus, +a.red-ui-button:not(.disabled):not(:disabled):focus, +button.red-ui-button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.editor-button:not(.disabled):not(:disabled):hover, +button.editor-button:not(.disabled):not(:disabled):hover, +a.red-ui-button:not(.disabled):not(:disabled):hover, +button.red-ui-button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.editor-button.disabled, +a.editor-button:disabled, +button.editor-button.disabled, +button.editor-button:disabled, +a.red-ui-button.disabled, +a.red-ui-button:disabled, +button.red-ui-button.disabled, +button.red-ui-button:disabled { + color: #777 !important; +} + +a.editor-button.primary.disabled, +a.editor-button.primary.ui-state-disabled, +button.editor-button.primary.disabled, +button.editor-button.primary.ui-state-disabled, +a.red-ui-button.primary.disabled, +a.red-ui-button.primary.ui-state-disabled, +button.red-ui-button.primary.disabled, +button.red-ui-button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.editor-button.selected:not(.disabled):not(:disabled), +button.editor-button.selected:not(.disabled):not(:disabled), +a.red-ui-button.selected:not(.disabled):not(:disabled), +button.red-ui-button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.editor-button.toggle, +button.editor-button.toggle, +a.red-ui-button.toggle, +button.red-ui-button.toggle { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.editor-button.toggle:not(.disabled):not(:disabled):active, +button.editor-button.toggle:not(.disabled):not(:disabled):active, +a.red-ui-button.toggle:not(.disabled):not(:disabled):active, +button.red-ui-button.toggle:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.editor-button.toggle:not(.disabled):not(:disabled):focus, +button.editor-button.toggle:not(.disabled):not(:disabled):focus, +a.red-ui-button.toggle:not(.disabled):not(:disabled):focus, +button.red-ui-button.toggle:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.editor-button.toggle:not(.disabled):not(:disabled):hover, +button.editor-button.toggle:not(.disabled):not(:disabled):hover, +a.red-ui-button.toggle:not(.disabled):not(:disabled):hover, +button.red-ui-button.toggle:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.editor-button.toggle:not(.single).selected:not(.disabled):not(:disabled), +button.editor-button.toggle:not(.single).selected:not(.disabled):not(:disabled), +a.red-ui-button.toggle:not(.single).selected:not(.disabled):not(:disabled), +button.red-ui-button.toggle:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +a.editor-button.toggle.disabled, +a.editor-button.toggle:disabled, +button.editor-button.toggle.disabled, +button.editor-button.toggle:disabled, +a.red-ui-button.toggle.disabled, +a.red-ui-button.toggle:disabled, +button.red-ui-button.toggle.disabled, +button.red-ui-button.toggle:disabled { + color: #777 !important; +} + +a.editor-button.toggle.primary.disabled, +a.editor-button.toggle.primary.ui-state-disabled, +button.editor-button.toggle.primary.disabled, +button.editor-button.toggle.primary.ui-state-disabled, +a.red-ui-button.toggle.primary.disabled, +a.red-ui-button.toggle.primary.ui-state-disabled, +button.red-ui-button.toggle.primary.disabled, +button.red-ui-button.toggle.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.editor-button.toggle.selected:not(.disabled):not(:disabled), +button.editor-button.toggle.selected:not(.disabled):not(:disabled), +a.red-ui-button.toggle.selected:not(.disabled):not(:disabled), +button.red-ui-button.toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.red-ui-footer-button-toggle, +button.red-ui-footer-button-toggle { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.red-ui-footer-button-toggle:not(.disabled):not(:disabled):active, +button.red-ui-footer-button-toggle:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.red-ui-footer-button-toggle:not(.disabled):not(:disabled):focus, +button.red-ui-footer-button-toggle:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.red-ui-footer-button-toggle:not(.disabled):not(:disabled):hover, +button.red-ui-footer-button-toggle:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.red-ui-footer-button-toggle:not(.single).selected:not(.disabled):not(:disabled), +button.red-ui-footer-button-toggle:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +a.red-ui-footer-button-toggle.disabled, +a.red-ui-footer-button-toggle:disabled, +button.red-ui-footer-button-toggle.disabled, +button.red-ui-footer-button-toggle:disabled { + color: #777 !important; +} + +a.red-ui-footer-button-toggle.primary.disabled, +a.red-ui-footer-button-toggle.primary.ui-state-disabled, +button.red-ui-footer-button-toggle.primary.disabled, +button.red-ui-footer-button-toggle.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.red-ui-footer-button-toggle.selected:not(.disabled):not(:disabled), +button.red-ui-footer-button-toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.red-ui-footer-button, +button.red-ui-footer-button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.red-ui-footer-button:not(.disabled):not(:disabled):active, +button.red-ui-footer-button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.red-ui-footer-button:not(.disabled):not(:disabled):focus, +button.red-ui-footer-button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.red-ui-footer-button:not(.disabled):not(:disabled):hover, +button.red-ui-footer-button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.red-ui-footer-button.disabled, +a.red-ui-footer-button:disabled, +button.red-ui-footer-button.disabled, +button.red-ui-footer-button:disabled { + color: #777 !important; +} + +a.red-ui-footer-button.primary.disabled, +a.red-ui-footer-button.primary.ui-state-disabled, +button.red-ui-footer-button.primary.disabled, +button.red-ui-footer-button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.red-ui-footer-button.selected:not(.disabled):not(:disabled), +button.red-ui-footer-button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.red-ui-tray-resize-button, +button.red-ui-tray-resize-button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; + border-bottom-color: #2C3138; +} + +a.red-ui-tray-resize-button:not(.disabled):not(:disabled):active, +button.red-ui-tray-resize-button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.red-ui-tray-resize-button:not(.disabled):not(:disabled):focus, +button.red-ui-tray-resize-button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.red-ui-tray-resize-button:not(.disabled):not(:disabled):hover, +button.red-ui-tray-resize-button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.red-ui-tray-resize-button.disabled, +a.red-ui-tray-resize-button:disabled, +button.red-ui-tray-resize-button.disabled, +button.red-ui-tray-resize-button:disabled { + color: #777 !important; +} + +a.red-ui-tray-resize-button.primary.disabled, +a.red-ui-tray-resize-button.primary.ui-state-disabled, +button.red-ui-tray-resize-button.primary.disabled, +button.red-ui-tray-resize-button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.red-ui-tray-resize-button.selected:not(.disabled):not(:disabled), +button.red-ui-tray-resize-button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.sidebar-header-button-toggle, +button.sidebar-header-button-toggle, +a.red-ui-sidebar-header-button-toggle, +button.red-ui-sidebar-header-button-toggle { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.sidebar-header-button-toggle:not(.disabled):not(:disabled):active, +button.sidebar-header-button-toggle:not(.disabled):not(:disabled):active, +a.red-ui-sidebar-header-button-toggle:not(.disabled):not(:disabled):active, +button.red-ui-sidebar-header-button-toggle:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.sidebar-header-button-toggle:not(.disabled):not(:disabled):focus, +button.sidebar-header-button-toggle:not(.disabled):not(:disabled):focus, +a.red-ui-sidebar-header-button-toggle:not(.disabled):not(:disabled):focus, +button.red-ui-sidebar-header-button-toggle:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.sidebar-header-button-toggle:not(.disabled):not(:disabled):hover, +button.sidebar-header-button-toggle:not(.disabled):not(:disabled):hover, +a.red-ui-sidebar-header-button-toggle:not(.disabled):not(:disabled):hover, +button.red-ui-sidebar-header-button-toggle:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.sidebar-header-button-toggle:not(.single).selected:not(.disabled):not(:disabled), +button.sidebar-header-button-toggle:not(.single).selected:not(.disabled):not(:disabled), +a.red-ui-sidebar-header-button-toggle:not(.single).selected:not(.disabled):not(:disabled), +button.red-ui-sidebar-header-button-toggle:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +a.sidebar-header-button-toggle.disabled, +a.sidebar-header-button-toggle:disabled, +button.sidebar-header-button-toggle.disabled, +button.sidebar-header-button-toggle:disabled, +a.red-ui-sidebar-header-button-toggle.disabled, +a.red-ui-sidebar-header-button-toggle:disabled, +button.red-ui-sidebar-header-button-toggle.disabled, +button.red-ui-sidebar-header-button-toggle:disabled { + color: #777 !important; +} + +a.sidebar-header-button-toggle.primary.disabled, +a.sidebar-header-button-toggle.primary.ui-state-disabled, +button.sidebar-header-button-toggle.primary.disabled, +button.sidebar-header-button-toggle.primary.ui-state-disabled, +a.red-ui-sidebar-header-button-toggle.primary.disabled, +a.red-ui-sidebar-header-button-toggle.primary.ui-state-disabled, +button.red-ui-sidebar-header-button-toggle.primary.disabled, +button.red-ui-sidebar-header-button-toggle.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.sidebar-header-button-toggle.selected:not(.disabled):not(:disabled), +button.sidebar-header-button-toggle.selected:not(.disabled):not(:disabled), +a.red-ui-sidebar-header-button-toggle.selected:not(.disabled):not(:disabled), +button.red-ui-sidebar-header-button-toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.sidebar-header-button, +button.sidebar-header-button, +a.red-ui-sidebar-header-button, +button.red-ui-sidebar-header-button { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.sidebar-header-button:not(.disabled):not(:disabled):active, +button.sidebar-header-button:not(.disabled):not(:disabled):active, +a.red-ui-sidebar-header-button:not(.disabled):not(:disabled):active, +button.red-ui-sidebar-header-button:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.sidebar-header-button:not(.disabled):not(:disabled):focus, +button.sidebar-header-button:not(.disabled):not(:disabled):focus, +a.red-ui-sidebar-header-button:not(.disabled):not(:disabled):focus, +button.red-ui-sidebar-header-button:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.sidebar-header-button:not(.disabled):not(:disabled):hover, +button.sidebar-header-button:not(.disabled):not(:disabled):hover, +a.red-ui-sidebar-header-button:not(.disabled):not(:disabled):hover, +button.red-ui-sidebar-header-button:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.sidebar-header-button.disabled, +a.sidebar-header-button:disabled, +button.sidebar-header-button.disabled, +button.sidebar-header-button:disabled, +a.red-ui-sidebar-header-button.disabled, +a.red-ui-sidebar-header-button:disabled, +button.red-ui-sidebar-header-button.disabled, +button.red-ui-sidebar-header-button:disabled { + color: #777 !important; +} + +a.sidebar-header-button.primary.disabled, +a.sidebar-header-button.primary.ui-state-disabled, +button.sidebar-header-button.primary.disabled, +button.sidebar-header-button.primary.ui-state-disabled, +a.red-ui-sidebar-header-button.primary.disabled, +a.red-ui-sidebar-header-button.primary.ui-state-disabled, +button.red-ui-sidebar-header-button.primary.disabled, +button.red-ui-sidebar-header-button.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.sidebar-header-button.selected:not(.disabled):not(:disabled), +button.sidebar-header-button.selected:not(.disabled):not(:disabled), +a.red-ui-sidebar-header-button.selected:not(.disabled):not(:disabled), +button.red-ui-sidebar-header-button.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +a.sidebar-header-button.toggle, +button.sidebar-header-button.toggle, +a.red-ui-sidebar-header-button.toggle, +button.red-ui-sidebar-header-button.toggle { + color: #AAA !important; + background-color: #434954; + border-color: #2D3239; +} + +a.sidebar-header-button.toggle:not(.disabled):not(:disabled):active, +button.sidebar-header-button.toggle:not(.disabled):not(:disabled):active, +a.red-ui-sidebar-header-button.toggle:not(.disabled):not(:disabled):active, +button.red-ui-sidebar-header-button.toggle:not(.disabled):not(:disabled):active { + color: #CCC !important; + background-color: #353840; +} + +a.sidebar-header-button.toggle:not(.disabled):not(:disabled):focus, +button.sidebar-header-button.toggle:not(.disabled):not(:disabled):focus, +a.red-ui-sidebar-header-button.toggle:not(.disabled):not(:disabled):focus, +button.red-ui-sidebar-header-button.toggle:not(.disabled):not(:disabled):focus { + color: #CCC !important; +} + +a.sidebar-header-button.toggle:not(.disabled):not(:disabled):hover, +button.sidebar-header-button.toggle:not(.disabled):not(:disabled):hover, +a.red-ui-sidebar-header-button.toggle:not(.disabled):not(:disabled):hover, +button.red-ui-sidebar-header-button.toggle:not(.disabled):not(:disabled):hover { + color: #CCC !important; + background-color: #2E333A; +} + +a.sidebar-header-button.toggle:not(.single).selected:not(.disabled):not(:disabled), +button.sidebar-header-button.toggle:not(.single).selected:not(.disabled):not(:disabled), +a.red-ui-sidebar-header-button.toggle:not(.single).selected:not(.disabled):not(:disabled), +button.red-ui-sidebar-header-button.toggle:not(.single).selected:not(.disabled):not(:disabled) { + border-bottom-color: #2E333A; +} + +a.sidebar-header-button.toggle.disabled, +a.sidebar-header-button.toggle:disabled, +button.sidebar-header-button.toggle.disabled, +button.sidebar-header-button.toggle:disabled, +a.red-ui-sidebar-header-button.toggle.disabled, +a.red-ui-sidebar-header-button.toggle:disabled, +button.red-ui-sidebar-header-button.toggle.disabled, +button.red-ui-sidebar-header-button.toggle:disabled { + color: #777 !important; +} + +a.sidebar-header-button.toggle.primary.disabled, +a.sidebar-header-button.toggle.primary.ui-state-disabled, +button.sidebar-header-button.toggle.primary.disabled, +button.sidebar-header-button.toggle.primary.ui-state-disabled, +a.red-ui-sidebar-header-button.toggle.primary.disabled, +a.red-ui-sidebar-header-button.toggle.primary.ui-state-disabled, +button.red-ui-sidebar-header-button.toggle.primary.disabled, +button.red-ui-sidebar-header-button.toggle.primary.ui-state-disabled { + color: #AAA !important; + border-color: #2D3239; +} + +a.sidebar-header-button.toggle.selected:not(.disabled):not(:disabled), +button.sidebar-header-button.toggle.selected:not(.disabled):not(:disabled), +a.red-ui-sidebar-header-button.toggle.selected:not(.disabled):not(:disabled), +button.red-ui-sidebar-header-button.toggle.selected:not(.disabled):not(:disabled) { + color: #CCC !important; + background-color: #353840; +} + +button.red-ui-typedInput-option-trigger .red-ui-typedInput-option-label { + background-color: #353840; + color: #DDD; +} + +button.red-ui-typedInput-type-select .red-ui-typedInput-type-label img, +button.red-ui-typedInput-type-select .red-ui-typedInput-option-label img, +button.red-ui-typedInput-option-expand .red-ui-typedInput-type-label img, +button.red-ui-typedInput-option-expand .red-ui-typedInput-option-label img, +button.red-ui-typedInput-option-trigger .red-ui-typedInput-type-label img, +button.red-ui-typedInput-option-trigger .red-ui-typedInput-option-label img { + filter: brightness(0) saturate(100%) invert(91%) sepia(0%) saturate(309%) hue-rotate(170deg) brightness(103%) contrast(85%); +} + +button.red-ui-typedInput-type-select, +button.red-ui-typedInput-option-expand, +button.red-ui-typedInput-option-trigger { + background-color: #353840; + color: #DDD; +} + +button.red-ui-typedInput-type-select:not(.disabled):active, +button.red-ui-typedInput-option-expand:not(.disabled):active, +button.red-ui-typedInput-option-trigger:not(.disabled):active { + background-color: #353840; +} + +button.red-ui-typedInput-type-select:not(.disabled):hover, +button.red-ui-typedInput-option-expand:not(.disabled):hover, +button.red-ui-typedInput-option-trigger:not(.disabled):hover { + background-color: #2E333A; +} + +button.red-ui-typedInput-type-select.disabled>i.red-ui-typedInput-icon, +button.red-ui-typedInput-option-expand.disabled>i.red-ui-typedInput-icon, +button.red-ui-typedInput-option-trigger.disabled>i.red-ui-typedInput-icon { + color: #777; +} + +div.red-ui-button-small.red-ui-color-picker-opacity-slider-handle { + border-color: #2E333A; + background-color: #434954; +} + +label.red-ui-diff-selectbox { + border-left-color: #2C3138; +} + +label.red-ui-diff-selectbox:hover { + background-color: #2E333A; +} + +li.selected .red-ui-search-result { + background-color: #353840; + border-left-color: #CCC; + border-right-color: #CCC; +} + +table.red-ui-info-table tr:not(.blank) { + border-top-color: #2C3138; + border-bottom-color: #2C3138; +} + +table.red-ui-info-table tr:not(.blank) td:first-child { + color: #BBB; + background-color: #3E424B; + border-right-color: #2C3138; +} + +table.red-ui-info-table tr:not(.blank) td:last-child { + color: #DDD; +} + +table.red-ui-info-table tr.blank a { + color: #DDD; +} + +table.red-ui-info-table tr.blank a:hover, +table.red-ui-info-table tr.blank a:focus { + color: #DDD; +} + +table.red-ui-info-table tr.blank th { + color: #DDD; +} + +ul.red-ui-menu:not(.red-ui-menu-dropdown) li a { + color: #DDD; +} + +ul.red-ui-menu:not(.red-ui-menu-dropdown) li a:hover, +ul.red-ui-menu:not(.red-ui-menu-dropdown) li a:focus { + color: #CCC; + background-color: #2E333A; +} + +ul.red-ui-sidebar-node-config-list .red-ui-palette-icon-container { + background-color: #353840; +} + +ul.red-ui-sidebar-node-config-list .red-ui-palette-icon-container a { + color: #AAA; +} + +ul.red-ui-sidebar-node-config-list .red-ui-palette-icon-container a:hover { + background: #2E333A; +} + +ul.red-ui-sidebar-node-config-list .red-ui-palette-label { + color: #BBB; +} + +ul.red-ui-sidebar-node-config-list .red-ui-palette-node { + border-color: #2E333A; +} + +ul.red-ui-sidebar-node-config-list li.red-ui-palette-node-config-type { + color: #AAA; +} diff --git a/data/frodo/package.json b/data/frodo/package.json new file mode 100644 index 0000000..eec0eb6 --- /dev/null +++ b/data/frodo/package.json @@ -0,0 +1,9 @@ +{ + "name": "node-red-project", + "description": "A Node-RED Project", + "version": "0.0.1", + "private": true, + "dependencies": { + "@node-red-contrib-themes/midnight-red": "^1.4.6" + } +} diff --git a/data/frodo/settings.js b/data/frodo/settings.js new file mode 100644 index 0000000..78458ad --- /dev/null +++ b/data/frodo/settings.js @@ -0,0 +1,304 @@ +/** + * This is the default settings file provided by Node-RED. + * + * It can contain any valid JavaScript code that will get run when Node-RED + * is started. + * + * Lines that start with // are commented out. + * Each entry should be separated from the entries above and below by a comma ',' + * + * For more information about individual settings, refer to the documentation: + * https://nodered.org/docs/user-guide/runtime/configuration + **/ + +module.exports = { + // the tcp port that the Node-RED web server is listening on + uiPort: process.env.PORT || 1880, + + // By default, the Node-RED UI accepts connections on all IPv4 interfaces. + // To listen on all IPv6 addresses, set uiHost to "::", + // The following property can be used to listen on a specific interface. For + // example, the following would only allow connections from the local machine. + //uiHost: "127.0.0.1", + + // Retry time in milliseconds for MQTT connections + mqttReconnectTime: 15000, + + // Retry time in milliseconds for Serial port connections + serialReconnectTime: 15000, + + // Retry time in milliseconds for TCP socket connections + //socketReconnectTime: 10000, + + // Timeout in milliseconds for TCP server socket connections + // defaults to no timeout + //socketTimeout: 120000, + + // Maximum number of messages to wait in queue while attempting to connect to TCP socket + // defaults to 1000 + //tcpMsgQueueSize: 2000, + + // Timeout in milliseconds for HTTP request connections + // defaults to 120 seconds + //httpRequestTimeout: 120000, + + // The maximum length, in characters, of any message sent to the debug sidebar tab + debugMaxLength: 1000, + + // The maximum number of messages nodes will buffer internally as part of their + // operation. This applies across a range of nodes that operate on message sequences. + // defaults to no limit. A value of 0 also means no limit is applied. + //nodeMessageBufferMaxLength: 0, + + // To disable the option for using local files for storing keys and certificates in the TLS configuration + // node, set this to true + //tlsConfigDisableLocalFiles: true, + + // Colourise the console output of the debug node + //debugUseColors: true, + + // The file containing the flows. If not set, it defaults to flows_.json + //flowFile: 'flows.json', + + // To enabled pretty-printing of the flow within the flow file, set the following + // property to true: + //flowFilePretty: true, + + // By default, credentials are encrypted in storage using a generated key. To + // specify your own secret, set the following property. + // If you want to disable encryption of credentials, set this property to false. + // Note: once you set this property, do not change it - doing so will prevent + // node-red from being able to decrypt your existing credentials and they will be + // lost. + //credentialSecret: "a-secret-key", + + // By default, all user data is stored in a directory called `.node-red` under + // the user's home directory. To use a different location, the following + // property can be used + //userDir: '/home/nol/.node-red/', + + // Node-RED scans the `nodes` directory in the userDir to find local node files. + // The following property can be used to specify an additional directory to scan. + //nodesDir: '/home/nol/.node-red/nodes', + + // By default, the Node-RED UI is available at http://localhost:1880/ + // The following property can be used to specify a different root path. + // If set to false, this is disabled. + //httpAdminRoot: '/admin', + + // Some nodes, such as HTTP In, can be used to listen for incoming http requests. + // By default, these are served relative to '/'. The following property + // can be used to specifiy a different root path. If set to false, this is + // disabled. + //httpNodeRoot: '/red-nodes', + + // The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot', + // to apply the same root to both parts. + //httpRoot: '/red', + + // When httpAdminRoot is used to move the UI to a different root path, the + // following property can be used to identify a directory of static content + // that should be served at http://localhost:1880/. + //httpStatic: '/home/nol/node-red-static/', + + // The maximum size of HTTP request that will be accepted by the runtime api. + // Default: 5mb + //apiMaxLength: '5mb', + + // If you installed the optional node-red-dashboard you can set it's path + // relative to httpRoot + //ui: { path: "ui" }, + + // Securing Node-RED + // ----------------- + // To password protect the Node-RED editor and admin API, the following + // property can be used. See http://nodered.org/docs/security.html for details. + //adminAuth: { + // type: "credentials", + // users: [{ + // username: "admin", + // password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", + // permissions: "*" + // }] + //}, + + // To password protect the node-defined HTTP endpoints (httpNodeRoot), or + // the static content (httpStatic), the following properties can be used. + // The pass field is a bcrypt hash of the password. + // See http://nodered.org/docs/security.html#generating-the-password-hash + //httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, + + // The following property can be used to enable HTTPS + // See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener + // for details on its contents. + // This property can be either an object, containing both a (private) key and a (public) certificate, + // or a function that returns such an object: + //// https object: + //https: { + // key: require("fs").readFileSync('privkey.pem'), + // cert: require("fs").readFileSync('cert.pem') + //}, + ////https function: + // https: function() { + // // This function should return the options object, or a Promise + // // that resolves to the options object + // return { + // key: require("fs").readFileSync('privkey.pem'), + // cert: require("fs").readFileSync('cert.pem') + // } + // }, + + // The following property can be used to refresh the https settings at a + // regular time interval in hours. + // This requires: + // - the `https` setting to be a function that can be called to get + // the refreshed settings. + // - Node.js 11 or later. + //httpsRefreshInterval : 12, + + // The following property can be used to cause insecure HTTP connections to + // be redirected to HTTPS. + //requireHttps: true, + + // The following property can be used to disable the editor. The admin API + // is not affected by this option. To disable both the editor and the admin + // API, use either the httpRoot or httpAdminRoot properties + //disableEditor: false, + + // The following property can be used to configure cross-origin resource sharing + // in the HTTP nodes. + // See https://github.com/troygoode/node-cors#configuration-options for + // details on its contents. The following is a basic permissive set of options: + //httpNodeCors: { + // origin: "*", + // methods: "GET,PUT,POST,DELETE" + //}, + + // If you need to set an http proxy please set an environment variable + // called http_proxy (or HTTP_PROXY) outside of Node-RED in the operating system. + // For example - http_proxy=http://myproxy.com:8080 + // (Setting it here will have no effect) + // You may also specify no_proxy (or NO_PROXY) to supply a comma separated + // list of domains to not proxy, eg - no_proxy=.acme.co,.acme.co.uk + + // The following property can be used to add a custom middleware function + // in front of all http in nodes. This allows custom authentication to be + // applied to all http in nodes, or any other sort of common request processing. + //httpNodeMiddleware: function(req,res,next) { + // // Handle/reject the request, or pass it on to the http in node by calling next(); + // // Optionally skip our rawBodyParser by setting this to true; + // //req.skipRawBodyParser = true; + // next(); + //}, + + + // The following property can be used to add a custom middleware function + // in front of all admin http routes. For example, to set custom http + // headers + // httpAdminMiddleware: function(req,res,next) { + // // Set the X-Frame-Options header to limit where the editor + // // can be embedded + // //res.set('X-Frame-Options', 'sameorigin'); + // next(); + // }, + + // The following property can be used to pass custom options to the Express.js + // server used by Node-RED. For a full list of available options, refer + // to http://expressjs.com/en/api.html#app.settings.table + //httpServerOptions: { }, + + // The following property can be used to verify websocket connection attempts. + // This allows, for example, the HTTP request headers to be checked to ensure + // they include valid authentication information. + //webSocketNodeVerifyClient: function(info) { + // // 'info' has three properties: + // // - origin : the value in the Origin header + // // - req : the HTTP request + // // - secure : true if req.connection.authorized or req.connection.encrypted is set + // // + // // The function should return true if the connection should be accepted, false otherwise. + // // + // // Alternatively, if this function is defined to accept a second argument, callback, + // // it can be used to verify the client asynchronously. + // // The callback takes three arguments: + // // - result : boolean, whether to accept the connection or not + // // - code : if result is false, the HTTP error status to return + // // - reason: if result is false, the HTTP reason string to return + //}, + + // The following property can be used to seed Global Context with predefined + // values. This allows extra node modules to be made available with the + // Function node. + // For example, + // functionGlobalContext: { os:require('os') } + // can be accessed in a function block as: + // global.get("os") + functionGlobalContext: { + // os:require('os'), + // jfive:require("johnny-five"), + // j5board:require("johnny-five").Board({repl:false}) + }, + // `global.keys()` returns a list of all properties set in global context. + // This allows them to be displayed in the Context Sidebar within the editor. + // In some circumstances it is not desirable to expose them to the editor. The + // following property can be used to hide any property set in `functionGlobalContext` + // from being list by `global.keys()`. + // By default, the property is set to false to avoid accidental exposure of + // their values. Setting this to true will cause the keys to be listed. + exportGlobalContextKeys: false, + + + // Context Storage + // The following property can be used to enable context storage. The configuration + // provided here will enable file-based context that flushes to disk every 30 seconds. + // Refer to the documentation for further options: https://nodered.org/docs/api/context/ + // + //contextStorage: { + // default: { + // module:"localfilesystem" + // }, + //}, + + // The following property can be used to order the categories in the editor + // palette. If a node's category is not in the list, the category will get + // added to the end of the palette. + // If not set, the following default order is used: + //paletteCategories: ['subflows', 'common', 'function', 'network', 'sequence', 'parser', 'storage'], + + // Configure the logging output + logging: { + // Only console logging is currently supported + console: { + // Level of logging to be recorded. Options are: + // fatal - only those errors which make the application unusable should be recorded + // error - record errors which are deemed fatal for a particular request + fatal errors + // warn - record problems which are non fatal + errors + fatal errors + // info - record information about the general running of the application + warn + error + fatal errors + // debug - record information which is more verbose than info + info + warn + error + fatal errors + // trace - record very detailed logging + debug + info + warn + error + fatal errors + // off - turn off all logging (doesn't affect metrics or audit) + level: "info", + // Whether or not to include metric events in the log output + metrics: false, + // Whether or not to include audit events in the log output + audit: false + } + }, + + // Customising the editor + editorTheme: { + page: { + // To enable the Projects feature, set this value to true + title: "NodeRed-3115-Frodo", + css: "/data/node_modules/@node-red-contrib-themes/midnight-red/theme.css" + }, + header: { + title: "Node-RED-3115-Frodo", + }, + projects: { + // To enable the Projects feature, set this value to true + enabled: false + } + } +} diff --git a/debug-start b/debug-start new file mode 100755 index 0000000..c4f73fa --- /dev/null +++ b/debug-start @@ -0,0 +1,3 @@ +#!/bin/bash +DIR=$(dirname "$0") +source $DIR/exec up diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..072cad9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +################################################################################ +# Node-RED Stack or Compose +# see https://github.com/node-red/node-red-docker +################################################################################ +################################################################################ +version: "3" + +services: + node-red: + container_name: node-red-${INSTANCE} + image: nodered/node-red:latest + restart: unless-stopped + ports: + - "1880:1880" + networks: + - node-red-net + volumes: + - $DATA_DIR:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro +networks: + node-red-net: diff --git a/exec b/exec new file mode 100755 index 0000000..b6b83e4 --- /dev/null +++ b/exec @@ -0,0 +1,5 @@ +#!/bin/bash +DIR=$(dirname "$0") +DATA_DIR="$DIR/data/$(hostname)" +mkdir -p $DATA_DIR +DATA_DIR=$DATA_DIR INSTANCE=$(hostname) docker-compose "$@" diff --git a/nri b/nri new file mode 100755 index 0000000..bbf650b --- /dev/null +++ b/nri @@ -0,0 +1,6 @@ +#!/bin/bash +DIR=$(dirname "$0") +DATA_DIR="$DIR/data/$(hostname)" +cd $DATA_DIR +npm install --save $1 +cd - diff --git a/nrr b/nrr new file mode 100755 index 0000000..dbde2c4 --- /dev/null +++ b/nrr @@ -0,0 +1,6 @@ +#!/bin/bash +DIR=$(dirname "$0") +DATA_DIR="$DIR/data/$(hostname)" +cd $DATA_DIR || return +npm uninstall --save $1 +cd - diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..891c2eb --- /dev/null +++ b/readme.md @@ -0,0 +1,31 @@ +# Node Red via Docker + +A deployment of node red via docker using docker-compose file + +## Setup + +clone this repo - e.g. + +`git clone https://git.kebler.net/IOT/node-red-docker.git /opt/node-red` + +cd to directory and run `./start` + +will create a directory `./data/` with user settings + +T add dependencies (outside the ui) + +install `./nri @node-red.....` + +remove `./nrr @node-red....` + +`./term` will give you terminal inside the container + +`./recreate` will scrub container and restart + +`./stop` will stop container (node-red) + +`./restart` will restart container. Necessary after manual install or remove is done. Will also upgrade to latest images. + +`./debug-start` will start container but not headless/detached so on can observe any issues with startup. + +the `exec` script is not to be called directly. diff --git a/recreate b/recreate new file mode 100755 index 0000000..2058dc3 --- /dev/null +++ b/recreate @@ -0,0 +1,4 @@ +#!/bin/bash +DIR=$(dirname "$0") +source $DIR/exec down +source $DIR/exec up -d --force-recreate diff --git a/restart b/restart new file mode 100755 index 0000000..579b839 --- /dev/null +++ b/restart @@ -0,0 +1,4 @@ +#!/bin/bash +DIR=$(dirname "$0") +source $DIR/exec down +source $DIR/exec up -d diff --git a/start b/start new file mode 100755 index 0000000..7ab88de --- /dev/null +++ b/start @@ -0,0 +1,3 @@ +#!/bin/bash +DIR=$(dirname "$0") +source $DIR/exec up -d diff --git a/stop b/stop new file mode 100755 index 0000000..ac6b9c2 --- /dev/null +++ b/stop @@ -0,0 +1,3 @@ +#!/bin/bash +DIR=$(dirname "$0") +source $DIR/exec down diff --git a/term b/term new file mode 100755 index 0000000..1626d86 --- /dev/null +++ b/term @@ -0,0 +1,2 @@ +#!/bin/bash +docker exec -it node-red-$(hostname) /bin/sh