feat: initial commit - Band Management application

This commit is contained in:
2026-01-06 03:11:46 +01:00
commit 34e12e00b3
24543 changed files with 3991790 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
// import { autocomplete } from '@algolia/autocomplete-js';
import { autocomplete, getAlgoliaResults } from '@algolia/autocomplete-js';
try {
window.autocomplete = autocomplete;
} catch (e) {}
export { autocomplete };

View File

@@ -0,0 +1,7 @@
import { AutoFocus } from '@form-validation/plugin-auto-focus';
try {
FormValidation.plugins.AutoFocus = AutoFocus;
} catch (e) {}
export { AutoFocus };

View File

@@ -0,0 +1,7 @@
import { Bootstrap5 } from '@form-validation/plugin-bootstrap5';
try {
FormValidation.plugins.Bootstrap5 = Bootstrap5;
} catch (e) {}
export { Bootstrap5 };

View File

@@ -0,0 +1,4 @@
@import "@form-validation/core/lib/styles/index";
@import "@form-validation/plugin-framework/lib/styles/index";
@import "@form-validation/plugin-message/lib/styles/index";
@import "@form-validation/plugin-bootstrap5/lib/styles/index";

View File

@@ -0,0 +1,8 @@
import FormValidation from '@form-validation/bundle/popular'
try {
window.FormValidation = FormValidation;
} catch (e) {}
export { FormValidation };

View File

@@ -0,0 +1,414 @@
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0);
transform: rotate(0);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes burst {
0% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
}
90% {
-webkit-transform: scale(1.5);
transform: scale(1.5);
opacity: 0;
}
}
@keyframes burst {
0% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
}
90% {
-webkit-transform: scale(1.5);
transform: scale(1.5);
opacity: 0;
}
}
@-webkit-keyframes flashing {
0% {
opacity: 1;
}
45% {
opacity: 0;
}
90% {
opacity: 1;
}
}
@keyframes flashing {
0% {
opacity: 1;
}
45% {
opacity: 0;
}
90% {
opacity: 1;
}
}
@-webkit-keyframes fade-left {
0% {
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
75% {
-webkit-transform: translateX(-20px);
transform: translateX(-20px);
opacity: 0;
}
}
@keyframes fade-left {
0% {
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
75% {
-webkit-transform: translateX(-20px);
transform: translateX(-20px);
opacity: 0;
}
}
@-webkit-keyframes fade-right {
0% {
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
75% {
-webkit-transform: translateX(20px);
transform: translateX(20px);
opacity: 0;
}
}
@keyframes fade-right {
0% {
-webkit-transform: translateX(0);
transform: translateX(0);
opacity: 1;
}
75% {
-webkit-transform: translateX(20px);
transform: translateX(20px);
opacity: 0;
}
}
@-webkit-keyframes fade-up {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1;
}
75% {
-webkit-transform: translateY(-20px);
transform: translateY(-20px);
opacity: 0;
}
}
@keyframes fade-up {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1;
}
75% {
-webkit-transform: translateY(-20px);
transform: translateY(-20px);
opacity: 0;
}
}
@-webkit-keyframes fade-down {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1;
}
75% {
-webkit-transform: translateY(20px);
transform: translateY(20px);
opacity: 0;
}
}
@keyframes fade-down {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1;
}
75% {
-webkit-transform: translateY(20px);
transform: translateY(20px);
opacity: 0;
}
}
@-webkit-keyframes tada {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
10%,
20% {
-webkit-transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
}
30%,
50%,
70%,
90% {
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
}
40%,
60%,
80% {
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg);
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg);
}
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
}
@keyframes tada {
from {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
10%,
20% {
-webkit-transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
}
30%,
50%,
70%,
90% {
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
}
40%,
60%,
80% {
-webkit-transform: rotate3d(0, 0, 1, -10deg);
transform: rotate3d(0, 0, 1, -10deg);
}
to {
-webkit-transform: scale3d(1, 1, 1);
transform: scale3d(1, 1, 1);
}
}
.ti-spin {
-webkit-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
}
.ti-spin-hover:hover {
-webkit-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
}
.ti-tada {
-webkit-animation: tada 1.5s ease infinite;
animation: tada 1.5s ease infinite;
}
.ti-tada-hover:hover {
-webkit-animation: tada 1.5s ease infinite;
animation: tada 1.5s ease infinite;
}
.ti-flashing {
-webkit-animation: flashing 1.5s infinite linear;
animation: flashing 1.5s infinite linear;
}
.ti-flashing-hover:hover {
-webkit-animation: flashing 1.5s infinite linear;
animation: flashing 1.5s infinite linear;
}
.ti-burst {
-webkit-animation: burst 1.5s infinite linear;
animation: burst 1.5s infinite linear;
}
.ti-burst-hover:hover {
-webkit-animation: burst 1.5s infinite linear;
animation: burst 1.5s infinite linear;
}
.ti-fade-up {
-webkit-animation: fade-up 1.5s infinite linear;
animation: fade-up 1.5s infinite linear;
}
.ti-fade-up-hover:hover {
-webkit-animation: fade-up 1.5s infinite linear;
animation: fade-up 1.5s infinite linear;
}
.ti-fade-down {
-webkit-animation: fade-down 1.5s infinite linear;
animation: fade-down 1.5s infinite linear;
}
.ti-fade-down-hover:hover {
-webkit-animation: fade-down 1.5s infinite linear;
animation: fade-down 1.5s infinite linear;
}
.ti-fade-left {
-webkit-animation: fade-left 1.5s infinite linear;
animation: fade-left 1.5s infinite linear;
}
.ti-fade-left-hover:hover {
-webkit-animation: fade-left 1.5s infinite linear;
animation: fade-left 1.5s infinite linear;
}
.ti-fade-right {
-webkit-animation: fade-right 1.5s infinite linear;
animation: fade-right 1.5s infinite linear;
}
.ti-fade-right-hover:hover {
-webkit-animation: fade-right 1.5s infinite linear;
animation: fade-right 1.5s infinite linear;
}
.ti-xs {
font-size: 1rem !important;
}
.ti-sm {
font-size: 1.125rem !important;
}
.ti-md {
font-size: 1.375rem !important;
}
.ti-lg {
font-size: 1.5rem !important;
}
.ti-xl {
font-size: 2.25rem !important;
}
.ti-10px {
&,
&:before {
font-size: 10px;
}
}
.ti-12px {
&,
&:before {
font-size: 12px;
}
}
.ti-14px {
&,
&:before {
font-size: 14px;
}
}
.ti-16px {
&,
&:before {
font-size: 16px;
}
}
.ti-18px {
&,
&:before {
font-size: 18px;
}
}
.ti-20px {
&,
&:before {
font-size: 20px;
}
}
.ti-22px {
&,
&:before {
font-size: 22px;
}
}
.ti-24px {
&,
&:before {
font-size: 24px;
}
}
.ti-26px {
&,
&:before {
font-size: 26px;
}
}
.ti-28px {
&,
&:before {
font-size: 28px;
}
}
.ti-30px {
&,
&:before {
font-size: 30px;
}
}
.ti-32px {
&,
&:before {
font-size: 32px;
}
}
.ti-36px {
&,
&:before {
font-size: 36px;
}
}
.ti-40px {
&,
&:before {
font-size: 40px;
}
}
.ti-42px {
&,
&:before {
font-size: 42px;
}
}
.ti-48px {
&,
&:before {
font-size: 48px;
}
}

View File

@@ -0,0 +1,7 @@
import AOS from 'aos/dist/aos';
try {
window.AOS = AOS;
} catch (e) {}
export { AOS };

View File

@@ -0,0 +1,89 @@
/**
* Apex Charts
*/
@import "../../scss/_bootstrap-extended/include";
@import "apexcharts/dist/apexcharts";
.apexcharts-canvas {
.apexcharts-tooltip {
box-shadow: var(--#{$prefix}box-shadow);
&.apexcharts-theme-light {
border-color: var(--#{$prefix}border-color);
background: var(--#{$prefix}paper-bg);
color: var(--#{$prefix}heading-color);
.apexcharts-tooltip-title {
background: var(--#{$prefix}paper-bg);
border-block-end-color: var(--#{$prefix}border-color);
font-family: $font-family-base !important;
font-weight: $headings-font-weight;
}
}
&.apexcharts-theme-dark {
background: transparent;
}
}
.apexcharts-xaxistooltip,
.apexcharts-yaxistooltip {
border-color: var(--#{$prefix}border-color);
background: var(--#{$prefix}paper-bg);
color: var(--#{$prefix}heading-color);
&.apexcharts-xaxistooltip-bottom,
&.apexcharts-yaxistooltip-bottom {
&::after {
border-block-end-color: var(--#{$prefix}paper-bg);
}
&::before {
border-block-end-color: var(--#{$prefix}border-color);
}
}
&.apexcharts-xaxistooltip-left,
&.apexcharts-yaxistooltip-left {
&::after {
border-inline-start-color: var(--#{$prefix}paper-bg);
}
&::before {
border-inline-start-color: var(--#{$prefix}border-color);
}
}
&.apexcharts-xaxistooltip-right,
&.apexcharts-yaxistooltip-right {
&::after {
border-inline-end-color: var(--#{$prefix}paper-bg);
}
&::before {
border-inline-end-color: var(--#{$prefix}border-color);
}
}
&.apexcharts-xaxistooltip-top,
&.apexcharts-yaxistooltip-top {
&::after {
border-block-start-color: var(--#{$prefix}paper-bg);
}
&::before {
border-block-start-color: var(--#{$prefix}border-color);
}
}
}
.apexcharts-tooltip-text {
font-family: $font-family-base !important;
}
.apexcharts-legend-marker,
.apexcharts-tooltip-marker {
margin-inline: 0 .1875rem;
}
}
:dir(rtl) {
.apexcharts-canvas {
.apexcharts-legend {
direction: rtl !important;
}
}
}

View File

@@ -0,0 +1,7 @@
import ApexCharts from 'apexcharts';
try {
window.ApexCharts = ApexCharts;
} catch (e) {}
export { ApexCharts };

View File

@@ -0,0 +1,7 @@
import Bloodhound from 'typeahead.js/dist/bloodhound';
try {
window.Bloodhound = Bloodhound;
} catch (e) {}
export { Bloodhound };

View File

@@ -0,0 +1,18 @@
import 'bootstrap-daterangepicker/daterangepicker';
// Patch detect when weeks are shown
const fnDaterangepicker = $.fn.daterangepicker;
$.fn.daterangepicker = function (options, callback) {
fnDaterangepicker.call(this, options, callback);
if (options && (options.showWeekNumbers || options.showISOWeekNumbers)) {
this.each(function () {
const instance = $(this).data('daterangepicker');
if (instance && instance.container) instance.container.addClass('with-week-numbers');
});
}
return this;
};

View File

@@ -0,0 +1,352 @@
@import "../../scss/_bootstrap-extended/include";
@import "../../scss/_components/include";
.daterangepicker {
position: absolute;
z-index: $picker-zindex;
display: none;
background-color: $picker-bg;
box-shadow: $picker-box-shadow;
margin-block-start: $picker-spacer;
@include border-radius($picker-border-radius);
.calendar-table{
/* prev & next arrow wrapper styles */
.next,
.prev {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
background-color: $picker-arrow-bg;
block-size: $picker-arrow-wrapper-size;
inline-size: $picker-arrow-wrapper-size;
inset-block-start: .65rem;
min-inline-size: unset;
@include border-radius($picker-cell-border-radius);
}
/* prev & next arrow default styles with border */
.next span,
.prev span {
display: inline-block;
border-width: 0 1.9px 1.9px 0;
border-style: solid;
border-color: $picker-arrow-color;
block-size: $picker-arrow-size;
inline-size: $picker-arrow-size;
@include border-radius(0);
}
.prev span {
margin-inline-end: -$picker-arrow-size * .5;
transform: rotate(135deg);
:dir(rtl) & {
transform: rotate(-45deg);
}
}
.next span {
margin-inline-start: -$picker-arrow-size * .5;
transform: rotate(-45deg);
:dir(rtl) & {
margin-inline: 0;
transform: rotate(135deg);
}
}
/* picker table styles */
table {
border: 0;
margin: 0;
border-collapse: collapse;
border-spacing: 0;
inline-size: 100%;
thead {
tr:first-child {
position: relative;
block-size: $picker-header-size;
}
tr:last-child th {
color: $picker-header-color;
font-size: $font-size-sm;
font-weight: $font-weight-medium;
@include border-radius(0);
}
th select{
background-color: transparent;
}
}
th.month {
inline-size: auto;
}
td {
inline-size: $picker-cell-size;
@include border-radius($picker-cell-border-radius);
&.start-date:not(.end-date) {
@include border-end-radius(0);
}
&.end-date:not(.start-date) {
@include border-start-radius(0);
}
&.start-date:not(.end-date, .off),
&.end-date:not(.start-date, .off) {
border: 0;
background-color: $picker-cell-active-bg;
color: $picker-cell-active-color;
&:hover {
background-color: $picker-cell-active-bg;
}
}
&.off{
color: $picker-disabled-color;
}
/* week header styles */
&.week{
color: $picker-header-color;
font-weight: $font-weight-normal;
}
/* active date styles */
&.active.today.start-date:not(.off),
&.active.today.end-date:not(.off),
&.active:not(.off){
background: $picker-cell-active-bg;
box-shadow: $picker-cell-active-shadow;
color: $picker-cell-active-color;
}
/* today date styles */
&.today,
&.today.active,
&.today:hover {
background: $picker-cell-today-bg;
color: $picker-cell-today-color;
}
&.in-range:not(.start-date, .end-date) {
@include border-radius(0);
box-shadow: none;
}
/* hover & not in range date styles */
&.in-range:not(.start-date, .end-date, .off) {
&,
&:hover {
background-color: $picker-range-active-bg;
color: $picker-range-active-color;
}
}
}
th {
block-size: $picker-cell-size + .5rem;
}
th,
td {
block-size: $picker-cell-size;
cursor: pointer;
line-height: calc(#{$picker-cell-size} - 2px);
min-inline-size: $picker-cell-size;
text-align: center;
vertical-align: middle;
white-space: nowrap;
}
td.available:not(.active, .in-range):hover {
background-color: $picker-cell-hover-bg;
}
td.disabled,
option.disabled {
color: $picker-disabled-color;
cursor: not-allowed;
text-decoration: line-through;
}
}
}
.input-mini.active {
border-color: $picker-cell-active-bg;
}
/* dual date range picker styles */
.drp-calendar:not(.single){
&.left{
.prev{
inset-inline-start: .625rem;
}
}
&.right{
.next{
inset-inline-end: .625rem;
}
}
}
.drp-calendar.single{
.prev{
inset-inline-start: .4rem;
}
}
&:not(.single) {
/* responsive above md */
@include media-breakpoint-up(md) {
.drp-calendar {
float: inline-start;
}
}
.drp-selected {
display: inline-block;
padding: 0;
inline-size: auto;
}
}
/* selected date range styles */
.drp-selected{
display: block;
font-size: $font-size-sm;
inline-size: 100%;
padding-block-end: $picker-padding;
}
&.auto-apply .drp-buttons {
display: none;
}
&.show-calendar .drp-calendar,
&.show-calendar .drp-buttons {
display: block;
}
.drp-calendar {
display: none;
padding: $picker-padding;
&.single .calendar-table {
border: 0;
}
}
&.single {
.drp-selected {
display: none;
}
.daterangepicker .ranges,
.drp-calendar {
float: none;
}
}
/* select dropdown styles */
select {
&.monthselect,
&.yearselect {
padding: 1px;
border: 0;
margin: 0;
block-size: auto;
cursor: default;
}
&:focus-visible {
outline: 0;
}
&.hourselect,
&.minuteselect,
&.secondselect,
&.ampmselect {
padding: 2px;
border: 1px solid transparent;
background: $picker-select-bg;
color: $picker-color;
font-size: $font-size-sm;
inline-size: $picker-select-width;
margin-block: 0;
margin-inline: auto;
outline: 0;
@include border-radius($picker-select-timer-radius);
option {
background: $picker-bg;
}
}
&.monthselect {
margin-inline-end: 4%;
}
&.yearselect {
inline-size: 40%;
}
}
/* time picker styles */
.calendar-time {
position: relative;
line-height: 30px;
margin-block: 0;
margin-inline: auto;
text-align: center;
select.disabled {
color: $picker-disabled-color;
cursor: not-allowed;
}
}
.drp-buttons {
display: none;
padding: $picker-padding;
clear: both;
text-align: end;
vertical-align: middle;
.btn {
margin-inline-start: $picker-padding * 1.2;
}
}
/* ranges styles */
.ranges {
margin: 0;
float: inline-start;
text-align: start;
ul {
padding: .5rem;
inline-size: 100%;
list-style: none;
margin-block: 0;
margin-inline: auto;
li{
@include border-radius($picker-border-radius);
cursor: pointer;
padding-block: $dropdown-item-padding-y;
padding-inline: $dropdown-item-padding-x;
&:not(:first-child) {
margin-block-start: .125rem;
}
&:hover {
background-color: $picker-cell-hover-bg;
}
&.active {
background-color: $picker-cell-active-bg;
color: $picker-cell-active-color;
}
}
}
}
&.show-calendar .ranges {
&:empty {
display: none;
}
}
}

View File

@@ -0,0 +1 @@
import 'bootstrap-select/js/bootstrap-select';

View File

@@ -0,0 +1,170 @@
// Bootstrap Select
// *******************************************************************************
@import "../../scss/_bootstrap-extended/include";
@import "bootstrap-select/sass/bootstrap-select";
/* Common Styles */
.bootstrap-select *,
.bootstrap-select .dropdown-toggle:focus {
outline: 0 !important;
}
.bootstrap-select {
--#{$prefix}bootstrap-select-arrow-position: 23px;
.bs-searchbox,
.bs-actionsbox,
.bs-donebutton {
padding-block: 0 .5rem;
padding-inline: 0;
}
> .dropdown-toggle {
&.bs-placeholder {
&,
&:hover,
&:focus,
&:active {
color: $input-placeholder-color;
}
}
}
.dropdown-toggle {
border: $input-border-width solid $input-border-color;
@include border-radius($input-border-radius);
color: $input-color;
padding-block: calc($input-padding-y - $input-border-width);
padding-inline: $input-padding-x;
transition: none;
.filter-option {
float: inline-start;
inset-inline: 0 auto;
text-align: start;
}
&::after {
position: absolute;
margin: 0;
inset-block-start: 50%;
inset-inline-end: var(--#{$prefix}bootstrap-select-arrow-position);
transform: rotate(45deg) translateY(-100%);
:dir(rtl) & {
transform: rotate(-45deg) translateY(-100%);
}
}
&.show,
&:focus,
&:active {
border-width: $input-focus-border-width;
border-color: $input-focus-border-color;
box-shadow: $input-focus-box-shadow;
padding-block: calc($input-padding-y - $input-focus-border-width);
padding-inline: calc($input-padding-x - $input-border-width);
&::after {
inset-inline-end: calc(var(--#{$prefix}bootstrap-select-arrow-position) - $input-border-width);
}
}
.filter-option-inner-inner {
float: inline-start;
line-height: $input-line-height;
}
}
.dropdown-menu li small,
.filter-option small {
position: relative;
float: inline-end;
inset-block-start: 2px;
padding-inline: .5em 0;
}
.dropdown-menu {
.notify {
border-color: color-mix(in sRGB, var(--#{$prefix}base-color) 16%, var(--#{$prefix}paper-bg));
background: color-mix(in sRGB, var(--#{$prefix}base-color) 6%, var(--#{$prefix}paper-bg));
}
/* For header dropdown close btn */
.popover-header {
display: flex;
flex-direction: row-reverse;
align-items: center;
justify-content: space-between;
margin-inline: var(--#{$prefix}dropdown-item-padding-x);
button {
padding: 0;
border: none;
background: transparent;
color: var(--#{$prefix}body-color);
font-size: $h4-font-size;
}
}
a[aria-selected="true"] {
background: $component-active-bg;
color: var(--#{$prefix}primary-contrast);
}
li.active small,
li:active small {
color: var(--#{$prefix}primary-contrast) !important;
}
.dropdown-item.selected span::before,
.dropdown-item:active,
.dropdown-toggle.show {
background: $component-active-bg;
color: var(--#{$prefix}primary-contrast);
}
}
.btn {
&:disabled,
&.disabled {
color: $input-disabled-color;
}
&:hover {
transform: none;
}
}
.is-invalid {
~ .dropdown-toggle {
&::after {
inset-inline-end: calc(var(--#{$prefix}bootstrap-select-arrow-position) - $input-border-width);
}
}
}
&.dropup {
--#{$prefix}bootstrap-select-arrow-position: 14px;
.dropdown-toggle {
&::after {
transform: rotate(317deg) translateY(-30%);
:dir(rtl) & {
transform: rotate(-317deg) translateY(-30%);
}
}
}
}
/* Menu Position */
&.show-tick {
.dropdown-menu {
li {
a {
position: relative;
span.text {
margin-inline: 0 2.125rem;
}
}
}
.selected span.check-mark {
inset-block-start: 50%;
inset-inline: auto 1rem;
inset-inline-end: 1rem;
transform: translateY(-50%);
}
}
}
&:not(.input-group-btn),
&[class*="col-"] {
display: block;
}
}
html[class] .bootstrap-select.form-select {
padding: 0;
border: 0;
margin: 0;
background: none;
}

View File

@@ -0,0 +1,37 @@
import Stepper from 'bs-stepper/dist/js/bs-stepper';
const bsStepper = document.querySelectorAll('.bs-stepper');
// Adds crossed class
bsStepper.forEach(el => {
el.addEventListener('show.bs-stepper', function (event) {
var index = event.detail.indexStep;
var numberOfSteps = el.querySelectorAll('.line').length;
var line = el.querySelectorAll('.step');
// The first for loop is for increasing the steps,
// the second is for turning them off when going back
// and the third with the if statement because the last line
// can't seem to turn off when I press the first item. ¯\_(ツ)_/¯
for (let i = 0; i < index; i++) {
line[i].classList.add('crossed');
for (let j = index; j < numberOfSteps; j++) {
line[j].classList.remove('crossed');
}
}
if (event.detail.to == 0) {
for (let k = index; k < numberOfSteps; k++) {
line[k].classList.remove('crossed');
}
line[0].classList.remove('crossed');
}
});
});
try {
window.Stepper = Stepper;
} catch (e) {}
export { Stepper };

View File

@@ -0,0 +1,374 @@
@import "../../scss/_bootstrap-extended/include";
@import "bs-stepper/dist/css/bs-stepper";
$bs-stepper-header-padding-y: 1.5rem !default;
$bs-stepper-header-padding-x: $bs-stepper-header-padding-y !default;
$bs-stepper-content-padding-x: 1.5rem !default;
$bs-stepper-content-padding-y: $bs-stepper-content-padding-x !default;
$bd-stepper-circle-size: 2.375rem !default;
$bs-stepper-trigger-padding: 1.25rem !default;
$bs-stepper-trigger-padding-vertical: .6rem !default;
$bs-stepper-label-max-width: 224px !default;
$bs-stepper-svg-icon-height: 3.75rem !default;
$bs-stepper-svg-icon-width: 3.75rem !default;
$bs-stepper-icon-font-size: 1.6rem !default;
$bs-stepper-vertical-header-min-width: 18rem !default;
$bs-stepper-crossed-bg: var(--#{$prefix}primary-bg-subtle) !default;
$bs-stepper-active-bg: var(--#{$prefix}primary) !default;
$bs-stepper-active-color: var(--#{$prefix}primary-contrast) !default;
$bs-stepper-active-shadow: 0 .125rem .375rem 0 rgba(var(--#{$prefix}primary-rgb), .3) !default;
/* Default Styles */
.bs-stepper {
@include border-radius($border-radius);
background-color: var(--#{$prefix}paper-bg);
.line {
flex: 0;
margin: 0;
background-color: transparent;
min-block-size: auto;
min-inline-size: auto;
}
.bs-stepper-header {
border-block-end: 1px solid var(--#{$prefix}border-color);
padding-block: $bs-stepper-header-padding-y;
padding-inline: $bs-stepper-header-padding-x;
.line {
.icon-base {
:dir(rtl) &{
transform: rotate(180deg);
}
}
}
.step {
.step-trigger {
flex-wrap: nowrap;
padding: 0;
font-weight: $font-weight-medium;
gap: .5rem;
.bs-stepper-label {
display: inline-grid;
overflow: hidden;
margin: 0;
color: var(--#{$prefix}heading-color);
font-size: $font-size-base;
font-weight: $font-weight-medium;
line-height: $h6-line-height;
max-inline-size: $bs-stepper-label-max-width;
text-align: start;
text-overflow: ellipsis;
.bs-stepper-title {
color: var(--#{$prefix}heading-color);
font-weight: $font-weight-medium;
}
.bs-stepper-subtitle {
color: var(--#{$prefix}body-color);
font-size: $small-font-size;
font-weight: $font-weight-base;
}
}
&:hover {
background-color: transparent;
}
&:focus{
color: var(--#{$prefix}heading-color);
}
@include media-breakpoint-down(lg) {
padding-block: calc($bs-stepper-trigger-padding * .5);
padding-inline: 0;
}
}
&.active{
.bs-stepper-circle{
background-color: $bs-stepper-active-bg;
box-shadow: $bs-stepper-active-shadow;
color: $bs-stepper-active-color;
}
.bs-stepper-icon svg{
fill: $bs-stepper-active-bg;
}
.bs-stepper-icon i{
color: $bs-stepper-active-bg;
}
}
&:not(.active) {
.bs-stepper-circle {
background-color: rgba(var(--#{$prefix}base-color-rgb), .06);
color: var(--#{$prefix}heading-color);
}
}
&.crossed {
.step-trigger {
.bs-stepper-label .bs-stepper-subtitle,
.bs-stepper-title {
color: var(--#{$prefix}secondary-color);
}
.bs-stepper-circle {
background-color: $bs-stepper-crossed-bg;
color: $bs-stepper-active-bg;
}
/* stepper icons color */
.bs-stepper-icon svg {
fill: $bs-stepper-active-bg;
}
.bs-stepper-icon .icon-base {
color: $bs-stepper-active-bg;
}
}
+ .line {
.icon-base {
color: var(--#{$prefix}body-color);
}
}
}
/* stepper circle / pill styles */
.bs-stepper-circle {
display: flex;
align-items: center;
justify-content: center;
@include border-radius($border-radius);
block-size: $bd-stepper-circle-size;
font-size: $h5-font-size;
font-weight: $font-weight-medium;
inline-size: $bd-stepper-circle-size;
.icon-base {
font-size: $bd-stepper-circle-size - 1rem;
}
}
}
}
/* stepper content padding */
.bs-stepper-content {
padding-block: $bs-stepper-content-padding-y;
padding-inline: $bs-stepper-content-padding-x;
.btn-next,
.btn-prev {
.icon-base:not(.tabler-check) {
:dir(rtl) & {
transform: rotate(180deg);
}
}
}
}
&.vertical {
.bs-stepper-header {
border-block-end: none;
min-inline-size: $bs-stepper-vertical-header-min-width;
@include media-breakpoint-down(lg) {
border-block-end: 1px solid var(--#{$prefix}border-color);
}
.step {
.step-trigger {
padding-block: $bs-stepper-trigger-padding-vertical;
padding-inline: 0;
}
&:first-child {
.step-trigger {
padding-block-start: 0;
}
}
&:last-child {
.step-trigger {
padding-block-end: 0;
}
}
}
.line {
position: relative;
min-block-size: 1px;
}
}
.bs-stepper-content {
inline-size: 100%;
.content {
&:not(.active) {
display: none;
}
}
}
&.wizard-icons {
.step {
padding-block: .75rem;
padding-inline: 0;
text-align: center;
}
}
}
&.wizard-icons {
.bs-stepper-header {
justify-content: center;
.step {
.step-trigger {
flex-direction: column;
padding: $bs-stepper-trigger-padding;
gap: .5rem;
.bs-stepper-icon {
svg {
block-size: $bs-stepper-svg-icon-height;
fill: var(--#{$prefix}heading-color);
inline-size: $bs-stepper-svg-icon-width;
}
.icon-base {
fill: var(--#{$prefix}heading-color);
font-size: $bs-stepper-icon-font-size;
}
}
}
&.active{
.step-trigger{
.bs-stepper-icon svg{
fill: $bs-stepper-active-bg;
}
.bs-stepper-label,
.bs-stepper-icon .icon-base {
color: $bs-stepper-active-bg;
}
}
}
}
@include media-breakpoint-up(lg) {
justify-content: space-around;
gap: 1rem;
}
}
.step.crossed {
.step-trigger{
.bs-stepper-label {
color: $bs-stepper-active-bg;
}
.bs-stepper-icon svg {
fill: $bs-stepper-active-bg;
}
.bs-stepper-icon .icon-base {
color: $bs-stepper-active-bg;
}
}
& + {
.line {
.icon-base {
color: $bs-stepper-active-bg;
}
}
}
}
}
/* Remove borders from wizard modern */
&.wizard-modern {
background-color: transparent;
.bs-stepper-header {
border-block-end: none;
}
.bs-stepper-content {
@include border-radius($border-radius);
background-color: var(--#{$prefix}paper-bg);
box-shadow: $card-box-shadow;
}
}
&:not(.wizard-modern) {
box-shadow: $card-box-shadow;
}
&:not(.vertical):not(.wizard-icons) .bs-stepper-header {
@include media-breakpoint-up(lg) {
gap: 1.25rem;
}
}
}
/* Media Queries */
@include media-breakpoint-down(lg) {
.bs-stepper {
.bs-stepper-header {
flex-direction: column;
align-items: flex-start;
.step {
.step-trigger {
flex-direction: row;
.bs-stepper-label {
margin-inline-start: .35rem;
}
}
&:first-child {
.step-trigger {
padding-block-start: 0;
}
}
&:last-child {
.step-trigger {
padding-block-end: 0;
}
}
}
}
&.vertical {
flex-direction: column;
.bs-stepper-header {
align-items: flex-start;
}
&.wizard-icons {
.bs-stepper-header {
.line::before {
inset-inline-start: .75rem;
margin-inline-start: 0;
}
}
}
}
&.wizard-icons {
.bs-stepper-header {
.step .step-trigger {
flex-direction: row;
padding-inline-start: 0;
}
}
}
&:not(.vertical) {
.bs-stepper-header {
.line {
.icon-base {
display: none;
}
}
}
}
}
}
/* Styles for Modal example Create App wizard */
#wizard-create-app {
&.vertical {
.bs-stepper-header {
min-inline-size: $bs-stepper-vertical-header-min-width - 3;
}
}
}
@media (max-width: 520px) {
/* To set minus margin in mobile screen
as that affects border */
.bs-stepper-header {
margin: 0;
}
}

View File

@@ -0,0 +1,7 @@
import Chart from 'chart.js/auto';
try {
window.Chart = Chart;
} catch (e) {}
export { Chart };

View File

@@ -0,0 +1,23 @@
/**
* chartjs Charts
*/
@import "../../scss/_bootstrap-extended/include";
.custom-legend {
.custom-legend-ul {
display: flex;
cursor: pointer;
.custom-legend-li {
display: flex;
align-items: center;
font-size: $font-size-xs;
margin-inline-end: 1.25rem;
}
.legend-box {
@include border-radius($border-radius-pill);
block-size: .5rem;
inline-size: .5rem;
margin-inline-end: 5px;
}
}
}

View File

@@ -0,0 +1,19 @@
import {
formatCreditCard,
getCreditCardType,
formatDate,
formatTime,
formatNumeral,
formatGeneral,
registerCursorTracker
} from 'cleave-zen';
export {
formatCreditCard,
getCreditCardType,
formatDate,
formatTime,
formatNumeral,
formatGeneral,
registerCursorTracker
};

View File

@@ -0,0 +1,7 @@
import ClipboardJS from 'clipboard';
try {
window.ClipboardJS = ClipboardJS;
} catch (e) {}
export { ClipboardJS };

View File

@@ -0,0 +1,27 @@
// Core libraries
import JSZip from 'jszip';
import pdfMake from 'pdfmake/build/pdfmake';
import pdfFonts from 'pdfmake/build/vfs_fonts';
// DataTables libraries (with related plugins)
import DataTable from 'datatables.net-bs5';
import 'datatables.net-fixedcolumns-bs5';
import 'datatables.net-fixedheader-bs5';
import 'datatables.net-select-bs5';
import 'datatables.net-buttons';
import 'datatables.net-buttons-bs5';
import 'datatables.net-buttons/js/buttons.html5';
import 'datatables.net-buttons/js/buttons.print';
import 'datatables.net-responsive';
import 'datatables.net-responsive-bs5';
import 'datatables.net-rowgroup-bs5';
// Attach libraries to the window object (if needed globally)
try {
window.pdfMake = pdfMake;
window.pdfFonts = pdfFonts;
window.JSZip = JSZip;
} catch (e) {}
// Export the libraries/modules
export { DataTable, JSZip, pdfMake, pdfFonts };

View File

@@ -0,0 +1,295 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-bs5/css/dataTables.bootstrap5";
/* FIX: broken ui in tablet devices */
@media (hover: none) and (pointer: coarse) {
table.dataTable {
display: table;
overflow-x: auto;
}
}
/* Card header inside the datatable */
div.dt-container {
.card-header {
display: flex;
align-items: center;
justify-content: space-between;
}
.dt-buttons {
inline-size: auto;
.dt-button-down-arrow {
display: none;
}
@include media-breakpoint-down(md) {
&.btn-group {
display: block;
}
}
}
/* Remove left and right border from datatable with table-bordered class */
.table.table-bordered.dataTable {
&.dt-complex-header,
&.dt-column-search {
thead tr th {
border-width: $border-width;
&:first-child {
border-inline-start-width: 0;
}
&:last-child {
border-inline-end-width: 0;
}
}
}
th,
td {
&:last-child {
border-width: 0;
}
}
}
/* Responsive datatable in desktop screen */
@media screen and (width >= 1399.98px) {
table.table-responsive {
display: table;
}
}
div.dt-search {
input {
margin-inline: .5rem 0;
}
.form-control::-webkit-search-cancel-button {
margin-inline-start: .375rem;
}
}
div.dt-layout-end > *:not(:first-child) {
margin-inline: 0;
}
table.dataTable {
border-collapse: collapse;
inline-size: 100%;
margin-block: 0 $spacer;
/* Checkbox height & width for datatables checkboxes */
.form-check-input {
block-size: $form-datatables-check-input-size;
inline-size: $form-datatables-check-input-size;
}
thead {
> tr {
> th,
> td {
&.dt-orderable-asc,
&.dt-orderable-desc {
&:hover {
outline: none !important;
}
}
}
}
th {
/* Used while complex headers */
vertical-align: middle;
}
}
.dt-control.dt-orderable-none .dt-column-order::before {
opacity: 0;
}
td.dt-control::before {
border: 2px solid;
block-size: .55em;
border-block-start: 0;
border-inline-start: 0;
inline-size: .55em;
transform: rotate(-45deg);
:dir(rtl) & {
transform: rotate(-315deg);
}
}
tr.dt-hasChild td.dt-control::before {
border-block-start: 0;
border-inline-start: 0;
transform: rotate(45deg);
:dir(rtl) & {
transform: rotate(-45deg);
}
}
&.table tbody > tr {
&.selected,
& > .selected {
background-color: rgba(var(--#{$prefix}primary-rgb), .08);
> * {
box-shadow: none;
color: var(--#{$prefix}body-color);
}
a {
color: var(--#{$prefix}body-color);
}
}
}
}
div.dt-scroll-body {
border-block-end-width: 0;
}
@media screen and (width <= 575.98px) {
.card-header {
.dt-action-buttons {
padding-block-start: 1rem;
}
}
.dtr-bs-modal.modal {
.modal-body {
padding: 0;
.table {
margin-block-end: 0;
}
}
}
}
@media screen and (width <= 767.98px) {
div.dt-info {
padding-block: 0 $table-cell-padding-y;
}
}
div.dt-length,
div.dt-search {
margin-block: $spacer * 1.5;
}
div.dt-length select {
margin-inline: .5rem;
}
/* common style for light / dark */
div.dt-paging ul.pagination .page-link {
padding: $pagination-padding-y;
font-size: $font-size-base;
line-height: $pagination-line-height;
@include border-radius($border-radius);
}
@media screen and (width <= 575.98px) {
div.dt-paging ul.pagination .page-link {
font-size: $font-size-sm;
min-block-size:
calc(
#{"#{($font-size-sm * $pagination-line-height) + ($pagination-padding-y-sm * 2)} + calc(#{$pagination-border-width} * 2)"}
);
min-inline-size:
calc(
#{"#{($font-size-sm * $pagination-line-height) + ($pagination-padding-x-sm * 2.356)} + calc(#{$pagination-border-width} * 2)"}
);
padding-block: $pagination-padding-y-sm - .1055rem;
padding-inline: $pagination-padding-x-sm - .1055rem;
}
div.dt-paging ul.pagination {
.page-item {
.next,
.previous,
.first,
.last {
&.page-link {
padding: calc($pagination-padding-y-sm - .1055rem);
}
}
}
}
}
div.dt-info .select-info .select-item {
margin-inline: .5rem;
}
}
/* DataTable within card */
div.card-datatable {
padding-block-end: $card-spacer-x-sm;
div.dt-info {
color: var(--#{$prefix}secondary-color);
}
}
.table-bordered > :not(caption) > * > * {
border-width: 0;
}
/* overrides styles of library for rtl */
table.dataTable {
&,
thead,
tfoot {
th,
td {
&,
&.dt-type-numeric,
&.dt-type-date {
text-align: start;
}
&:first-child{
padding-inline: $card-spacer-x;
}
}
th:last-child{
padding-inline-end: $card-spacer-x-sm;
}
}
thead {
.dt-orderable-asc.dt-orderable-desc,
.dt-ordering-desc,
.dt-ordering-asc {
.dt-column-order {
inset-inline: auto 1em;
&::before,
&::after {
background-color: var(--#{$prefix}heading-color);
block-size: 1.125rem;
content: "";
inline-size: 1.125rem;
mask-repeat: no-repeat;
mask-size: 100% 100%;
visibility: hidden;
}
&::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='m6.293 13.293l1.414 1.414L12 10.414l4.293 4.293l1.414-1.414L12 7.586z'/%3E%3C/svg%3E");
}
&::after {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M16.293 9.293L12 13.586L7.707 9.293l-1.414 1.414L12 16.414l5.707-5.707z'/%3E%3C/svg%3E");
}
}
&:hover {
.dt-column-order {
&::before,
&::after {
visibility: visible;
}
}
}
}
}
}
/* text align styles in modal */
.modal.dtr-bs-modal .text-xxl-center {
text-align: start !important;
}
/* Dark theme */
@if $enable-dark-mode {
@include color-mode(dark) {
div.dt-container table.dataTable tr.dt-hasChild td.dt-control::before {
border-color: rgba(var(--#{$prefix}white-rgb), .5);
}
}
}

View File

@@ -0,0 +1,27 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-buttons-bs5/css/buttons.bootstrap5";
div.dt-container {
.dt-button-collection {
min-inline-size: 3.5rem;
}
div.dropdown-menu.dt-button-collection,
div.dt-button-collection .dt-button:not(.dt-btn-split-drop) {
min-inline-size: 8rem;
}
div.dropdown-menu.dt-button-collection .dt-button {
border-radius: $border-radius;
}
.dt-buttons {
&.btn-group {
.btn {
border-color: transparent;
}
&:not(.btn-group-vertical) > .btn-group:not(:last-child) > .btn,
&:not(.btn-group-vertical) > :not(.btn-check) + .btn {
@include border-radius($border-radius !important);
}
}
}
}

View File

@@ -0,0 +1,31 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-fixedcolumns-bs5/css/fixedColumns.bootstrap5";
div.dt-container {
div.dt-scroll-body thead tr {
border-block-end-width: 0;
border-block-start-width: 0;
}
table.dataTable {
thead,
tbody {
tr > .dtfc-fixed-left,
tr > .dtfc-fixed-right {
background-color: var(--#{$prefix}paper-bg);
}
}
thead th {
text-align: center;
}
&.dtfc-scrolling-left tr > .dtfc-fixed-left,
&.dtfc-scrolling-right tr > .dtfc-fixed-right {
&::after {
box-shadow: none;
}
}
}
div.dt-scroll div.dtfc-top-blocker {
background-color: var(--#{$prefix}paper-bg);
}
}

View File

@@ -0,0 +1,36 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-fixedheader-bs5/css/fixedHeader.bootstrap5";
/* Fixed header Style */
.dt-fixedheader {
&.table-bordered.table.dataTable {
&.fixedHeader-floating,
&.fixedHeader-locked {
thead > tr > th {
background-color: var(--#{$prefix}paper-bg);
}
}
}
&.dataTable.table-bordered thead tr th {
&:nth-child(2) {
border-inline-start-width: 0;
}
&:last-child {
border-inline-end: none;
:dir(rtl) & {
border-inline-start: none;
}
}
}
}
.dtfh-floatingparent-head {
border-block-end: 1px solid var(--#{$prefix}border-color);
> div {
padding: 0 !important;
}
.form-check-input {
block-size: $form-datatables-check-input-size;
inline-size: $form-datatables-check-input-size;
}
}

View File

@@ -0,0 +1,64 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-responsive-bs5/css/responsive.bootstrap5";
/* Responsive table area '+' icon position */
table.dataTable {
&.dtr-column > tbody > tr {
&,
&.dtr-expanded {
& > td.control,
& > th.control {
position: relative;
&::before {
position: absolute;
box-sizing: content-box;
border: 2px solid var(--#{$prefix}paper-bg);
@include border-radius(1rem);
background-color: var(--#{$prefix}primary);
block-size: .85rem;
box-shadow: 0 0 3px var(--#{$prefix}gray-800);
color: var(--#{$prefix}white);
content: "+";
font-family: "Courier New", Courier, monospace;
font-weight: $font-weight-medium;
inline-size: .85rem;
inset-block-start: 50%;
inset-inline-start: 50%;
line-height: 1em;
text-align: center;
transform: translate(-50%, -51%);
}
}
}
}
&.table-responsive {
/* To scroll within datatable area */
@media screen and (width <= 1399.98px) {
display: block;
}
}
}
/* Modal table style */
.modal.dtr-bs-modal {
.modal-body {
padding: 0;
}
.table {
margin-block-end: 0;
tr:last-child > td {
border-block-end: 0;
}
.btn {
box-shadow: none !important;
}
.emp_name {
font-weight: $font-weight-medium;
}
}
.dropdown-item.text-danger:active {
color: var(--#{$prefix}primary) !important;
}
}

View File

@@ -0,0 +1,9 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-rowgroup-bs5/css/rowGroup.bootstrap5";
table.table.dataTable > tbody > tr {
&.group,
&.group:hover {
background-color: var(--#{$prefix}gray-100);
}
}

View File

@@ -0,0 +1,2 @@
@import "../../scss/_bootstrap-extended/include";
@import "datatables.net-select-bs5/css/select.bootstrap5";

View File

@@ -0,0 +1,56 @@
import Dropzone from 'dropzone/dist/dropzone';
Dropzone.autoDiscover = false;
// File upload progress animation
Dropzone.prototype.uploadFiles = function (files) {
const minSteps = 6;
const maxSteps = 60;
const timeBetweenSteps = 100;
const bytesPerStep = 100000;
const isUploadSuccess = true;
const self = this;
for (let i = 0; i < files.length; i++) {
const file = files[i];
const totalSteps = Math.round(Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep)));
for (let step = 0; step < totalSteps; step++) {
const duration = timeBetweenSteps * (step + 1);
setTimeout(
(function (file, totalSteps, step) {
return function () {
file.upload = {
progress: (100 * (step + 1)) / totalSteps,
total: file.size,
bytesSent: ((step + 1) * file.size) / totalSteps
};
self.emit('uploadprogress', file, file.upload.progress, file.upload.bytesSent);
if (file.upload.progress === 100) {
if (isUploadSuccess) {
file.status = Dropzone.SUCCESS;
self.emit('success', file, 'success', null);
} else {
file.status = Dropzone.ERROR;
self.emit('error', file, 'Some upload error', null);
}
self.emit('complete', file);
self.processQueue();
}
};
})(file, totalSteps, step),
duration
);
}
}
};
try {
window.Dropzone = Dropzone;
} catch (e) {}
export { Dropzone };

View File

@@ -0,0 +1,305 @@
/* Dropzone */
@import "../../scss/_bootstrap-extended/include";
$dz-box-padding: 1.25rem !default;
$dz-icon-size: 1.875rem !default;
$dz-thumbnail-width: 10rem !default;
$dz-thumbnail-height: 7.5rem !default;
$dz-preview-padding: .625rem !default;
$dz-progress-height: .5rem !default;
$dz-icon-block-size: 3.75rem !default;
$dz-overlay-bg: var(--#{$prefix}dark-rgb);
$dz-thumbnail-bg: var(--#{$prefix}gray-25);
$dz-border-color: var(--#{$prefix}border-color);
/* common styles */
.dropzone {
--#{$prefix}dz-icon-bg: #eeedf0;
position: relative;
border: 2px dashed $dz-border-color;
@include border-radius($border-radius-lg);
cursor: pointer;
inline-size: 100%;
/* Disabled */
&:not(.dz-clickable) {
cursor: not-allowed;
opacity: .5;
}
/* Hover */
&.dz-drag-hover {
border-style: solid;
border-color: var(--#{$prefix}primary);
.dz-message {
opacity: .5;
}
}
.dz-message {
color: var(--#{$prefix}heading-color);
font-size: $h4-font-size;
font-weight: $font-weight-medium;
margin-block: 8rem 3rem;
margin-inline: 0;
text-align: center;
.note {
display: block;
color: var(--#{$prefix}body-color);
font-size: $font-size-base;
font-weight: $font-weight-normal;
margin-block-start: .5rem;
}
&::before {
position: absolute;
display: inline-block;
@include border-radius(6px);
background: var(--#{$prefix}dz-icon-bg);
background-image:
str-replace(
str-replace($upload-icon, "currentColor", var(--#{$prefix}headings-color)),
"#",
"%23"
);
background-position: center;
background-repeat: no-repeat;
block-size: 40px;
content: "";
inline-size: 40px;
inset-block-start: 5rem;
inset-inline-start: calc(50% - 23px);
}
}
/* Fallback */
.dz-browser-not-supported {
&.dropzone-box {
padding: 0 !important;
border: none !important;
@include border-radius(0 !important);
cursor: default !important;
inline-size: auto !important;
min-block-size: auto !important;
transition: none;
}
.dz-message {
display: none !important;
}
}
/* Default message */
&.dz-started .dz-message {
display: none;
}
/* Preview */
.dz-preview {
position: relative;
box-sizing: content-box;
border: $card-border-width solid var(--#{$prefix}border-color);
@include border-radius($border-radius);
background: var(--#{$prefix}paper-bg);
box-shadow: var(--#{$prefix}box-shadow);
cursor: default;
font-size: .8125rem;
margin-block: calc(#{$dz-box-padding} - .25rem);
margin-inline: calc(#{$dz-box-padding} - .25rem) calc(#{$dz-box-padding} - 1rem);
@include media-breakpoint-up(sm) {
display: inline-block;
inline-size: $dz-thumbnail-width + ($dz-preview-padding * 2);
}
}
/* File information */
.dz-filename {
position: absolute;
overflow: hidden;
background: var(--#{$prefix}paper-bg);
inline-size: 100%;
padding-block: $dz-preview-padding 0;
padding-inline: $dz-preview-padding;
text-overflow: ellipsis;
white-space: nowrap;
&:hover {
text-overflow: inherit;
white-space: normal;
}
}
.dz-size {
color: var(--#{$prefix}secondary-color);
font-size: .6875rem;
font-style: italic;
padding-block: 1.875rem $dz-preview-padding;
padding-inline: $dz-preview-padding;
}
/* Progressbar */
.dz-preview .progress,
.dz-preview .progess-bar {
block-size: $dz-progress-height;
}
.dz-preview .progress {
position: absolute;
z-index: 30;
inset-block-start: 50%;
inset-inline: 1.3rem;
margin-block-start: -$dz-progress-height * .5;
}
.dz-complete .progress {
display: none;
}
/* Thumbnail */
.dz-thumbnail {
position: relative;
box-sizing: content-box;
padding: $dz-preview-padding;
background: $dz-thumbnail-bg;
block-size: $dz-thumbnail-height;
border-block-end: 1px solid var(--#{$prefix}border-color);
text-align: center;
> img,
.dz-nopreview {
position: relative;
display: block;
inset-block-start: 50%;
margin-block: 0;
margin-inline: auto;
transform: translateY(-50%) scale(1);
}
> img {
max-block-size: 100%;
max-inline-size: 100%;
}
@include border-top-radius(if($border-radius, calc(#{$border-radius} - 1px), 0));
@include media-breakpoint-up(sm) {
inline-size: $dz-thumbnail-width;
}
}
.dz-nopreview {
color: var(--#{$prefix}secondary-color);
font-size: .6875rem;
font-weight: $font-weight-medium;
text-transform: uppercase;
}
.dz-thumbnail img[src] ~ .dz-nopreview {
display: none;
}
/* Remove link */
.dz-remove {
display: block;
border-block-start: 1px solid var(--#{$prefix}border-color);
color: var(--#{$prefix}body-color);
font-size: .75rem;
padding-block: .375rem;
padding-inline: 0;
text-align: center;
&:hover,
&:focus {
background: rgba(var(--#{$prefix}base-color-rgb), .1);
border-block-start-color: transparent;
color: var(--#{$prefix}body-color);
text-decoration: none;
}
@include border-bottom-radius(if($border-radius, calc(#{$border-radius} - 1px), 0));
}
/* error/success states */
.dz-error-mark,
.dz-success-mark {
position: absolute;
display: none;
@include border-radius(50%);
background-color: rgba(var(--#{$prefix}dark-rgb), .5);
background-position: center center;
background-repeat: no-repeat;
background-size: $dz-icon-size $dz-icon-size;
block-size: $dz-icon-block-size;
box-shadow: 0 0 1.25rem rgba(var(--#{$prefix}pure-black), .06);
inline-size: $dz-icon-block-size;
inset-block-start: 50%;
inset-inline-start: 50%;
margin-block-start: -$dz-icon-block-size * .5;
margin-inline-start: -$dz-icon-block-size * .5;
}
.dz-success-mark {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
}
.dz-error-mark {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
}
.dz-error-message {
position: absolute;
z-index: 40;
display: none;
overflow: auto;
padding: .75rem;
background: rgba(var(--#{$prefix}danger-rgb), .8);
color: var(--#{$prefix}white);
font-weight: $font-weight-medium;
inset: -1px;
text-align: start;
@include border-top-radius($border-radius);
}
/* Error state */
.dz-error {
.dz-error-message {
display: none;
}
.dz-error-mark {
display: block;
}
&:hover {
.dz-error-message {
display: block;
}
.dz-error-mark {
display: none;
}
}
}
/* Success state */
.dz-success .dz-success-mark {
display: block;
}
}
/* ecommerce */
.app-ecommerce {
.dz-message {
margin-block-start: 5rem;
&::before {
inset-block-start: 3rem;
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.dropzone {
--#{$prefix}dz-icon-bg: #373b50;
}
}
}

View File

@@ -0,0 +1,7 @@
import flatpickr from 'flatpickr/dist/flatpickr';
try {
window.flatpickr = flatpickr;
} catch (e) {}
export { flatpickr };

View File

@@ -0,0 +1,610 @@
@import "../../scss/_bootstrap-extended/include";
@import "../../scss/_components/include";
$flatpickr-time-picker-height: 40px !default;
/* set position to open flat picker calendar */
.flatpickr-wrapper{
position: relative;
}
/* Animations */
@mixin keyframes($name) {
@keyframes #{$name} {
@content;
}
@keyframes #{$name} {
@content;
}
@keyframes #{$name} {
@content;
}
}
@include keyframes(fpFadeInDown) {
from {
opacity: 0;
transform: translate3d(0, -20px, 0);
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
.flatpickr-calendar {
position: absolute;
overflow: hidden;
box-sizing: border-box;
padding: $picker-padding;
animation: none;
background: $picker-bg;
box-shadow: $picker-box-shadow;
font-size: $font-size-base;
inline-size: $picker-width;
opacity: 0;
text-align: center;
visibility: hidden;
@include border-radius($picker-border-radius);
&.open,
&.inline {
opacity: 1;
visibility: visible;
}
&.open {
z-index: $picker-zindex;
}
&.animate.open {
animation: fpFadeInDown 300ms cubic-bezier(.23, 1, .32, 1);
}
&:not(.inline, .open) {
display: none;
}
&.inline {
position: relative;
inset-block-start: 2px;
}
/* below style required important to override default flatpickr element styles */
&.hasWeeks {
inline-size: $picker-width + $picker-cell-size !important;
}
&.hasTime .flatpickr-weeks {
border-block-end: 0;
border-end-end-radius: 0;
border-end-start-radius: 0;
margin-block-start: 1.125rem;
}
/* if hasTime with calendar */
&.hasTime {
padding-block-end: 0;
.flatpickr-time {
block-size: $flatpickr-time-picker-height;
}
&:not(.noCalendar) {
border-block-start: $picker-timer-border-width solid $picker-timer-border-color;
}
}
&.noCalendar.hasTime {
padding: 0;
}
/* To update arrows in number input of time picker */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
margin: 0;
appearance: none;
}
/* flat picker month list */
.flatpickr-month {
position: relative;
overflow: hidden;
background: $picker-bg;
block-size: $picker-cell-size + .0375rem;
line-height: 1;
text-align: center;
user-select: none;
}
.flatpickr-prev-month,
.flatpickr-next-month {
position: absolute;
z-index: 3;
display: flex;
align-items: center;
justify-content: center;
background-color: $picker-arrow-bg;
block-size: $picker-arrow-wrapper-size;
cursor: pointer;
inline-size: $picker-arrow-wrapper-size;
inset-block-start: .75rem;
line-height: $picker-arrow-wrapper-size;
padding-block: 0;
padding-inline: .41rem;
text-decoration: none;
@include border-radius($picker-cell-border-radius);
svg {
fill: $picker-arrow-color;
inline-size: calc($picker-arrow-size + .15rem);
stroke: $picker-arrow-color;
stroke-width: 1;
vertical-align: middle;
}
:dir(rtl) & {
transform: scaleX(-1);
}
}
.flatpickr-prev-month i,
.flatpickr-next-month i {
position: relative;
}
.flatpickr-prev-month {
&.flatpickr-prev-month {
inset-inline-end: 3.6rem;
}
}
.flatpickr-next-month {
&.flatpickr-prev-month {
inset-inline: 0;
}
&.flatpickr-next-month {
inset-inline-end: 1rem;
}
}
.flatpickr-prev-month:hover,
.flatpickr-next-month:hover {
opacity: 1;
}
.flatpickr-prev-month svg path,
.flatpickr-next-month svg path {
fill: inherit;
@include transition(fill .1s);
}
/* flat picker input styles */
.numInputWrapper {
position: relative;
block-size: auto;
input,
span {
display: inline-block;
}
input {
inline-size: 100%;
}
span {
position: absolute;
inset-inline-end: 4px;
opacity: 0;
&:hover {
background: rgb(0 0 0 / 10%);
}
&:active {
background: rgb(0 0 0 / 20%);
}
&::after {
display: block;
block-size: 0;
content: "";
inline-size: 0;
}
&.arrowUp {
inset-block-start: 7px;
}
&.arrowUp::after {
border-block-end: 4px solid rgb(72 72 72 / 60%);
border-inline-end: 4px solid transparent;
border-inline-start: 4px solid transparent;
}
&.arrowDown {
inset-block-end: 7px;
}
&.arrowDown::after {
border-block-start: 4px solid rgb(72 72 72 / 60%);
border-inline-end: 4px solid transparent;
border-inline-start: 4px solid transparent;
}
svg {
block-size: auto;
inline-size: inherit;
}
svg path {
fill: rgb(255 255 255 / 50%);
}
}
&:hover {
background: rgb(0 0 0 / 5%);
}
&:hover span {
opacity: 1;
}
}
/* flat picker current month styles */
.flatpickr-current-month {
position: absolute;
display: flex;
align-items: center;
justify-content: start;
block-size: $picker-arrow-wrapper-size - .375;
color: $picker-header-color;
font-weight: 300;
gap: .25rem;
inline-size: 75%;
inset-inline-start: 3.5%;
line-height: 1;
padding-block: 1rem 0;
padding-inline: 0;
text-align: center;
transform: translate3d(0, 0, 0);
.cur-month{
font-size: $font-size-base;
font-weight: $font-weight-normal;
}
.flatpickr-monthDropdown-months,
input.cur-year {
display: inline-block;
box-sizing: border-box;
border: 0;
@include border-radius(0);
background: transparent;
color: inherit;
font-family: inherit;
font-size: inherit;
font-weight: $font-weight-normal;
line-height: inherit;
outline: none;
padding-block: 0;
vertical-align: middle;
}
.numInputWrapper {
display: inline-block;
inline-size: 6ch;
}
.flatpickr-monthDropdown-months {
position: relative;
appearance: menulist;
background-color: $picker-bg;
block-size: $picker-cell-size;
color: $picker-header-color;
cursor: pointer;
font-size: $font-size-lg;
inline-size: auto;
}
input.cur-year {
margin: 0;
block-size: $picker-cell-size - .5rem;
cursor: default;
&:focus {
outline: 0;
}
}
}
/* flat picker calendar weekdays styles */
.flatpickr-weekdays {
display: flex;
overflow: hidden;
align-items: center;
background: $picker-bg;
block-size: $picker-cell-size;
inline-size: 100%;
margin-block-end: .6875rem;
margin-block-start: .5rem;
max-inline-size: 17.5rem;
text-align: center;
.flatpickr-weekdaycontainer {
display: flex;
inline-size: 100%;
padding-block: calc($picker-cell-padding / 2);
}
span.flatpickr-weekday {
display: block;
flex: 1;
margin: 0;
background: $picker-bg;
color: $picker-header-color;
cursor: default;
font-size: $font-size-sm;
inline-size: $picker-cell-size;
line-height: 1;
text-align: center;
}
}
.dayContainer,
.flatpickr-weeks {
padding-block: 1px 0;
padding-inline: 0;
}
/* flat picker days styles */
.flatpickr-days {
position: relative;
display: flex;
overflow: hidden;
background: $picker-bg;
inline-size: auto;
&:focus {
outline: 0;
}
/* days wrapper/container */
.dayContainer {
display: inline-block;
display: flex;
box-sizing: border-box;
flex-wrap: wrap;
justify-content: space-around;
padding: 0;
inline-size: $picker-cell-size * 7;
max-inline-size: $picker-cell-size * 7;
min-inline-size: $picker-cell-size * 7;
opacity: 1;
outline: 0;
transform: translate3d(0, 0, 0);
}
/* day wise styling */
.flatpickr-day {
display: flex;
box-sizing: border-box;
align-items: center;
justify-content: center;
border: 1px solid transparent;
margin: 0;
background: none;
block-size: $picker-cell-size;
color: $picker-color;
cursor: pointer;
font-weight: $font-weight-normal;
inline-size: 15.2857%;
line-height: $picker-cell-size;
max-inline-size: $picker-cell-size;
text-align: center;
@include border-radius($picker-cell-border-radius);
&.today,
&.today:hover {
background-color: $picker-cell-today-bg;
color: $picker-cell-today-color;
}
&.inRange,
&.prevMonthDay.inRange,
&.nextMonthDay.inRange,
&.today.inRange,
&.prevMonthDay.today.inRange,
&.nextMonthDay.today.inRange,
&:hover,
&.prevMonthDay:hover,
&.nextMonthDay:hover,
&:focus,
&.prevMonthDay:focus,
&.nextMonthDay:focus {
cursor: pointer;
outline: 0;
}
/* hover & focus styles */
&:hover,
&.prevMonthDay:hover,
&.nextMonthDay:hover,
&:focus,
&.prevMonthDay:focus,
&.nextMonthDay:focus{
background-color: $picker-cell-hover-bg;
}
/* range styles */
&.inRange,
&.prevMonthDay.inRange,
&.nextMonthDay.inRange,
&.today.inRange,
&.prevMonthDay.today.inRange,
&.nextMonthDay.today.inRange{
background-color: $picker-range-active-bg;
color: $picker-range-active-color;
}
/* selected styles */
&.selected,
&.selected.inRange,
&.selected:focus,
&.selected:hover,
&.selected.nextMonthDay,
&.selected.prevMonthDay,
&.startRange,
&.startRange.inRange,
&.startRange:focus,
&.startRange:hover,
&.startRange.nextMonthDay,
&.startRange.prevMonthDay,
&.endRange,
&.endRange.inRange,
&.endRange:focus,
&.endRange:hover,
&.endRange.nextMonthDay,
&.endRange.prevMonthDay,
&.week.selected {
background-color: $picker-cell-active-bg;
box-shadow: $picker-cell-active-shadow;
color: $picker-cell-active-color;
}
&.inRange:not(.startRange, .endRange) {
@include border-radius(0);
}
/* disabled styles */
&.disabled,
&.flatpickr-disabled,
&.flatpickr-disabled.today,
&.disabled:hover,
&.flatpickr-disabled:hover,
&.flatpickr-disabled.today:hover {
border-color: transparent;
background: transparent;
cursor: default;
pointer-events: none;
}
&.prevMonthDay,
&.nextMonthDay {
border-color: transparent;
background: transparent;
color: $picker-disabled-color;
cursor: default;
}
&.flatpickr-disabled,
&.disabled{
color: $picker-disabled-color;
}
&.notAllowed,
&.notAllowed.prevMonthDay,
&.notAllowed.nextMonthDay {
border-color: transparent;
background: transparent;
cursor: default;
}
&.selected.startRange,
&.startRange.startRange,
&.endRange.startRange {
@include border-end-radius(0);
}
&.selected.endRange,
&.startRange.endRange,
&.endRange.endRange {
@include border-start-radius(0);
}
}
}
.flatpickr-weekwrapper {
display: inline-block;
margin-block-start: .5rem;
.flatpickr-weekday {
position: relative;
float: none;
inline-size: 100%;
inset-block-start: 1px;
line-height: $picker-cell-size;
}
/* Weekdays style for weeks */
span.flatpickr-day {
display: block;
background: none;
block-size: $picker-cell-size;
inline-size: $picker-cell-size;
max-inline-size: none;
}
}
.flatpickr-innerContainer {
display: flex;
overflow: hidden;
box-sizing: border-box;
.flatpickr-rContainer {
display: inline-block;
box-sizing: border-box;
padding: 0;
}
}
/* flat picker time styles */
.flatpickr-time {
display: flex;
line-height: $flatpickr-time-picker-height;
text-align: center;
.numInputWrapper {
flex: 1;
block-size: $flatpickr-time-picker-height;
float: inline-start;
inline-size: 40%;
}
&.hasSeconds .numInputWrapper {
inline-size: 26%;
}
&.time24hr .numInputWrapper {
inline-size: 49%;
}
input {
position: relative;
box-sizing: border-box;
padding: 0;
border: 0;
@include border-radius(0);
margin: 0;
background: transparent;
block-size: inherit;
box-shadow: none;
cursor: pointer;
font-size: $font-size-base;
line-height: inherit;
text-align: center;
&:focus {
border: 0;
outline: 0;
}
}
.flatpickr-am-pm {
cursor: pointer;
inline-size: 18%;
&:hover {
background: rgb(0 0 0 / 5%);
}
}
}
}

View File

@@ -0,0 +1,22 @@
import { Calendar } from '@fullcalendar/core';
import dayGridPlugin from '@fullcalendar/daygrid';
import interactionPlugin from '@fullcalendar/interaction';
import listPlugin from '@fullcalendar/list';
import timegridPlugin from '@fullcalendar/timegrid';
const calendarPlugins = {
dayGrid: dayGridPlugin,
interaction: interactionPlugin,
list: listPlugin,
timeGrid: timegridPlugin
};
try {
window.Calendar = Calendar;
window.dayGridPlugin = dayGridPlugin;
window.interactionPlugin = interactionPlugin;
window.listPlugin = listPlugin;
window.timegridPlugin = timegridPlugin;
} catch (e) {}
export { Calendar, dayGridPlugin, interactionPlugin, listPlugin, timegridPlugin };

View File

@@ -0,0 +1,386 @@
@import "../../scss/_bootstrap-extended/include";
$fullcalendar-event-padding-y: .25rem !default;
$fullcalendar-event-padding-x: .75rem !default;
$fullcalendar-event-margin-top: .625rem !default;
$fullcalendar-event-font-size: $font-size-base !default;
$fullcalendar-event-font-weight: $font-weight-normal !default;
$fullcalendar-toolbar-btn-padding: $btn-padding-y + .0038 $input-btn-padding-x !default;
$fullcalendar-fc-popover-z-index: 1090 !default;
$fullcalendar-event-border-radius: $border-radius-sm !default;
/* Calendar */
.fc {
--fc-neutral-bg-color: color-mix(in sRGB, var(--#{$prefix}base-color) 6%, var(--#{$prefix}card-bg));
--fc-today-bg-color: color-mix(in sRGB, var(--#{$prefix}base-color) 6%, var(--#{$prefix}card-bg));
--fc-border-color: var(--#{$prefix}border-color);
.private-event {
.fc-event-time,
.fc-event-title {
color: var(--#{$prefix}danger);
}
}
.fc-scrollgrid-section {
block-size: 0;
}
a[data-navlink]:hover {
text-decoration: none;
}
.fc-timegrid-slot {
block-size: 4em;
}
.fc-timeGridWeek-view {
.fc-timegrid-slot-minor {
border-block-start-style: none;
}
}
.fc-timeGridDay-view {
.fc-timegrid-slot-minor {
border-block-start-style: solid;
}
}
.fc-col-header-cell-cushion {
color: var(--#{$prefix}heading-color);
padding-block: 8.7px;
}
.fc-toolbar {
flex-wrap: wrap;
.fc-prev-button,
.fc-next-button {
display: inline-block;
border-color: transparent;
background-color: transparent;
.fc-icon {
color: var(--#{$prefix}heading-color);
}
&:hover,
&:active,
&:focus {
border-color: transparent;
background-color: transparent;
box-shadow: none !important;
}
}
.fc-button {
@include border-radius($border-radius);
font-weight: $font-weight-medium;
&:not(.fc-next-button):not(.fc-prev-button) {
padding: $fullcalendar-toolbar-btn-padding;
border-block-width: 0;
&:active,
&:focus {
box-shadow: none;
}
&:first-child {
border-inline-start: 0;
}
&:last-child {
border-inline-end: 0;
}
}
}
> * > :not(:first-child) {
margin-inline-start: 0;
}
.fc-toolbar-chunk {
display: flex;
align-items: center;
}
.fc-button-group {
.fc-button {
text-transform: capitalize;
}
& + div {
display: flex;
flex-wrap: wrap;
align-items: center;
}
}
.fc--button:empty,
.fc-toolbar-chunk:empty {
display: none;
}
.fc-sidebarToggle-button + div {
margin-inline-start: 0;
}
}
table.fc-scrollgrid {
.fc-col-header {
.fc-col-header-cell {
border-inline-start: none;
}
}
}
.fc-view-harness {
margin-block: 0;
margin-inline: -1.5rem;
min-block-size: 650px;
.fc-daygrid-body {
.fc-daygrid-day {
.fc-daygrid-day-top {
flex-direction: row;
.fc-daygrid-day-number {
padding: .5rem;
}
}
.fc-daygrid-day-bottom .fc-daygrid-more-link {
margin-block-start: .625rem;
}
}
}
.fc-event {
border: 0;
@include border-radius($fullcalendar-event-border-radius);
font-size: $fullcalendar-event-font-size;
font-weight: $fullcalendar-event-font-weight;
padding-block: $fullcalendar-event-padding-y;
padding-inline: $fullcalendar-event-padding-x;
.fc-event-title {
font-weight: $font-weight-medium;
}
}
.fc-daygrid-event-harness {
/*
! week & day events are using this style for all day only, not for other events */
.fc-event {
&.private-event {
border-color: transparent !important;
background-color: transparent !important;
}
}
}
.fc-event .fc-daygrid-event-dot {
display: none;
}
.fc-timegrid-event .fc-event-time {
font-size: .6875rem;
}
.fc-v-event .fc-event-title {
font-size: $fullcalendar-event-font-size;
font-weight: $fullcalendar-event-font-weight;
padding-block-start: .2rem;
}
.fc-timegrid-event .fc-event-main {
padding-block: $fullcalendar-event-padding-y 0;
padding-inline: $fullcalendar-event-padding-x;
}
}
.fc-daygrid-day-events {
.fc-event,
.fc-more-link {
margin-inline: .5rem;
}
@include media-breakpoint-down(md) {
.fc-daygrid-day-bottom {
overflow: hidden;
white-space: nowrap;
}
.fc-more-link {
margin-inline: 0;
}
}
}
/* To fix firefox thead border issue */
.fc-day-today {
background-clip: padding-box;
&:not(.fc-col-header-cell) {
.fc-popover-body {
background-color: var(--#{$prefix}paper-bg);
}
}
}
.fc-divider {
border-color: var(--#{$prefix}border-color);
background: var(--#{$prefix}border-color);
}
.fc-day-disabled {
--fc-neutral-bg-color: color-mix(in sRGB, var(--#{$prefix}base-color) 16%, var(--#{$prefix}card-bg));
}
/* To overwrite white color of event text */
.fc-h-event .fc-event-main,
.fc-v-event .fc-event-main {
color: inherit;
}
.fc-daygrid-block-event .fc-event-time,
.fc-daygrid-dot-event .fc-event-title {
font-weight: $fullcalendar-event-font-weight;
}
.fc-daygrid-body-natural {
.fc-daygrid-day-events {
margin-block: .94rem;
}
}
.fc-daygrid-event-harness + .fc-daygrid-event-harness .fc-daygrid-event {
margin-block-start: $fullcalendar-event-margin-top;
}
.fc-timegrid {
.fc-timegrid-divider {
display: none;
}
.fc-timegrid-event {
@include border-radius(0);
box-shadow: none;
padding-block-start: $fullcalendar-event-padding-x;
@include media-breakpoint-down(md) {
overflow: hidden;
white-space: nowrap;
}
.fc-event-time {
font-size: inherit;
}
}
}
.fc-daygrid-event-harness-abs .fc-event {
margin-block-end: .625rem;
}
.fc-timegrid-slot-label-frame {
text-align: center;
}
.fc-timegrid-axis-cushion,
.fc-timegrid-slot-label-cushion {
font-size: $font-size-sm;
}
.fc-timegrid-axis-cushion {
color: var(--#{$prefix}secondary-color);
padding-block: .5rem;
padding-inline: .4375rem;
text-transform: capitalize;
}
.fc-timegrid-slot-label-cushion {
padding: $fullcalendar-event-padding-x;
color: var(--#{$prefix}heading-color);
text-transform: uppercase;
}
.fc-list-day-cushion,
.fc-list-table td {
padding-inline: 1rem;
}
.fc-list-day-cushion {
padding-block: .5125rem;
}
.fc-popover {
z-index: $fullcalendar-fc-popover-z-index;
border: 0;
background-color: var(--#{$prefix}paper-bg);
.fc-popover-header {
padding: .566rem;
background-color: var(--#{$prefix}body-bg);
}
}
.fc-list {
.fc-list-table {
border-block-end: 1px solid;
th {
border: 0;
background: var(--#{$prefix}body-bg);
color: var(--#{$prefix}heading-color);
}
.fc-list-event {
background-color: transparent !important;
cursor: pointer;
td {
color: var(--#{$prefix}body-color);
}
&:hover {
td {
background-color: color-mix(in sRGB, var(--#{$prefix}base-color) 1.5%, var(--#{$prefix}paper-bg));
}
.fc-list-day {
th {
color: $headings-color;
}
}
tbody > tr:first-child th {
border-block-start: 1px solid $border-color;
}
}
}
tbody > tr:first-child th {
border-block-start: 1px solid var(--#{$prefix}border-color);
}
/* FC day */
.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion {
color: var(--#{$prefix}body-secondary-color);
}
/* FC table list disabled bg */
.fc-day-disabled {
background-color: rgba(var(--#{$prefix}base-color), .16);
}
.fc-day-other {
.fc-daygrid-day-top {
color: var(--#{$prefix}body-secondary-color);
}
}
}
.fc-list-empty {
background-color: var(--#{$prefix}body-bg);
}
}
&.fc-theme-standard {
.fc-list {
border: none;
}
}
.fc-day-other {
.fc-daygrid-day-top {
color: var(--#{$prefix}secondary-color);
opacity: 1;
}
}
}
/* Media Queries */
@include media-breakpoint-down(sm) {
.fc {
.fc-header-toolbar {
.fc-toolbar-chunk + .fc-toolbar-chunk {
margin-block-start: 1rem;
}
}
}
}
/* scss-docs-start calendar-modifiers */
/* Generate contextual modifier classes for colorizing the calendar */
@each $state in map-keys($theme-colors) {
.app-calendar-wrapper {
.bg-label-#{$state} {
.fc-list-event-dot {
--fc-event-border-color: var(--#{$prefix}#{$state});
}
}
.fc-button-#{$state}:not(.fc-prev-button):not(.fc-next-button) {
--fc-button-bg-color: color-mix(in sRGB, var(--#{$prefix}paper-bg) #{$btn-label-tint-amount}, var(--#{$prefix}#{$state}));
--fc-button-border-color: color-mix(in sRGB, var(--#{$prefix}paper-bg) 68%, var(--#{$prefix}#{$state}));
--fc-button-text-color: var(--#{$prefix}#{$state});
--fc-button-active-bg-color: color-mix(in sRGB, var(--#{$prefix}paper-bg) #{$btn-label-active-shade-amount}, var(--#{$prefix}#{$state}));
--fc-button-active-border-color: color-mix(in sRGB, var(--#{$prefix}paper-bg) 68%, var(--#{$prefix}#{$state}));
--fc-button-hover-bg-color: color-mix(in sRGB, var(--#{$prefix}paper-bg) #{$btn-label-active-shade-amount}, var(--#{$prefix}#{$state}));
--fc-button-hover-border-color: color-mix(in sRGB, var(--#{$prefix}paper-bg) 68%, var(--#{$prefix}#{$state}));
&:hover,
&.fc-button-active {
--fc-button-text-color: var(--#{$prefix}#{$state});
}
}
}
}
/* scss-docs-end calendar-modifiers */

View File

@@ -0,0 +1,7 @@
import hljs from 'highlight.js';
try {
window.hljs = hljs;
} catch (e) {}
export { hljs };

View File

@@ -0,0 +1,2 @@
@import "highlight.js/styles/atom-one-light";
@import "highlight.js/styles/atom-one-dark";

View File

@@ -0,0 +1,5 @@
import i18next from 'i18next';
import i18NextHttpBackend from 'i18next-http-backend';
import languageDetector from 'i18next-browser-languagedetector';
export { i18next, i18NextHttpBackend, languageDetector };

View File

@@ -0,0 +1,2 @@
@import "../../scss/_bootstrap-extended/include";
@import "jkanban/dist/jkanban";

View File

@@ -0,0 +1,2 @@
// import 'src/jquery-idletimer';
import 'jquery-idletimer/src/idle-timer';

View File

@@ -0,0 +1 @@
import 'jquery.repeater/jquery.repeater';

View File

@@ -0,0 +1,52 @@
@import "../../scss/_bootstrap-extended/include";
@import "../../scss/_components/include";
@import "timepicker/jquery.timepicker";
.ui-timepicker-wrapper {
z-index: $picker-zindex;
padding: $dropdown-padding-y;
border-color: $picker-border-color;
background: $picker-bg;
box-shadow: var(--#{$prefix}box-shadow-lg);
margin-block: .125rem;
@include border-radius($picker-border-radius);
.ui-timepicker-duration {
margin-inline-start: .25rem;
}
.ui-timepicker-list li{
color: var(--#{$prefix}body-color);
margin-block: .125rem;
margin-inline: .5625rem;
padding-block: .25rem;
padding-inline: .75rem;
@include border-radius($picker-border-radius);
&:hover {
background: $dropdown-link-hover-bg;
}
&:not(.ui-timepicker-selected) {
.ui-timepicker-duration {
color: var(--#{$prefix}secondary-color);
}
}
&.ui-timepicker-selected,
.ui-timepicker-selected:hover {
background: var(--#{$prefix}primary);
box-shadow: $picker-cell-active-shadow;
color: var(--#{$prefix}primary-contrast);
.ui-timepicker-duration {
color: $picker-cell-active-color;
}
}
&.ui-timepicker-disabled,
&.ui-timepicker-selected.ui-timepicker-disabled {
color: $dropdown-link-disabled-color;
pointer-events: none;
}
}
}

View File

@@ -0,0 +1,8 @@
import jQuery from 'jquery/dist/jquery';
const $ = jQuery;
try {
window.jQuery = window.$ = jQuery;
} catch (e) {}
export { jQuery, $ };

View File

@@ -0,0 +1,106 @@
@import "../../../scss/_bootstrap-extended/include"; /* imported for media query mixin */
$theme-name: "default";
$throbber-bg: "url('./themes/default/throbber.gif')";
$small-bg: "url('./themes/default/32px.png')";
$big-bg: "url('./themes/default/40px.png')";
.jstree-#{$theme-name} {
background: transparent;
}
.jstree-#{$theme-name} > .jstree-container-ul .jstree-loading > .jstree-ocl,
.jstree-#{$theme-name}-small > .jstree-container-ul .jstree-loading > .jstree-ocl,
.jstree-#{$theme-name}-large > .jstree-container-ul .jstree-loading > .jstree-ocl {
background-image: #{$throbber-bg};
}
.jstree-#{$theme-name} .jstree-node,
.jstree-#{$theme-name} .jstree-icon,
.jstree-#{$theme-name} .jstree-file,
.jstree-#{$theme-name} .jstree-folder,
#jstree-dnd.jstree-#{$theme-name} .jstree-ok,
#jstree-dnd.jstree-#{$theme-name} .jstree-er,
.jstree-#{$theme-name}-small .jstree-node,
.jstree-#{$theme-name}-small .jstree-icon,
.jstree-#{$theme-name}-small .jstree-file,
.jstree-#{$theme-name}-small .jstree-folder,
#jstree-dnd.jstree-#{$theme-name}-small .jstree-ok,
#jstree-dnd.jstree-#{$theme-name}-small .jstree-er,
.jstree-#{$theme-name}-large .jstree-node,
.jstree-#{$theme-name}-large .jstree-icon,
.jstree-#{$theme-name}-large .jstree-file,
.jstree-#{$theme-name}-large .jstree-folder,
#jstree-dnd.jstree-#{$theme-name}-large .jstree-ok,
#jstree-dnd.jstree-#{$theme-name}-large .jstree-er {
background-image: #{$small-bg};
}
@include media-breakpoint-down(md) {
#jstree-dnd.jstree-dnd-responsive > .jstree-ok,
#jstree-dnd.jstree-dnd-responsive > .jstree-er,
.jstree-#{$theme-name}-responsive .jstree-icon,
.jstree-#{$theme-name}-responsive .jstree-node,
.jstree-#{$theme-name}-responsive .jstree-icon,
.jstree-#{$theme-name}-responsive .jstree-node > .jstree-ocl,
.jstree-#{$theme-name}-responsive .jstree-themeicon,
.jstree-#{$theme-name}-responsive .jstree-checkbox,
.jstree-#{$theme-name}-responsive .jstree-file,
.jstree-#{$theme-name}-responsive .jstree-folder {
background-image: #{$big-bg};
}
}
/* Dark Style */
@if $enable-dark-mode {
@include color-mode(dark) {
$theme-name: "default-dark";
$throbber-bg: "url('./themes/default-dark/throbber.gif')";
$small-bg: "url('./themes/default-dark/32px.png')";
$big-bg: "url('./themes/default-dark/40px.png')";
.jstree-#{$theme-name} {
background: transparent;
}
.jstree-#{$theme-name} > .jstree-container-ul .jstree-loading > .jstree-ocl,
.jstree-#{$theme-name}-small > .jstree-container-ul .jstree-loading > .jstree-ocl,
.jstree-#{$theme-name}-large > .jstree-container-ul .jstree-loading > .jstree-ocl {
background-image: #{$throbber-bg};
}
.jstree-#{$theme-name}:not(.jstree-rtl) .jstree-node,
.jstree-#{$theme-name} .jstree-icon,
.jstree-#{$theme-name} .jstree-file,
.jstree-#{$theme-name} .jstree-folder,
#jstree-dnd.jstree-#{$theme-name} .jstree-ok,
#jstree-dnd.jstree-#{$theme-name} .jstree-er,
.jstree-#{$theme-name}-small .jstree-node,
.jstree-#{$theme-name}-small .jstree-icon,
.jstree-#{$theme-name}-small .jstree-file,
.jstree-#{$theme-name}-small .jstree-folder,
#jstree-dnd.jstree-#{$theme-name}-small .jstree-ok,
#jstree-dnd.jstree-#{$theme-name}-small .jstree-er,
.jstree-#{$theme-name}-large .jstree-node,
.jstree-#{$theme-name}-large .jstree-icon,
.jstree-#{$theme-name}-large .jstree-file,
.jstree-#{$theme-name}-large .jstree-folder,
#jstree-dnd.jstree-#{$theme-name}-large .jstree-ok,
#jstree-dnd.jstree-#{$theme-name}-large .jstree-er {
background-image: #{$small-bg};
}
@include media-breakpoint-down(md) {
#jstree-dnd.jstree-dnd-responsive > .jstree-ok,
#jstree-dnd.jstree-dnd-responsive > .jstree-er,
.jstree-#{$theme-name}-responsive .jstree-icon,
.jstree-#{$theme-name}-responsive .jstree-node,
.jstree-#{$theme-name}-responsive .jstree-icon,
.jstree-#{$theme-name}-responsive .jstree-node > .jstree-ocl,
.jstree-#{$theme-name}-responsive .jstree-themeicon,
.jstree-#{$theme-name}-responsive .jstree-checkbox,
.jstree-#{$theme-name}-responsive .jstree-file,
.jstree-#{$theme-name}-responsive .jstree-folder {
background-image: #{$big-bg};
}
}
}
}

View File

@@ -0,0 +1,7 @@
import leaFlet from 'leaflet';
try {
window.leaFlet = leaFlet;
} catch (e) {}
export { leaFlet };

View File

@@ -0,0 +1,31 @@
@import "../../scss/_bootstrap-extended/include";
@import "leaflet/dist/leaflet";
.leaflet-map {
z-index: 1;
block-size: 400px;
/* Map tooltip border radius */
.leaflet-popup {
.leaflet-popup-content-wrapper {
@include border-radius($border-radius);
}
}
.leaflet-control-container {
.leaflet-left {
inset-inline: 0 auto;
.leaflet-control-zoom,
.leaflet-control-layers {
margin-inline: .625rem 0;
}
}
.leaflet-right {
inset-inline: auto 0;
.leaflet-control-zoom,
.leaflet-control-layers {
margin-inline: 0 .625rem;
}
}
}
}

View File

@@ -0,0 +1,7 @@
import mapboxgl from 'mapbox-gl';
try {
window.mapboxgl = mapboxgl;
} catch (e) {}
export { mapboxgl };

View File

@@ -0,0 +1,6 @@
@import "../../scss/_bootstrap-extended/include";
@import "mapbox-gl/dist/mapbox-gl";
.marker-focus {
filter: drop-shadow(0 0 7px var(--#{$prefix}primary));
}

View File

@@ -0,0 +1,7 @@
import Masonry from 'masonry-layout';
try {
window.Masonry = Masonry;
} catch (e) {}
export { Masonry };

View File

@@ -0,0 +1,35 @@
@import "../../scss/_bootstrap-extended/include";
.maxLength-wrapper {
position: relative;
.maxLength {
display: none;
font-size: $badge-font-size;
font-weight: $badge-font-weight;
inset-inline-end: 0;
line-height: 1;
margin-block: auto;
margin-inline: 0;
padding-block: $badge-padding-y;
padding-inline: $badge-padding-x;
text-align: center;
vertical-align: baseline;
white-space: nowrap;
@include border-radius($badge-border-radius);
&.label-danger {
background: var(--#{$prefix}danger);
color: var(--#{$prefix}danger-contrast);
}
&.label-success {
background: var(--#{$prefix}success);
color: var(--#{$prefix}success-contrast);
}
}
.form-control:focus + .maxLength {
position: absolute;
display: inline-block;
}
}

View File

@@ -0,0 +1,7 @@
import moment from 'moment/moment';
try {
window.moment = moment;
} catch (e) {}
export { moment };

View File

@@ -0,0 +1,3 @@
import nodeWaves from 'node-waves/src/js/waves';
export { nodeWaves };

View File

@@ -0,0 +1,3 @@
/* Waves
******************************************************************************* */
@import "node-waves/src/scss/waves";

View File

@@ -0,0 +1,4 @@
import { Loading } from 'notiflix/build/notiflix-loading-aio';
import { Block } from 'notiflix/build/notiflix-block-aio';
export { Loading, Block };

View File

@@ -0,0 +1,11 @@
/* notiflix
******************************************************************************* */
@import "../../scss/_bootstrap-extended/include";
@import "notiflix/src/notiflix";
.notiflix-block,
.notiflix-loading {
.sk-wave {
--sk-color: var(--#{$prefix}white);
}
}

View File

@@ -0,0 +1,7 @@
import { Notyf } from 'notyf';
try {
window.Notyf = Notyf;
} catch (e) {}
export { Notyf };

View File

@@ -0,0 +1,34 @@
@import "../../scss/_bootstrap-extended/include";
@import "notyf/notyf.min";
.notyf__toast {
&.notyf__toast--dismissible .notyf__wrapper {
padding-inline-end: 1.625rem;
}
.notyf__wrapper {
@include border-radius($border-radius);
}
.notyf__icon {
margin-inline: 0 1rem;
}
&.notyf__info {
box-shadow: 0 .25rem 1rem rgba(var(--#{$prefix}info-rgb), .4);
color: color-contrast(map-get($theme-colors, info));
}
&.notyf__error {
box-shadow: 0 .25rem 1rem rgba(var(--#{$prefix}danger-rgb), .4);
color: color-contrast(map-get($theme-colors, danger));
}
&.notyf__success {
box-shadow: 0 .25rem 1rem rgba(var(--#{$prefix}success-rgb), .4);
color: color-contrast(map-get($theme-colors, success));
}
&.notyf__warning {
box-shadow: 0 .25rem 1rem rgba(var(--#{$prefix}warning-rgb), .4);
color: color-contrast(map-get($theme-colors, warning));
}
}

View File

@@ -0,0 +1,7 @@
import noUiSlider from 'nouislider';
try {
window.noUiSlider = noUiSlider;
} catch (e) {}
export { noUiSlider };

View File

@@ -0,0 +1,269 @@
@import "../../scss/_bootstrap-extended/include";
@import "nouislider/dist/nouislider";
$noUiSlider-handle-color: var(--#{$prefix}white) !default;
$noUiSlider-handle-width: 1.375rem !default;
$noUiSlider-handle-height: 1.375rem !default;
$noUiSlider-bar-height: .375rem !default;
$noUiSlider-vertical-height: 13.125rem !default;
$noUiSlider-tick-size: .5rem !default;
$noUiSlider-tick-label-font-size: $font-size-sm !default;
$noUiSlider-line-color: var(--#{$prefix}primary-bg-subtle);
$noUiSlider-disabled-line-color: var(--#{$prefix}gray-100);
$noUiSlider-tick-label-color: var(--#{$prefix}secondary-color);
$noUiSlider-tooltip-bg: $tooltip-bg;
.noUi-target {
--#{$prefix}noUi-base-color: var(--#{$prefix}primary);
--#{$prefix}noUi-thumb-shadow: var(--#{$prefix}primary-rgb);
--#{$prefix}popover-bg: #{$popover-bg};
--#{$prefix}noUiSlider-line-color: #{$noUiSlider-line-color};
--#{$prefix}noUiSlider-tooltip-bg: #{$noUiSlider-tooltip-bg};
position: relative;
border-width: 0;
background: var(--#{$prefix}noUiSlider-line-color);
box-shadow: none;
&,
& * {
box-sizing: border-box;
touch-action: none;
user-select: none;
}
/* Handles and cursors */
.noUi-draggable {
cursor: ew-resize;
}
/* Tooltips */
.noUi-tooltip {
position: absolute;
display: block;
border: none;
@include border-radius(.25rem);
background: var(--#{$prefix}noUiSlider-tooltip-bg);
color: var(--#{$prefix}paper-bg);
font-size: $small-font-size;
line-height: 1;
padding-block: .25rem;
padding-inline: .5rem;
text-align: center;
transition: transform .2s;
&::after {
position: absolute;
block-size: 0;
clear: both;
content: "";
inline-size: 0;
}
}
/* Slider size and handle placement */
/* Horizontal layout */
&.noUi-horizontal {
block-size: $noUiSlider-bar-height;
.noUi-handle.noUi-active .noUi-tooltip {
transform: translate(-50%, 10%) scale(.8, .8);
}
.noUi-handle {
block-size: $noUiSlider-handle-height;
inline-size: $noUiSlider-handle-width;
inset-block-start: -.5rem;
inset-inline: auto calc(-#{$noUiSlider-handle-width} * .5);
}
.noUi-pips-horizontal {
padding-block: (($noUiSlider-handle-height - $noUiSlider-bar-height) * .5 + .375rem) 0;
padding-inline: 0;
}
.noUi-value-horizontal {
padding-block-start: .125rem;
transform: translate(-50%, 50%);
:dir(rtl) & {
transform: translate(50%, 50%);
}
}
.noUi-marker-horizontal.noUi-marker {
block-size: $noUiSlider-tick-size;
inline-size: 1px;
}
.noUi-tooltip {
inset-block-end: 125%;
transform: translate(-50%, -45%);
&::after {
border-block-start: 8px solid var(--#{$prefix}noUiSlider-tooltip-bg);
border-inline-end: 8px solid transparent;
border-inline-start: 8px solid transparent;
content: "";
inset-block-start: 1.25rem;
inset-inline-start: 50%;
transform: translateX(-50%);
:dir(rtl) & {
transform: translateX(50%);
}
}
}
}
/* Vertical layout */
&.noUi-vertical {
inline-size: $noUiSlider-bar-height;
.noUi-origin {
inline-size: 0;
}
.noUi-handle {
&.noUi-active .noUi-tooltip {
transform: translate(10%, -50%) scale(.8, .8);
:dir(rtl) & {
transform: translate(-10%, -50%) scale(.8, .8);
}
}
block-size: $noUiSlider-handle-width;
inline-size: $noUiSlider-handle-height;
inset-block-end: -($noUiSlider-handle-height);
inset-inline-end: -(($noUiSlider-handle-height * .34) + .05);
:dir(rtl) & {
inset-inline-start: -(($noUiSlider-handle-height * .34) + .05);
}
}
.noUi-draggable {
cursor: ns-resize;
}
.noUi-pips-vertical {
padding-block: 0;
padding-inline: (($noUiSlider-handle-height - $noUiSlider-bar-height) * .5 + .375rem) 0;
}
.noUi-value-vertical {
padding-inline-start: $noUiSlider-tick-size + .375rem;
}
.noUi-marker-vertical.noUi-marker {
block-size: 1px;
inline-size: $noUiSlider-tick-size;
}
.noUi-tooltip {
inset-inline: auto 125%;
transform: translate(-15%, -52%);
&::after {
border-block-end: 8px solid transparent;
border-block-start: 8px solid transparent;
border-inline-start: 8px solid var(--#{$prefix}noUiSlider-tooltip-bg);
content: "";
inset-block-start: 14%;
inset-inline-end: -5px;
}
:dir(rtl) & {
transform: translate(15%, -52%);
}
}
}
.noUi-handle {
border-width: .25rem;
border-color: var(--#{$prefix}noUi-base-color);
@include border-radius(var(--#{$prefix}border-radius-pill));
backface-visibility: hidden;
box-shadow: 0 0 0 1px rgb(var(--#{$prefix}pure-black) / 10%), var(--#{$prefix}floating-component-shadow);
cursor: pointer;
outline: none;
transform-origin: center;
transition: transform .2s;
&::before,
&::after {
display: none;
}
&.noUi-active {
transform: scale(1.4, 1.4);
}
}
.noUi-touch-area {
block-size: 100%;
inline-size: 100%;
}
&.noUi-state-tap {
.noUi-connect,
.noUi-origin {
transition:
inset-block-start .3s,
inset-inline-end .3s,
inset-block-end .3s,
inset-inline-start .3s;
}
}
/* Disabled state */
&[disabled] {
opacity: .45;
.noUi-handle {
box-shadow: 0 0 0 1px rgb(var(--#{$prefix}pure-black) / 5%);
}
}
&[disabled],
[disabled].noUi-handle,
&[disabled] .noUi-handle {
cursor: not-allowed;
pointer-events: none;
}
/* Base */
.noUi-pips {
position: absolute;
color: var(--#{$prefix}secondary-color);
&,
& * {
box-sizing: border-box;
}
}
/* Values */
.noUi-value {
position: absolute;
color: $noUiSlider-tick-label-color;
font-size: $noUiSlider-tick-label-font-size;
white-space: nowrap;
}
/* Markings */
.noUi-marker {
position: absolute;
background: $noUiSlider-tick-label-color;
}
.noUi-base {
.noUi-connect {
background: var(--#{$prefix}noUi-base-color);
}
.noUi-handle {
&:hover {
box-shadow: 0 0 0 .5rem rgba(var(--#{$prefix}noUi-thumb-shadow), .16);
}
&:active,
&:focus {
box-shadow: 0 0 0 .625rem rgba(var(--#{$prefix}noUi-thumb-shadow), .16);
}
}
}
}
@each $state in map-keys($theme-colors) {
.noUi-#{$state} {
--#{$prefix}noUi-base-color: var(--#{$prefix}#{$state});
--#{$prefix}noUi-thumb-shadow: var(--#{$prefix}#{$state}-rgb);
--#{$prefix}noUiSlider-line-color: var(--#{$prefix}#{$state}-bg-subtle);
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.noUi-tooltip{
--#{$prefix}noUiSlider-tooltip-bg: #{$tooltip-bg-dark};
}
}
}

View File

@@ -0,0 +1,8 @@
import numeral from 'numeral';
import 'numeral/locales';
try {
window.numeral = numeral;
} catch (e) {}
export { numeral };

View File

@@ -0,0 +1,7 @@
import PerfectScrollbar from 'perfect-scrollbar/dist/perfect-scrollbar';
try {
window.PerfectScrollbar = PerfectScrollbar;
} catch (e) {}
export { PerfectScrollbar };

View File

@@ -0,0 +1,85 @@
@import "../../scss/_bootstrap-extended/include";
@import "perfect-scrollbar/css/perfect-scrollbar";
$ps-width: .25rem !default;
$ps-hover-width: .375rem !default;
.ps {
position: relative;
.ps__rail-x {
block-size: $ps-width;
}
.ps__rail-y {
z-index: 3;
inline-size: $ps-width;
}
.ps__rail-x,
.ps__rail-y,
.ps__thumb-x,
.ps__thumb-y {
@include border-radius($border-radius-pill);
}
.ps__rail-x:hover,
.ps__rail-x:focus,
.ps__rail-x.ps--clicking,
.ps__rail-x:hover > .ps__thumb-x,
.ps__rail-x:focus > .ps__thumb-x,
.ps__rail-x.ps--clicking > .ps__thumb-x {
block-size: $ps-hover-width;
}
.ps__rail-y:hover,
.ps__rail-y:focus,
.ps__rail-y.ps--clicking,
.ps__rail-y:hover > .ps__thumb-y,
.ps__rail-y:focus > .ps__thumb-y,
.ps__rail-y.ps--clicking > .ps__thumb-y {
inline-size: $ps-hover-width;
}
.ps__thumb-x {
block-size: $ps-width;
inset-block-end: 0;
}
.ps__thumb-y {
inline-size: $ps-width;
inset-inline-end: 0;
}
.ps__thumb-x,
.ps__thumb-y {
background-color: var(--#{$prefix}gray-400);
}
.ps__rail-x:hover,
.ps__rail-y:hover,
.ps__rail-x:focus,
.ps__rail-y:focus,
.ps__rail-x.ps--clicking,
.ps__rail-y.ps--clicking {
background-color: var(--#{$prefix}gray-200);
}
.ps__rail-x:hover > .ps__thumb-x,
.ps__rail-y:hover > .ps__thumb-y,
.ps__rail-x:focus > .ps__thumb-x,
.ps__rail-y:focus > .ps__thumb-y,
.ps__rail-x.ps--clicking > .ps__thumb-x,
.ps__rail-y.ps--clicking > .ps__thumb-y {
background-color: var(--#{$prefix}gray-700);
}
}
/* Firefox width issue fixed */
@supports (-moz-appearance: none) {
#both-scrollbars-example {
margin-block: 0;
margin-inline: auto;
max-inline-size: 1080px;
padding-inline: 0;
}
}

View File

@@ -0,0 +1,9 @@
@import "@simonwep/pickr/dist/themes/classic.min";
.pcr-app[data-theme="classic"] .pcr-selection .pcr-color-preview{
margin-inline-end: .75em;
}
.pcr-app[data-theme="classic"] .pcr-selection .pcr-color-chooser,
.pcr-app[data-theme="classic"] .pcr-selection .pcr-color-opacity {
margin-inline: .45em;
}

View File

@@ -0,0 +1,11 @@
@import "@simonwep/pickr/dist/themes/monolith.min";
.pcr-app[data-theme="monolith"] .pcr-selection .pcr-color-preview .pcr-last-color {
@include border-radius(0);
@include border-start-radius(.15em);
}
.pcr-app[data-theme="monolith"] .pcr-selection .pcr-color-preview .pcr-current-color {
@include border-radius(0);
@include border-end-radius(.15em);
}

View File

@@ -0,0 +1,5 @@
@import "@simonwep/pickr/dist/themes/nano.min";
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview {
margin-inline: .6em;
}

View File

@@ -0,0 +1,33 @@
/* Pickr */
/* ******************************************************************************* */
@import "../../scss/_bootstrap-extended/include";
@import "pickr-classic";
@import "pickr-monolith";
@import "pickr-nano";
/* Update as per the customizer settings */
.pcr-app{
z-index: 999999999;
background: var(--#{$prefix}paper-bg);
.pcr-interaction input{
&.pcr-type.active,
&.pcr-save {
background: var(--#{$prefix}primary);
}
&.pcr-result{
border: 1px solid var(--#{$prefix}border-color);
background: var(--#{$prefix}body-bg);
color: var(--#{$prefix}base-color);
}
&:focus {
box-shadow: 0 0 0 1px rgba(var(--#{$prefix}paper-bg-rgb), .85), 0 0 0 3px rgba(var(--#{$prefix}primary-rgb), .75);
}
}
.pcr-type:not(.active) {
background: var(--#{$prefix}body-bg);
color: var(--#{$prefix}body-color);
}
}

View File

@@ -0,0 +1,7 @@
import Pickr from '@simonwep/pickr/dist/pickr.es5.min';
try {
window.Pickr = Pickr;
} catch (e) {}
export { Pickr };

View File

@@ -0,0 +1,7 @@
import Plyr from 'plyr';
try {
window.Plyr = Plyr;
} catch (e) {}
export { Plyr };

View File

@@ -0,0 +1,148 @@
@import "../../scss/_bootstrap-extended/include";
/* Variables */
@import "plyr/src/sass/settings/breakpoints";
@import "plyr/src/sass/settings/colors";
@import "plyr/src/sass/settings/cosmetics";
@import "plyr/src/sass/settings/type";
@import "plyr/src/sass/settings/badges";
@import "plyr/src/sass/settings/captions";
@import "plyr/src/sass/settings/controls";
@import "plyr/src/sass/settings/helpers";
@import "plyr/src/sass/settings/menus";
@import "plyr/src/sass/settings/progress";
@import "plyr/src/sass/settings/sliders";
@import "plyr/src/sass/settings/tooltips";
@import "plyr/src/sass/lib/animation";
@import "plyr/src/sass/lib/functions";
@import "plyr/src/sass/lib/mixins";
/* Components */
@import "plyr/src/sass/base";
@import "plyr/src/sass/components/badges";
@import "plyr/src/sass/components/captions";
@import "plyr/src/sass/components/control";
@import "plyr/src/sass/components/controls";
@import "plyr/src/sass/components/menus";
@import "plyr/src/sass/components/sliders";
@import "plyr/src/sass/components/poster";
@import "plyr/src/sass/components/times";
@import "plyr/src/sass/components/tooltips";
@import "plyr/src/sass/components/progress";
@import "plyr/src/sass/components/volume";
@import "plyr/src/sass/types/audio";
@import "plyr/src/sass/types/video";
@import "plyr/src/sass/states/fullscreen";
@import "plyr/src/sass/plugins/ads";
@import "plyr/src/sass/plugins/preview-thumbnails";
@import "plyr/src/sass/utils/animation";
@import "plyr/src/sass/utils/hidden";
.plyr {
--plyr-color-main: var(--#{$prefix}primary);
--plyr-focus-visible-color: var(--#{$prefix}primary);
--plyr-menu-background: var(--#{$prefix}white);
--plyr-video-control-color-hover: var(--#{$prefix}primary-contrast);
--plyr-audio-control-color-hover: var(--plyr-video-control-color-hover);
.plyr--audio .plyr__controls {
padding: 0;
}
&.plyr--video,
&.plyr--audio {
.plyr__control:focus-visible {
outline: none;
}
}
&.plyr--audio {
.plyr__progress__buffer {
color: var(--#{$prefix}gray-200);
}
.plyr__controls {
background-color: var(--#{$prefix}paper-bg);
color: var(--#{$prefix}body-color);
}
}
&.plyr--full-ui.plyr--audio input[type="range"] {
&::-webkit-slider-runnable-track,
&::-moz-range-track,
&::-ms-track {
background-color: var(--#{$prefix}gray-100);
}
}
.plyr__menu__container .plyr__control[role="menuitemradio"] {
&:hover,
&:focus-visible {
&::before {
background: $plyr-color-gray-100;
}
}
&[aria-checked="true"] {
&:hover,
&:focus-visible {
&::before {
background: var(--#{$prefix}white);
}
&::after {
background: var(--#{$prefix}primary);
}
}
}
}
input[type="range"] {
&::-ms-fill-lower {
background: var(--#{$prefix}primary);
}
&:active {
&::-webkit-slider-thumb {
background: var(--#{$prefix}primary);
}
&::-moz-range-thumb {
background: var(--#{$prefix}primary);
}
&::-ms-thumb {
background: var(--#{$prefix}primary);
}
}
}
.plyr__tooltip,
.plyr__menu__container {
box-shadow: none;
filter: drop-shadow(0 .0625rem .125rem rgba($pure-black, .15));
}
.plyr__controls {
flex-wrap: wrap;
.plyr__progress__container {
min-inline-size: 3.75rem;
}
}
}
//? Library does not provide RTL support
:dir(rtl) {
.plyr__menu__container {
direction: rtl;
.plyr__control--forward {
&::after {
border-inline-end-color: transparent;
border-inline-start-color: rgba($plyr-menu-color, .8);
inset-inline: auto 5px;
}
}
.plyr__menu__value {
padding-inline: calc(calc(var(--plyr-control-spacing, 10px) * .7) * 1.5) 1rem;
}
.plyr__control[role="menuitemradio"] {
&::before {
margin-inline: 0 $plyr-control-spacing;
}
&::after {
inset-inline: .9375rem auto;
}
}
}
}

View File

@@ -0,0 +1,10 @@
import Popper from '@popperjs/core/dist/umd/popper.min';
// Required to enable animations on dropdowns/tooltips/popovers
// Popper.Defaults.modifiers.computeStyle.gpuAcceleration = false
try {
window.Popper = Popper;
} catch (e) {}
export { Popper };

View File

@@ -0,0 +1,46 @@
@mixin quill-generate-lists($indent) {
$quill-list-types: (
1: lower-alpha,
2: lower-roman,
3: decimal,
4: lower-alpha,
5: lower-roman,
6: decimal,
7: lower-alpha,
8: lower-roman,
9: decimal
);
@for $i from 1 through 9 {
ol li.ql-indent-#{$i} {
counter-increment: list-#{$i};
@if $i < 9 {
$lists: "";
@for $l from $i + 1 through 9 {
$lists: "#{$lists} list-#{$l}";
}
counter-reset: #{$lists};
}
&::before {
content: counter(list-#{$i}, map-get($quill-list-types, $i)) ". ";
}
}
.ql-indent-#{$i}:not(.ql-direction-rtl) {
padding-inline-start: $indent * $i;
}
li.ql-indent-#{$i}:not(.ql-direction-rtl) {
padding-inline-start: $indent * ($i + 1);
}
.ql-indent-#{$i}.ql-direction-rtl.ql-align-right {
padding-inline-end: $indent * $i;
}
li.ql-indent-#{$i}.ql-direction-rtl.ql-align-right {
padding-inline-end: $indent * ($i + 1);
}
}
}

View File

@@ -0,0 +1,666 @@
/* Editor */
/* ******************************************************************************* */
@import "../../scss/_bootstrap-extended/include";
/* common styles */
.ql-container {
position: relative;
display: block;
margin: 0;
.ql-editor {
display: block;
outline: none;
overflow-y: auto;
tab-size: 4;
white-space: pre-wrap;
word-wrap: break-word;
&.ql-blank::before {
position: absolute;
color: var(--#{$prefix}secondary-color);
content: attr(data-placeholder);
font-size: $font-size-root;
font-style: italic;
pointer-events: none;
}
}
}
/* Themes */
.ql-snow,
.ql-bubble {
box-sizing: border-box;
.ql-hidden {
display: none !important;
}
.ql-transparent {
opacity: .4;
}
.ql-thin,
.ql-stroke.ql-thin {
stroke-width: 1;
}
.ql-direction.ql-active {
svg:last-child {
display: inline;
}
svg:first-child {
display: none;
}
}
.ql-direction svg:last-child {
display: none;
}
&.ql-toolbar,
& .ql-toolbar {
padding: .5rem;
@include border-top-radius($border-radius);
&::after {
display: table;
clear: both;
content: "";
}
button {
display: inline-block;
border: none;
background: none;
block-size: 1.5rem;
cursor: pointer;
float: inline-start;
inline-size: 1.75rem;
padding-block: .1875rem;
padding-inline: .3125rem;
svg {
block-size: 100%;
float: inline-start;
}
}
.ql-picker-options {
box-shadow: $dropdown-box-shadow;
}
input.ql-image[type="file"] {
display: none;
}
}
.ql-tooltip {
position: absolute;
&:not(.ql-flip) {
transform: translateY(.625rem);
}
a {
cursor: pointer;
}
}
.ql-formats {
display: inline-block;
margin-inline-end: .9375rem;
vertical-align: middle;
&::after {
display: table;
clear: both;
content: "";
}
}
.ql-picker {
position: relative;
display: inline-block;
block-size: 1.5rem;
float: inline-start;
vertical-align: middle;
&.ql-expanded .ql-picker-options {
z-index: 1;
display: block;
inset-block-start: 100%;
margin-block-start: -.0625rem;
}
&.ql-header,
&.ql-font,
&.ql-size {
.ql-picker-label[data-label]:not([data-label=""])::before,
.ql-picker-item[data-label]:not([data-label=""])::before {
content: attr(data-label);
}
}
&.ql-header {
inline-size: 6.125rem;
.ql-picker-label,
.ql-picker-item {
&::before {
content: "Normal";
}
&[data-value="1"]::before {
content: "Heading 1";
}
&[data-value="2"]::before {
content: "Heading 2";
}
&[data-value="3"]::before {
content: "Heading 3";
}
&[data-value="4"]::before {
content: "Heading 4";
}
&[data-value="5"]::before {
content: "Heading 5";
}
&[data-value="6"]::before {
content: "Heading 6";
}
}
.ql-picker-item {
&[data-value="1"]::before {
font-size: $h1-font-size;
}
&[data-value="2"]::before {
font-size: $h2-font-size;
}
&[data-value="3"]::before {
font-size: $h3-font-size;
}
&[data-value="4"]::before {
font-size: $h4-font-size;
}
&[data-value="5"]::before {
font-size: $h5-font-size;
}
&[data-value="6"]::before {
font-size: $h6-font-size;
}
}
}
&.ql-font {
inline-size: 6.75rem;
.ql-picker-label,
.ql-picker-item {
&::before {
content: "Sans Serif";
}
&[data-value="serif"]::before {
content: "Serif";
}
&[data-value="monospace"]::before {
content: "Monospace";
}
}
}
&.ql-size {
inline-size: 6.125rem;
.ql-picker-label,
.ql-picker-item {
&::before {
content: "Normal";
}
&[data-value="small"]::before {
content: "Small";
}
&[data-value="large"]::before {
content: "Large";
}
&[data-value="huge"]::before {
content: "Huge";
}
}
}
&:not(.ql-color-picker, .ql-icon-picker) svg {
position: absolute;
inline-size: 1.125rem;
inset-block-start: 50%;
inset-inline-end: 0;
margin-block-start: -.5625rem;
}
}
.ql-picker-label {
position: relative;
display: inline-block;
border: .0625rem solid transparent;
block-size: 100%;
cursor: pointer;
inline-size: 100%;
padding-inline: .5rem .125rem;
&::before {
display: inline-block;
line-height: 1.375rem;
}
}
.ql-picker-options {
position: absolute;
display: none;
min-inline-size: 100%;
padding-block: .25rem;
padding-inline: .5rem;
white-space: nowrap;
.ql-picker-item {
display: block;
cursor: pointer;
padding-block: .3125rem;
}
}
.ql-color-picker,
.ql-icon-picker {
inline-size: 1.75rem;
.ql-picker-label {
padding-block: .125rem;
padding-inline: .25rem;
}
}
.ql-icon-picker {
.ql-picker-options {
padding-block: .25rem;
padding-inline: 0;
}
.ql-picker-item {
block-size: 1.5rem;
inline-size: 1.5rem;
padding-block: .125rem;
padding-inline: .25rem;
}
}
.ql-color-picker {
.ql-picker-options {
inline-size: 9.5rem;
padding-block: .1875rem;
padding-inline: .3125rem;
}
.ql-picker-item {
padding: 0;
border: .0625rem solid transparent;
margin: .125rem;
block-size: 1rem;
float: inline-start;
inline-size: 1rem;
}
&.ql-background .ql-picker-item {
background-color: var(--#{$prefix}paper-bg);
}
&.ql-color .ql-picker-item {
background-color: var(--#{$prefix}pure-black);
}
}
.ql-fill,
.ql-stroke.ql-fill {
fill: var(--#{$prefix}body-color);
}
.ql-italic svg,
.ql-list svg,
.ql-indent svg,
.ql-direction svg,
.ql-align svg,
.ql-link svg,
.ql-image svg,
.ql-clean svg {
:dir(rtl) & {
transform: scaleX(-1);
}
}
}
.ql-snow {
&.ql-toolbar,
.ql-toolbar {
border: .0625rem solid $input-border-color;
background: var(--#{$prefix}paper-bg);
background-clip: padding-box;
button:hover,
button:focus,
button.ql-active,
.ql-picker-label:hover,
.ql-picker-label.ql-active,
.ql-picker-item:hover,
.ql-picker-item.ql-selected {
color: var(--#{$prefix}primary);
.ql-fill,
.ql-stroke.ql-fill{
fill: var(--#{$prefix}primary);
}
.ql-stroke,
.ql-stroke-miter{
stroke: var(--#{$prefix}primary);
}
}
}
&.ql-toolbar + .ql-container.ql-snow {
border-block-start: 0;
& .ql-editor,
& {
@include border-bottom-radius(var(--#{$prefix}border-radius));
}
}
.ql-editor {
background: var(--#{$prefix}paper-bg);
min-block-size: 15rem;
padding-block: calc(#{$card-spacer-x-sm} * .5);
padding-inline: $input-padding-x;
&.ql-blank::before {
padding-block: 0;
padding-inline: 0 $input-padding-x;
}
.ql-code-block-container {
position: relative;
overflow: visible;
@include border-radius(.188rem);
background-color: var(--#{$prefix}dark);
color: var(--#{$prefix}white);
margin-block: .3125rem;
padding-block: .4375rem;
padding-inline: .625rem;
.ql-ui {
position: absolute;
inset-block-start: .3125rem;
inset-inline-end: .3125rem;
}
}
}
.ql-picker {
color: var(--#{$prefix}body-color);
&.ql-expanded {
.ql-picker-label {
z-index: 2;
border-color: $input-border-color;
color: var(--#{$prefix}secondary-color);
.ql-fill {
fill: var(--#{$prefix}secondary-color);
}
.ql-stroke {
stroke: var(--#{$prefix}secondary-color);
}
}
}
}
.ql-stroke {
fill: none;
stroke: var(--#{$prefix}body-color);
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.ql-stroke-miter {
fill: none;
stroke: var(--#{$prefix}body-color);
stroke-miterlimit: 10;
stroke-width: 2;
}
.ql-picker-label {
border: .0625rem solid transparent;
}
.ql-picker-options {
border: .0625rem solid var(--#{$prefix}border-color);
background-clip: padding-box;
background-color: var(--#{$prefix}paper-bg);
}
.ql-color-picker .ql-picker-item.ql-selected,
.ql-color-picker .ql-picker-item:hover {
border-color: var(--#{$prefix}pure-black);
}
.ql-tooltip {
display: flex;
border: $dropdown-border-width solid $dropdown-border-color;
@include border-radius($border-radius);
background-clip: padding-box;
background-color: var(--#{$prefix}paper-bg);
box-shadow: $dropdown-box-shadow;
color: var(--#{$prefix}body-color);
padding-block: .3125rem;
padding-inline: .75rem;
white-space: nowrap;
&::before {
content: "Visit URL:";
line-height: 1.625rem;
margin-inline-end: .5rem;
}
input[type="text"] {
display: none;
border: .0625rem solid $input-border-color;
margin: 0;
background-color: var(--#{$prefix}paper-bg);
font-size: .8125rem;
inline-size: 10.625rem;
padding-block: .1875rem;
padding-inline: .3125rem;
}
a.ql-action::after {
border-inline-end: .0625rem solid var(--#{$prefix}secondary-color);
content: "Edit";
margin-inline-start: 1rem;
padding-inline-end: .5rem;
}
a.ql-remove::before {
content: "Remove";
margin-inline-start: .5rem;
}
a {
line-height: 1.625rem;
}
&.ql-editing a.ql-preview,
&.ql-editing a.ql-remove {
display: none;
}
&.ql-editing input[type="text"] {
display: inline-block;
}
&.ql-editing a.ql-action::after {
border-inline-end: 0;
content: "Save";
padding-inline-end: 0;
}
&[data-mode="link"]::before {
content: "Enter link:";
}
&[data-mode="formula"]::before {
content: "Enter formula:";
}
&[data-mode="video"]::before {
content: "Enter video:";
}
}
&.ql-container {
border: .0625rem solid $input-border-color;
}
}
.ql-bubble {
--#{$prefix}bubble-tooltip-bg: #444;
--#{$prefix}bubble-tooltip-color: #ccc;
&.ql-toolbar,
.ql-toolbar {
button:hover,
button:focus,
button.ql-active,
.ql-picker-label:hover,
.ql-picker-label.ql-active,
.ql-picker-item:hover,
.ql-picker-item.ql-selected {
color: var(--#{$prefix}white);
.ql-stroke,
.ql-stroke-miter {
stroke: var(--#{$prefix}white);
}
.ql-fill,
.ql-stroke.ql-fill {
fill: var(--#{$prefix}white);
}
}
@media (pointer: coarse) {
button:hover:not(.ql-active) {
color: var(--#{$prefix}bubble-tooltip-color);
}
button:hover:not(.ql-active) .ql-fill,
button:hover:not(.ql-active) .ql-stroke.ql-fill {
fill: var(--#{$prefix}bubble-tooltip-color);
}
button:hover:not(.ql-active) .ql-stroke,
button:hover:not(.ql-active) .ql-stroke-miter {
stroke: var(--#{$prefix}bubble-tooltip-color);
}
}
}
.ql-stroke {
fill: none;
stroke: var(--#{$prefix}bubble-tooltip-color);
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.ql-stroke-miter {
fill: none;
stroke: var(--#{$prefix}bubble-tooltip-color);
stroke-miterlimit: 10;
stroke-width: 2;
}
.ql-fill,
.ql-stroke.ql-fill {
fill: var(--#{$prefix}bubble-tooltip-color);
}
.ql-picker {
color: var(--#{$prefix}bubble-tooltip-color);
}
.ql-picker-options {
background-color: var(--#{$prefix}bubble-tooltip-bg);
}
.ql-toolbar .ql-formats {
margin-block: .5rem;
margin-inline: 0 .75rem;
&:first-child {
margin-inline-start: .75rem;
}
}
.ql-tooltip-arrow {
position: absolute;
display: block;
border-inline-end: .375rem solid transparent;
border-inline-start: .375rem solid transparent;
content: " ";
inset-inline-start: 50%;
margin-inline-start: -.375rem;
}
.ql-tooltip {
z-index: $zindex-menu-fixed + 10;
@include border-radius($border-radius);
background-color: var(--#{$prefix}bubble-tooltip-bg);
color: var(--#{$prefix}white);
&:not(.ql-flip) .ql-tooltip-arrow {
border-block-end: .375rem solid var(--#{$prefix}bubble-tooltip-bg);
inset-block-start: -.375rem;
}
&.ql-flip .ql-tooltip-arrow {
border-block-start: .375rem solid var(--#{$prefix}bubble-tooltip-bg);
inset-block-end: -.375rem;
}
}
.ql-tooltip-editor {
display: none;
input[type="text"] {
border: none;
background: transparent;
color: var(--#{$prefix}white);
font-size: .8125rem;
inline-size: 100%;
padding-block: .625rem;
padding-inline: 1.25rem;
}
a {
position: absolute;
inset-block-start: .625rem;
inset-inline-end: 1.25rem;
}
}
.ql-editing .ql-tooltip-editor {
display: block;
}
}
/* dark styles */
@if $enable-dark-mode {
@include color-mode(dark) {
.ql-bubble {
--#{$prefix}bubble-tooltip-bg: var(--#{$prefix}body-bg);
}
}
}

View File

@@ -0,0 +1,7 @@
import katex from 'katex';
try {
window.katex = katex;
} catch (e) {}
export { katex };

View File

@@ -0,0 +1,7 @@
import Quill from 'quill';
try {
window.Quill = Quill;
} catch (e) {}
export { Quill };

View File

@@ -0,0 +1,87 @@
@import "../../scss/_bootstrap-extended/include";
@import "mixins";
.ql-editor {
$quill-indent: 2rem;
@include quill-generate-lists($quill-indent);
.ql-video {
display: block;
max-inline-size: 100%;
}
.ql-direction-rtl {
direction: rtl;
text-align: inherit;
:dir(rtl) & {
direction: ltr;
text-align: inherit;
}
}
.ql-align-center {
text-align: center;
}
.ql-align-justify {
text-align: justify;
}
.ql-align-right:not(.ql-direction-rtl) {
text-align: end;
}
img {
max-inline-size: 100%;
}
blockquote {
font-size: $blockquote-font-size;
}
.ql-font-serif {
font-family: $font-family-serif;
}
.ql-font-monospace {
font-family: $font-family-monospace;
}
.ql-size-large {
font-size: $font-size-lg;
}
.ql-size-huge {
font-size: $font-size-xl;
}
.ql-size-small {
font-size: $font-size-sm;
}
}
.ql-content,
.ql-editor {
$quill-indent: 2rem;
ul,
ol {
li[data-list="bullet"] {
position: relative;
list-style: none;
padding-inline-start: 1em;
}
}
ul > li[data-list="bullet"]::before,
ol > li[data-list="bullet"]::before {
position: absolute;
content: "\2022";
font-size: 1em;
inset-inline-start: 0;
}
li::before {
display: inline-block;
inline-size: calc(#{$quill-indent} - .3em);
white-space: nowrap;
}
}

View File

@@ -0,0 +1,6 @@
import Raty from 'raty-js';
try {
window.Raty = Raty;
} catch (e) {}
export { Raty };

View File

@@ -0,0 +1,10 @@
/* raty-js */
/* ******************************************************************************* */
@import "../../scss/_bootstrap-extended/include";
@import "raty-js/src/raty";
.raty img {
@include icon-base(2rem);
}

View File

@@ -0,0 +1,8 @@
import select2 from 'select2/dist/js/select2.full';
try {
window.select2 = select2;
} catch (e) {}
// select2();
export { select2 };

View File

@@ -0,0 +1,334 @@
/* Select2 */
/* ******************************************************************************* */
@import "../../scss/_bootstrap-extended/include";
@import "select2/src/scss/core";
$select-max-levels: 5 !default;
.select2-container {
--#{$prefix}select-height: 2.375rem;
--#{$prefix}select-color: var(--#{$prefix}heading-color);
--#{$prefix}select-border-width: #{$input-border-width};
--#{$prefix}select-border-color: #{$input-border-color};
--#{$prefix}select-active-border: 0 0 0 #{$input-border-width} #{$input-focus-border-color};
--#{$prefix}select-active-border-color: #{$form-select-focus-border-color};
--#{$prefix}select-active-box-shadow: #{$form-select-focus-box-shadow};
--#{$prefix}select-disabled-color: #{$input-disabled-color};
--#{$prefix}select-disabled-border-color: #{$input-disabled-border-color};
--#{$prefix}select-disabled-bg: #{$input-disabled-bg};
--#{$prefix}select-arrow: #{escape-svg($form-select-indicator)};
--#{$prefix}select-disabled-arrow: #{escape-svg($form-select-disabled-indicator)};
/* Dropdown */
--#{$prefix}select-dropdown-border-width: #{$dropdown-border-width};
--#{$prefix}select-dropdown-border-color: #{$dropdown-border-color};
--#{$prefix}select-dropdown-bg: #{$dropdown-bg};
--#{$prefix}select-dropdown-box-shadow: #{$dropdown-box-shadow};
--#{$prefix}select-dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
--#{$prefix}select-dropdown-link-active-bg: #{$dropdown-link-active-bg};
--#{$prefix}select-dropdown-link-active-color: #{$dropdown-link-active-color};
/* Multiple */
--#{$prefix}select-multiple-padding-x: .3125rem;
--#{$prefix}select-multiple-padding-y: .3125rem;
--#{$prefix}select-multiple-line-height: 1.5rem;
--#{$prefix}select-multiple-choice-color: var(--#{$prefix}body-color);
--#{$prefix}select-multiple-choice-bg: color-mix(in sRGB, var(--#{$prefix}base-color) 8%, var(--#{$prefix}paper-bg));
--#{$prefix}select-multiple-disabled-choice-color: var(--#{$prefix}secondary-color);
--#{$prefix}select-multiple-disabled-choice-bg: color-mix(in sRGB, var(--#{$prefix}base-color) 18%, var(--#{$prefix}paper-bg));
/* using below style to assign default width to the select2 container */
inline-size: 100% !important;
.select2-selection--single {
block-size: var(--#{$prefix}select-height);
}
&.select2-container--default {
.select2-selection--single {
.select2-selection__rendered {
padding-inline-end: calc($form-select-indicator-padding - .4375rem);
padding-inline-start: calc($form-select-padding-x - .0625rem);
}
}
}
}
.select2-search__field {
color: $input-color;
}
.select2-dropdown {
border: var(--#{$prefix}select-dropdown-border-width) solid var(--#{$prefix}select-dropdown-border-color);
background-color: var(--#{$prefix}select-dropdown-bg);
box-shadow: var(--#{$prefix}select-dropdown-box-shadow);
@include border-radius($dropdown-border-radius);
}
.select2-results__option {
&[role="option"] {
@include border-radius($border-radius);
margin-block: .125rem;
margin-inline: .5rem;
padding-block: $dropdown-item-padding-y;
padding-inline: calc($dropdown-item-padding-x - .25rem);
}
.select2-results__group {
font-size: $font-size-sm;
font-weight: $font-weight-medium;
padding-block: .5rem;
padding-inline: ($input-padding-x * .5);
text-transform: uppercase;
}
}
.select2-results__options {
/* Select option levels loop for padding left/right */
@for $i from 2 through $select-max-levels {
$selector: "";
@for $l from 1 through $i {
$selector: "#{$selector} .select2-results__option";
}
.select2-results__options {
.select2-results__group {
margin-inline-start: ($dropdown-item-padding-x * ($i)) - ($input-padding-x * 3);
}
#{$selector} {
margin-inline-start: ($dropdown-item-padding-x * ($i));
}
}
}
}
.select2-container--default {
/* Remove outlines */
&,
* {
outline: 0;
}
.select2-selection {
border: var(--#{$prefix}select-border-width) solid var(--#{$prefix}select-border-color);
background-color: $input-bg;
transition: $input-transition;
@include border-radius($border-radius);
&:hover {
border-color: $input-hover-border-color;
}
}
/* search field styles */
.select2-search--dropdown .select2-search__field {
border-color: var(--#{$prefix}select-border-color);
@include border-radius($input-border-radius);
background-color: var(--#{$prefix}select-dropdown-bg);
inline-size: calc(100% - 1rem);
margin-block: .25rem;
margin-block-end: 0;
margin-inline: .5rem;
}
.select2-results__message {
margin-inline: .5rem;
}
/* Single Selection */
.select2-selection--single {
.select2-selection__clear {
color: var(--#{$prefix}secondary-color);
font-weight: $font-weight-medium;
inset-inline-end: .625rem;
}
.select2-selection__placeholder {
color: $input-placeholder-color;
}
.select2-selection__rendered {
color: var(--#{$prefix}select-color);
line-height: calc(var(--#{$prefix}select-height) - var(--#{$prefix}select-border-width) * 2);
}
.select2-selection__arrow {
position: absolute;
block-size: 100%;
inline-size: $form-select-indicator-padding;
inset-block-start: $input-border-width;
inset-inline-end: .375rem !important;
inset-inline-start: auto;
b {
border: none;
margin: 0;
background-image: var(--#{$prefix}select-arrow);
background-position: center;
background-repeat: no-repeat;
background-size: 20px 19px;
block-size: 100%;
inline-size: 100%;
inset-block-start: 0;
inset-inline-start: 0;
transform-origin: center;
transition: transform .3s ease;
}
}
.is-invalid ~ & {
border-width: $input-focus-border-width;
border-color: var(--#{$prefix}form-validation-border-color);
box-shadow: var(--#{$prefix}form-validation-shadow);
}
}
.select2-selection__rendered:has(> .select2-selection__placeholder) ~ .select2-selection__arrow b {
background-image: var(--#{$prefix}select-disabled-arrow);
}
/* Multiple Selection */
.select2-selection--multiple {
min-block-size: var(--#{$prefix}select-height);
.select2-selection__rendered {
display: block;
margin-block-start: calc(var(--#{$prefix}select-multiple-padding-y) * -1);
margin-inline-end: calc(var(--#{$prefix}select-multiple-padding-x) * -1);
padding-block: var(--#{$prefix}select-multiple-padding-y);
padding-inline: var(--#{$prefix}select-multiple-padding-x);
.select2-search--inline:first-child {
.select2-search__field {
padding-inline-start: calc($form-select-padding-x - var(--#{$prefix}select-multiple-padding-x));
}
}
}
.select2-selection__clear {
font-weight: $font-weight-medium;
margin-block-start: .25rem;
}
.select2-search--inline {
line-height: var(--#{$prefix}select-multiple-line-height);
}
.select2-selection__choice {
position: relative;
border-color: var(--#{$prefix}select-multiple-choice-bg);
@include border-radius($border-radius-sm);
background-color: var(--#{$prefix}select-multiple-choice-bg);
color: var(--#{$prefix}select-multiple-choice-color);
font-size: $font-size-sm;
line-height: var(--#{$prefix}select-multiple-line-height);
padding-inline: .5rem 1rem;
:dir(rtl) &,
& {
margin-block-start: var(--#{$prefix}select-multiple-padding-y);
margin-inline: 0 var(--#{$prefix}select-multiple-padding-x);
}
}
.select2-selection__choice__remove {
position: absolute;
color: inherit;
font-weight: $font-weight-medium;
inset-inline-end: .3rem;
opacity: .5;
:dir(rtl) &,
& {
margin-inline-end: 0;
margin-inline-start: .25rem;
}
&:hover {
color: inherit;
opacity: .8;
}
}
}
.select2-results {
> .select2-results__options {
margin-block: .5rem;
}
}
.select2-results__option {
color: var(--#{$prefix}select-color);
&--highlighted[aria-selected] {
background-color: var(--#{$prefix}select-dropdown-link-hover-bg);
color: var(--#{$prefix}select-color);
}
&[aria-selected="true"] {
background-color: var(--#{$prefix}select-dropdown-link-active-bg);
color: var(--#{$prefix}select-dropdown-link-active-color);
}
&[aria-disabled="true"] {
background-color: var(--#{$prefix}select-disabled-bg);
color: var(--#{$prefix}select-disabled-color);
}
.select2-results__option {
padding-inline-start: calc($dropdown-item-padding-x - .25rem);
}
}
&.select2-container--focus,
&.select2-container--open {
.select2-selection {
border-width: $input-focus-border-width;
border-color: var(--#{$prefix}select-active-border-color);
box-shadow: var(--#{$prefix}select-active-box-shadow);
}
.select2-selection--single {
.select2-selection__rendered {
line-height: calc(var(--#{$prefix}select-height) - $input-focus-border-width * 2);
padding-inline-end: calc($form-select-indicator-padding - .5rem);
padding-inline-start: calc($form-select-padding-x - $input-focus-border-width);
}
.select2-selection__arrow {
b {
border: none;
transform: rotate(180deg);
}
}
}
.select2-selection--multiple {
.select2-selection__rendered {
padding-block: calc(var(--#{$prefix}select-multiple-padding-y) - var(--#{$prefix}select-border-width));
padding-inline-start: calc(var(--#{$prefix}select-multiple-padding-x) - var(--#{$prefix}select-border-width));
}
}
}
&.select2-container--disabled {
pointer-events: none;
.select2-selection--multiple,
.select2-selection--single {
border-color: var(--#{$prefix}select-disabled-border-color);
background-color: var(--#{$prefix}select-disabled-bg);
box-shadow: none;
}
.select2-selection--single {
.select2-selection__rendered {
color: var(--#{$prefix}select-disabled-color);
}
.select2-selection__arrow {
b {
background-image: var(--#{$prefix}select-disabled-arrow);
}
}
}
.select2-selection--multiple {
.select2-selection__choice {
border-color: var(--#{$prefix}select-multiple-disabled-choice-bg);
background-color: var(--#{$prefix}select-multiple-disabled-choice-bg);
color: var(--#{$prefix}select-multiple-disabled-choice-color);
}
}
}
}
@each $state in map-keys($theme-colors) {
.select2-#{$state} {
.select2-container {
--#{$prefix}select-multiple-choice-bg: color-mix(in sRGB, var(--#{$prefix}paper-bg) var(--#{$prefix}bg-label-tint-amount), var(--#{$prefix}#{$state}));
--#{$prefix}select-multiple-choice-color: var(--#{$prefix}#{$state});
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.select2-container {
--#{$prefix}select-arrow: #{escape-svg($form-select-indicator-dark)};
--#{$prefix}select-disabled-arrow: #{escape-svg($form-select-disabled-indicator-dark)};
}
}
}

View File

@@ -0,0 +1,7 @@
import Shepherd from 'shepherd.js';
try {
window.Shepherd = Shepherd;
} catch (e) {}
export { Shepherd };

View File

@@ -0,0 +1,114 @@
@import "../../scss/_bootstrap-extended/include";
@charset "UTF-8";
@import "shepherd.js/dist/css/shepherd";
$shepherd-header-content-padding-x: 1.25rem !default;
$shepherd-header-content-padding-y: 1.25rem 0 !default;
$shepherd-btn-padding-x: var(--#{$prefix}btn-padding-x) !default;
$shepherd-btn-padding-y: var(--#{$prefix}btn-padding-y) !default;
$shepherd-container-width: 15rem !default;
.shepherd-element {
padding: 0;
border-width: 0;
background: var(--#{$prefix}paper-bg);
inset-inline-start: auto;
@include border-radius(var(--#{$prefix}border-radius-sm));
@include media-breakpoint-down(sm) {
max-inline-size: 300px;
}
.shepherd-arrow::before {
border-color: var(--#{$prefix}paper-bg) !important;
background: var(--#{$prefix}paper-bg);
border-block-end: 1px solid;
border-inline-end: 1px solid;
}
.shepherd-title {
color: var(--#{$prefix}body-color);
font-size: $h5-font-size;
font-weight: $font-weight-medium;
}
.shepherd-content {
min-inline-size: $shepherd-container-width;
.shepherd-header {
background-color: var(--#{$prefix}paper-bg);
padding-block: $shepherd-header-content-padding-y;
padding-inline: $shepherd-header-content-padding-x;
.shepherd-cancel-icon {
color: var(--#{$prefix}secondary);
font-size: 1.85rem;
}
}
.shepherd-text {
color: var(--#{$prefix}body-color);
font-size: $font-size-base !important;
padding-block: 1rem !important;
padding-inline: $shepherd-header-content-padding-x !important;
}
.shepherd-footer {
.shepherd-button {
background: var(--#{$prefix}btn-bg);
color: var(--#{$prefix}btn-color);
padding-block: $shepherd-btn-padding-y;
padding-inline: $shepherd-btn-padding-x;
&:hover {
background: var(--#{$prefix}btn-hover-bg);
color: var(--#{$prefix}btn-hover-color);
}
}
padding-block: 0 $shepherd-header-content-padding-y !important;
padding-inline: $shepherd-header-content-padding-x !important;
}
}
/* Ask before submit */
&[data-popper-placement="bottom"] {
margin-block-start: .8rem !important;
.shepherd-arrow::before {
border-color: var(--#{$prefix}paper-bg) !important;
background-color: var(--#{$prefix}paper-bg) !important;
}
}
&[data-popper-placement="top"] {
margin-block-start: -.8rem;
}
&[data-popper-placement="left"] {
margin-inline-start: -.8rem;
.shepherd-arrow::before {
border-block-end: 0;
border-block-start: 1px solid;
}
}
&[data-popper-placement="right"] {
margin-inline-start: .8rem;
.shepherd-arrow::before {
border-inline-end: 0;
border-inline-start: 1px solid;
}
}
}
/* RTL */
:dir(rtl) {
.shepherd-element {
.shepherd-footer .btn-next {
margin-inline-start: .5rem;
}
&[data-popper-placement="left"] {
margin-inline-end: -.8rem;
}
&[data-popper-placement="right"] {
margin-inline-end: .8rem;
}
}
}

Some files were not shown because too many files have changed in this diff Show More