Import localy all the fonts, CSS and JS files that used to be on CDN

This commit is contained in:
Timothée Jaussoin 2023-08-17 14:17:58 +00:00
parent f8ae6d93ff
commit 88f0d898fa
19 changed files with 880 additions and 1088 deletions

View file

@ -99,7 +99,7 @@ You can then configure your instances with specific values.
If you set `INSTANCE_CUSTOM_THEME` to true, FlexiAPI will try to load a CSS file located in `public/css/$APP_ENV.style.css`. If the file doesn't exists it will fallback to `public/css/style.css`.
We advise you to copy the `style.css` file and rename it to make your custom CSS configurations for your instance.
You can find an example CSS file at `public/css/custom.style.css`.
#### Flexisip Push notifications pusher

View file

@ -1,77 +0,0 @@
.legend {
margin-bottom: 1rem;
}
.legend div:before {
content: '';
display: inline-block;
width: 1rem;
height: 1rem;
vertical-align: middle;
background-color: gray;
margin: 0 0.5rem;
opacity: 0.5;
}
.columns {
display: flex;
height: 600px;
align-items: stretch;
border: 1px solid #CCC;
margin-bottom: 10rem;
}
.columns .column {
flex: 1;
display: flex;
flex-direction: column;
align-items: stretch;
justify-content: flex-end;
position: relative;
}
.columns .column .bar {
border-right: 1px solid white;
font-size: 0.5rem;
text-align: center;
position: relative;
opacity: 0.5;
}
.columns .column::after {
display: block;
content: attr(data-value);
position: absolute;
top: calc(100% + 1rem);
writing-mode: vertical-rl;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.columns .column .bar.activated,
.legend div.activated:before {
opacity: 1;
}
.columns .column .bar.first,
.legend .first:before {
background-color: salmon;
}
.columns .column .bar.second,
.legend .second:before {
background-color: seagreen;
}
.columns .column .bar::after {
display: block;
content: attr(data-value);
color: white;
position: absolute;
font-size: 0.75rem;
line-height: 1rem;
left: 0rem;
top: calc(50% - 0.5rem);
width: 100%;
}

13
flexiapi/public/css/custom.css vendored Normal file
View file

@ -0,0 +1,13 @@
/**
* This is an example configuration theme
* Feel free to overwrite any rules presents in the base CSS files
**/
body {
--main-5: rgb(20, 81, 172);
}
body.welcome::after,
content > nav {
background-image: none;
}

View file

@ -1,822 +0,0 @@
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100;200;300;400;500;600;700;800;900&family=Roboto:wght@300;400;500;700&display=swap');
/* fallback */
@font-face {
font-family: 'Material Icons Outlined';
font-style: normal;
font-weight: 400;
src: url(../fonts/MaterialIcons-Outlined.woff2) format('woff2');
}
.material-icons-outlined {
font-family: 'Material Icons Outlined';
font-weight: normal;
font-style: normal;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-moz-font-feature-settings: 'liga';
-moz-osx-font-smoothing: grayscale;
}
* {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
list-style-type: none;
text-decoration: none;
box-shadow: none;
outline: none;
}
html {
font-size: 10px;
}
body {
font-family: 'Noto Sans', sans-serif;
font-weight: 400;
display: flex;
flex-direction: column;
overflow-x: hidden;
--main-1: rgba(255, 234, 203, 1);
--main-2: rgba(255, 208, 152, 1);
--main-3: rgba(255, 178, 102, 1);
--main-4: rgba(255, 146, 63, 1);
--main-5: rgba(254, 94, 0, 1);
--main-6: rgba(218, 68, 0, 1);
--main-7: rgba(183, 45, 0, 1);
--main-8: rgba(147, 28, 0, 1);
--main-9: rgba(121, 15, 0, 1);
--second-0: rgba(250, 254, 255, 1);
--second-1: rgba(238, 246, 248, 1);
--second-2: rgba(223, 236, 242, 1);
--second-3: rgba(192, 209, 217, 1);
--second-4: rgba(154, 171, 181, 1);
--second-5: rgba(108, 122, 135, 1);
--second-6: rgba(78, 96, 116, 1);
--second-7: rgba(54, 72, 96, 1);
--second-8: rgba(34, 51, 77, 1);
--second-9: rgba(20, 34, 64, 1);
--second-1: rgba(0, 0, 0, 1);
--grey-1: rgba(249, 249, 249, 1);
--grey-2: rgba(237, 237, 237, 1);
--grey-3: rgba(201, 201, 201, 1);
--grey-4: rgba(148, 148, 148, 1);
--grey-5: rgba(78, 78, 78, 1);
--grey-6: rgba(67, 57, 57, 1);
--grey-7: rgba(56, 39, 42, 1);
--grey-8: rgba(45, 24, 30, 1);
--grey-9: rgba(0, 0, 0, 1);
--danger-1: rgba(250, 232, 222, 1);
--danger-2: rgba(245, 204, 190, 1);
--danger-3: rgba(238, 170, 155, 1);
--danger-4: rgba(230, 137, 130, 1);
--danger-5: rgba(221, 95, 95, 1);
--danger-6: rgba(189, 72, 82, 1);
--danger-7: rgba(158, 53, 72, 1);
--danger-8: rgba(127, 37, 61, 1);
--danger-9: rgba(104, 26, 54, 1);
--color-orange: rgba(254, 94, 0, 1);
--color-grey: rgba(108, 122, 135, 1);
--color-green: rgba(79, 174, 128, 1);
--color-blue: rgba(9, 197, 244, 1);
--color-yellow: rgba(255, 220, 46, 1);
--color-pink: rgba(255, 94, 102, 1);
--color-purple: rgba(151, 71, 255, 1);
}
body.show_menu {
max-height: 100vh;
overflow: hidden;
}
p,
a,
ul li,
ol li,
pre {
font-size: 1.5rem;
color: var(--second-7);
}
pre {
overflow: auto;
background-color: var(--second-8);
border-radius: 1rem;
padding: 1rem;
margin-bottom: 1rem;
}
pre code {
color: var(--grey-1);
font-size: 1.3rem;
}
ul li,
ol li {
margin-left: 2rem;
list-style-type: disc;
}
ol li {
list-style-type: decimal;
}
ul li ul li {
list-style-type: circle;
}
ul li ul li ul li {
list-style-type: square;
}
p {
margin-bottom: 1rem;
}
p b {
font-weight: bold;
}
p i {
vertical-align: middle;
margin-right: 1rem;
}
code {
color: var(--second-7);
font-family: monospace;
}
p>a:not(.btn),
table tr td a:hover,
label>a {
text-decoration: underline;
color: var(--main-5);
}
content {
display: flex;
box-sizing: border-box;
gap: 3rem;
min-height: calc(100vh - 11rem);
}
body.welcome content {
min-height: calc(100vh - 17rem);
align-items: center;
margin: 0 auto;
max-width: 1024px;
}
hr {
border-bottom: 1px solid var(--grey-3);
margin: 2rem 0;
}
hr.clear {
clear: both;
border-bottom: none;
}
a.permalink {
margin-left: 1rem;
}
/** Tabs **/
ul.tabs {
display: flex;
flex-direction: row;
border-bottom: 2px solid var(--grey-2);
margin-bottom: 2rem;
width: 100%;
}
ul.tabs li {
font-weight: 800;
color: var(--main-6);
border-bottom: 2px solid transparent;
list-style-type: none;
line-height: 4rem;
font-size: 3rem;
margin: 0 1rem;
margin-bottom: -2px;
opacity: 0.5;
}
ul.tabs li a {
display: block;
}
ul.tabs li.current,
ul.tabs li:hover {
opacity: 1;
}
ul.tabs li:first-child {
margin-left: 0;
}
ul.tabs li:last-child {
margin-right: 0;
}
ul.tabs li.current {
border-color: var(--main-5);
}
/** Header **/
header nav {
padding: 3rem 1rem;
display: flex;
min-height: 6rem;
}
header nav a {
display: flex;
align-items: center;
padding: 0 4rem;
line-height: 4rem;
color: var(--second-5);
}
header nav a i {
margin-right: 1rem;
font-size: 2.5rem;
}
@media screen and (max-width: 800px) {
header nav {
padding: 1rem;
}
header nav a {
padding: 1rem;
}
header nav a i {
margin-right: 0;
}
}
header nav a#logo {
font-weight: 700;
padding-left: 2rem;
}
header nav a#menu {
color: var(--main-5);
}
header nav a#menu:after {
display: block;
font-family: 'Material Icons Outlined';
content: "\e5d2";
font-size: 3rem;
}
body.show_menu header nav a#menu:after {font-family: 'Material Icons'
header nav a#logo {
position: absolute;
left: calc(50% - 1.5rem);
top: 1.5rem;
padding: 0;
}
}
header nav a#logo::before {
content: '';
width: 3rem;
height: 3rem;
padding: 1rem;
background-image: url('../img/logo.svg');
background-color: var(--main-5);
background-size: 3rem;
background-position: center;
background-repeat: no-repeat;
display: block;
border-radius: 1rem;
box-shadow: 0 0 2rem rgba(0, 0, 0, 0.2);
margin-right: 2rem;
}
header nav a.oppose {
margin-left: auto;
}
header nav a.oppose ~ a.oppose {
margin-left: 0;
}
/** Section **/
content section {
margin: 0 auto;
max-width: 1024px;
padding: 1rem;
box-sizing: border-box;
}
content section.grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
}
@media screen and (max-width: 800px) {
content section.grid {
display: block;
}
}
content section.grid header,
content section.grid .large {
grid-column: span 2;
}
content section header {
display: flex;
gap: 1rem;
align-items: center;
margin-bottom: 3rem;
}
content section header p {
margin-bottom: 0;
}
content section header form {
display: inline-block;
}
content section header > *.oppose {
margin-left: auto;
}
content nav + section {
min-width: calc(80% - 20rem);
margin-bottom: 4rem;
}
/** Sidenav **/
content > nav {
background-color: var(--main-5);
width: 20rem;
margin-left: 0;
padding: 2rem;
border-radius: 0 3rem 0 0;
padding-bottom: 10rem;
padding-top: 4rem;
background-size: auto 10rem;
background-position: bottom center;
background-repeat: repeat-x;
background-image: url('../img/footer.svg');
z-index: 1;
}
content > nav a {
color: white;
font-weight: 600;
font-size: 1.75rem;
display: flex;
align-items: center;
line-height: 5rem;
margin: 1rem 0;
margin-left: 2rem;
padding-right: 2rem;
position: relative;
white-space: nowrap;
}
content > nav a.current {
background-color: white;
border-radius: 4rem;
color: var(--main-5);
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.2);
}
content > nav a.current:after {
content: '';
display: block;
width: 1rem;
height: 1rem;
background-color: white;
border-radius: 1rem;
position: absolute;
left: -2rem;
top: calc(50% - 0.5rem);
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.2);
}
content > nav a i {
margin: 0 1rem;
margin-left: 2rem;
font-size: 2rem;
}
@media screen and (max-width: 800px) {
content > nav {
width: 100%;
position: absolute;
min-height: 100vh;
max-height: 100%;
overflow-y: scroll;
box-sizing: border-box;
border-radius: 0;
padding-top: 2rem;
transition: transform 0.5s ease-in-out;
transform: translateX(-100%);
}
content > nav a {
margin-left: 0;
}
content > nav a.current:after {
display: none;
}
body.show_menu content > nav {
transform: translateX(0);
}
}
/** Footer **/
body.welcome::after {
background-position: bottom center;
background-repeat: repeat-x;
background-image: url('../img/footer.svg');
display: block;
height: 10rem;
width: 100%;
background-size: 50rem;
content: '';
height: 9rem;
}
/** Titles **/
h1 {
font-size: 3.5rem;
line-height: 4rem;
font-weight: 800;
color: var(--second-6);
display: flex;
align-items: center;
margin-right: 1rem;
}
h1 i {
font-size: 3rem;
margin-right: 1rem;
}
h2 {
font-size: 2.25rem;
font-weight: 800;
padding: 1rem 0;
color: var(--second-7);
}
h2 i {
font-size: 2rem;
margin-right: 1rem;
}
h3 {
font-size: 1.75rem;
color: var(--second-6);
padding: 0.5rem 0;
font-weight: bold;
}
h3 i {
line-height: 2rem;
margin-right: 1rem;
vertical-align: middle;
}
h4 {
font-size: 1.6rem;
color: var(--second-9);
padding: 0.5rem 0;
}
p + h1, p + h2, p + h3, p + h4,
ul + h1, ul + h2, ul + h3, ul + h4, h3 + p {
margin-top: 1rem;
}
.line {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/** Badge **/
.badge {
background-color: var(--grey-4);
color: white;
border-radius: 0.5rem;
font-weight: 700;
line-height: 2rem;
font-size: 1.25rem;
padding: 0.25rem 1.25rem;
}
.badge.badge-info {
background-color: var(--color-blue);
}
.badge.badge-success {
background-color: var(--color-green);
}
.badge.badge-warning {
background-color: var(--color-yellow);
}
/** Table **/
table {
border-collapse: collapse;
width: 100%;
}
table tr td a {
display: block;
}
table tr td,
table tr th {
padding: 1rem;
font-size: 1.5rem;
}
table tr th {
padding: 0 1rem;
line-height: 4rem;
}
table tr td.line,
table tr th.line {
max-width: 100%;
}
table tr th,
table tr th a {
text-transform: uppercase;
font-weight: 600;
color: var(--second-4);
text-align: left;
}
table tr th a i {
font-size: 2.5rem;
vertical-align: middle;
}
table thead {
border-bottom: 1px solid var(--second-4);
}
table tr:nth-child(2n) {
background-color: var(--grey-1);
}
table tr.empty {
background-color: var(--grey-2);
text-align: center;
color: var(--second-4);
}
table tr.empty td {
font-size: 2rem;
padding-bottom: 9rem;
}
table tr.empty td:before {
content: '\e5c9';
font-family: 'Material Icons Outlined';
font-size: 8rem;
color: var(--second-4);
display: block;
text-align: center;
margin: 12rem;
margin-bottom: 1rem;
line-height: 8rem;
}
/* Display/hide */
.on_mobile {
display: none !important;
}
.on_mobile_after:after {
display: none !important;
}
@media screen and (max-width: 800px) {
.on_mobile,
.on_mobile_after:after {
display: inherit !important;
}
.on_mobile.material-icons-outlined {
display: inline !important;
}
.on_desktop {
display: none !important;
}
}
/** Chips **/
.chip {
display: inline-block;
line-height: 2.5rem;
padding: 0 1rem;
}
.chip i {
margin: 0;
}
.chip.selected {
font-weight: bold;
}
/** Pagination **/
ul.pagination {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin: 1rem 0;
}
ul.pagination li {
display: block;
}
ul.pagination li .page-link {
font-size: 1.6rem;
padding: 0.5rem;
line-height: 2rem;
border-radius: 2rem;
margin: 0 0.5rem;
text-align: center;
min-width: 2rem;
display: block;
border: 1px solid transparent;
}
ul.pagination li:not(.disabled).active .page-link {
color: white;
background-color: var(--main-5);
}
ul.pagination li:not(.disabled) .page-link {
color: var(--main-5);
}
ul.pagination li:not(.disabled):not(.active) .page-link:hover {
background-color: var(--main-1);
}
ul.pagination li:not(.disabled) .page-link:hover {
border-color: var(--main-5);
}
/** List Toggle */
select.list_toggle {
display: none;
}
/** Specific elements */
.table-of-contents {
max-width: 40%;
float: right;
}
.card {
background-color: var(--grey-1);
border-radius: 1rem;
padding: 1rem;
margin-bottom: 1rem;
overflow: hidden;
}
.disabled {
opacity: 0.5;
pointer-events: none;
}
#chart {
min-height: 80vh;
}
/** Breadcrumb **/
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb li {
display: inline-block;
font-size: 1.5rem;
line-height: 2rem;
margin-left: 0;
}
.breadcrumb li a {
color: var(--main-5);
}
.breadcrumb li.active {
color: var(--grey-5);
}
.breadcrumb li + li:before {
content: ">";
margin: 0 1rem;
font-size: 1rem;
line-height: 2rem;
display: inline-block;
}
/* Steps */
ol.steps {
counter-reset: css-counter 0;
padding-top: 6.5rem;
}
ol.steps li {
counter-increment: css-counter 1;
display: inline-block;
position: relative;
font-weight: 600;
color: var(--grey-5);
}
ol.steps li + li {
margin-left: 9rem;
}
ol.steps li + li:after {
display: block;
border-top: 1px solid var(--grey-3);
content: "";
width: 7rem;
position: absolute;
top: -3rem;
left: -8rem;
}
ol.steps li:before {
content: counter(css-counter);
display: block;
font-size: 2rem;
font-weight: 300;
border-radius: 3rem;
line-height: 5rem;
width: 5rem;
text-align: center;
border: 1px solid var(--grey-3);
position: absolute;
left: calc(50% - 2.5rem - 1px);
bottom: 3rem;
}
ol.steps li.active:before {
background-color: var(--main-5);
border-color: var(--main-5);
color: white;
}

71
flexiapi/public/css/fonts.css vendored Normal file
View file

@ -0,0 +1,71 @@
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 100;
font-display: swap;
src: url(../fonts/NotoSans/o-0OIpQlx3QUlC5A4PNjhjRF.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 200;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjKhVlYw.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjThZlYw.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(../fonts/NotoSans/o-0IIpQlx3QUlC5A4PNb4g.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjFhdlYw.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjOhBlYw.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjXhFlYw.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjQhJlYw.ttf) format('truetype');
}
@font-face {
font-family: 'Noto Sans';
font-style: normal;
font-weight: 900;
font-display: swap;
src: url(../fonts/NotoSans/o-0NIpQlx3QUlC5A4PNjZhNlYw.ttf) format('truetype');
}

View file

@ -1,97 +0,0 @@
@font-face {
font-family: "Montserrat";
src: local("Montserrat Regular"), local("Montserrat-Regular"), url("https://fonts.gstatic.com/s/montserrat/v14/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2") format("woff2");
font-style: normal;
font-weight: 400;
unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Montserrat";
src: local("Montserrat Bold"), local("Montserrat-Bold"), url("https://fonts.gstatic.com/s/montserrat/v14/JTURjIg1_i6t8kCHKm45_dJE3gnD_g.woff2") format("woff2");
font-style: normal;
font-weight: 700;
unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body {
min-height: 100vh;
display: flex;
color: #444;
flex-direction: column;
font-family: "Montserrat";
}
body > div {
flex: 1 0 auto;
}
.container {
max-width: 800px;
}
h1, h2, h3, a, label {
color: #6081C9;
}
body > footer a,
nav ul li a {
color: white;
opacity: 0.8;
}
nav ul li a:hover,
nav ul li.active a {
color: white;
opacity: 1;
}
input.form-control {
border-color: #DDD;
font-size: 15px;
}
.input-group-text {
font-size: 15px;
}
input.form-control:focus {
border-color: #FF5E00;
}
.btn {
border: 1px solid #FF5E00;
background-color: transparent;
color: #FF5E00;
border-radius: .25rem;
font-size: 15px;
letter-spacing: 0.75px;
}
.btn.btn-centered {
display: block;
margin: 1rem auto;
}
.btn:hover {
background-color: #FF5E00;
color: white;
border-color: #FF5E00;
}
.btn:not(.disabled):not(:disabled):active,
.btn:not(.disabled):not(:disabled):focus {
background-color: #6081C9;
border-color: #6081C9;
}
body > footer,
body > header nav {
background-color: #6081C9;
}
body > footer {
color: white;
padding: 1rem;
text-align: center;
}

View file

@ -1,143 +1,823 @@
@import url('./fonts.css');
@import url('./form.css');
/* fallback */
@font-face {
font-family: "Montserrat";
src: local("Montserrat Regular"), local("Montserrat-Regular"), url("../fonts/Montserrat-Regular.woff2") format("woff2");
font-family: 'Material Icons Outlined';
font-style: normal;
font-weight: 400;
unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
src: url(../fonts/MaterialIcons-Outlined.woff2) format('woff2');
}
.material-icons-outlined {
font-family: 'Material Icons Outlined';
font-weight: normal;
font-style: normal;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-moz-font-feature-settings: 'liga';
-moz-osx-font-smoothing: grayscale;
}
@font-face {
font-family: "Montserrat";
src: local("Montserrat Bold"), local("Montserrat-Bold"), url("../fonts/Montserrat-Bold.woff2") format("woff2");
font-style: normal;
font-weight: 700;
unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
* {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
list-style-type: none;
text-decoration: none;
box-shadow: none;
outline: none;
}
html {
font-size: 10px;
}
body {
min-height: 100vh;
font-family: 'Noto Sans', sans-serif;
font-weight: 400;
display: flex;
flex-direction: column;
font-family: "Montserrat";
overflow-x: hidden;
--main-1: rgba(255, 234, 203, 1);
--main-2: rgba(255, 208, 152, 1);
--main-3: rgba(255, 178, 102, 1);
--main-4: rgba(255, 146, 63, 1);
--main-5: rgba(254, 94, 0, 1);
--main-6: rgba(218, 68, 0, 1);
--main-7: rgba(183, 45, 0, 1);
--main-8: rgba(147, 28, 0, 1);
--main-9: rgba(121, 15, 0, 1);
--second-0: rgba(250, 254, 255, 1);
--second-1: rgba(238, 246, 248, 1);
--second-2: rgba(223, 236, 242, 1);
--second-3: rgba(192, 209, 217, 1);
--second-4: rgba(154, 171, 181, 1);
--second-5: rgba(108, 122, 135, 1);
--second-6: rgba(78, 96, 116, 1);
--second-7: rgba(54, 72, 96, 1);
--second-8: rgba(34, 51, 77, 1);
--second-9: rgba(20, 34, 64, 1);
--second-1: rgba(0, 0, 0, 1);
--grey-1: rgba(249, 249, 249, 1);
--grey-2: rgba(237, 237, 237, 1);
--grey-3: rgba(201, 201, 201, 1);
--grey-4: rgba(148, 148, 148, 1);
--grey-5: rgba(78, 78, 78, 1);
--grey-6: rgba(67, 57, 57, 1);
--grey-7: rgba(56, 39, 42, 1);
--grey-8: rgba(45, 24, 30, 1);
--grey-9: rgba(0, 0, 0, 1);
--danger-1: rgba(250, 232, 222, 1);
--danger-2: rgba(245, 204, 190, 1);
--danger-3: rgba(238, 170, 155, 1);
--danger-4: rgba(230, 137, 130, 1);
--danger-5: rgba(221, 95, 95, 1);
--danger-6: rgba(189, 72, 82, 1);
--danger-7: rgba(158, 53, 72, 1);
--danger-8: rgba(127, 37, 61, 1);
--danger-9: rgba(104, 26, 54, 1);
--color-orange: rgba(254, 94, 0, 1);
--color-grey: rgba(108, 122, 135, 1);
--color-green: rgba(79, 174, 128, 1);
--color-blue: rgba(9, 197, 244, 1);
--color-yellow: rgba(255, 220, 46, 1);
--color-pink: rgba(255, 94, 102, 1);
--color-purple: rgba(151, 71, 255, 1);
}
body > div {
flex: 1 0 auto;
body.show_menu {
max-height: 100vh;
overflow: hidden;
}
.container {
max-width: 800px;
p,
a,
ul li,
ol li,
pre {
font-size: 1.5rem;
color: var(--second-7);
}
.container.large {
pre {
overflow: auto;
background-color: var(--second-8);
border-radius: 1rem;
padding: 1rem;
margin-bottom: 1rem;
}
pre code {
color: var(--grey-1);
font-size: 1.3rem;
}
ul li,
ol li {
margin-left: 2rem;
list-style-type: disc;
}
ol li {
list-style-type: decimal;
}
ul li ul li {
list-style-type: circle;
}
ul li ul li ul li {
list-style-type: square;
}
p {
margin-bottom: 1rem;
}
p b {
font-weight: bold;
}
p i {
vertical-align: middle;
margin-right: 1rem;
}
code {
color: var(--second-7);
font-family: monospace;
}
p>a:not(.btn),
table tr td a:hover,
label>a {
text-decoration: underline;
color: var(--main-5);
}
content {
display: flex;
box-sizing: border-box;
gap: 3rem;
min-height: calc(100vh - 11rem);
}
body.welcome content {
min-height: calc(100vh - 17rem);
align-items: center;
margin: 0 auto;
max-width: 1024px;
}
body > footer::before {
background-color: white;
hr {
border-bottom: 1px solid var(--grey-3);
margin: 2rem 0;
}
hr.clear {
clear: both;
border-bottom: none;
}
a.permalink {
margin-left: 1rem;
}
/** Tabs **/
ul.tabs {
display: flex;
flex-direction: row;
border-bottom: 2px solid var(--grey-2);
margin-bottom: 2rem;
width: 100%;
}
ul.tabs li {
font-weight: 800;
color: var(--main-6);
border-bottom: 2px solid transparent;
list-style-type: none;
line-height: 4rem;
font-size: 3rem;
margin: 0 1rem;
margin-bottom: -2px;
opacity: 0.5;
}
ul.tabs li a {
display: block;
}
ul.tabs li.current,
ul.tabs li:hover {
opacity: 1;
}
ul.tabs li:first-child {
margin-left: 0;
}
ul.tabs li:last-child {
margin-right: 0;
}
ul.tabs li.current {
border-color: var(--main-5);
}
/** Header **/
header nav {
padding: 3rem 1rem;
display: flex;
min-height: 6rem;
}
header nav a {
display: flex;
align-items: center;
padding: 0 4rem;
line-height: 4rem;
color: var(--second-5);
}
header nav a i {
margin-right: 1rem;
font-size: 2.5rem;
}
@media screen and (max-width: 800px) {
header nav {
padding: 1rem;
}
header nav a {
padding: 1rem;
}
header nav a i {
margin-right: 0;
}
}
header nav a#logo {
font-weight: 700;
padding-left: 2rem;
}
header nav a#menu {
color: var(--main-5);
}
header nav a#menu:after {
display: block;
font-family: 'Material Icons Outlined';
content: "\e5d2";
font-size: 3rem;
}
body.show_menu header nav a#menu:after {font-family: 'Material Icons'
header nav a#logo {
position: absolute;
left: calc(50% - 1.5rem);
top: 1.5rem;
padding: 0;
}
}
header nav a#logo::before {
content: '';
width: 3rem;
height: 3rem;
padding: 1rem;
background-image: url('../img/logo.svg');
background-color: var(--main-5);
background-size: 3rem;
background-position: center;
background-repeat: no-repeat;
display: block;
border-radius: 1rem;
box-shadow: 0 0 2rem rgba(0, 0, 0, 0.2);
margin-right: 2rem;
}
header nav a.oppose {
margin-left: auto;
}
header nav a.oppose ~ a.oppose {
margin-left: 0;
}
/** Section **/
content section {
margin: 0 auto;
max-width: 1024px;
padding: 1rem;
box-sizing: border-box;
}
content section.grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1rem;
}
@media screen and (max-width: 800px) {
content section.grid {
display: block;
}
}
content section.grid header,
content section.grid .large {
grid-column: span 2;
}
content section header {
display: flex;
gap: 1rem;
align-items: center;
margin-bottom: 3rem;
}
content section header p {
margin-bottom: 0;
}
content section header form {
display: inline-block;
}
content section header > *.oppose {
margin-left: auto;
}
content nav + section {
min-width: calc(80% - 20rem);
margin-bottom: 4rem;
}
/** Sidenav **/
content > nav {
background-color: var(--main-5);
width: 20rem;
margin-left: 0;
padding: 2rem;
border-radius: 0 3rem 0 0;
padding-bottom: 10rem;
padding-top: 4rem;
background-size: auto 10rem;
background-position: bottom center;
background-repeat: repeat-x;
background-image: url('../img/footer.svg');
z-index: 1;
}
content > nav a {
color: white;
font-weight: 600;
font-size: 1.75rem;
display: flex;
align-items: center;
line-height: 5rem;
margin: 1rem 0;
margin-left: 2rem;
padding-right: 2rem;
position: relative;
white-space: nowrap;
}
content > nav a.current {
background-color: white;
border-radius: 4rem;
color: var(--main-5);
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.2);
}
content > nav a.current:after {
content: '';
display: block;
width: 1rem;
height: 1rem;
background-color: white;
border-radius: 1rem;
position: absolute;
left: -2rem;
top: calc(50% - 0.5rem);
box-shadow: 0 0 1rem rgba(0, 0, 0, 0.2);
}
content > nav a i {
margin: 0 1rem;
margin-left: 2rem;
font-size: 2rem;
}
@media screen and (max-width: 800px) {
content > nav {
width: 100%;
position: absolute;
min-height: 100vh;
max-height: 100%;
overflow-y: scroll;
box-sizing: border-box;
border-radius: 0;
padding-top: 2rem;
transition: transform 0.5s ease-in-out;
transform: translateX(-100%);
}
content > nav a {
margin-left: 0;
}
content > nav a.current:after {
display: none;
}
body.show_menu content > nav {
transform: translateX(0);
}
}
/** Footer **/
body.welcome::after {
background-position: bottom center;
background-repeat: repeat-x;
background-image: url('../img/footer.svg');
display: block;
height: 10rem;
width: 100%;
background-size: 50rem;
content: '';
background-image: url('../img/footer.svg');
height: 9rem;
}
.page-link,
.page-link:hover,
h1, h2, h3, a, label {
color: #ff733b;
/** Titles **/
h1 {
font-size: 3.5rem;
line-height: 4rem;
font-weight: 800;
color: var(--second-6);
display: flex;
align-items: center;
margin-right: 1rem;
}
body > footer a,
nav ul li a {
h1 i {
font-size: 3rem;
margin-right: 1rem;
}
h2 {
font-size: 2.25rem;
font-weight: 800;
padding: 1rem 0;
color: var(--second-7);
}
h2 i {
font-size: 2rem;
margin-right: 1rem;
}
h3 {
font-size: 1.75rem;
color: var(--second-6);
padding: 0.5rem 0;
font-weight: bold;
}
h3 i {
line-height: 2rem;
margin-right: 1rem;
vertical-align: middle;
}
h4 {
font-size: 1.6rem;
color: var(--second-9);
padding: 0.5rem 0;
}
p + h1, p + h2, p + h3, p + h4,
ul + h1, ul + h2, ul + h3, ul + h4, h3 + p {
margin-top: 1rem;
}
.line {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/** Badge **/
.badge {
background-color: var(--grey-4);
color: white;
opacity: 0.8;
border-radius: 0.5rem;
font-weight: 700;
line-height: 2rem;
font-size: 1.25rem;
padding: 0.25rem 1.25rem;
}
nav ul li a:hover,
nav ul li.active a {
color: white;
opacity: 1;
.badge.badge-info {
background-color: var(--color-blue);
}
input.form-control {
border-color: #9ec6dc;
.badge.badge-success {
background-color: var(--color-green);
}
.permalink {
font-size: 0.75em;
padding-left: 0.5em;
opacity: 0.25;
.badge.badge-warning {
background-color: var(--color-yellow);
}
.permalink:hover {
opacity: 1;
/** Table **/
table {
border-collapse: collapse;
width: 100%;
}
@media screen and (min-width: 1025px) {
.table-of-contents {
width: 40%;
table tr td a {
display: block;
}
table tr td,
table tr th {
padding: 1rem;
font-size: 1.5rem;
}
table tr th {
padding: 0 1rem;
line-height: 4rem;
}
table tr td.line,
table tr th.line {
max-width: 100%;
}
table tr th,
table tr th a {
text-transform: uppercase;
font-weight: 600;
color: var(--second-4);
text-align: left;
}
table tr th a i {
font-size: 2.5rem;
vertical-align: middle;
}
table thead {
border-bottom: 1px solid var(--second-4);
}
table tr:nth-child(2n) {
background-color: var(--grey-1);
}
table tr.empty {
background-color: var(--grey-2);
text-align: center;
color: var(--second-4);
}
table tr.empty td {
font-size: 2rem;
padding-bottom: 9rem;
}
table tr.empty td:before {
content: '\e5c9';
font-family: 'Material Icons Outlined';
font-size: 8rem;
color: var(--second-4);
display: block;
text-align: center;
margin: 12rem;
margin-bottom: 1rem;
line-height: 8rem;
}
/* Display/hide */
.on_mobile {
display: none !important;
}
.on_mobile_after:after {
display: none !important;
}
@media screen and (max-width: 800px) {
.on_mobile,
.on_mobile_after:after {
display: inherit !important;
}
.on_mobile.material-icons-outlined {
display: inline !important;
}
.on_desktop {
display: none !important;
}
}
.table-of-contents ul {
padding-left: 1rem;
/** Chips **/
.chip {
display: inline-block;
line-height: 2.5rem;
padding: 0 1rem;
}
.table-of-contents p {
margin-bottom: 0;
.chip i {
margin: 0;
}
.btn {
border: 1px solid #ff733b;
background-color: transparent;
color: #ff733b;
border-radius: 10rem;
text-transform: uppercase;
font-size: 0.8rem;
line-height: 2.25rem;
padding: 0 1.5rem;
.chip.selected {
font-weight: bold;
}
.btn.btn-sm {
padding: 0 0.75rem;
line-height: 1.75rem;
/** Pagination **/
ul.pagination {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin: 1rem 0;
}
.btn.btn-centered {
ul.pagination li {
display: block;
margin: 1rem auto;
}
.btn:hover,
.btn:not(.disabled):not(:disabled):active,
.btn:not(.disabled):not(:disabled):focus {
background-color: black;
color: white;
border-color: black;
}
body > header nav {
background-color: #f44a26;
}
.page-item.active .page-link,
body > footer {
border-color: #ff733b;
background-color: #ff733b;
}
body > footer {
color: white;
padding-bottom: 1rem;
ul.pagination li .page-link {
font-size: 1.6rem;
padding: 0.5rem;
line-height: 2rem;
border-radius: 2rem;
margin: 0 0.5rem;
text-align: center;
min-width: 2rem;
display: block;
border: 1px solid transparent;
}
body > header::after {
background-position: top center;
margin-bottom: -4.5rem;
ul.pagination li:not(.disabled).active .page-link {
color: white;
background-color: var(--main-5);
}
ul.pagination li:not(.disabled) .page-link {
color: var(--main-5);
}
ul.pagination li:not(.disabled):not(.active) .page-link:hover {
background-color: var(--main-1);
}
ul.pagination li:not(.disabled) .page-link:hover {
border-color: var(--main-5);
}
/** List Toggle */
select.list_toggle {
display: none;
}
/** Specific elements */
.table-of-contents {
max-width: 40%;
float: right;
}
.card {
background-color: var(--grey-1);
border-radius: 1rem;
padding: 1rem;
margin-bottom: 1rem;
overflow: hidden;
}
.disabled {
opacity: 0.5;
pointer-events: none;
}
#chart {
min-height: 80vh;
}
/** Breadcrumb **/
.breadcrumb {
margin-bottom: 2rem;
}
.breadcrumb li {
display: inline-block;
font-size: 1.5rem;
line-height: 2rem;
margin-left: 0;
}
.breadcrumb li a {
color: var(--main-5);
}
.breadcrumb li.active {
color: var(--grey-5);
}
.breadcrumb li + li:before {
content: ">";
margin: 0 1rem;
font-size: 1rem;
line-height: 2rem;
display: inline-block;
}
/* Steps */
ol.steps {
counter-reset: css-counter 0;
padding-top: 6.5rem;
}
ol.steps li {
counter-increment: css-counter 1;
display: inline-block;
position: relative;
font-weight: 600;
color: var(--grey-5);
}
ol.steps li + li {
margin-left: 9rem;
}
ol.steps li + li:after {
display: block;
border-top: 1px solid var(--grey-3);
content: "";
width: 7rem;
position: absolute;
top: -3rem;
left: -8rem;
}
ol.steps li:before {
content: counter(css-counter);
display: block;
font-size: 2rem;
font-weight: 300;
border-radius: 3rem;
line-height: 5rem;
width: 5rem;
text-align: center;
border: 1px solid var(--grey-3);
position: absolute;
left: calc(50% - 2.5rem - 1px);
bottom: 3rem;
}
ol.steps li.active:before {
background-color: var(--main-5);
border-color: var(--main-5);
color: white;
}

20
flexiapi/public/scripts/chart.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -8,17 +8,14 @@
<title>{{ config('app.name') }}</title>
<script src="{{ asset('scripts/utils.js') }}""></script>
<link rel="stylesheet" type="text/css" href="{{ asset('css/far.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('css/form.css') }}">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.0.0"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('css/style.css') }}">
@if (config('instance.custom_theme') & file_exists(public_path('css/' . config('app.env') . '.style.css')))
<link rel="stylesheet" type="text/css" href="{{ asset('css/' . config('app.env') . '.style.css') }}">
<!--<link rel="stylesheet" type="text/css" href="{{ asset('css/charts.css') }}" >-->
@endif
<script src="{{ asset('scripts/utils.js') }}""></script>
<script src="{{ asset('scripts/chart.js') }}"></script>
<script src="{{ asset('scripts/chartjs-plugin-datalabels@2.0.0') }}"></script>
</head>
<body class="@if (isset($welcome) && $welcome) welcome @endif">