Compare commits
63 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc5c9aec58 | ||
|
|
b7ef555db5 | ||
|
|
5dbfa6dccf | ||
|
|
b214b7edb7 | ||
|
|
dfa31f3d68 | ||
|
|
5066e216bb | ||
|
|
d8add7642d | ||
|
|
3b92c8b92b | ||
|
|
b1c1466ae2 | ||
|
|
4ed8daf5f7 | ||
|
|
44aa556f2d | ||
|
|
c8a12f96c8 | ||
|
|
83adac6c0a | ||
|
|
d91cd6a15a | ||
|
|
120b5d8ce1 | ||
|
|
2fcb4261e9 | ||
|
|
4e8cbbab79 | ||
|
|
e70a06ccf4 | ||
|
|
01d76178df | ||
|
|
c217b0a499 | ||
|
|
2594e1252c | ||
|
|
2ad89f2a9a | ||
|
|
e110177a79 | ||
|
|
2b45410389 | ||
|
|
4502b3a16a | ||
|
|
94ab44a568 | ||
|
|
eb471ba142 | ||
|
|
49a78e22d6 | ||
|
|
579b0dcfb7 | ||
|
|
f98dd2abf9 | ||
|
|
20b1670d56 | ||
|
|
e91dfcf5e5 | ||
|
|
ba740a766b | ||
|
|
139be101a4 | ||
|
|
1007d5c1a0 | ||
|
|
993dd0d2f3 | ||
|
|
a2a39a113e | ||
|
|
f7faecd33e | ||
|
|
5a415e1bd7 | ||
|
|
c08398bf63 | ||
|
|
4fd7f76200 | ||
|
|
6dff41b95a | ||
|
|
64b94b4f2c | ||
|
|
d15e6415a8 | ||
|
|
de578dd6d4 | ||
|
|
ec84e8f727 | ||
|
|
b1c098a1dc | ||
|
|
4825bed608 | ||
|
|
bdb456fcb5 | ||
|
|
be3b8b8501 | ||
|
|
76f6f1df6a | ||
|
|
d8ef5f0425 | ||
|
|
2cfcb82555 | ||
|
|
5ae67e05c9 | ||
|
|
845713b822 | ||
|
|
9ca30ca6a8 | ||
|
|
ac9de80e9e | ||
|
|
c0634cf10b | ||
|
|
e7b988cce2 | ||
|
|
c9c57746bb | ||
|
|
2275806f41 | ||
|
|
56b2c99882 | ||
|
|
4c4e254c6a |
3
.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
.idea
|
||||||
|
|||||||
51
CHANGELOG.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# TuiCss ChangeLog
|
||||||
|
### This is the change log of TuiCss. Here you can find the documentations of the feature of each released version
|
||||||
|
|
||||||
|
#### 2.1.0
|
||||||
|
- .disabled classes
|
||||||
|
- Fixed the default radius border of inputs
|
||||||
|
- Removed pointer events of checkbox and radio button
|
||||||
|
- Tabs and buttons example pages
|
||||||
|
- Remove padding of inputs
|
||||||
|
- .no-border util
|
||||||
|
- Forecast example
|
||||||
|
|
||||||
|
#### 2.0.0
|
||||||
|
- Jquery removed (Now use vanilla Javascript)
|
||||||
|
- Chart example page
|
||||||
|
- Readme update
|
||||||
|
- Changelog markdown
|
||||||
|
- Chart component
|
||||||
|
- NPM Package
|
||||||
|
|
||||||
|
#### 1.0.0
|
||||||
|
- Utilities
|
||||||
|
- Examples
|
||||||
|
- DOS font
|
||||||
|
- Wiki documentation
|
||||||
|
- Button component
|
||||||
|
- Checkbox component
|
||||||
|
- Divider component
|
||||||
|
- Dropdown component
|
||||||
|
- Fieldset component
|
||||||
|
- Input component
|
||||||
|
- Navbar component
|
||||||
|
- Panel component
|
||||||
|
- Progressbar component
|
||||||
|
- Radio component
|
||||||
|
- Scrollbar component
|
||||||
|
- Sidenav component
|
||||||
|
- Statusbar component
|
||||||
|
- Table component
|
||||||
|
- Tablegrid component
|
||||||
|
- Tabs component
|
||||||
|
- Textarea component
|
||||||
|
- Window component
|
||||||
|
- Screen component
|
||||||
|
- Datetime component
|
||||||
|
- Shortcut component
|
||||||
|
- Shadow component
|
||||||
|
- Background component
|
||||||
|
- Border component
|
||||||
|
- Grid component
|
||||||
|
- Modal component
|
||||||
1
CONTRIBUTING.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Click [here](https://github.com/vinibiavatti1/TuiCss/wiki/Contributing) to access the contributing page on the wiki!
|
||||||
21
LICENSE.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2019 Vinicius Reif Biavatti
|
||||||
|
|
||||||
|
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.
|
||||||
36
README.md
@@ -1,9 +1,35 @@
|
|||||||
# TuiCss
|
<p align="center">
|
||||||
### Text-based user interface CSS framework
|
<a href="https://github.com/vinibiavatti1/TuiCss">
|
||||||
|
<img src="https://raw.githubusercontent.com/vinibiavatti1/TuiCss/develop/resources/TUICSS%20Logo%20160x160%20transparent.png" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
TuiCss is a framework focused to create web applications using an interface based in ASCII table, like MS-DOS applications. This kind of interface is very eligible because the ultra-contrast colors used and the less effects of the elements. The main framework thats is following to develop TuiCss is <a href="https://en.wikipedia.org/wiki/Turbo_Vision">Turbo Vision Framework</a> with some techniques with [box-drawing characters](https://en.wikipedia.org/wiki/Box-drawing_character), but some others frameworks were checked too, like [curses](https://en.wikipedia.org/wiki/Curses_(programming_library)), [ncurses](https://en.wikipedia.org/wiki/Ncurses), [Newt](https://en.wikipedia.org/wiki/Newt_(programming_library)), etc. Check the examples page in the wiki to see some creations!
|
<h3 align="center">TuiCss</h3>
|
||||||
|
|
||||||
<img src="https://i.ibb.co/zhJMy1h/Tui-Css-home.png" width="600">
|
<p align="center">
|
||||||
|
Text-based user interface CSS library
|
||||||
|
<br>
|
||||||
|
<a href="https://github.com/vinibiavatti1/TuiCss/wiki"><strong>-- Documentation --</strong></a>
|
||||||
|
<br><br>
|
||||||
|
<a href="https://badge.fury.io/js/tuicss">
|
||||||
|
<img src="https://badge.fury.io/js/tuicss.svg" alt="npm version badge">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
### About
|
||||||
|
|
||||||
|
TuiCss is a library focused to create web applications using an interface based on ASCII table, like the old MS-DOS applications. This kind of interface is very eligible because the ultra-contrast colors used and because the reduced effects used on the components in the view. The base of this project is <a href="https://en.wikipedia.org/wiki/Turbo_Vision">Turbo Vision Framework</a>, but some other frameworks were checked also to introduce some features to TuiCss, like [curses](https://en.wikipedia.org/wiki/Curses_(programming_library)), [ncurses](https://en.wikipedia.org/wiki/Ncurses), [Newt](https://en.wikipedia.org/wiki/Newt_(programming_library)), etc. Check the examples page in the wiki to stay on top of some creations, or check the getting started page to start use this library!
|
||||||
|
|
||||||
|
<img src="https://raw.githubusercontent.com/vinibiavatti1/TuiCss/develop/resources/TUICSS%20Demo.png" width="676">
|
||||||
|
|
||||||
|
### Getting Started
|
||||||
|
To start to use the TuiCss in your project, you can just download the repository content and import the files that are in the dist folder with the html directives. On the other hand, you can install the package with NPM using the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm install tuicss
|
||||||
|
```
|
||||||
|
|
||||||
|
For more details, visit the [Getting Started Page](https://github.com/vinibiavatti1/TuiCss/wiki/Getting-Started) in the respoitory wiki.
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
Check the [repository wiki](https://github.com/vinibiavatti1/TuiCss/wiki) to access the documentation, getting started, components index, examples, styles, or to know how to contribute for this project.
|
Check the [repository wiki](https://github.com/vinibiavatti1/TuiCss/wiki) to access the documentation, components index, examples, styles, or to know how to contribute for this project.
|
||||||
|
|||||||
140
dist/tuicss.css
vendored
@@ -587,6 +587,9 @@ input, select, textarea {
|
|||||||
.no-padding {
|
.no-padding {
|
||||||
padding: 0px !important; }
|
padding: 0px !important; }
|
||||||
|
|
||||||
|
.no-border {
|
||||||
|
border: none !important; }
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
padding: 12px; }
|
padding: 12px; }
|
||||||
|
|
||||||
@@ -603,6 +606,9 @@ input, select, textarea {
|
|||||||
.cursor-default {
|
.cursor-default {
|
||||||
cursor: default !important; }
|
cursor: default !important; }
|
||||||
|
|
||||||
|
.disabled {
|
||||||
|
cursor: not-allowed !important; }
|
||||||
|
|
||||||
/* Components */
|
/* Components */
|
||||||
.tui-button {
|
.tui-button {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@@ -614,11 +620,14 @@ input, select, textarea {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
box-shadow: 10px 10px black;
|
box-shadow: 10px 10px black;
|
||||||
|
border-radius: 0px;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-khtml-user-select: none;
|
-khtml-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none; }
|
-ms-user-select: none; }
|
||||||
|
.tui-button.disabled {
|
||||||
|
text-decoration: line-through; }
|
||||||
|
|
||||||
.tui-button:active {
|
.tui-button:active {
|
||||||
background-color: #00a8a8 !important;
|
background-color: #00a8a8 !important;
|
||||||
@@ -648,13 +657,16 @@ input[type=button] {
|
|||||||
-khtml-user-select: none;
|
-khtml-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none; }
|
-ms-user-select: none; }
|
||||||
|
.tui-checkbox.disabled {
|
||||||
|
color: #a8a8a8; }
|
||||||
|
|
||||||
.tui-checkbox input {
|
.tui-checkbox input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px; }
|
left: 0px;
|
||||||
|
pointer-events: none; }
|
||||||
|
|
||||||
.tui-checkbox span {
|
.tui-checkbox span {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -745,7 +757,12 @@ input[type=button] {
|
|||||||
border: none;
|
border: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
padding: 2px; }
|
padding: 2px;
|
||||||
|
user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none; }
|
||||||
.tui-fieldset-button.left {
|
.tui-fieldset-button.left {
|
||||||
right: initial;
|
right: initial;
|
||||||
left: 16px !important; }
|
left: 16px !important; }
|
||||||
@@ -782,7 +799,10 @@ input[type=button] {
|
|||||||
color: white;
|
color: white;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 1px; }
|
border-radius: 0px; }
|
||||||
|
.tui-input.disabled {
|
||||||
|
background-color: #a8a8a8;
|
||||||
|
color: black; }
|
||||||
|
|
||||||
.tui-input:focus {
|
.tui-input:focus {
|
||||||
background-color: yellow !important;
|
background-color: yellow !important;
|
||||||
@@ -883,13 +903,16 @@ input[type=button] {
|
|||||||
-khtml-user-select: none;
|
-khtml-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none; }
|
-ms-user-select: none; }
|
||||||
|
.tui-radio.disabled {
|
||||||
|
color: #a8a8a8; }
|
||||||
|
|
||||||
.tui-radio input {
|
.tui-radio input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px; }
|
left: 0px;
|
||||||
|
pointer-events: none; }
|
||||||
|
|
||||||
.tui-radio span {
|
.tui-radio span {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -1167,6 +1190,8 @@ input[type=button] {
|
|||||||
.tui-tab.active {
|
.tui-tab.active {
|
||||||
background-color: #a8a8a8;
|
background-color: #a8a8a8;
|
||||||
color: #0000a8; }
|
color: #0000a8; }
|
||||||
|
.tui-tab.disabled {
|
||||||
|
text-decoration: line-through; }
|
||||||
|
|
||||||
.tui-tab-content {
|
.tui-tab-content {
|
||||||
display: none; }
|
display: none; }
|
||||||
@@ -1177,6 +1202,9 @@ input[type=button] {
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
color: yellow;
|
color: yellow;
|
||||||
outline: none; }
|
outline: none; }
|
||||||
|
.tui-textarea.disabled {
|
||||||
|
background-color: #a8a8a8;
|
||||||
|
color: black; }
|
||||||
|
|
||||||
.tui-window {
|
.tui-window {
|
||||||
background-color: #0000a8;
|
background-color: #0000a8;
|
||||||
@@ -1201,7 +1229,8 @@ input[type=button] {
|
|||||||
.tui-screen-640-480,
|
.tui-screen-640-480,
|
||||||
.tui-screen-800-600,
|
.tui-screen-800-600,
|
||||||
.tui-screen-1024-768 {
|
.tui-screen-1024-768 {
|
||||||
position: relative; }
|
position: relative;
|
||||||
|
overflow: hidden; }
|
||||||
.tui-screen-640-480.bordered,
|
.tui-screen-640-480.bordered,
|
||||||
.tui-screen-800-600.bordered,
|
.tui-screen-800-600.bordered,
|
||||||
.tui-screen-1024-768.bordered {
|
.tui-screen-1024-768.bordered {
|
||||||
@@ -1925,3 +1954,104 @@ input[type=button] {
|
|||||||
display: none; }
|
display: none; }
|
||||||
.tui-overlap.active {
|
.tui-overlap.active {
|
||||||
display: block !important; }
|
display: block !important; }
|
||||||
|
|
||||||
|
/* Chart container */
|
||||||
|
.tui-chart-vertical {
|
||||||
|
position: relative;
|
||||||
|
background-color: black; }
|
||||||
|
|
||||||
|
.tui-chart-horizontal {
|
||||||
|
position: relative;
|
||||||
|
background-color: black; }
|
||||||
|
|
||||||
|
/* Chart display */
|
||||||
|
.tui-chart-vertical .tui-chart-display {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 50px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 30px;
|
||||||
|
align-items: flex-end;
|
||||||
|
border-bottom: 2px solid white;
|
||||||
|
border-left: 2px solid white; }
|
||||||
|
.tui-chart-vertical .tui-chart-display.no-x-axis {
|
||||||
|
bottom: 0px; }
|
||||||
|
.tui-chart-vertical .tui-chart-display.no-y-axis {
|
||||||
|
left: 0px; }
|
||||||
|
|
||||||
|
.tui-chart-horizontal .tui-chart-display {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
flex-direction: column;
|
||||||
|
top: 0px;
|
||||||
|
left: 50px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 30px;
|
||||||
|
align-items: stretch;
|
||||||
|
border-bottom: 2px solid white;
|
||||||
|
border-left: 2px solid white; }
|
||||||
|
.tui-chart-horizontal .tui-chart-display.no-x-axis {
|
||||||
|
bottom: 0px; }
|
||||||
|
.tui-chart-horizontal .tui-chart-display.no-y-axis {
|
||||||
|
left: 0px; }
|
||||||
|
|
||||||
|
/* Chart X axis */
|
||||||
|
.tui-chart-x-axis {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
height: 30px;
|
||||||
|
left: 50px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
line-height: 30px; }
|
||||||
|
|
||||||
|
/* Chart Y axis */
|
||||||
|
.tui-chart-y-axis {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
bottom: 30px;
|
||||||
|
width: 50px; }
|
||||||
|
|
||||||
|
/* Chart legends */
|
||||||
|
.tui-chart-vertical .tui-chart-x-axis .tui-chart-legend {
|
||||||
|
flex: 0 1 100%;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.tui-chart-vertical .tui-chart-y-axis .tui-chart-legend {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 2px;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-end; }
|
||||||
|
|
||||||
|
.tui-chart-horizontal .tui-chart-x-axis .tui-chart-legend {
|
||||||
|
flex: 0 1 100%;
|
||||||
|
text-align: right; }
|
||||||
|
|
||||||
|
.tui-chart-horizontal .tui-chart-y-axis .tui-chart-legend {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 2px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end; }
|
||||||
|
|
||||||
|
/* Chart value */
|
||||||
|
.tui-chart-vertical .tui-chart-display .tui-chart-value {
|
||||||
|
flex: 0 1 100%;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden; }
|
||||||
|
|
||||||
|
.tui-chart-horizontal .tui-chart-display .tui-chart-value {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
align-content: flex-start;
|
||||||
|
justify-content: flex-end;
|
||||||
|
overflow: hidden; }
|
||||||
|
|||||||
273
dist/tuicss.js
vendored
@@ -1,78 +1,173 @@
|
|||||||
/**
|
/**
|
||||||
* Init
|
* Replacement for jQuery's $(document).ready() function.
|
||||||
|
* This is handy in making sure stuff fires after the DOM is ready to be touched.
|
||||||
|
* Stolen from:https://stackoverflow.com/a/53601942/344028
|
||||||
|
*
|
||||||
|
* @param fn Callback.
|
||||||
*/
|
*/
|
||||||
$(document).ready(function() {
|
function domReady(fn) {
|
||||||
tabsController();
|
// If we're early to the party
|
||||||
datetimeController();
|
document.addEventListener('DOMContentLoaded', fn);
|
||||||
sidenavController();
|
|
||||||
modalController();
|
// If late; I mean on time.
|
||||||
});
|
if (document.readyState === 'interactive' || document.readyState === 'complete') {
|
||||||
|
fn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TuiTabs controller
|
* TuiTabs controller
|
||||||
*/
|
*/
|
||||||
function tabsController() {
|
function tabsController() {
|
||||||
$(".tui-tab").click(function(event) {
|
// Get all the tab elements (typically li tags).
|
||||||
$(".tui-tab-content").hide();
|
const tabs = document.getElementsByClassName('tui-tab');
|
||||||
let tabContentid = $(this).attr('data-tab-content');
|
|
||||||
$(`#${tabContentid}`).show();
|
if (!tabs.length) {
|
||||||
$(".tui-tab").removeClass("active");
|
// No tabs found, return early and save a couple CPU cycles.
|
||||||
$(this).addClass("active");
|
return;
|
||||||
});
|
}
|
||||||
$('.tui-tab.active').click();
|
|
||||||
|
for (const tab of tabs) {
|
||||||
|
// Add click listeners to them.
|
||||||
|
tab.addEventListener('click', function (e) {
|
||||||
|
|
||||||
|
// Check if the clicked tab is disabled
|
||||||
|
if(e.target.classList.contains("disabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove the 'active' class from any and all tabs.
|
||||||
|
for (const otherTab of tabs) {
|
||||||
|
otherTab.classList.remove('active');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the content element.
|
||||||
|
const tabContents = document.getElementsByClassName('tui-tab-content');
|
||||||
|
|
||||||
|
if (tabContents) {
|
||||||
|
for (const tabContent of tabContents) {
|
||||||
|
// Hide all tab contents.
|
||||||
|
tabContent.style.display = 'none';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw 'No tab content elements found.'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the id of the tab contents we want to show.
|
||||||
|
const tabContentId = e.target.getAttribute('data-tab-content');
|
||||||
|
|
||||||
|
if (tabContentId) {
|
||||||
|
const tabContent = document.getElementById(tabContentId);
|
||||||
|
if (tabContent) {
|
||||||
|
// Show the tab contents.
|
||||||
|
tabContent.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
throw 'No tab content element with id "' + tabContentId + '" found.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// We are not going to throw an error here, since we could make the tab do something else that a tab
|
||||||
|
// normally wouldn't do.
|
||||||
|
|
||||||
|
// Set the clicked tab to have the 'active' class so we can use it in the next part.
|
||||||
|
e.target.classList.add('active');
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grab the first tab with the active class.
|
||||||
|
const activeTab = document.querySelector('.tui-tab.active');
|
||||||
|
if (activeTab) {
|
||||||
|
// Now click it 'click' it.
|
||||||
|
activeTab.click();
|
||||||
|
} else {
|
||||||
|
// Nothing found, just click the first tab foud.
|
||||||
|
tabs[0].click()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Date field controller
|
* Date/time field controller
|
||||||
*/
|
*/
|
||||||
function datetimeController() {
|
function datetimeController() {
|
||||||
|
// Get date/time elements.
|
||||||
|
const clocks = document.getElementsByClassName('tui-datetime');
|
||||||
|
|
||||||
if(!$(".tui-datetime").length) return;
|
if (!clocks.length) {
|
||||||
|
// No date time elements found, return early and save a couple CPU cycles.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kick off our clock interval stuff.
|
||||||
datetimeInterval();
|
datetimeInterval();
|
||||||
setInterval(datetimeInterval, 1000);
|
setInterval(datetimeInterval, 1000);
|
||||||
|
|
||||||
function datetimeInterval() {
|
function datetimeInterval() {
|
||||||
let today = new Date();
|
for (const clock of clocks) {
|
||||||
|
// Set the interval.
|
||||||
|
const interval = setInterval(() => {
|
||||||
|
// Technically we should have already returned earlier in the code, but to be on the safe side.
|
||||||
|
if (clock === null) {
|
||||||
|
clearInterval(interval);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$(".tui-datetime").each(function() {
|
// Get the format we want to display in the element.
|
||||||
let clock = $(this);
|
let format = clock.getAttribute('data-format');
|
||||||
|
|
||||||
let format = clock.attr("data-format");
|
|
||||||
|
|
||||||
let month = (today.getMonth() + "").length == 2 ? today.getMonth() + 1 : "0" + (today.getMonth() + 1);
|
// parse out the date and time into constants.
|
||||||
let day = (today.getDay() + "").length == 2 ? today.getDay() + 1 : "0" + (today.getDay() + 1);
|
const today = new Date();
|
||||||
let year = today.getFullYear();
|
const month = (today.getMonth() + '').length === 2 ? today.getMonth() + 1 : '0' + (today.getMonth() + 1);
|
||||||
let hour = (today.getHours() + "").length == 2 ? today.getHours() : "0" + today.getHours();
|
const day = (today.getDay() + '').length === 2 ? today.getDay() + 1 : '0' + (today.getDay() + 1);
|
||||||
let hour12 = (parseInt(hour) + 24) % 12 || 12;
|
const year = today.getFullYear() + '';
|
||||||
let minute = (today.getMinutes() + "").length == 2 ? today.getMinutes() : "0" + today.getMinutes();
|
const hour = (today.getHours() + '').length === 2 ? today.getHours() : '0' + today.getHours();
|
||||||
let second = (today.getSeconds() + "").length == 2 ? today.getSeconds() : "0" + today.getSeconds();
|
const hour12 = (parseInt(hour) + 24) % '12' || '12';
|
||||||
let ampm = parseInt(hour) >= 12 ? "PM" : "AM";
|
const minute = (today.getMinutes() + '').length === 2 ? today.getMinutes() : '0' + today.getMinutes();
|
||||||
|
const second = (today.getSeconds() + '').length === 2 ? today.getSeconds() : '0' + today.getSeconds();
|
||||||
|
const ampm = parseInt(hour) >= 12 ? 'PM' : 'AM';
|
||||||
|
|
||||||
format = format.replace("M", month);
|
// Replace based on the format.
|
||||||
format = format.replace("d", day);
|
format = format.replace('M', month);
|
||||||
format = format.replace("y", year);
|
format = format.replace('d', day);
|
||||||
format = format.replace("H", hour);
|
format = format.replace('y', year);
|
||||||
format = format.replace("h", hour12);
|
format = format.replace('H', hour);
|
||||||
format = format.replace("m", minute);
|
format = format.replace('h', hour12);
|
||||||
format = format.replace("s", second);
|
format = format.replace('m', minute);
|
||||||
format = format.replace("a", ampm);
|
format = format.replace('s', second);
|
||||||
|
format = format.replace('a', ampm);
|
||||||
|
|
||||||
clock.html(format);
|
// Show it in the element.
|
||||||
});
|
clock.innerHTML = format;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sidenav Controller
|
* Sidenav Controller
|
||||||
|
* There should only side navigation element at the moment.
|
||||||
*/
|
*/
|
||||||
function sidenavController() {
|
function sidenavController() {
|
||||||
$(".tui-sidenav-button").click(function() {
|
// Get the side navigation button (there should be only one, but if not, we are getting the first one).
|
||||||
let sidenav = $(".tui-sidenav");
|
const sideNavButton = document.querySelector('.tui-sidenav-button');
|
||||||
if(sidenav.hasClass("active")) {
|
|
||||||
$(".tui-sidenav").removeClass("active");
|
if (!sideNavButton) {
|
||||||
|
// No side navigation button found, return early and save a couple CPU cycles.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the click event listener to the buttons.
|
||||||
|
sideNavButton.addEventListener('click', () => {
|
||||||
|
// Get the side navigation element (there should be only one, but if not, we are getting the first one).
|
||||||
|
const sideNav = document.querySelector('.tui-sidenav');
|
||||||
|
|
||||||
|
if (sideNav) {
|
||||||
|
if (sideNav.classList.contains('active')) {
|
||||||
|
sideNav.classList.remove('active');
|
||||||
|
} else {
|
||||||
|
sideNav.classList.add('active');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$(".tui-sidenav").addClass("active");
|
throw 'No sidenav element found.'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -81,14 +176,80 @@ function sidenavController() {
|
|||||||
* Modal controller
|
* Modal controller
|
||||||
*/
|
*/
|
||||||
function modalController() {
|
function modalController() {
|
||||||
$(".tui-modal-button").click(function() {
|
// Get the overlap (overlay) element (there should be only one, but if not, we are getting the first one).
|
||||||
$(".tui-overlap").addClass("active");
|
const tuiOverlap = document.querySelector('.tui-overlap');
|
||||||
let modalId = $(this).attr("data-modal");
|
|
||||||
$(`#${modalId}`).addClass("active");
|
if (!tuiOverlap) {
|
||||||
});
|
// No overlap found element, return early and save a couple CPU cycles.
|
||||||
$(".tui-modal-close-button").click(function() {
|
return;
|
||||||
$(".tui-overlap").removeClass("active");
|
}
|
||||||
let modalId = $(this).attr("data-modal");
|
|
||||||
$(`#${modalId}`).removeClass("active");
|
// Find modal buttons.
|
||||||
});
|
const modalButtons = document.getElementsByClassName('tui-modal-button');
|
||||||
}
|
for (const modalButton of modalButtons) {
|
||||||
|
// Add the click event listener to the buttons.
|
||||||
|
modalButton.addEventListener('click', (e) => {
|
||||||
|
// Show the overlap.
|
||||||
|
tuiOverlap.classList.add('active');
|
||||||
|
|
||||||
|
// Get the display element for the modal.
|
||||||
|
const modalId = e.target.getAttribute('data-modal');
|
||||||
|
|
||||||
|
if (modalId) {
|
||||||
|
const modal = document.getElementById(modalId);
|
||||||
|
|
||||||
|
if (modal) {
|
||||||
|
// Show it.
|
||||||
|
modal.classList.add('active');
|
||||||
|
} else {
|
||||||
|
throw 'No modal element with id of "' + modalId + '" found.';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw 'Modal close button data-modal attribute is empty or not set.'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the close modal buttons.
|
||||||
|
const modalCloseButtons = document.getElementsByClassName('tui-modal-close-button');
|
||||||
|
|
||||||
|
if (modalButtons.length > 0 && !modalCloseButtons.length) {
|
||||||
|
// A modal without a close button, is a bad modal.
|
||||||
|
throw 'No modal close buttons found.'
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const modalCloseButton of modalCloseButtons) {
|
||||||
|
// Add the click event listener to the buttons.
|
||||||
|
modalCloseButton.addEventListener('click', (e) => {
|
||||||
|
// Hide the the overlap.
|
||||||
|
tuiOverlap.classList.remove('active');
|
||||||
|
|
||||||
|
// Get the display element id for the modal.
|
||||||
|
const modalId = e.target.getAttribute('data-modal');
|
||||||
|
|
||||||
|
if (modalId) {
|
||||||
|
// Get the modal element.
|
||||||
|
const modal = document.getElementById(modalId);
|
||||||
|
|
||||||
|
if (modal) {
|
||||||
|
// Hide it.
|
||||||
|
modal.classList.remove('active');
|
||||||
|
} else {
|
||||||
|
throw 'No modal element with id of "' + modalId + '" found.';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw 'Modal close button data-modal attribute is empty or not set.'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init: This is at the bottom to make sure it is fired correctly.
|
||||||
|
*/
|
||||||
|
domReady(function () {
|
||||||
|
tabsController();
|
||||||
|
datetimeController();
|
||||||
|
sidenavController();
|
||||||
|
modalController();
|
||||||
|
});
|
||||||
|
|||||||
2
dist/tuicss.min.css
vendored
2
dist/tuicss.min.js
vendored
@@ -1 +1 @@
|
|||||||
function tabsController(){$(".tui-tab").click(function(t){$(".tui-tab-content").hide();let e=$(this).attr("data-tab-content");$(`#${e}`).show(),$(".tui-tab").removeClass("active"),$(this).addClass("active")}),$(".tui-tab.active").click()}function datetimeController(){function t(){let t=new Date;$(".tui-datetime").each(function(){let e=$(this),a=e.attr("data-format"),n=2==(t.getMonth()+"").length?t.getMonth()+1:"0"+(t.getMonth()+1),l=2==(t.getDay()+"").length?t.getDay()+1:"0"+(t.getDay()+1),i=t.getFullYear(),o=2==(t.getHours()+"").length?t.getHours():"0"+t.getHours(),c=(parseInt(o)+24)%12||12,s=2==(t.getMinutes()+"").length?t.getMinutes():"0"+t.getMinutes(),r=2==(t.getSeconds()+"").length?t.getSeconds():"0"+t.getSeconds(),u=parseInt(o)>=12?"PM":"AM";a=(a=(a=(a=(a=(a=(a=(a=a.replace("M",n)).replace("d",l)).replace("y",i)).replace("H",o)).replace("h",c)).replace("m",s)).replace("s",r)).replace("a",u),e.html(a)})}$(".tui-datetime").length&&(t(),setInterval(t,1e3))}function sidenavController(){$(".tui-sidenav-button").click(function(){$(".tui-sidenav").hasClass("active")?$(".tui-sidenav").removeClass("active"):$(".tui-sidenav").addClass("active")})}function modalController(){$(".tui-modal-button").click(function(){$(".tui-overlap").addClass("active");let t=$(this).attr("data-modal");$(`#${t}`).addClass("active")}),$(".tui-modal-close-button").click(function(){$(".tui-overlap").removeClass("active");let t=$(this).attr("data-modal");$(`#${t}`).removeClass("active")})}$(document).ready(function(){tabsController(),datetimeController(),sidenavController(),modalController()});
|
function domReady(t){document.addEventListener("DOMContentLoaded",t),"interactive"!==document.readyState&&"complete"!==document.readyState||t()}function tabsController(){const t=document.getElementsByClassName("tui-tab");if(!t.length)return;for(const e of t)e.addEventListener("click",function(e){if(e.target.classList.contains("disabled"))return;for(const e of t)e.classList.remove("active");const o=document.getElementsByClassName("tui-tab-content");if(!o)throw"No tab content elements found.";for(const t of o)t.style.display="none";const n=e.target.getAttribute("data-tab-content");if(n){const t=document.getElementById(n);if(!t)throw'No tab content element with id "'+n+'" found.';t.style.display="block"}e.target.classList.add("active")});const e=document.querySelector(".tui-tab.active");e?e.click():t[0].click()}function datetimeController(){const t=document.getElementsByClassName("tui-datetime");function e(){for(const e of t){const t=setInterval(()=>{if(null===e)return void clearInterval(t);let o=e.getAttribute("data-format");const n=new Date,a=2===(n.getMonth()+"").length?n.getMonth()+1:"0"+(n.getMonth()+1),s=2===(n.getDay()+"").length?n.getDay()+1:"0"+(n.getDay()+1),c=n.getFullYear()+"",l=2===(n.getHours()+"").length?n.getHours():"0"+n.getHours(),i=(parseInt(l)+24)%"12"||"12",r=2===(n.getMinutes()+"").length?n.getMinutes():"0"+n.getMinutes(),d=2===(n.getSeconds()+"").length?n.getSeconds():"0"+n.getSeconds(),u=parseInt(l)>=12?"PM":"AM";o=(o=(o=(o=(o=(o=(o=(o=o.replace("M",a)).replace("d",s)).replace("y",c)).replace("H",l)).replace("h",i)).replace("m",r)).replace("s",d)).replace("a",u),e.innerHTML=o})}}t.length&&(e(),setInterval(e,1e3))}function sidenavController(){const t=document.querySelector(".tui-sidenav-button");t&&t.addEventListener("click",()=>{const t=document.querySelector(".tui-sidenav");if(!t)throw"No sidenav element found.";t.classList.contains("active")?t.classList.remove("active"):t.classList.add("active")})}function modalController(){const t=document.querySelector(".tui-overlap");if(!t)return;const e=document.getElementsByClassName("tui-modal-button");for(const o of e)o.addEventListener("click",e=>{t.classList.add("active");const o=e.target.getAttribute("data-modal");if(!o)throw"Modal close button data-modal attribute is empty or not set.";{const t=document.getElementById(o);if(!t)throw'No modal element with id of "'+o+'" found.';t.classList.add("active")}});const o=document.getElementsByClassName("tui-modal-close-button");if(e.length>0&&!o.length)throw"No modal close buttons found.";for(const e of o)e.addEventListener("click",e=>{t.classList.remove("active");const o=e.target.getAttribute("data-modal");if(!o)throw"Modal close button data-modal attribute is empty or not set.";{const t=document.getElementById(o);if(!t)throw'No modal element with id of "'+o+'" found.';t.classList.remove("active")}})}domReady(function(){tabsController(),datetimeController(),sidenavController(),modalController()});
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>BIOS Example</title>
|
<title>BIOS Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
</head>
|
</head>
|
||||||
@@ -25,22 +24,22 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="2" width="60%" class="blue-168-text">
|
<td rowspan="2" width="60%" class="blue-168-text">
|
||||||
<br>System Time.........:<input type="text" class="tui-input white-168 black-text" value="[09:21:30]" style="width: 135px" />
|
<br>System Time.........:<input type="text" class="tui-input white-168 black-text" value="[09:21:30]" style="width: 150px" />
|
||||||
<br>System Date.........:<input type="text" class="tui-input white-168 black-text" value="[15/09/1994]" style="width: 135px" />
|
<br>System Date.........:<input type="text" class="tui-input white-168 black-text" value="[15/09/1994]" style="width: 150px" />
|
||||||
<br>
|
<br>
|
||||||
<br>Legacy Diskette A...:<input type="text" class="tui-input white-168 black-text" value="[1.44/1.25 MB]" style="width: 135px" />]
|
<br>Legacy Diskette A...:<input type="text" class="tui-input white-168 black-text" value="[1.44/1.25 MB]" style="width: 150px" />
|
||||||
<br>Legacy Diskette B...:<input type="text" class="tui-input white-168 black-text" value="[disabeld]" style="width: 135px" />
|
<br>Legacy Diskette B...:<input type="text" class="tui-input white-168 black-text" value="[disabeld]" style="width: 150px" />
|
||||||
<br>
|
<br>
|
||||||
<br>Primary Master......:<input type="text" class="tui-input white-168 black-text" value="[None]" style="width: 135px" />
|
<br>Primary Master......:<input type="text" class="tui-input white-168 black-text" value="[None]" style="width: 150px" />
|
||||||
<br>Primary Slave.......:<input type="text" class="tui-input white-168 black-text" value="[None]" style="width: 135px" />
|
<br>Primary Slave.......:<input type="text" class="tui-input white-168 black-text" value="[None]" style="width: 150px" />
|
||||||
<br>Secondary Master....:<input type="text" class="tui-input white-168 black-text" value="[CD-ROM]" style="width: 135px" />
|
<br>Secondary Master....:<input type="text" class="tui-input white-168 black-text" value="[CD-ROM]" style="width: 150px" />
|
||||||
<br>Secondary Slave.....:<input type="text" class="tui-input white-168 black-text" value="[None]" style="width: 135px" />
|
<br>Secondary Slave.....:<input type="text" class="tui-input white-168 black-text" value="[None]" style="width: 150px" />
|
||||||
<br>
|
<br>
|
||||||
<br>Keyboard Features...:<input type="text" class="tui-input white-168 black-text" value="[Enter]" style="width: 135px" />
|
<br>Keyboard Features...:<input type="text" class="tui-input white-168 black-text" value="[Enter]" style="width: 150px" />
|
||||||
<br>
|
<br>
|
||||||
<br>System Memory.......:<input type="text" class="tui-input white-168 black-text" value="[640 KB]" style="width: 135px" />
|
<br>System Memory.......:<input type="text" class="tui-input white-168 black-text" value="[640 KB]" style="width: 150px" />
|
||||||
<br>Extended Memory.....:<input type="text" class="tui-input white-168 black-text" value="[3568410 KB]" style="width: 135px" />
|
<br>Extended Memory.....:<input type="text" class="tui-input white-168 black-text" value="[3568410 KB]" style="width: 150px" />
|
||||||
<br>Boot-time Diagnostic:<input type="text" class="tui-input white-168 black-text" value="[Enabled]" style="width: 135px" />
|
<br>Boot-time Diagnostic:<input type="text" class="tui-input white-168 black-text" value="[Enabled]" style="width: 150px" />
|
||||||
</td>
|
</td>
|
||||||
<td width="40%" class="center">Item Specified Help</td>
|
<td width="40%" class="center">Item Specified Help</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -52,6 +51,8 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tui-tab-content tui-content" id="tab-2-content">
|
||||||
|
</div>
|
||||||
<div class="tui-statusbar absolute cyan-168">
|
<div class="tui-statusbar absolute cyan-168">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#!"><span class="white-255-text">F1</span> Help</a></li>
|
<li><a href="#!"><span class="white-255-text">F1</span> Help</a></li>
|
||||||
@@ -67,4 +68,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
33
examples/buttons.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" class="tui-bg-blue-black">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Buttons Example</title>
|
||||||
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
|
<style>
|
||||||
|
.tui-button {
|
||||||
|
width: 100% !important;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<div class="center" style="margin-top: 100px;">
|
||||||
|
<div class="tui-window blue-168" style="width: 200px;">
|
||||||
|
<fieldset class="tui-fieldset">
|
||||||
|
<legend>Buttons</legend>
|
||||||
|
<button class="tui-button">Button</button><br>
|
||||||
|
<input type="button" class="tui-button" value="Input" /><br>
|
||||||
|
<a href="#!" class="tui-button">Anchor</a><br>
|
||||||
|
<button class="tui-button red-168">Custom</button><br>
|
||||||
|
<button class="tui-button red-168 disabled" disabled style="margin-bottom: 5px;">Disabled</button><br>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
91
examples/chart.html
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" class="tui-bg-blue-black">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Chart Example</title>
|
||||||
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="center">
|
||||||
|
<div style="margin-top: 50px"></div>
|
||||||
|
|
||||||
|
<div class="tui-window black-168 left-align">
|
||||||
|
<fieldset class="tui-fieldset">
|
||||||
|
<legend class="">Vertical Chart</legend>
|
||||||
|
<div class="tui-chart-vertical" style="width: 500px; height: 200px;">
|
||||||
|
<div class="tui-chart-display">
|
||||||
|
<div class="tui-chart-value red-168 animated" style="height: 80%;">80%</div>
|
||||||
|
<div class="tui-chart-value green-168" style="height: 30%;">30%</div>
|
||||||
|
<div class="tui-chart-value blue-168" style="height: 50%;">50%</div>
|
||||||
|
<div class="tui-chart-value yellow-168" style="height: 90%;">90%</div>
|
||||||
|
<div class="tui-chart-value purple-168" style="height: 60%;">60%</div>
|
||||||
|
<div class="tui-chart-value orange-168" style="height: 100%;">100%</div>
|
||||||
|
<div class="tui-chart-value cyan-168" style="height: 10%;">10%</div>
|
||||||
|
<div class="tui-chart-value red-168" style="height: 75%;">75%</div>
|
||||||
|
</div>
|
||||||
|
<div class="tui-chart-y-axis">
|
||||||
|
<div class="tui-chart-legend">100%</div>
|
||||||
|
<div class="tui-chart-legend">80%</div>
|
||||||
|
<div class="tui-chart-legend">60%</div>
|
||||||
|
<div class="tui-chart-legend">40%</div>
|
||||||
|
<div class="tui-chart-legend">20%</div>
|
||||||
|
</div>
|
||||||
|
<div class="tui-chart-x-axis">
|
||||||
|
<div class="tui-chart-legend">s1</div>
|
||||||
|
<div class="tui-chart-legend">s2</div>
|
||||||
|
<div class="tui-chart-legend">s3</div>
|
||||||
|
<div class="tui-chart-legend">s4</div>
|
||||||
|
<div class="tui-chart-legend">s5</div>
|
||||||
|
<div class="tui-chart-legend">s6</div>
|
||||||
|
<div class="tui-chart-legend">s7</div>
|
||||||
|
<div class="tui-chart-legend">s8</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="tui-window black-168 left-align">
|
||||||
|
<fieldset class="tui-fieldset">
|
||||||
|
<legend class="">Horizontal Chart</legend>
|
||||||
|
<div class="tui-chart-horizontal" style="width: 500px; height: 200px;">
|
||||||
|
<div class="tui-chart-display">
|
||||||
|
<div class="tui-chart-value red-168" style="width: 80%;">80%</div>
|
||||||
|
<div class="tui-chart-value green-168" style="width: 60%;">60%</div>
|
||||||
|
<div class="tui-chart-value blue-168" style="width: 100%;">100%</div>
|
||||||
|
</div>
|
||||||
|
<div class="tui-chart-y-axis">
|
||||||
|
<div class="tui-chart-legend">2018</div>
|
||||||
|
<div class="tui-chart-legend">2019</div>
|
||||||
|
<div class="tui-chart-legend">2020</div>
|
||||||
|
</div>
|
||||||
|
<div class="tui-chart-x-axis">
|
||||||
|
<div class="tui-chart-legend">25%</div>
|
||||||
|
<div class="tui-chart-legend">50%</div>
|
||||||
|
<div class="tui-chart-legend">75%</div>
|
||||||
|
<div class="tui-chart-legend">100%</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<div class="tui-window black-168 left-align">
|
||||||
|
<fieldset class="tui-fieldset">
|
||||||
|
<legend class="">Chart (no axis legend)</legend>
|
||||||
|
<div class="tui-chart-vertical" style="width: 500px; height: 200px;">
|
||||||
|
<div class="tui-chart-display no-x-axis no-y-axis">
|
||||||
|
<div class="tui-chart-value red-168 animated" style="height: 50%;">50%</div>
|
||||||
|
<div class="tui-chart-value green-168" style="height: 70%;">70%</div>
|
||||||
|
<div class="tui-chart-value blue-168" style="height: 30%;">30%</div>
|
||||||
|
<div class="tui-chart-value yellow-168" style="height: 100%;">100%</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
172
examples/forecast.html
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Forecast Example</title>
|
||||||
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
|
<style>
|
||||||
|
th, td {
|
||||||
|
padding: 10px!important;
|
||||||
|
border: none!important;
|
||||||
|
}
|
||||||
|
.tui-progress-bar {
|
||||||
|
margin-bottom: -4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="tui-screen-800-600 bordered black-255" style="padding: 2px;">
|
||||||
|
<div class="red-168 full-width white-text" style="padding: 0px 10px;">
|
||||||
|
FORECAST 1.0
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<table class="tui-table full-width no-border">
|
||||||
|
<thead class="white-255-text tui-border-double orange-168-border" style="margin-bottom: 5px;">
|
||||||
|
<tr class="left-align">
|
||||||
|
<th>#</th>
|
||||||
|
<th>LOCATION</th>
|
||||||
|
<th>TEMPERATURE</th>
|
||||||
|
<th>STATUS</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="tui-border-double orange-168-border">
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">1</td>
|
||||||
|
<td>Lisbon</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text"> 8.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 58%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="blue-255-text">COLD</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">2</td>
|
||||||
|
<td>Vancouver</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text"> 9.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 59%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="blue-255-text">COLD</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">3</td>
|
||||||
|
<td>Rio</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text">31.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 81%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="yellow-255-text">WARM</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">4</td>
|
||||||
|
<td>Sydney</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text">22.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 72%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="yellow-255-text">WARM</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">5</td>
|
||||||
|
<td>New York</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text"> 7.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 57%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="blue-255-text">COLD</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">6</td>
|
||||||
|
<td>London</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text"> 6.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 56%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="blue-255-text">COLD</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">7</td>
|
||||||
|
<td>Paris</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text"> 4.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 54%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="cyan-255-text">VERY COLD</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">8</td>
|
||||||
|
<td>Casablanca</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text">17.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 67%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="green-168-text">NORMAL</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="red-168-text">9</td>
|
||||||
|
<td>Reykjavik</td>
|
||||||
|
<td>
|
||||||
|
<span class="green-168-text">-1.0</span>
|
||||||
|
[
|
||||||
|
<div class="tui-progress-bar inline-block tui-bg-red-black" style="width: 350px;">
|
||||||
|
<span class="tui-progress red-255" style="width: 49%"></span>
|
||||||
|
</div>
|
||||||
|
]
|
||||||
|
</td>
|
||||||
|
<td class="cyan-255-text">VERY COLD</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="purple-168 full-width white-text" style="padding: 0px 10px; margin-top: 2px;">
|
||||||
|
<span class="red-168">HIGH</span>: Rio 31.0<br>
|
||||||
|
<span class="cyan-168">LESS</span>: Reykjavik -1.0
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="tui-window full-width no-shadow black">
|
||||||
|
<fieldset class="tui-fieldset center">
|
||||||
|
<button class="tui-button left">Previous</button>
|
||||||
|
<span class="center">9/201 records</span>
|
||||||
|
<button class="tui-button right">Next</button>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<div class="red-168 full-width white-text" style="padding: 0px 10px;">
|
||||||
|
FORECAST 1.0
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,15 +1,14 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" class="tui-bg-blue-black">
|
<html lang="en" class="tui-bg-blue-black tui-cursor">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Inputs Example</title>
|
<title>Input Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
<style>
|
<style>
|
||||||
.tui-input {
|
.tui-input {
|
||||||
width: 300px;
|
width: 430px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
@@ -19,6 +18,7 @@
|
|||||||
<fieldset class="tui-fieldset">
|
<fieldset class="tui-fieldset">
|
||||||
<legend class="center">Form</legend>
|
<legend class="center">Form</legend>
|
||||||
Text.......: <input class="tui-input" value="text" /><br>
|
Text.......: <input class="tui-input" value="text" /><br>
|
||||||
|
Disabled...: <input class="tui-input disabled" disabled value="disabled" /><br>
|
||||||
Number.....: <input class="tui-input" type="number" value="25" /><br>
|
Number.....: <input class="tui-input" type="number" value="25" /><br>
|
||||||
Password...: <input class="tui-input" type="password" value="12345" /><br>
|
Password...: <input class="tui-input" type="password" value="12345" /><br>
|
||||||
Color......: <input class="tui-input" type="color" value="#00FF00" /><br>
|
Color......: <input class="tui-input" type="color" value="#00FF00" /><br>
|
||||||
@@ -26,6 +26,11 @@
|
|||||||
<option>First</option>
|
<option>First</option>
|
||||||
<option>Second</option>
|
<option>Second</option>
|
||||||
<option>Third</option>
|
<option>Third</option>
|
||||||
|
<optgroup label="Group">
|
||||||
|
<option>First</option>
|
||||||
|
<option>Second</option>
|
||||||
|
<option>Third</option>
|
||||||
|
</optgroup>
|
||||||
</select><br>
|
</select><br>
|
||||||
Date.......: <input class="tui-input" type="date" value="2019-01-01" /><br>
|
Date.......: <input class="tui-input" type="date" value="2019-01-01" /><br>
|
||||||
Time.......: <input class="tui-input" type="datetime-local" value="2019-01-01T12:00" />
|
Time.......: <input class="tui-input" type="datetime-local" value="2019-01-01T12:00" />
|
||||||
@@ -40,8 +45,8 @@
|
|||||||
<input type="checkbox" />
|
<input type="checkbox" />
|
||||||
<span></span>
|
<span></span>
|
||||||
</label>
|
</label>
|
||||||
<label class="tui-checkbox">Third
|
<label class="tui-checkbox disabled">Disabled
|
||||||
<input type="checkbox" />
|
<input type="checkbox" disabled />
|
||||||
<span></span>
|
<span></span>
|
||||||
</label>
|
</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -56,14 +61,17 @@
|
|||||||
<input type="radio" name="radio" />
|
<input type="radio" name="radio" />
|
||||||
<span></span>
|
<span></span>
|
||||||
</label>
|
</label>
|
||||||
<label class="tui-radio">Third
|
<label class="tui-radio disabled">Disabled
|
||||||
<input type="radio" name="radio" />
|
<input type="radio" name="radio" disabled />
|
||||||
<span></span>
|
<span></span>
|
||||||
</label>
|
</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<br>
|
<br>
|
||||||
Textarea<br>
|
Textarea<br>
|
||||||
<textarea class="tui-input" style="width: 100%"></textarea>
|
<textarea class="tui-input" style="width: 100%">Content ...</textarea>
|
||||||
|
<br>
|
||||||
|
Disabled Textarea<br>
|
||||||
|
<textarea class="tui-input disabled" disabled style="width: 100%">Disabled</textarea>
|
||||||
<br>
|
<br>
|
||||||
Multiple<br>
|
Multiple<br>
|
||||||
<select multiple class="tui-input" style="width: 100%">
|
<select multiple class="tui-input" style="width: 100%">
|
||||||
@@ -71,10 +79,15 @@
|
|||||||
<option>First</option>
|
<option>First</option>
|
||||||
<option>Second</option>
|
<option>Second</option>
|
||||||
<option>Third</option>
|
<option>Third</option>
|
||||||
|
<optgroup label="Group">
|
||||||
|
<option>First</option>
|
||||||
|
<option>Second</option>
|
||||||
|
<option>Third</option>
|
||||||
|
</optgroup>
|
||||||
</select><br>
|
</select><br>
|
||||||
File <input class="tui-input full-width" type="file" />
|
File <input class="tui-input full-width" type="file" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Modal Example</title>
|
<title>Modal Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
</head>
|
</head>
|
||||||
@@ -32,4 +31,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>PC Startup Example</title>
|
<title>PC Startup Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
</head>
|
</head>
|
||||||
@@ -34,6 +33,9 @@
|
|||||||
Detecting Secondary Master ...: Skip<br>
|
Detecting Secondary Master ...: Skip<br>
|
||||||
Detecting Secondaty Slave ....: None
|
Detecting Secondaty Slave ....: None
|
||||||
</div>
|
</div>
|
||||||
|
<div id="session-5" style="display: none">
|
||||||
|
<br>Found virus! The PC cannot be started. I'm Sorry :(
|
||||||
|
</div>
|
||||||
<div class="tui-statusbar absolute black white-text">
|
<div class="tui-statusbar absolute black white-text">
|
||||||
<ul>
|
<ul>
|
||||||
<li style="margin-left: 0px">Press <b>DEL</b> to enter SETUP, <b>Alt+F2</b> to enter EZ flash utility
|
<li style="margin-left: 0px">Press <b>DEL</b> to enter SETUP, <b>Alt+F2</b> to enter EZ flash utility
|
||||||
@@ -46,11 +48,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
window.onload = function() {
|
||||||
setTimeout(function() { $("#session-1").show(); }, 300);
|
setTimeout(function() { showSession("session-1"); }, 300);
|
||||||
setTimeout(function() { $("#session-2").show(); }, 400);
|
setTimeout(function() { showSession("session-2"); }, 400);
|
||||||
setTimeout(function() { $("#session-3").show(); }, 450);
|
setTimeout(function() { showSession("session-3"); }, 450);
|
||||||
setTimeout(function() { $("#session-4").show(); }, 870);
|
setTimeout(function() { showSession("session-4"); }, 870);
|
||||||
});
|
setTimeout(function() { showSession("session-5"); }, 1500);
|
||||||
|
};
|
||||||
|
function showSession(id) {
|
||||||
|
const session = document.getElementById(id);
|
||||||
|
session.style.display = "block";
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
2
examples/plugins/jquery-3.4.1.min.js
vendored
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Pocket Calculator Example</title>
|
<title>Pocket Calculator Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
</head>
|
</head>
|
||||||
@@ -43,13 +42,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
function digit(digit) {
|
function digit(digit) {
|
||||||
let val = $("#display").val();
|
let val = document.getElementById("display").value;
|
||||||
$("#display").val(digit + "" + val);
|
document.getElementById("display").value = digit + "" + val;
|
||||||
}
|
}
|
||||||
function clearDisplay() {
|
function clearDisplay() {
|
||||||
$("#display").val("");
|
document.getElementById("display").value = "";
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Progress Example</title>
|
<title>Progress Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
</head>
|
</head>
|
||||||
@@ -15,40 +14,40 @@
|
|||||||
<div class="tui-window" style="text-align: left;">
|
<div class="tui-window" style="text-align: left;">
|
||||||
<fieldset class="tui-fieldset">
|
<fieldset class="tui-fieldset">
|
||||||
<legend class="center">Progress</legend>
|
<legend class="center">Progress</legend>
|
||||||
0% ............:
|
0% ............:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-progress" style="width: 0%"></span>
|
<span class="tui-progress" style="width: 0%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
25% ...........:
|
25% ...........:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-progress" style="width: 25%"></span>
|
<span class="tui-progress" style="width: 25%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
50% ...........:
|
50% ...........:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-progress" style="width: 50%"></span>
|
<span class="tui-progress" style="width: 50%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
75% ...........:
|
75% ...........:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-progress" style="width: 75%"></span>
|
<span class="tui-progress" style="width: 75%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
100% ..........:
|
100% ..........:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-progress" style="width: 100%"></span>
|
<span class="tui-progress" style="width: 100%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
Texture bg ....:
|
Texture bg ....:
|
||||||
<div class="tui-progress-bar inline-block valign-middle tui-bg-blue-black">
|
<div class="tui-progress-bar inline-block valign-middle tui-bg-blue-black">
|
||||||
<span class="tui-progress" style="width: 50%"></span>
|
<span class="tui-progress" style="width: 50%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
Indeterminate .:
|
Indeterminate .:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-indeterminate"></span>
|
<span class="tui-indeterminate"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
Labeled .......:
|
Labeled .......:
|
||||||
<div class="tui-progress-bar inline-block valign-middle">
|
<div class="tui-progress-bar inline-block valign-middle">
|
||||||
<span class="tui-progress-label black-text">75%</span>
|
<span class="tui-progress-label black-text">75%</span>
|
||||||
<span class="tui-progress" style="width: 75%"></span>
|
<span class="tui-progress" style="width: 75%"></span>
|
||||||
</div><br><br>
|
</div><br><br>
|
||||||
Custom ........:
|
Custom ........:
|
||||||
<div class="tui-progress-bar inline-block valign-middle red-255">
|
<div class="tui-progress-bar inline-block valign-middle red-255">
|
||||||
<span class="tui-progress green-255" style="width: 50%"></span>
|
<span class="tui-progress green-255" style="width: 50%"></span>
|
||||||
</div>
|
</div>
|
||||||
@@ -57,4 +56,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Register Example</title>
|
<title>Register Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
<style>
|
<style>
|
||||||
@@ -18,7 +17,7 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="tui-screen-800-600 bordered white-168 tui-bg-blue-black center">
|
<div class="tui-screen-800-600 bordered white-168 tui-bg-blue-black center">
|
||||||
|
|
||||||
<div class="tui-window full-width tui-no-shadow left-align">
|
<div class="tui-window full-width tui-no-shadow left-align">
|
||||||
<fieldset class="tui-fieldset no-legend">
|
<fieldset class="tui-fieldset no-legend">
|
||||||
<ul>
|
<ul>
|
||||||
@@ -123,4 +122,4 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Scandisk Example</title>
|
<title>Scandisk Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
<style>
|
<style>
|
||||||
@@ -49,4 +48,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Table Example</title>
|
<title>Table Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
<style>
|
<style>
|
||||||
@@ -253,4 +252,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
40
examples/tabs.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" class="tui-bg-blue-black">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Tabs Example</title>
|
||||||
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<div class="center" style="margin-top: 100px; margin-bottom: 100px;">
|
||||||
|
<div class="tui-panel white-168" style="width: 400px;">
|
||||||
|
<div class="tui-tabs red-168">
|
||||||
|
<ul>
|
||||||
|
<li><a class="tui-tab active" data-tab-content="tab-1-content">Tab 1</a></li>
|
||||||
|
<li><a class="tui-tab" data-tab-content="tab-2-content">Tab 2</a></li>
|
||||||
|
<li><a class="tui-tab disabled" data-tab-content="tab-3-content">Disabled</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="content black-255-text">
|
||||||
|
<div class="tui-tab-content" id="tab-1-content">
|
||||||
|
<h3>Content 1</h3>
|
||||||
|
Lorem ipsum dolor sit amet consectetur adipisicing elit. Sit incidunt ullam nemo ad id. Temporibus, impedit reiciendis quidem ea quasi fugiat! Illum unde eaque porro sint voluptates corporis reiciendis tempora?
|
||||||
|
</div>
|
||||||
|
<div class="tui-tab-content" id="tab-2-content">
|
||||||
|
<h3>Content 2</h3>
|
||||||
|
Lorem ipsum dolor sit amet consectetur adipisicing elit. Sit incidunt ullam nemo ad id.
|
||||||
|
</div>
|
||||||
|
<div class="tui-tab-content" id="tab-3-content">
|
||||||
|
<h3>Content 3</h3>
|
||||||
|
You could not see it!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Turbo Vision Example</title>
|
<title>Turbo Vision Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
</head>
|
</head>
|
||||||
@@ -162,7 +161,7 @@
|
|||||||
<textarea class="tui-textarea full-width" style="height: 493px; overflow: scroll;">#include <iostream>
|
<textarea class="tui-textarea full-width" style="height: 493px; overflow: scroll;">#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
cout << "Hello, World!";
|
cout << "Hello, World!";
|
||||||
return 0;
|
return 0;
|
||||||
@@ -185,4 +184,4 @@ int main()
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Window and Panels Example</title>
|
<title>Window and Panels Example</title>
|
||||||
<script src="plugins/jquery-3.4.1.min.js"></script>
|
|
||||||
<script src="../dist/tuicss.min.js"></script>
|
<script src="../dist/tuicss.min.js"></script>
|
||||||
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
<link rel="stylesheet" href="../dist/tuicss.min.css">
|
||||||
<style>
|
<style>
|
||||||
@@ -132,7 +131,7 @@
|
|||||||
<textarea class="tui-textarea" style="width: 400px; height: 200px;">#include <iostream>
|
<textarea class="tui-textarea" style="width: 400px; height: 200px;">#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
cout << "Hello, World!";
|
cout << "Hello, World!";
|
||||||
return 0;
|
return 0;
|
||||||
@@ -157,8 +156,7 @@ int main()
|
|||||||
About
|
About
|
||||||
</div>
|
</div>
|
||||||
<div class="tui-panel-content">
|
<div class="tui-panel-content">
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br>
|
TuiCss v2.0.0 Made with ♥
|
||||||
Curabitur id vestibulum libero, id fermentum lorem.
|
|
||||||
<br><br>
|
<br><br>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<button class="tui-button white-255" style="width: 80px">OK</button>
|
<button class="tui-button white-255" style="width: 80px">OK</button>
|
||||||
@@ -168,4 +166,4 @@ int main()
|
|||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
const { series, src, dest } = require('gulp');
|
const { series, src, dest } = require('gulp');
|
||||||
const sass = require('gulp-sass');
|
const sass = require('gulp-sass');
|
||||||
const gulpClean = require('gulp-clean');
|
const gulpClean = require('gulp-clean');
|
||||||
@@ -13,13 +12,14 @@ function clean() {
|
|||||||
.pipe(gulpClean());
|
.pipe(gulpClean());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compile scss
|
// Compile scss and copy to dist folder (.css)
|
||||||
function sassCompile() {
|
function sassCompile() {
|
||||||
return src('src/tuicss.scss')
|
return src('src/tuicss.scss')
|
||||||
.pipe(sass())
|
.pipe(sass())
|
||||||
.pipe(dest(distPath));
|
.pipe(dest(distPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Minify css and copy to dist folder (.min.css)
|
||||||
function minifyCss() {
|
function minifyCss() {
|
||||||
return src(distPath + '/tuicss.css')
|
return src(distPath + '/tuicss.css')
|
||||||
.pipe(cleanCss())
|
.pipe(cleanCss())
|
||||||
@@ -29,11 +29,13 @@ function minifyCss() {
|
|||||||
.pipe(dest(distPath));
|
.pipe(dest(distPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy js script to dist folder (.js)
|
||||||
function copyScript() {
|
function copyScript() {
|
||||||
return src('src/js/tuicss.js')
|
return src('src/js/tuicss.js')
|
||||||
.pipe(dest(distPath));
|
.pipe(dest(distPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Minify js script and copy to dist folder (.min.js)
|
||||||
function minifyJs() {
|
function minifyJs() {
|
||||||
return src(distPath + '/tuicss.js')
|
return src(distPath + '/tuicss.js')
|
||||||
.pipe(gulpMinify({
|
.pipe(gulpMinify({
|
||||||
@@ -44,16 +46,19 @@ function minifyJs() {
|
|||||||
.pipe(dest(distPath));
|
.pipe(dest(distPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy images to dist folder (/images)
|
||||||
function copyImages() {
|
function copyImages() {
|
||||||
return src('src/images/*')
|
return src('src/images/*')
|
||||||
.pipe(dest(distPath + "/images"));
|
.pipe(dest(distPath + "/images"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy fonts to dist folder (/fonts)
|
||||||
function copyFonts() {
|
function copyFonts() {
|
||||||
return src('src/fonts/*')
|
return src('src/fonts/*')
|
||||||
.pipe(dest(distPath + "/fonts"));
|
.pipe(dest(distPath + "/fonts"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Export
|
||||||
exports.default = series(clean, sassCompile, minifyCss, copyScript, minifyJs, copyImages, copyFonts);
|
exports.default = series(clean, sassCompile, minifyCss, copyScript, minifyJs, copyImages, copyFonts);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
421
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "tuicss",
|
"name": "tuicss",
|
||||||
"version": "1.0.0",
|
"version": "2.0.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -11,12 +11,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ajv": {
|
"ajv": {
|
||||||
"version": "6.10.2",
|
"version": "6.12.6",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-deep-equal": "^2.0.1",
|
"fast-deep-equal": "^3.1.1",
|
||||||
"fast-json-stable-stringify": "^2.0.0",
|
"fast-json-stable-stringify": "^2.0.0",
|
||||||
"json-schema-traverse": "^0.4.1",
|
"json-schema-traverse": "^0.4.1",
|
||||||
"uri-js": "^4.2.2"
|
"uri-js": "^4.2.2"
|
||||||
@@ -313,9 +313,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"aws4": {
|
"aws4": {
|
||||||
"version": "1.8.0",
|
"version": "1.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
|
||||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
|
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"bach": {
|
"bach": {
|
||||||
@@ -581,9 +581,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"clean-css": {
|
"clean-css": {
|
||||||
"version": "4.2.1",
|
"version": "4.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
|
||||||
"integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
|
"integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"source-map": "~0.6.0"
|
"source-map": "~0.6.0"
|
||||||
@@ -943,6 +943,12 @@
|
|||||||
"safer-buffer": "^2.1.0"
|
"safer-buffer": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"emoji-regex": {
|
||||||
|
"version": "7.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
|
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"end-of-stream": {
|
"end-of-stream": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||||
@@ -1166,15 +1172,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fast-deep-equal": {
|
"fast-deep-equal": {
|
||||||
"version": "2.0.1",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"fast-json-stable-stringify": {
|
"fast-json-stable-stringify": {
|
||||||
"version": "2.0.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"fill-range": {
|
"fill-range": {
|
||||||
@@ -1505,12 +1511,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"ini": {
|
|
||||||
"version": "1.3.5",
|
|
||||||
"bundled": true,
|
|
||||||
"dev": true,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
@@ -2018,9 +2018,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"globule": {
|
"globule": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz",
|
||||||
"integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
|
"integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "~7.1.1",
|
"glob": "~7.1.1",
|
||||||
@@ -2149,12 +2149,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gulp-clean-css": {
|
"gulp-clean-css": {
|
||||||
"version": "4.2.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-4.3.0.tgz",
|
||||||
"integrity": "sha512-r4zQsSOAK2UYUL/ipkAVCTRg/2CLZ2A+oPVORopBximRksJ6qy3EX1KGrIWT4ZrHxz3Hlobb1yyJtqiut7DNjA==",
|
"integrity": "sha512-mGyeT3qqFXTy61j0zOIciS4MkYziF2U594t2Vs9rUnpkEHqfu6aDITMp8xOvZcvdX61Uz3y1mVERRYmjzQF5fg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"clean-css": "4.2.1",
|
"clean-css": "4.2.3",
|
||||||
"plugin-error": "1.0.1",
|
"plugin-error": "1.0.1",
|
||||||
"through2": "3.0.1",
|
"through2": "3.0.1",
|
||||||
"vinyl-sourcemaps-apply": "0.2.1"
|
"vinyl-sourcemaps-apply": "0.2.1"
|
||||||
@@ -2301,19 +2301,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gulp-rename": {
|
"gulp-rename": {
|
||||||
"version": "1.4.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz",
|
||||||
"integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==",
|
"integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"gulp-sass": {
|
"gulp-sass": {
|
||||||
"version": "4.0.2",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.1.0.tgz",
|
||||||
"integrity": "sha512-q8psj4+aDrblJMMtRxihNBdovfzGrXJp1l4JU0Sz4b/Mhsi2DPrKFYCGDwjIWRENs04ELVHxdOJQ7Vs98OFohg==",
|
"integrity": "sha512-xIiwp9nkBLcJDpmYHbEHdoWZv+j+WtYaKD6Zil/67F3nrAaZtWYN5mDwerdo7EvcdBenSAj7Xb2hx2DqURLGdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^2.3.0",
|
"chalk": "^2.3.0",
|
||||||
"lodash.clonedeep": "^4.3.2",
|
"lodash": "^4.17.11",
|
||||||
"node-sass": "^4.8.3",
|
"node-sass": "^4.8.3",
|
||||||
"plugin-error": "^1.0.1",
|
"plugin-error": "^1.0.1",
|
||||||
"replace-ext": "^1.0.0",
|
"replace-ext": "^1.0.0",
|
||||||
@@ -2355,12 +2355,12 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"har-validator": {
|
"har-validator": {
|
||||||
"version": "5.1.3",
|
"version": "5.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
|
||||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "^6.5.5",
|
"ajv": "^6.12.3",
|
||||||
"har-schema": "^2.0.0"
|
"har-schema": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2433,9 +2433,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hosted-git-info": {
|
"hosted-git-info": {
|
||||||
"version": "2.8.4",
|
"version": "2.8.9",
|
||||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
|
||||||
"integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
|
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"http-signature": {
|
"http-signature": {
|
||||||
@@ -2450,9 +2450,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"in-publish": {
|
"in-publish": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
|
||||||
"integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
|
"integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"indent-string": {
|
"indent-string": {
|
||||||
@@ -2481,9 +2481,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
|
||||||
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
|
"integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"interpret": {
|
"interpret": {
|
||||||
@@ -2601,13 +2601,10 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-finite": {
|
"is-finite": {
|
||||||
"version": "1.0.2",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
|
||||||
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
|
"integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"requires": {
|
|
||||||
"number-is-nan": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -2729,9 +2726,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"js-base64": {
|
"js-base64": {
|
||||||
"version": "2.5.1",
|
"version": "2.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
|
||||||
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
|
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"jsbn": {
|
"jsbn": {
|
||||||
@@ -2783,9 +2780,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
"version": "6.0.2",
|
"version": "6.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
||||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
|
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"last-run": {
|
"last-run": {
|
||||||
@@ -2854,16 +2851,28 @@
|
|||||||
"strip-bom": "^2.0.0"
|
"strip-bom": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lodash": {
|
"locate-path": {
|
||||||
"version": "4.17.15",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"p-locate": "^3.0.0",
|
||||||
|
"path-exists": "^3.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"path-exists": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"lodash.clonedeep": {
|
"lodash": {
|
||||||
"version": "4.5.0",
|
"version": "4.17.21",
|
||||||
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||||
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"loud-rejection": {
|
"loud-rejection": {
|
||||||
@@ -2991,18 +3000,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.40.0",
|
"version": "1.44.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
|
||||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
|
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mime-types": {
|
"mime-types": {
|
||||||
"version": "2.1.24",
|
"version": "2.1.27",
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
|
||||||
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "1.40.0"
|
"mime-db": "1.44.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
@@ -3015,9 +3024,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"mixin-deep": {
|
"mixin-deep": {
|
||||||
@@ -3042,20 +3051,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "^1.2.5"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"minimist": {
|
|
||||||
"version": "0.0.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
|
||||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
@@ -3130,9 +3131,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-sass": {
|
"node-sass": {
|
||||||
"version": "4.12.0",
|
"version": "4.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
|
||||||
"integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
|
"integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"async-foreach": "^0.1.3",
|
"async-foreach": "^0.1.3",
|
||||||
@@ -3142,14 +3143,14 @@
|
|||||||
"get-stdin": "^4.0.1",
|
"get-stdin": "^4.0.1",
|
||||||
"glob": "^7.0.3",
|
"glob": "^7.0.3",
|
||||||
"in-publish": "^2.0.0",
|
"in-publish": "^2.0.0",
|
||||||
"lodash": "^4.17.11",
|
"lodash": "^4.17.15",
|
||||||
"meow": "^3.7.0",
|
"meow": "^3.7.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"nan": "^2.13.2",
|
"nan": "^2.13.2",
|
||||||
"node-gyp": "^3.8.0",
|
"node-gyp": "^3.8.0",
|
||||||
"npmlog": "^4.0.0",
|
"npmlog": "^4.0.0",
|
||||||
"request": "^2.88.0",
|
"request": "^2.88.0",
|
||||||
"sass-graph": "^2.2.4",
|
"sass-graph": "2.2.5",
|
||||||
"stdout-stream": "^1.4.0",
|
"stdout-stream": "^1.4.0",
|
||||||
"true-case-path": "^1.0.2"
|
"true-case-path": "^1.0.2"
|
||||||
},
|
},
|
||||||
@@ -3398,6 +3399,30 @@
|
|||||||
"os-tmpdir": "^1.0.0"
|
"os-tmpdir": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"p-limit": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"p-try": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-locate": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"p-limit": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-try": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"parse-filepath": {
|
"parse-filepath": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
|
||||||
@@ -3553,9 +3578,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"psl": {
|
"psl": {
|
||||||
"version": "1.3.1",
|
"version": "1.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||||
"integrity": "sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA==",
|
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pump": {
|
"pump": {
|
||||||
@@ -3733,9 +3758,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request": {
|
"request": {
|
||||||
"version": "2.88.0",
|
"version": "2.88.2",
|
||||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
||||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"aws-sign2": "~0.7.0",
|
"aws-sign2": "~0.7.0",
|
||||||
@@ -3745,7 +3770,7 @@
|
|||||||
"extend": "~3.0.2",
|
"extend": "~3.0.2",
|
||||||
"forever-agent": "~0.6.1",
|
"forever-agent": "~0.6.1",
|
||||||
"form-data": "~2.3.2",
|
"form-data": "~2.3.2",
|
||||||
"har-validator": "~5.1.0",
|
"har-validator": "~5.1.3",
|
||||||
"http-signature": "~1.2.0",
|
"http-signature": "~1.2.0",
|
||||||
"is-typedarray": "~1.0.0",
|
"is-typedarray": "~1.0.0",
|
||||||
"isstream": "~0.1.2",
|
"isstream": "~0.1.2",
|
||||||
@@ -3755,7 +3780,7 @@
|
|||||||
"performance-now": "^2.1.0",
|
"performance-now": "^2.1.0",
|
||||||
"qs": "~6.5.2",
|
"qs": "~6.5.2",
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"tough-cookie": "~2.4.3",
|
"tough-cookie": "~2.5.0",
|
||||||
"tunnel-agent": "^0.6.0",
|
"tunnel-agent": "^0.6.0",
|
||||||
"uuid": "^3.3.2"
|
"uuid": "^3.3.2"
|
||||||
}
|
}
|
||||||
@@ -3843,15 +3868,138 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"sass-graph": {
|
"sass-graph": {
|
||||||
"version": "2.2.4",
|
"version": "2.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
|
||||||
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
|
"integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "^7.0.0",
|
"glob": "^7.0.0",
|
||||||
"lodash": "^4.0.0",
|
"lodash": "^4.0.0",
|
||||||
"scss-tokenizer": "^0.2.3",
|
"scss-tokenizer": "^0.2.3",
|
||||||
"yargs": "^7.0.0"
|
"yargs": "^13.3.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"camelcase": {
|
||||||
|
"version": "5.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||||
|
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"cliui": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^3.1.0",
|
||||||
|
"strip-ansi": "^5.2.0",
|
||||||
|
"wrap-ansi": "^5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"find-up": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"locate-path": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"get-caller-file": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"is-fullwidth-code-point": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"require-main-filename": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"string-width": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"emoji-regex": "^7.0.1",
|
||||||
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
|
"strip-ansi": "^5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-ansi": {
|
||||||
|
"version": "5.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||||
|
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^4.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"which-module": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"wrap-ansi": {
|
||||||
|
"version": "5.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||||
|
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^3.2.0",
|
||||||
|
"string-width": "^3.0.0",
|
||||||
|
"strip-ansi": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"y18n": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "13.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
|
||||||
|
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"cliui": "^5.0.0",
|
||||||
|
"find-up": "^3.0.0",
|
||||||
|
"get-caller-file": "^2.0.1",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"require-main-filename": "^2.0.0",
|
||||||
|
"set-blocking": "^2.0.0",
|
||||||
|
"string-width": "^3.0.0",
|
||||||
|
"which-module": "^2.0.0",
|
||||||
|
"y18n": "^4.0.0",
|
||||||
|
"yargs-parser": "^13.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs-parser": {
|
||||||
|
"version": "13.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
|
||||||
|
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "^5.0.0",
|
||||||
|
"decamelize": "^1.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scss-tokenizer": {
|
"scss-tokenizer": {
|
||||||
@@ -3920,9 +4068,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"signal-exit": {
|
"signal-exit": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"snapdragon": {
|
"snapdragon": {
|
||||||
@@ -4371,21 +4519,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
"version": "2.4.3",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"psl": "^1.1.24",
|
"psl": "^1.1.28",
|
||||||
"punycode": "^1.4.1"
|
"punycode": "^2.1.1"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"punycode": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
|
||||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trim-newlines": {
|
"trim-newlines": {
|
||||||
@@ -4528,9 +4668,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uri-js": {
|
"uri-js": {
|
||||||
"version": "4.2.2",
|
"version": "4.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
|
||||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
"integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"punycode": "^2.1.0"
|
"punycode": "^2.1.0"
|
||||||
@@ -4555,9 +4695,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uuid": {
|
"uuid": {
|
||||||
"version": "3.3.3",
|
"version": "3.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
|
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"v8flags": {
|
"v8flags": {
|
||||||
@@ -4706,9 +4846,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"y18n": {
|
"y18n": {
|
||||||
"version": "3.2.1",
|
"version": "3.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
|
||||||
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
|
"integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
@@ -4739,12 +4879,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"yargs-parser": {
|
"yargs-parser": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz",
|
||||||
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
|
"integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "^3.0.0"
|
"camelcase": "^3.0.0",
|
||||||
|
"object.assign": "^4.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
24
package.json
@@ -1,12 +1,18 @@
|
|||||||
{
|
{
|
||||||
"name": "tuicss",
|
"name": "tuicss",
|
||||||
"version": "1.0.0",
|
"version": "2.0.1",
|
||||||
"description": "TuiCss is a framework made to develop text-based user interface applications (TUI)",
|
"description": "TuiCss is a library for developing Web applications that uses text-based user interface applications (TUI) as a style",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"TUI",
|
"tui",
|
||||||
"Text based user interface",
|
"text based user interface",
|
||||||
"Turbo vision",
|
"frontend",
|
||||||
"TuiCss"
|
"css",
|
||||||
|
"frameword",
|
||||||
|
"turbo vision",
|
||||||
|
"tuicss",
|
||||||
|
"ncurses",
|
||||||
|
"msdos",
|
||||||
|
"ascii"
|
||||||
],
|
],
|
||||||
"main": "dist/tuicss.min.css",
|
"main": "dist/tuicss.min.css",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -25,10 +31,10 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
"gulp-clean": "^0.4.0",
|
"gulp-clean": "^0.4.0",
|
||||||
"gulp-clean-css": "^4.2.0",
|
"gulp-clean-css": "^4.3.0",
|
||||||
"gulp-copy": "^4.0.1",
|
"gulp-copy": "^4.0.1",
|
||||||
"gulp-minify": "^3.1.0",
|
"gulp-minify": "^3.1.0",
|
||||||
"gulp-rename": "^1.4.0",
|
"gulp-rename": "^2.0.0",
|
||||||
"gulp-sass": "^4.0.2"
|
"gulp-sass": "^4.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
resources/TUICSS Demo.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
resources/TUICSS Logo 160x160 transparent.png
Normal file
|
After Width: | Height: | Size: 827 B |
BIN
resources/TUICSS Logo 160x160.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
resources/TUICSS Logo Transparent.png
Normal file
|
After Width: | Height: | Size: 585 B |
BIN
resources/TUICSS Logo.png
Normal file
|
After Width: | Height: | Size: 528 B |
BIN
resources/TuiCss Form.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
resources/TuiCss Tabs.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
resources/forecast.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
@@ -10,7 +10,11 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
box-shadow: 10px 10px black;
|
box-shadow: 10px 10px black;
|
||||||
|
border-radius: 0px;
|
||||||
@include disable-select;
|
@include disable-select;
|
||||||
|
&.disabled {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.tui-button:active {
|
.tui-button:active {
|
||||||
background-color: rgb(0, 168, 168)!important;
|
background-color: rgb(0, 168, 168)!important;
|
||||||
|
|||||||
112
src/components/chart.scss
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
/* Chart container */
|
||||||
|
.tui-chart-vertical {
|
||||||
|
position: relative;
|
||||||
|
background-color: black;
|
||||||
|
}
|
||||||
|
.tui-chart-horizontal {
|
||||||
|
position: relative;
|
||||||
|
background-color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chart display */
|
||||||
|
.tui-chart-vertical .tui-chart-display {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 50px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 30px;
|
||||||
|
align-items: flex-end;
|
||||||
|
border-bottom: 2px solid white;
|
||||||
|
border-left: 2px solid white;
|
||||||
|
|
||||||
|
&.no-x-axis {
|
||||||
|
bottom: 0px;
|
||||||
|
}
|
||||||
|
&.no-y-axis {
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.tui-chart-horizontal .tui-chart-display {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
flex-direction: column;
|
||||||
|
top: 0px;
|
||||||
|
left: 50px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 30px;
|
||||||
|
align-items: stretch;
|
||||||
|
border-bottom: 2px solid white;
|
||||||
|
border-left: 2px solid white;
|
||||||
|
|
||||||
|
&.no-x-axis {
|
||||||
|
bottom: 0px;
|
||||||
|
}
|
||||||
|
&.no-y-axis {
|
||||||
|
left: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chart X axis */
|
||||||
|
.tui-chart-x-axis {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
height: 30px;
|
||||||
|
left: 50px;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chart Y axis */
|
||||||
|
.tui-chart-y-axis {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
bottom: 30px;
|
||||||
|
width: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chart legends */
|
||||||
|
.tui-chart-vertical .tui-chart-x-axis .tui-chart-legend {
|
||||||
|
flex: 0 1 100%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.tui-chart-vertical .tui-chart-y-axis .tui-chart-legend {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 2px;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
.tui-chart-horizontal .tui-chart-x-axis .tui-chart-legend {
|
||||||
|
flex: 0 1 100%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.tui-chart-horizontal .tui-chart-y-axis .tui-chart-legend {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 2px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Chart value */
|
||||||
|
.tui-chart-vertical .tui-chart-display .tui-chart-value {
|
||||||
|
flex: 0 1 100%;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.tui-chart-horizontal .tui-chart-display .tui-chart-value {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
align-content: flex-start;
|
||||||
|
justify-content: flex-end;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
@@ -8,6 +8,9 @@
|
|||||||
color: white;
|
color: white;
|
||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
@include disable-select;
|
@include disable-select;
|
||||||
|
&.disabled {
|
||||||
|
color: rgb(168, 168, 168)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.tui-checkbox input {
|
.tui-checkbox input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -15,6 +18,7 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
.tui-checkbox span {
|
.tui-checkbox span {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
@import '../mixins.scss';
|
||||||
|
|
||||||
.tui-fieldset {
|
.tui-fieldset {
|
||||||
border: 6px white double;
|
border: 6px white double;
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
@@ -36,6 +38,7 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
outline:0;
|
outline:0;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
|
@include disable-select;
|
||||||
|
|
||||||
&.left {
|
&.left {
|
||||||
right: initial;
|
right: initial;
|
||||||
|
|||||||
@@ -3,7 +3,11 @@
|
|||||||
color: white;
|
color: white;
|
||||||
outline:0;
|
outline:0;
|
||||||
border: none;
|
border: none;
|
||||||
padding: 1px;
|
border-radius: 0px;
|
||||||
|
&.disabled {
|
||||||
|
background-color: rgb(168, 168, 168);
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.tui-input:focus {
|
.tui-input:focus {
|
||||||
background-color: rgb(255, 255, 0)!important;
|
background-color: rgb(255, 255, 0)!important;
|
||||||
|
|||||||
@@ -8,6 +8,9 @@
|
|||||||
color: white;
|
color: white;
|
||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
@include disable-select;
|
@include disable-select;
|
||||||
|
&.disabled {
|
||||||
|
color: rgb(168, 168, 168)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.tui-radio input {
|
.tui-radio input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -15,6 +18,7 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
.tui-radio span {
|
.tui-radio span {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
.tui-screen-800-600,
|
.tui-screen-800-600,
|
||||||
.tui-screen-1024-768 {
|
.tui-screen-1024-768 {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
&.bordered{
|
&.bordered{
|
||||||
border: 2px solid black;
|
border: 2px solid black;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
background-color: rgb(168, 168, 168);
|
background-color: rgb(168, 168, 168);
|
||||||
color: rgb(0, 0, 168);
|
color: rgb(0, 0, 168);
|
||||||
}
|
}
|
||||||
|
&.disabled {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.tui-tab-content {
|
.tui-tab-content {
|
||||||
display: none;
|
display: none;
|
||||||
|
|||||||
@@ -4,4 +4,8 @@
|
|||||||
padding: 0px;
|
padding: 0px;
|
||||||
color: rgb(255, 255, 0);
|
color: rgb(255, 255, 0);
|
||||||
outline: none;
|
outline: none;
|
||||||
|
&.disabled {
|
||||||
|
background-color: rgb(168, 168, 168);
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
273
src/js/tuicss.js
@@ -1,78 +1,173 @@
|
|||||||
/**
|
/**
|
||||||
* Init
|
* Replacement for jQuery's $(document).ready() function.
|
||||||
|
* This is handy in making sure stuff fires after the DOM is ready to be touched.
|
||||||
|
* Stolen from:https://stackoverflow.com/a/53601942/344028
|
||||||
|
*
|
||||||
|
* @param fn Callback.
|
||||||
*/
|
*/
|
||||||
$(document).ready(function() {
|
function domReady(fn) {
|
||||||
tabsController();
|
// If we're early to the party
|
||||||
datetimeController();
|
document.addEventListener('DOMContentLoaded', fn);
|
||||||
sidenavController();
|
|
||||||
modalController();
|
// If late; I mean on time.
|
||||||
});
|
if (document.readyState === 'interactive' || document.readyState === 'complete') {
|
||||||
|
fn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TuiTabs controller
|
* TuiTabs controller
|
||||||
*/
|
*/
|
||||||
function tabsController() {
|
function tabsController() {
|
||||||
$(".tui-tab").click(function(event) {
|
// Get all the tab elements (typically li tags).
|
||||||
$(".tui-tab-content").hide();
|
const tabs = document.getElementsByClassName('tui-tab');
|
||||||
let tabContentid = $(this).attr('data-tab-content');
|
|
||||||
$(`#${tabContentid}`).show();
|
if (!tabs.length) {
|
||||||
$(".tui-tab").removeClass("active");
|
// No tabs found, return early and save a couple CPU cycles.
|
||||||
$(this).addClass("active");
|
return;
|
||||||
});
|
}
|
||||||
$('.tui-tab.active').click();
|
|
||||||
|
for (const tab of tabs) {
|
||||||
|
// Add click listeners to them.
|
||||||
|
tab.addEventListener('click', function (e) {
|
||||||
|
|
||||||
|
// Check if the clicked tab is disabled
|
||||||
|
if(e.target.classList.contains("disabled")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove the 'active' class from any and all tabs.
|
||||||
|
for (const otherTab of tabs) {
|
||||||
|
otherTab.classList.remove('active');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the content element.
|
||||||
|
const tabContents = document.getElementsByClassName('tui-tab-content');
|
||||||
|
|
||||||
|
if (tabContents) {
|
||||||
|
for (const tabContent of tabContents) {
|
||||||
|
// Hide all tab contents.
|
||||||
|
tabContent.style.display = 'none';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw 'No tab content elements found.'
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the id of the tab contents we want to show.
|
||||||
|
const tabContentId = e.target.getAttribute('data-tab-content');
|
||||||
|
|
||||||
|
if (tabContentId) {
|
||||||
|
const tabContent = document.getElementById(tabContentId);
|
||||||
|
if (tabContent) {
|
||||||
|
// Show the tab contents.
|
||||||
|
tabContent.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
throw 'No tab content element with id "' + tabContentId + '" found.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// We are not going to throw an error here, since we could make the tab do something else that a tab
|
||||||
|
// normally wouldn't do.
|
||||||
|
|
||||||
|
// Set the clicked tab to have the 'active' class so we can use it in the next part.
|
||||||
|
e.target.classList.add('active');
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grab the first tab with the active class.
|
||||||
|
const activeTab = document.querySelector('.tui-tab.active');
|
||||||
|
if (activeTab) {
|
||||||
|
// Now click it 'click' it.
|
||||||
|
activeTab.click();
|
||||||
|
} else {
|
||||||
|
// Nothing found, just click the first tab foud.
|
||||||
|
tabs[0].click()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Date field controller
|
* Date/time field controller
|
||||||
*/
|
*/
|
||||||
function datetimeController() {
|
function datetimeController() {
|
||||||
|
// Get date/time elements.
|
||||||
|
const clocks = document.getElementsByClassName('tui-datetime');
|
||||||
|
|
||||||
if(!$(".tui-datetime").length) return;
|
if (!clocks.length) {
|
||||||
|
// No date time elements found, return early and save a couple CPU cycles.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kick off our clock interval stuff.
|
||||||
datetimeInterval();
|
datetimeInterval();
|
||||||
setInterval(datetimeInterval, 1000);
|
setInterval(datetimeInterval, 1000);
|
||||||
|
|
||||||
function datetimeInterval() {
|
function datetimeInterval() {
|
||||||
let today = new Date();
|
for (const clock of clocks) {
|
||||||
|
// Set the interval.
|
||||||
|
const interval = setInterval(() => {
|
||||||
|
// Technically we should have already returned earlier in the code, but to be on the safe side.
|
||||||
|
if (clock === null) {
|
||||||
|
clearInterval(interval);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$(".tui-datetime").each(function() {
|
// Get the format we want to display in the element.
|
||||||
let clock = $(this);
|
let format = clock.getAttribute('data-format');
|
||||||
|
|
||||||
let format = clock.attr("data-format");
|
|
||||||
|
|
||||||
let month = (today.getMonth() + "").length == 2 ? today.getMonth() + 1 : "0" + (today.getMonth() + 1);
|
// parse out the date and time into constants.
|
||||||
let day = (today.getDay() + "").length == 2 ? today.getDay() + 1 : "0" + (today.getDay() + 1);
|
const today = new Date();
|
||||||
let year = today.getFullYear();
|
const month = (today.getMonth() + '').length === 2 ? today.getMonth() + 1 : '0' + (today.getMonth() + 1);
|
||||||
let hour = (today.getHours() + "").length == 2 ? today.getHours() : "0" + today.getHours();
|
const day = (today.getDay() + '').length === 2 ? today.getDay() + 1 : '0' + (today.getDay() + 1);
|
||||||
let hour12 = (parseInt(hour) + 24) % 12 || 12;
|
const year = today.getFullYear() + '';
|
||||||
let minute = (today.getMinutes() + "").length == 2 ? today.getMinutes() : "0" + today.getMinutes();
|
const hour = (today.getHours() + '').length === 2 ? today.getHours() : '0' + today.getHours();
|
||||||
let second = (today.getSeconds() + "").length == 2 ? today.getSeconds() : "0" + today.getSeconds();
|
const hour12 = (parseInt(hour) + 24) % '12' || '12';
|
||||||
let ampm = parseInt(hour) >= 12 ? "PM" : "AM";
|
const minute = (today.getMinutes() + '').length === 2 ? today.getMinutes() : '0' + today.getMinutes();
|
||||||
|
const second = (today.getSeconds() + '').length === 2 ? today.getSeconds() : '0' + today.getSeconds();
|
||||||
|
const ampm = parseInt(hour) >= 12 ? 'PM' : 'AM';
|
||||||
|
|
||||||
format = format.replace("M", month);
|
// Replace based on the format.
|
||||||
format = format.replace("d", day);
|
format = format.replace('M', month);
|
||||||
format = format.replace("y", year);
|
format = format.replace('d', day);
|
||||||
format = format.replace("H", hour);
|
format = format.replace('y', year);
|
||||||
format = format.replace("h", hour12);
|
format = format.replace('H', hour);
|
||||||
format = format.replace("m", minute);
|
format = format.replace('h', hour12);
|
||||||
format = format.replace("s", second);
|
format = format.replace('m', minute);
|
||||||
format = format.replace("a", ampm);
|
format = format.replace('s', second);
|
||||||
|
format = format.replace('a', ampm);
|
||||||
|
|
||||||
clock.html(format);
|
// Show it in the element.
|
||||||
});
|
clock.innerHTML = format;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sidenav Controller
|
* Sidenav Controller
|
||||||
|
* There should only side navigation element at the moment.
|
||||||
*/
|
*/
|
||||||
function sidenavController() {
|
function sidenavController() {
|
||||||
$(".tui-sidenav-button").click(function() {
|
// Get the side navigation button (there should be only one, but if not, we are getting the first one).
|
||||||
let sidenav = $(".tui-sidenav");
|
const sideNavButton = document.querySelector('.tui-sidenav-button');
|
||||||
if(sidenav.hasClass("active")) {
|
|
||||||
$(".tui-sidenav").removeClass("active");
|
if (!sideNavButton) {
|
||||||
|
// No side navigation button found, return early and save a couple CPU cycles.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the click event listener to the buttons.
|
||||||
|
sideNavButton.addEventListener('click', () => {
|
||||||
|
// Get the side navigation element (there should be only one, but if not, we are getting the first one).
|
||||||
|
const sideNav = document.querySelector('.tui-sidenav');
|
||||||
|
|
||||||
|
if (sideNav) {
|
||||||
|
if (sideNav.classList.contains('active')) {
|
||||||
|
sideNav.classList.remove('active');
|
||||||
|
} else {
|
||||||
|
sideNav.classList.add('active');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$(".tui-sidenav").addClass("active");
|
throw 'No sidenav element found.'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -81,14 +176,80 @@ function sidenavController() {
|
|||||||
* Modal controller
|
* Modal controller
|
||||||
*/
|
*/
|
||||||
function modalController() {
|
function modalController() {
|
||||||
$(".tui-modal-button").click(function() {
|
// Get the overlap (overlay) element (there should be only one, but if not, we are getting the first one).
|
||||||
$(".tui-overlap").addClass("active");
|
const tuiOverlap = document.querySelector('.tui-overlap');
|
||||||
let modalId = $(this).attr("data-modal");
|
|
||||||
$(`#${modalId}`).addClass("active");
|
if (!tuiOverlap) {
|
||||||
});
|
// No overlap found element, return early and save a couple CPU cycles.
|
||||||
$(".tui-modal-close-button").click(function() {
|
return;
|
||||||
$(".tui-overlap").removeClass("active");
|
}
|
||||||
let modalId = $(this).attr("data-modal");
|
|
||||||
$(`#${modalId}`).removeClass("active");
|
// Find modal buttons.
|
||||||
});
|
const modalButtons = document.getElementsByClassName('tui-modal-button');
|
||||||
}
|
for (const modalButton of modalButtons) {
|
||||||
|
// Add the click event listener to the buttons.
|
||||||
|
modalButton.addEventListener('click', (e) => {
|
||||||
|
// Show the overlap.
|
||||||
|
tuiOverlap.classList.add('active');
|
||||||
|
|
||||||
|
// Get the display element for the modal.
|
||||||
|
const modalId = e.target.getAttribute('data-modal');
|
||||||
|
|
||||||
|
if (modalId) {
|
||||||
|
const modal = document.getElementById(modalId);
|
||||||
|
|
||||||
|
if (modal) {
|
||||||
|
// Show it.
|
||||||
|
modal.classList.add('active');
|
||||||
|
} else {
|
||||||
|
throw 'No modal element with id of "' + modalId + '" found.';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw 'Modal close button data-modal attribute is empty or not set.'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the close modal buttons.
|
||||||
|
const modalCloseButtons = document.getElementsByClassName('tui-modal-close-button');
|
||||||
|
|
||||||
|
if (modalButtons.length > 0 && !modalCloseButtons.length) {
|
||||||
|
// A modal without a close button, is a bad modal.
|
||||||
|
throw 'No modal close buttons found.'
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const modalCloseButton of modalCloseButtons) {
|
||||||
|
// Add the click event listener to the buttons.
|
||||||
|
modalCloseButton.addEventListener('click', (e) => {
|
||||||
|
// Hide the the overlap.
|
||||||
|
tuiOverlap.classList.remove('active');
|
||||||
|
|
||||||
|
// Get the display element id for the modal.
|
||||||
|
const modalId = e.target.getAttribute('data-modal');
|
||||||
|
|
||||||
|
if (modalId) {
|
||||||
|
// Get the modal element.
|
||||||
|
const modal = document.getElementById(modalId);
|
||||||
|
|
||||||
|
if (modal) {
|
||||||
|
// Hide it.
|
||||||
|
modal.classList.remove('active');
|
||||||
|
} else {
|
||||||
|
throw 'No modal element with id of "' + modalId + '" found.';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw 'Modal close button data-modal attribute is empty or not set.'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init: This is at the bottom to make sure it is fired correctly.
|
||||||
|
*/
|
||||||
|
domReady(function () {
|
||||||
|
tabsController();
|
||||||
|
datetimeController();
|
||||||
|
sidenavController();
|
||||||
|
modalController();
|
||||||
|
});
|
||||||
|
|||||||
@@ -65,6 +65,9 @@
|
|||||||
.no-padding {
|
.no-padding {
|
||||||
padding: 0px!important;
|
padding: 0px!important;
|
||||||
}
|
}
|
||||||
|
.no-border {
|
||||||
|
border: none!important;
|
||||||
|
}
|
||||||
.content {
|
.content {
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
}
|
}
|
||||||
@@ -77,4 +80,8 @@
|
|||||||
}
|
}
|
||||||
.cursor-default {
|
.cursor-default {
|
||||||
cursor: default !important;
|
cursor: default !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabled {
|
||||||
|
cursor: not-allowed!important;
|
||||||
}
|
}
|
||||||
@@ -29,4 +29,5 @@
|
|||||||
@import './components/background.scss';
|
@import './components/background.scss';
|
||||||
@import './components/border.scss';
|
@import './components/border.scss';
|
||||||
@import './components/grid.scss';
|
@import './components/grid.scss';
|
||||||
@import './components/modal.scss';
|
@import './components/modal.scss';
|
||||||
|
@import './components/chart.scss';
|
||||||