UNPKG

@sbh321/qcalendar

Version:

A forked version of Jeff Galbraith's fork of Quasar UI QCalendar

634 lines (624 loc) 19.7 kB
/*! * @subhambhandari/qcalendar v4.0.0-beta.19 * (c) 2024 Subham Bhandari <bhandarimaiya65@gmail.com> * Released under the MIT License. */ .q-calendar { position: relative; display: flex; flex-direction: column; color: var(--calendar-color); background: var(--calendar-background); width: 100%; min-width: auto; overflow: hidden; } .q-calendar__bordered { border: var(--calendar-border); } .q-calendar__button { display: inline-block; flex-direction: row; align-items: center; position: relative; outline: 0; border: 0; vertical-align: middle; padding: 0; font-size: 0.75em; line-height: 1.715em; text-decoration: none; color: inherit; background: transparent; text-transform: uppercase; text-align: center; width: auto; height: auto; min-height: 2em; min-width: 2em; will-change: background; transition: background 0.3s; } .q-calendar__button--rounded { border-radius: 6px; } .q-calendar__button--round { border-radius: 50%; } .q-calendar__button--bordered { border: var(--calendar-border); } .q-calendar__left { text-align: left !important; justify-content: flex-start; } .q-calendar__center { text-align: center !important; justify-content: center; } .q-calendar__right { text-align: right !important; justify-content: flex-end; } .q-calendar__justify { justify-content: space-between !important; } .q-calendar__header--inline { display: flex; flex: 1 0 0; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; align-items: center; } .q-calendar__ellipsis { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .q-calendar__overflow-wrap { overflow-wrap: break-word; overflow: hidden; } .q-calendar__parent { transition: transform 0.3s; border: solid currentColor; border-width: 0 2px 2px 0; display: inline-block; padding: 2px; width: 2px; height: 2px; cursor: pointer; } .q-calendar__parent--expanded { margin: 0 2px; transform: rotate(-135deg); } .q-calendar__parent--collapsed { margin: 0 2px; transform: rotate(45deg); } .q-calendar__child { position: relative; transition: max-height 0.28s linear; } .q-calendar__child--expanded { max-height: 800px; height: auto; } .q-calendar__child--collapsed { max-height: 0; overflow-y: hidden; } .q-calendar__focusable, .q-calendar__manual-focusable, .q-calendar__hoverable { outline: 0; } .q-calendar__focus-helper { position: absolute; top: 0; left: 0 /* rtl:ignore */; width: 100%; height: 100%; pointer-events: none; border-radius: inherit; opacity: 0; transition: background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.4s cubic-bezier(0.25, 0.8, 0.5, 1); } .q-calendar__focus-helper:before, .q-calendar__focus-helper:after { content: ""; position: absolute; top: 0; left: 0 /* rtl:ignore */; width: 100%; height: 100%; opacity: 0; border-radius: inherit; transition: background-color 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), opacity 0.6s cubic-bezier(0.25, 0.8, 0.5, 1); } .q-calendar__focus-helper:before { background: #000; } .q-calendar__focus-helper:after { background: #fff; } .q-calendar__focus-helper--rounded { border-radius: 6px; } .q-calendar__focus-helper--round { border-radius: 50%; } .q-calendar__focusable:focus > .q-calendar__focus-helper, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper, .q-calendar__hoverable:hover > .q-calendar__focus-helper { background: currentColor; opacity: 0.15; } .q-calendar__focusable:focus > .q-calendar__focus-helper:before, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper:before, .q-calendar__hoverable:hover > .q-calendar__focus-helper:before { opacity: 0.1; } .q-calendar__focusable:focus > .q-calendar__focus-helper:after, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper:after, .q-calendar__hoverable:hover > .q-calendar__focus-helper:after { opacity: 0.4; } .q-calendar__focusable:focus > .q-calendar__focus-helper, .q-calendar__manual-focusable--focused > .q-calendar__focus-helper { opacity: 0.22; } .disabled, .disabled *, [disabled], [disabled] * { outline: 0 !important; cursor: not-allowed !important; } .disabled, [disabled] { opacity: 0.6 !important; } .q-calendar { color: var(--calendar-color); background: var(--calendar-background); } .q-calendar .q-calendar__scroll::-webkit-scrollbar { width: var(--calendar-scrollbar-width-height); height: var(--calendar-scrollbar-width-height); } .q-calendar .q-calendar__scroll::-webkit-scrollbar-track { background: var(--calendar-scrollbar-track); box-shadow: inset 0 0 4px var(--calendar-scrollbar-track); } .q-calendar .q-calendar__scroll::-webkit-scrollbar-corner { background: var(--calendar-scrollbar-track); } .q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb { background: var(--calendar-scrollbar-thumb); border-radius: 5px; } .q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover { background: var(--calendar-scrollbar-thumb-hover); } .q-dark div.q-calendar, .body--dark div.q-calendar, .q-calendar--dark.q-calendar { color: var(--calendar-color-dark); background: var(--calendar-background-dark); } .q-dark div.q-calendar__bordered, .body--dark div.q-calendar__bordered, .q-calendar--dark.q-calendar__bordered { border: var(--calendar-border-dark); } .q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar, .body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar, .q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar { width: var(--calendar-scrollbar-width-height); height: var(--calendar-scrollbar-width-height); } .q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-track, .body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-track, .q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-track { background: var(--calendar-scrollbar-track-dark); box-shadow: inset 0 0 4px var(--calendar-scrollbar-track-dark); } .q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner, .body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner, .q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-corner { background: var(--calendar-scrollbar-track-dark); } .q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb, .body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb, .q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb { background: var(--calendar-scrollbar-thumb-dark); border-radius: 5px; } .q-dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover, .body--dark div.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover, .q-calendar--dark.q-calendar .q-calendar__scroll::-webkit-scrollbar-thumb:hover { background: var(--calendar-scrollbar-thumb-hover-dark); } .q-calendar-day { display: flex; flex: 1; flex-direction: column; flex-wrap: nowrap; height: 100%; width: 100%; } .q-calendar-day__head { position: relative; flex: none; display: flex; flex-direction: row; } .q-calendar-day__head--intervals { flex: none; display: flex; vertical-align: bottom; } .q-calendar-day__head--days__column { position: relative; display: flex; flex-direction: column; flex: 1 1 100%; -webkit-user-select: none; user-select: none; } .q-calendar-day__head--days__weekdays { position: relative; display: flex; flex-direction: row; flex-wrap: nowrap; -webkit-user-select: none; user-select: none; font-size: 1rem; } .q-calendar-day__head--days__event { position: relative; display: flex; flex-direction: row; flex-wrap: nowrap; height: auto; } .q-calendar-day__head--days__events { position: absolute; display: flex; flex-direction: row; flex-wrap: nowrap; bottom: 0; left: 0; right: 0; } .q-calendar-day__head--day { position: relative; flex: 1 1 100%; flex-wrap: nowrap; overflow: hidden; width: 0; outline: 0; } .q-calendar-day__head--day__event { position: relative; flex: 1 1 auto; flex-wrap: nowrap; overflow: hidden; } .q-calendar-day__head--weekday, .q-calendar-day__head--date, .q-calendar-day__column-header--before, .q-calendar-day__column-header--after { display: flex; flex-wrap: nowrap; -webkit-user-select: none; user-select: none; font-size: 1rem; } .q-calendar-day__head--weekday, .q-calendar-day__head--date { margin: 2px; flex: 1 0 0; } .q-calendar-day__head--day__label { -webkit-user-select: none; user-select: none; cursor: pointer; } .q-calendar-day__body { flex: 1 1 60%; overflow: hidden; display: flex; position: relative; } .q-calendar-day__scroll-area { overflow: auto; flex: 1 1 auto; display: flex; align-items: flex-start; } .q-calendar-day__pane { width: 100%; overflow: hidden; flex: none; display: flex; align-items: flex-start; } .q-calendar-day__day-container { position: relative; display: flex; flex: 1; flex-direction: column; } .q-calendar-day__intervals-column { position: relative; display: flex; flex-direction: column; flex: 1 1 100%; -webkit-user-select: none; user-select: none; } .q-calendar-day__interval { text-align: left; outline: 0; } .q-calendar-day__interval--section { position: relative; text-align: left; outline: 0; } .q-calendar-day__interval--text { display: block; position: relative; top: -6px; font-size: 10px; width: 100%; text-align: center; } .q-calendar-day__day { position: relative; display: flex; flex-direction: column; flex: 1; width: 0; } .q-calendar-day__day-interval { position: relative; outline: 0; } .q-calendar-day__day-interval--section { position: relative; outline: 0; } .q-calendar-day__intervals-column.q-calendar__sticky { position: sticky; left: 0 /* rtl:ignore */; z-index: 1; } .q-calendar-day__head.q-calendar__sticky { position: sticky; left: 0 /* rtl:ignore */; top: 0; z-index: 2; } .q-calendar-day__head--intervals.q-calendar__sticky { position: sticky; left: 0 /* rtl:ignore */; top: 0; z-index: 3; } .q-calendar-day__head { border-bottom: var(--calendar-border); color: var(--calendar-color); background: var(--calendar-background); } .q-calendar-day__interval, .q-calendar-day__interval--section { border-bottom: var(--calendar-background) 1px solid; color: var(--calendar-color); background: var(--calendar-background); } .q-calendar-day__head--intervals { border-right: var(--calendar-border); min-width: var(--calendar-intervals-width); max-width: var(--calendar-intervals-width); color: var(--calendar-color); background: var(--calendar-background); } .q-calendar-day__head--day { font-weight: var(--calendar-head-font-weight); border-right: var(--calendar-border); } .q-calendar-day__head--day:last-child { border-right: none; } .q-calendar-day__head--day.q-active-date .q-calendar__button { color: var(--calendar-active-date-color); background: var(--calendar-active-date-background); } .q-calendar-day__head--day.q-current-day .q-calendar__button { border: var(--calendar-border-current); } .q-calendar-day__head--day.q-disabled-day { color: var(--calendar-disabled-date-color); background: var(--calendar-disabled-date-background) !important; } .q-calendar-day__head--day__event { border-right: var(--calendar-border); } .q-calendar-day__head--day__event:last-child { border-right: none; } .q-calendar-day__column-header--before { border-bottom: var(--calendar-border); } .q-calendar-day__column-header--after { border-top: var(--calendar-border); } .q-calendar-day__intervals-column { border-right: var(--calendar-border); min-width: var(--calendar-intervals-width); max-width: var(--calendar-intervals-width); } .q-calendar-day__day { border-right: var(--calendar-border); } .q-calendar-day__day:last-child { border-right: none !important; } .q-calendar-day__day.q-disabled-day { color: var(--calendar-disabled-date-color); background: var(--calendar-disabled-date-background) !important; } .q-calendar-day__day-interval { width: 100%; border-top: var(--calendar-border); } .q-calendar-day__day-interval.q-selected { color: var(--calendar-selected-color); background: var(--calendar-selected-background); } .q-calendar-day__day-interval.q-range-first, .q-calendar-day__day-interval.q-range-last, .q-calendar-day__day-interval.q-range { color: var(--calendar-range-color); background: var(--calendar-range-background); } .q-calendar-day__day-interval--section { border-top: var(--calendar-border-section); } .q-calendar-day__day-interval--section.q-selected { color: var(--calendar-selected-color); background: var(--calendar-selected-background); } .q-calendar-day__day-interval--section.q-range-first, .q-calendar-day__day-interval--section.q-range-last, .q-calendar-day__day-interval--section.q-range { color: var(--calendar-range-color); background: var(--calendar-range-background); } .q-calendar-day__day-interval:first-child { border-top: none !important; } .q-calendar-day__day-interval:last-child { border-bottom: none !important; } .q-dark div .q-calendar-day__head, .body--dark div .q-calendar-day__head, .q-calendar--dark .q-calendar-day__head { border-bottom: var(--calendar-border-dark); color: var(--calendar-color-dark); background: var(--calendar-background-dark); } .q-dark div .q-calendar-day__interval, .q-dark div .q-calendar-day__interval--section, .body--dark div .q-calendar-day__interval, .body--dark div .q-calendar-day__interval--section, .q-calendar--dark .q-calendar-day__interval, .q-calendar--dark .q-calendar-day__interval--section { border-bottom: var(--calendar-background-dark) 1px solid; color: var(--calendar-color-dark); background: var(--calendar-background-dark); } .q-dark div .q-calendar-day__head--intervals, .body--dark div .q-calendar-day__head--intervals, .q-calendar--dark .q-calendar-day__head--intervals { border-right: var(--calendar-border-dark); color: var(--calendar-color-dark); background: var(--calendar-background-dark); } .q-dark div .q-calendar-day__head--day, .body--dark div .q-calendar-day__head--day, .q-calendar--dark .q-calendar-day__head--day { border-right: var(--calendar-border-dark); font-weight: var(--calendar-head-font-weight); } .q-dark div .q-calendar-day__head--day:last-child, .body--dark div .q-calendar-day__head--day:last-child, .q-calendar--dark .q-calendar-day__head--day:last-child { border-right: none; } .q-dark div .q-calendar-day__head--day.q-active-date .q-calendar__button, .body--dark div .q-calendar-day__head--day.q-active-date .q-calendar__button, .q-calendar--dark .q-calendar-day__head--day.q-active-date .q-calendar__button { color: var(--calendar-active-date-color-dark); background: var(--calendar-active-date-background-dark); } .q-dark div .q-calendar-day__head--day.q-current-day .q-calendar__button, .body--dark div .q-calendar-day__head--day.q-current-day .q-calendar__button, .q-calendar--dark .q-calendar-day__head--day.q-current-day .q-calendar__button { border: var(--calendar-border-current-dark); } .q-dark div .q-calendar-day__head--day__event, .body--dark div .q-calendar-day__head--day__event, .q-calendar--dark .q-calendar-day__head--day__event { border-right: var(--calendar-border-dark); } .q-dark div .q-calendar-day__head--day.q-disabled-day, .body--dark div .q-calendar-day__head--day.q-disabled-day, .q-calendar--dark .q-calendar-day__head--day.q-disabled-day { color: var(--calendar-disabled-date-color-dark); background: var(--calendar-disabled-date-background-dark) !important; } .q-dark div .q-calendar-day__column-header--before, .body--dark div .q-calendar-day__column-header--before, .q-calendar--dark .q-calendar-day__column-header--before { border-bottom: var(--calendar-border-dark); } .q-dark div .q-calendar-day__column-header--after, .body--dark div .q-calendar-day__column-header--after, .q-calendar--dark .q-calendar-day__column-header--after { border-top: var(--calendar-border-dark); } .q-dark div .q-calendar-day__intervals-column, .body--dark div .q-calendar-day__intervals-column, .q-calendar--dark .q-calendar-day__intervals-column { border-right: var(--calendar-border-dark); } .q-dark div .q-calendar-day__day, .body--dark div .q-calendar-day__day, .q-calendar--dark .q-calendar-day__day { border-right: var(--calendar-border-dark); } .q-dark div .q-calendar-day__day:last-child, .body--dark div .q-calendar-day__day:last-child, .q-calendar--dark .q-calendar-day__day:last-child { border-right: none !important; } .q-dark div .q-calendar-day__day.q-disabled-day, .body--dark div .q-calendar-day__day.q-disabled-day, .q-calendar--dark .q-calendar-day__day.q-disabled-day { color: var(--calendar-disabled-date-color); background: var(--calendar-disabled-date-background) !important; } .q-dark div .q-calendar-day__day-interval, .body--dark div .q-calendar-day__day-interval, .q-calendar--dark .q-calendar-day__day-interval { border-top: var(--calendar-border-dark); } .q-dark div .q-calendar-day__day-interval.q-selected, .body--dark div .q-calendar-day__day-interval.q-selected, .q-calendar--dark .q-calendar-day__day-interval.q-selected { color: var(--calendar-selected-color-dark); background: var(--calendar-selected-background-dark); } .q-dark div .q-calendar-day__day-interval.q-range-first, .q-dark div .q-calendar-day__day-interval.q-range-last, .q-dark div .q-calendar-day__day-interval.q-range, .body--dark div .q-calendar-day__day-interval.q-range-first, .body--dark div .q-calendar-day__day-interval.q-range-last, .body--dark div .q-calendar-day__day-interval.q-range, .q-calendar--dark .q-calendar-day__day-interval.q-range-first, .q-calendar--dark .q-calendar-day__day-interval.q-range-last, .q-calendar--dark .q-calendar-day__day-interval.q-range { color: var(--calendar-range-color-dark); background: var(--calendar-range-background-dark); } .q-dark div .q-calendar-day__day-interval:first-child, .body--dark div .q-calendar-day__day-interval:first-child, .q-calendar--dark .q-calendar-day__day-interval:first-child { border-top: none !important; } .q-dark div .q-calendar-day__day-interval:last-child, .body--dark div .q-calendar-day__day-interval:last-child, .q-calendar--dark .q-calendar-day__day-interval:last-child { border-bottom: none !important; } .q-dark div .q-calendar-day__day-interval--section, .body--dark div .q-calendar-day__day-interval--section, .q-calendar--dark .q-calendar-day__day-interval--section { border-top: var(--calendar-border-section-dark); } .q-dark div .q-calendar-day__day-interval--section.q-selected, .body--dark div .q-calendar-day__day-interval--section.q-selected, .q-calendar--dark .q-calendar-day__day-interval--section.q-selected { color: var(--calendar-selected-color-dark); background: var(--calendar-selected-background-dark); } .q-dark div .q-calendar-day__day-interval--section.q-range-first, .q-dark div .q-calendar-day__day-interval--section.q-range-last, .q-dark div .q-calendar-day__day-interval--section.q-range, .body--dark div .q-calendar-day__day-interval--section.q-range-first, .body--dark div .q-calendar-day__day-interval--section.q-range-last, .body--dark div .q-calendar-day__day-interval--section.q-range, .q-calendar--dark .q-calendar-day__day-interval--section.q-range-first, .q-calendar--dark .q-calendar-day__day-interval--section.q-range-last, .q-calendar--dark .q-calendar-day__day-interval--section.q-range { color: var(--calendar-range-color-dark); background: var(--calendar-range-background-dark); }